};
private:
- typedef std::list<Widget *> ChildSeq;
-
- ChildSeq children;
+ std::list<Widget *> children;
Widget *pointer_focus;
unsigned pointer_grab;
Widget *input_focus;
~Panel();
void add(Widget &);
+ void remove(Widget &);
+ const std::list<Widget *> &get_children() const { return children; }
+ void raise(Widget &);
+ void set_focus(Widget &);
+
+ virtual void button_press(int, int, unsigned);
+ virtual void button_release(int, int, unsigned);
+ virtual void pointer_motion(int, int);
+ virtual void pointer_leave();
+ virtual void key_press(unsigned, unsigned, wchar_t);
+ virtual void key_release(unsigned, unsigned);
+ virtual void focus_out();
- void button_press(int, int, unsigned);
- void button_release(int, int, unsigned);
- void pointer_motion(int, int);
- void key_press(unsigned, unsigned, wchar_t);
- void key_release(unsigned, unsigned);
- void focus_out();
+ // These functions are not intended to be called from outside GLtk
+ void child_hidden(Widget &);
+ void grab_pointer(Widget &);
+ void ungrab_pointer(Widget &);
+ void grab_focus(Widget &);
private:
- const char *get_class() const { return "panel"; }
- void render_part(const Part &) const;
- void set_pointer_focus(Widget *);
+ virtual const char *get_class() const { return "panel"; }
+ virtual void render_special(const Part &) const;
+
+ void set_pointer_focus(Widget *, int);
void set_input_focus(Widget *);
Widget *get_child_at(int, int);
};