4 void widget_set_visible(ui::Widget widget, bool shown)
9 gtk_widget_hide(widget);
13 bool widget_is_visible(ui::Widget widget)
15 return gtk_widget_get_visible(widget) != FALSE;
18 void widget_queue_draw(ui::Widget &widget)
20 gtk_widget_queue_draw(widget);
23 void widget_make_default(ui::Widget widget)
25 gtk_widget_set_can_default(widget, true);
26 gtk_widget_grab_default(widget);
29 gboolean ToggleShown::notify_visible(ui::Widget widget, gpointer dummy, ToggleShown *self)
35 gboolean ToggleShown::destroy(ui::Widget widget, ToggleShown *self)
37 self->m_shownDeferred = gtk_widget_get_visible(self->m_widget) != FALSE;
38 self->m_widget = ui::Widget(ui::null);
42 void ToggleShown::update()
47 bool ToggleShown::active() const
50 return m_shownDeferred;
52 return gtk_widget_get_visible(m_widget) != FALSE;
56 void ToggleShown::exportActive(const BoolImportCallback &importCallback)
58 importCallback(active());
61 void ToggleShown::set(bool shown)
64 m_shownDeferred = shown;
66 widget_set_visible(m_widget, shown);
70 void ToggleShown::toggle()
72 widget_toggle_visible(m_widget);
75 void ToggleShown::connect(ui::Widget widget)
78 widget_set_visible(m_widget, m_shownDeferred);
79 m_widget.connect("notify::visible", G_CALLBACK(notify_visible), this);
80 m_widget.connect("destroy", G_CALLBACK(destroy), this);
84 gboolean WidgetFocusPrinter::focus_in(ui::Widget widget, GdkEventFocus *event, WidgetFocusPrinter *self)
86 globalOutputStream() << self->m_name << " takes focus\n";
90 gboolean WidgetFocusPrinter::focus_out(ui::Widget widget, GdkEventFocus *event, WidgetFocusPrinter *self)
92 globalOutputStream() << self->m_name << " loses focus\n";
96 void WidgetFocusPrinter::connect(ui::Widget widget)
98 widget.connect("focus_in_event", G_CALLBACK(focus_in), this);
99 widget.connect("focus_out_event", G_CALLBACK(focus_out), this);