static void add_screen_lock (CcPrivacyPanel *self) { GtkWidget *w; GtkWidget *dialog; GtkWidget *label; w = get_on_off_label (self->priv->lock_settings, "lock-enabled"); add_row (self, _("Screen Lock"), "screen_lock_dialog", w); dialog = self->priv->screen_lock_dialog; g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "automatic_screen_lock")); g_settings_bind (self->priv->lock_settings, "lock-enabled", w, "active", G_SETTINGS_BIND_DEFAULT); w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "lock_after_combo")); g_settings_bind (self->priv->lock_settings, "lock-enabled", w, "sensitive", G_SETTINGS_BIND_GET); label = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "lock_after_label")); g_object_bind_property (w, "sensitive", label, "sensitive", G_BINDING_DEFAULT); set_lock_value_for_combo (GTK_COMBO_BOX (w), self); g_signal_connect (w, "changed", G_CALLBACK (lock_combo_changed_cb), self); w = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "show_notifications")); g_settings_bind (self->priv->notification_settings, "show-in-lock-screen", w, "active", G_SETTINGS_BIND_DEFAULT); }
static void cc_screen_panel_init (CcScreenPanel *self) { GError *error; GtkWidget *widget; self->priv = SCREEN_PANEL_PRIVATE (self); self->priv->builder = gtk_builder_new (); error = NULL; gtk_builder_add_from_file (self->priv->builder, CINNAMONCC_UI_DIR "/screen.ui", &error); if (error != NULL) { g_warning ("Could not load interface file: %s", error->message); g_error_free (error); return; } self->priv->cancellable = g_cancellable_new (); /* get initial brightness version */ g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.gnome.SettingsDaemon", "/org/gnome/SettingsDaemon/Power", "org.gnome.SettingsDaemon.Power.Screen", self->priv->cancellable, got_power_proxy_cb, self); self->priv->lock_settings = g_settings_new ("org.gnome.desktop.screensaver"); g_signal_connect (self->priv->lock_settings, "changed", G_CALLBACK (on_lock_settings_changed), self); self->priv->gsd_settings = g_settings_new ("org.gnome.settings-daemon.plugins.power"); self->priv->session_settings = g_settings_new ("org.gnome.desktop.session"); self->priv->lockdown_settings = g_settings_new ("org.gnome.desktop.lockdown"); g_signal_connect (self->priv->lockdown_settings, "changed", G_CALLBACK (on_lockdown_settings_changed), self); /* bind the auto dim checkbox */ widget = WID ("screen_auto_reduce_checkbutton"); g_settings_bind (self->priv->gsd_settings, "idle-dim-battery", widget, "active", G_SETTINGS_BIND_DEFAULT); /* display off time */ widget = WID ("screen_brightness_combobox"); GtkListStore *store = LS ("screen_brightness_liststore"); gtk_combo_box_set_model (GTK_COMBO_BOX (widget), store); set_dpms_value_for_combo (GTK_COMBO_BOX (widget), self); g_signal_connect (widget, "changed", G_CALLBACK (dpms_combo_changed_cb), self); /* bind the screen lock checkbox */ widget = WID ("screen_lock_on_switch"); g_settings_bind (self->priv->lock_settings, "lock-enabled", widget, "active", G_SETTINGS_BIND_DEFAULT); /* lock time */ widget = WID ("screen_lock_combobox"); store = LS ("lock_liststore"); gtk_combo_box_set_model (GTK_COMBO_BOX (widget), store); set_lock_value_for_combo (GTK_COMBO_BOX (widget), self); g_signal_connect (widget, "changed", G_CALLBACK (lock_combo_changed_cb), self); widget = WID ("screen_lock_hbox"); g_settings_bind (self->priv->lock_settings, "lock-enabled", widget, "sensitive", G_SETTINGS_BIND_GET); update_lock_screen_sensitivity (self); /* bind the screen lock suspend checkbutton */ widget = WID ("screen_lock_suspend_checkbutton"); g_settings_bind (self->priv->lock_settings, "ubuntu-lock-on-suspend", widget, "active", G_SETTINGS_BIND_DEFAULT); widget = WID ("screen_vbox"); gtk_widget_reparent (widget, (GtkWidget *) self); g_object_set (self, "valign", GTK_ALIGN_START, NULL); }