1 #ifndef MSP_GLTK_CONTAINER_H_
2 #define MSP_GLTK_CONTAINER_H_
6 #include <sigc++/trackable.h>
12 class hierarchy_error: public std::logic_error
15 hierarchy_error(const std::string &);
16 virtual ~hierarchy_error() throw() { }
20 class Container: virtual public Widget
23 struct Child: public sigc::trackable
28 Child(Container &, Widget *);
31 void visibility_changed(bool);
34 std::list<Child *> children;
36 unsigned click_button;
43 void remove(Widget &);
45 virtual Child *create_child(Widget *);
47 std::list<Widget *> get_children() const;
48 Widget *get_child_at(int, int);
49 Widget *get_descendant_at(int, int);
51 virtual void button_press(int, int, unsigned);
52 virtual void button_release(int, int, unsigned);
53 virtual void pointer_motion(int, int);
54 virtual void pointer_leave();
56 virtual void on_reparent();
57 virtual void on_child_added(Widget &) { }
58 virtual void on_child_removed(Widget &) { }