14 #ifndef T3_WIDGET_INTERFACES_H
15 #define T3_WIDGET_INTERFACES_H
19 #include <t3window/window.h>
21 #include <t3widget/key.h>
22 #include <t3widget/mouse.h>
23 #include <t3widget/util.h>
51 virtual t3_window_t *get_base_window(
void);
56 virtual bool process_key(
key_t key) = 0;
68 virtual void update_contents(
void) = 0;
75 virtual void set_focus(focus_t focus) = 0;
77 virtual void show(
void) = 0;
79 virtual void hide(
void) = 0;
81 virtual void force_redraw(
void) = 0;
123 typedef std::map<t3_window_t *, mouse_target_t *> mouse_target_map_t;
125 static mouse_target_map_t targets;
127 static t3_window_t *grab_window;
133 void register_mouse_target(t3_window_t *target);
136 void unregister_mouse_target(t3_window_t *target);
151 void grab_mouse(
void);
153 void release_mouse_grab(
void);
170 static std::list<bad_draw_recheck_t *> to_signal;
172 static signals::connection initialized;
174 static void bad_draw_recheck_all(
void);
185 virtual void bad_draw_recheck(
void) = 0;