diff options
author | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2018-03-16 02:06:28 -0300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2018-03-16 02:06:28 -0300 |
commit | a5b766f7f0676a020d719c4ad3cb87c6cfedd048 (patch) | |
tree | fad7a4bab2adbf9e440ffcb17402e84b96ec0097 | |
parent | 6cd94618078e4a23c796e7182fe8c9196f614e7b (diff) | |
download | gnome-control-center-a5b766f7f0676a020d719c4ad3cb87c6cfedd048.tar.gz |
universal-access: Move widget setup code to constructed()
This is in preparation for using the transient-for window to
retrieve the GdkMonitor.
-rw-r--r-- | panels/universal-access/zoom-options.c | 102 |
1 files changed, 56 insertions, 46 deletions
diff --git a/panels/universal-access/zoom-options.c b/panels/universal-access/zoom-options.c index 4bd1cc7d1..9ef7f504d 100644 --- a/panels/universal-access/zoom-options.c +++ b/panels/universal-access/zoom-options.c @@ -426,56 +426,15 @@ effects_slider_changed (GtkRange *slider, ZoomOptions *self) } static void -zoom_options_finalize (GObject *object) +zoom_options_constructed (GObject *object) { - ZoomOptions *self = ZOOM_OPTIONS (object); - - g_clear_object (&self->settings); - g_clear_object (&self->application_settings); - - G_OBJECT_CLASS (zoom_options_parent_class)->finalize (object); -} - -static void -zoom_options_class_init (ZoomOptionsClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); - - object_class->finalize = zoom_options_finalize; - - gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/universal-access/zoom-options.ui"); - - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, brightness_slider); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, centered_radio); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, contrast_slider); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_clip_checkbox); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_enabled_switcher); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_length_slider); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_picker_color_button); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_thickness_scale); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, extend_beyond_checkbox); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, follow_mouse_radio); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, grayscale_slider); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, inverse_enabled_switch); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, magnifier_factor_spin); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, proportional_radio); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, push_radio); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, screen_part_radio); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, screen_position_combobox); - gtk_widget_class_bind_template_child (widget_class, ZoomOptions, seeing_zoom_switch); -} - -static void -zoom_options_init (ZoomOptions *self) -{ - PangoAttrList *pango_attrs; PangoAttribute *attr; + PangoAttrList *pango_attrs; + ZoomOptions *self; - gtk_widget_init_template (GTK_WIDGET (self)); + self = ZOOM_OPTIONS (object); - self->settings = g_settings_new ("org.gnome.desktop.a11y.magnifier"); - self->application_settings = g_settings_new ("org.gnome.desktop.a11y.applications"); + G_OBJECT_CLASS (zoom_options_parent_class)->constructed (object); pango_attrs = pango_attr_list_new (); attr = pango_attr_scale_new (FONT_SCALE); @@ -555,6 +514,57 @@ zoom_options_init (ZoomOptions *self) pango_attr_list_unref (pango_attrs); } +static void +zoom_options_finalize (GObject *object) +{ + ZoomOptions *self = ZOOM_OPTIONS (object); + + g_clear_object (&self->settings); + g_clear_object (&self->application_settings); + + G_OBJECT_CLASS (zoom_options_parent_class)->finalize (object); +} + +static void +zoom_options_class_init (ZoomOptionsClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + object_class->finalize = zoom_options_finalize; + object_class->constructed = zoom_options_constructed; + + gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/universal-access/zoom-options.ui"); + + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, brightness_slider); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, centered_radio); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, contrast_slider); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_clip_checkbox); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_enabled_switcher); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_length_slider); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_picker_color_button); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, crosshair_thickness_scale); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, extend_beyond_checkbox); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, follow_mouse_radio); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, grayscale_slider); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, inverse_enabled_switch); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, magnifier_factor_spin); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, proportional_radio); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, push_radio); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, screen_part_radio); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, screen_position_combobox); + gtk_widget_class_bind_template_child (widget_class, ZoomOptions, seeing_zoom_switch); +} + +static void +zoom_options_init (ZoomOptions *self) +{ + gtk_widget_init_template (GTK_WIDGET (self)); + + self->settings = g_settings_new ("org.gnome.desktop.a11y.magnifier"); + self->application_settings = g_settings_new ("org.gnome.desktop.a11y.applications"); +} + ZoomOptions * zoom_options_new (GtkWindow *parent) { |