4 void widget_queue_draw(ui::Widget &widget)
6 gtk_widget_queue_draw(widget);
9 void widget_make_default(ui::Widget widget)
11 gtk_widget_set_can_default(widget, true);
12 gtk_widget_grab_default(widget);
15 gboolean ToggleShown::notify_visible(ui::Widget widget, gpointer dummy, ToggleShown *self)
21 gboolean ToggleShown::destroy(ui::Widget widget, ToggleShown *self)
23 self->m_shownDeferred = gtk_widget_get_visible(self->m_widget) != FALSE;
24 self->m_widget = ui::Widget(ui::null);
28 void ToggleShown::update()
33 bool ToggleShown::active() const
36 return m_shownDeferred;
38 return gtk_widget_get_visible(m_widget) != FALSE;
42 void ToggleShown::exportActive(const Callback<void(bool)> &importCallback)
44 importCallback(active());
47 void ToggleShown::set(bool shown)
50 m_shownDeferred = shown;
52 m_widget.visible(shown);
56 void ToggleShown::toggle()
58 m_widget.visible(!m_widget.visible());
61 void ToggleShown::connect(ui::Widget widget)
64 m_widget.visible(m_shownDeferred);
65 m_widget.connect("notify::visible", G_CALLBACK(notify_visible), this);
66 m_widget.connect("destroy", G_CALLBACK(destroy), this);
70 gboolean WidgetFocusPrinter::focus_in(ui::Widget widget, GdkEventFocus *event, WidgetFocusPrinter *self)
72 globalOutputStream() << self->m_name << " takes focus\n";
76 gboolean WidgetFocusPrinter::focus_out(ui::Widget widget, GdkEventFocus *event, WidgetFocusPrinter *self)
78 globalOutputStream() << self->m_name << " loses focus\n";
82 void WidgetFocusPrinter::connect(ui::Widget widget)
84 widget.connect("focus_in_event", G_CALLBACK(focus_in), this);
85 widget.connect("focus_out_event", G_CALLBACK(focus_out), this);