X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fcontainer.h;h=45985bc0ad585c304d5735f2ad037b016bbdc53b;hb=eeec8c83778e73c02c414db772f790540e626d2c;hp=adaee6f4bb02c17b021e6386e6eb988809c15051;hpb=81c4024fb6acf37df702a803dc4efdf82a81525a;p=libs%2Fgltk.git diff --git a/source/container.h b/source/container.h index adaee6f..45985bc 100644 --- a/source/container.h +++ b/source/container.h @@ -1,8 +1,8 @@ #ifndef MSP_GLTK_CONTAINER_H_ #define MSP_GLTK_CONTAINER_H_ -#include #include +#include #include #include "mspgltk_api.h" #include "widget.h" @@ -14,7 +14,6 @@ class MSPGLTK_API hierarchy_error: public std::logic_error { public: hierarchy_error(const std::string &); - virtual ~hierarchy_error() throw() { } }; @@ -38,7 +37,7 @@ protected: void rebuild_needed(); }; - std::list children; + std::vector children; Widget *click_focus = nullptr; unsigned click_button = 0; Widget *pointer_focus = nullptr; @@ -55,14 +54,13 @@ public: void add(Widget &); void remove(Widget &); protected: - virtual Child *create_child(Widget *); Geometry determine_child_geometry(const Widget &, const Part &) const; void autosize_child(const Widget &, const Part &, Geometry &) const; void reposition_child(Widget &, const Part &) const; public: - std::list get_children() const; - Widget *get_child_at(int, int) const; - Widget *get_descendant_at(int, int) const; + std::vector get_children() const; + Widget *find_child_at(int, int) const; + Widget *find_descendant_at(int, int) const; void raise(Widget &); protected: @@ -76,28 +74,28 @@ private: void check_animation_interval(); protected: - virtual void rebuild_hierarchy(); + void rebuild_hierarchy() override; public: - virtual void button_press(int, int, unsigned); - virtual void button_release(int, int, unsigned); - virtual void pointer_motion(int, int); + void button_press(int, int, unsigned) override; + void button_release(int, int, unsigned) override; + void pointer_motion(int, int) override; private: Widget *get_pointer_target(int, int, bool) const; public: - virtual void pointer_leave(); - virtual void touch_press(int, int, unsigned); - virtual void touch_release(int, int, unsigned); - virtual void touch_motion(int, int, unsigned); - virtual bool key_press(unsigned, unsigned); - virtual bool key_release(unsigned, unsigned); - virtual bool character(wchar_t); - virtual void focus_in(); - virtual void focus_out(); - virtual bool navigate(Navigation); - virtual void animate(const Time::TimeDelta &); + void pointer_leave() override; + void touch_press(int, int, unsigned) override; + void touch_release(int, int, unsigned) override; + void touch_motion(int, int, unsigned) override; + bool key_press(unsigned, unsigned) override; + bool key_release(unsigned, unsigned) override; + bool character(wchar_t) override; + void focus_in() override; + void focus_out() override; + bool navigate(Navigation) override; + void animate(const Time::TimeDelta &) override; protected: - virtual void on_reparent(); + void on_reparent() override; virtual void on_child_added(Widget &) { } virtual void on_child_removed(Widget &) { } virtual void on_input_focus_changed(Widget *);