X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcontainer.h;h=d98ce394c0506d9ad522c153aad1f875d10efd81;hb=32d668c967c881ed386be22f17e3477a4405436b;hp=2c29e5d881e3615d765648ab8cbf3c9bf8835f1d;hpb=36fced66c1ea8962e148ebddc0e021a8aedfc310;p=libs%2Fgltk.git diff --git a/source/container.h b/source/container.h index 2c29e5d..d98ce39 100644 --- a/source/container.h +++ b/source/container.h @@ -24,6 +24,7 @@ protected: { Container &container; Widget *widget; + Time::TimeDelta time_since_animate; Child(Container &, Widget *); virtual ~Child(); @@ -32,6 +33,7 @@ protected: void request_focus(); void grab_pointer(); void ungrab_pointer(); + void request_animation(const Time::TimeDelta &); }; std::list children; @@ -40,6 +42,8 @@ protected: Widget *pointer_focus; bool pointer_grabbed; Widget *input_focus; + Widget *saved_input_focus; + Widget *touch_focus; Container(); public: @@ -59,27 +63,38 @@ public: void raise(Widget &); protected: - void set_pointer_focus(Widget *); + void set_pointer_focus(Widget *, bool = false); void set_input_focus(Widget *); public: Widget *get_input_focus() const { return input_focus; } Widget *get_final_input_focus() const; +private: + void check_animation_interval(); + +public: virtual void button_press(int, int, unsigned); virtual void button_release(int, int, unsigned); virtual void pointer_motion(int, int); private: - Widget *get_pointer_target(int, int) const; + Widget *get_pointer_target(int, int, bool) const; public: virtual void pointer_leave(); - virtual void key_press(unsigned, unsigned); - virtual void key_release(unsigned, unsigned); - virtual void character(wchar_t); + 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 &); protected: virtual void on_reparent(); virtual void on_child_added(Widget &) { } virtual void on_child_removed(Widget &) { } + virtual void on_input_focus_changed(Widget *); }; } // namespace GLtk