static void visual_bell_enable_toggled_cb (GtkWidget *w, GtkBuilder *dialog) { gboolean active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)); if (notifications_dialog) { gtk_widget_set_sensitive (NWID ("visual_bell_titlebar"), active); gtk_widget_set_sensitive (NWID ("visual_bell_fullscreen"), active); } }
static void bell_flash_gsettings_changed (GSettings *settings, gchar *key, GtkBuilder *dialog) { int bell_flash_type = g_settings_get_enum (settings, key); if (bell_flash_type == VISUAL_BELL_TYPE_FULLSCREEN) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (NWID ("visual_bell_fullscreen")), TRUE); } else if (bell_flash_type == VISUAL_BELL_TYPE_FRAME_FLASH) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (NWID ("visual_bell_titlebar")), TRUE); } }
static void notifications_button_clicked_cb (GtkWidget *button, GladeXML *dialog) { GtkWidget *w; notifications_dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-keyboard-properties.glade", "a11y_notifications_dialog", NULL); stickykeys_enable_toggled_cb (WID ("stickykeys_enable"), dialog); slowkeys_enable_toggled_cb (WID ("slowkeys_enable"), dialog); bouncekeys_enable_toggled_cb (WID ("bouncekeys_enable"), dialog); w = NWID ("feature_state_change_beep"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/feature_state_change_beep", w, NULL); w = NWID ("togglekeys_enable"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/togglekeys_enable", w, NULL); w = NWID ("stickykeys_modifier_beep"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/stickykeys_modifier_beep", w, NULL); w = NWID ("slowkeys_beep_press"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/slowkeys_beep_press", w, NULL); w = NWID ("slowkeys_beep_accept"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/slowkeys_beep_accept", w, NULL); w = NWID ("slowkeys_beep_reject"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/slowkeys_beep_reject", w, NULL); w = NWID ("bouncekeys_beep_reject"); gconf_peditor_new_boolean (NULL, CONFIG_ROOT "/bouncekeys_beep_reject", w, NULL); w = NWID ("a11y_notifications_dialog"); gtk_window_set_transient_for (GTK_WINDOW (w), GTK_WINDOW (WID ("keyboard_dialog"))); g_signal_connect (w, "response", G_CALLBACK (a11y_notifications_dialog_response_cb), NULL); gtk_dialog_run (GTK_DIALOG (w)); g_object_unref (notifications_dialog); notifications_dialog = NULL; }
static void bouncekeys_enable_toggled_cb (GtkWidget *w, GtkBuilder *dialog) { gboolean active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)); gtk_widget_set_sensitive (WID ("bouncekeys_delay_box"), active); if (notifications_dialog) gtk_widget_set_sensitive (NWID ("bouncekeys_notifications_box"), active); }
static void bell_flash_radio_changed (GtkWidget *widget, GtkBuilder *builder) { GSettings *marco_settings; marco_settings = g_settings_new (MARCO_SCHEMA); int old_bell_flash_type = g_settings_get_enum (marco_settings, "visual-bell-type"); int new_bell_flash_type = VISUAL_BELL_TYPE_INVALID; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (NWID ("visual_bell_fullscreen")))) new_bell_flash_type = VISUAL_BELL_TYPE_FULLSCREEN; else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (NWID ("visual_bell_titlebar")))) new_bell_flash_type = VISUAL_BELL_TYPE_FRAME_FLASH; if (old_bell_flash_type != new_bell_flash_type) g_settings_set_enum (marco_settings, "visual-bell-type", new_bell_flash_type); g_object_unref (marco_settings); }
static void stickykeys_enable_toggled_cb (GtkWidget *w, GladeXML *dialog) { gboolean active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)); gtk_widget_set_sensitive (WID ("stickykeys_two_key_off"), active); if (notifications_dialog) gtk_widget_set_sensitive (NWID ("stickykeys_notifications_box"), active); }
static void notifications_button_clicked_cb (GtkWidget *button, GtkBuilder *dialog) { GtkWidget *w; notifications_dialog = gtk_builder_new (); gtk_builder_add_from_file (notifications_dialog, MATECC_UI_DIR "/mate-keyboard-properties-a11y-notifications.ui", NULL); stickykeys_enable_toggled_cb (WID ("stickykeys_enable"), dialog); slowkeys_enable_toggled_cb (WID ("slowkeys_enable"), dialog); bouncekeys_enable_toggled_cb (WID ("bouncekeys_enable"), dialog); w = NWID ("feature_state_change_beep"); g_settings_bind (a11y_settings, "feature-state-change-beep", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("togglekeys_enable"); g_settings_bind (a11y_settings, "togglekeys-enable", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("stickykeys_modifier_beep"); g_settings_bind (a11y_settings, "stickykeys-modifier-beep", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("slowkeys_beep_press"); g_settings_bind (a11y_settings, "slowkeys-beep-press", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("slowkeys_beep_accept"); g_settings_bind (a11y_settings, "slowkeys-beep-accept", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("slowkeys_beep_reject"); g_settings_bind (a11y_settings, "slowkeys-beep-reject", w, "active", G_SETTINGS_BIND_DEFAULT); w = NWID ("bouncekeys_beep_reject"); g_settings_bind (a11y_settings, "bouncekeys-beep-reject", w, "active", G_SETTINGS_BIND_DEFAULT); GSettings *marco_settings = g_settings_new (MARCO_SCHEMA); w = NWID ("visual_bell_enable"); g_settings_bind (marco_settings, "visual-bell", w, "active", G_SETTINGS_BIND_DEFAULT); g_signal_connect (w, "toggled", G_CALLBACK (visual_bell_enable_toggled_cb), dialog); visual_bell_enable_toggled_cb (w, dialog); bell_flash_gsettings_changed (marco_settings, "visual-bell-type", NULL); g_signal_connect (NWID ("visual_bell_titlebar"), "clicked", G_CALLBACK(bell_flash_radio_changed), notifications_dialog); g_signal_connect (NWID ("visual_bell_fullscreen"), "clicked", G_CALLBACK(bell_flash_radio_changed), notifications_dialog); g_signal_connect (marco_settings, "changed::visual-bell-type", G_CALLBACK (bell_flash_gsettings_changed), notifications_dialog); w = NWID ("a11y_notifications_dialog"); gtk_window_set_transient_for (GTK_WINDOW (w), GTK_WINDOW (WID ("keyboard_dialog"))); g_signal_connect (w, "response", G_CALLBACK (a11y_notifications_dialog_response_cb), NULL); gtk_dialog_run (GTK_DIALOG (w)); g_object_unref (marco_settings); g_object_unref (notifications_dialog); notifications_dialog = NULL; }