+ 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();
+
+protected:
+ void rebuild_hierarchy() override;
+
+public:
+ 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:
+ 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:
+ void on_reparent() override;