diff --git a/capplets/keyboard/ChangeLog b/capplets/keyboard/ChangeLog index 7e1a4af9b..f5f692271 100644 --- a/capplets/keyboard/ChangeLog +++ b/capplets/keyboard/ChangeLog @@ -1,3 +1,11 @@ +2007-11-03 Sergey Udaltsov + + * gnome-keyboard-properties-xkblt.c, gnome-keyboard-properties-xkb.c, + gnome-keyboard-properties-xkbot.c, gnome-keyboard-properties-xkb.h, + gnome-keyboard-properties-xkbpv.c, gnome-keyboard-properties.glade, + gnome-keyboard-properties-xkbltadd.c, gnome-keyboard-properties.c: + moving layout options to separate popup, according to Denis's mockups. + 2007-10-31 Kjartan Maraas * gnome-keyboard-properties-xkblt.c: diff --git a/capplets/keyboard/gnome-keyboard-properties-xkb.c b/capplets/keyboard/gnome-keyboard-properties-xkb.c index 8237784b8..2cfdc563c 100644 --- a/capplets/keyboard/gnome-keyboard-properties-xkb.c +++ b/capplets/keyboard/gnome-keyboard-properties-xkb.c @@ -170,19 +170,19 @@ setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset) g_signal_connect (peditor, "value-changed", (GCallback) chk_separate_group_per_window_toggled, dialog); -/* tab 2 */ - /*fill_available_layouts_tree (dialog); */ xkb_layouts_prepare_selected_tree (dialog, changeset); xkb_layouts_fill_selected_tree (dialog); -/* tab 3 */ - xkb_options_load_options (dialog); - xkb_layouts_register_buttons_handlers (dialog); g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")), "clicked", G_CALLBACK (reset_to_defaults), dialog); + g_signal_connect_swapped (G_OBJECT (WID ("xkb_layout_options")), + "clicked", + G_CALLBACK (xkb_options_popup_dialog), + dialog); + g_signal_connect_swapped (G_OBJECT (WID ("xkb_model_pick")), "clicked", G_CALLBACK (choose_model), dialog); diff --git a/capplets/keyboard/gnome-keyboard-properties-xkb.h b/capplets/keyboard/gnome-keyboard-properties-xkb.h index 23a1df384..70ca23b54 100644 --- a/capplets/keyboard/gnome-keyboard-properties-xkb.h +++ b/capplets/keyboard/gnome-keyboard-properties-xkb.h @@ -50,6 +50,8 @@ extern void xkb_layouts_prepare_selected_tree (GladeXML * dialog, extern void xkb_options_load_options (GladeXML * dialog); +extern void xkb_options_popup_dialog(GladeXML * dialog); + extern void clear_xkb_elements_list (GSList * list); extern char *xci_desc_to_utf8 (XklConfigItem * ci); diff --git a/capplets/keyboard/gnome-keyboard-properties-xkblt.c b/capplets/keyboard/gnome-keyboard-properties-xkblt.c index 143faa1a4..56e8a925b 100644 --- a/capplets/keyboard/gnome-keyboard-properties-xkblt.c +++ b/capplets/keyboard/gnome-keyboard-properties-xkblt.c @@ -347,9 +347,10 @@ xkb_layouts_prepare_selected_tree (GladeXML * dialog, &self_drag_target, 1, GDK_ACTION_MOVE); g_signal_connect (G_OBJECT (tree_view), "drag_data_get", - G_CALLBACK (xkb_layouts_dnd_data_get), dialog); + G_CALLBACK (xkb_layouts_dnd_data_get), dialog); g_signal_connect (G_OBJECT (tree_view), "drag_data_received", - G_CALLBACK (xkb_layouts_dnd_data_received), dialog); + G_CALLBACK (xkb_layouts_dnd_data_received), + dialog); } void diff --git a/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c b/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c index d30c5a0f0..0cf7057de 100644 --- a/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c +++ b/capplets/keyboard/gnome-keyboard-properties-xkbltadd.c @@ -41,9 +41,9 @@ #define DEFAULT_VARIANT_ID "__default__" enum { - COMBO_BOX_MODEL_COL_DESCRIPTION, - COMBO_BOX_MODEL_COL_ID, - COMBO_BOX_MODEL_COL_IS_DEFAULT + COMBO_BOX_MODEL_COL_DESCRIPTION, + COMBO_BOX_MODEL_COL_ID, + COMBO_BOX_MODEL_COL_IS_DEFAULT }; typedef struct { @@ -62,7 +62,7 @@ xkb_layout_chooser_add_variant_to_available_variants (XklConfigRegistry * config_registry, XklConfigItem * config_item, - AddVariantData * + AddVariantData * data) { char *utf_variant_name = xci_desc_to_utf8 (config_item); @@ -74,8 +74,7 @@ xkb_layout_chooser_add_variant_to_available_variants (XklConfigRegistry * COMBO_BOX_MODEL_COL_ID, config_item->name, COMBO_BOX_MODEL_COL_IS_DEFAULT, - FALSE, - -1); + FALSE, -1); g_free (utf_variant_name); data->n_items++; @@ -86,15 +85,17 @@ xkb_layout_chooser_add_layout_to_available_layouts (XklConfigRegistry * config_registry, XklConfigItem * config_item, - GtkListStore *list_store) + GtkListStore * + list_store) { char *utf_layout_name = xci_desc_to_utf8 (config_item); GtkTreeIter iter; gtk_list_store_insert_with_values (list_store, &iter, -1, - COMBO_BOX_MODEL_COL_DESCRIPTION, utf_layout_name, - COMBO_BOX_MODEL_COL_ID, config_item->name, - -1); + COMBO_BOX_MODEL_COL_DESCRIPTION, + utf_layout_name, + COMBO_BOX_MODEL_COL_ID, + config_item->name, -1); g_free (utf_layout_name); } @@ -106,7 +107,8 @@ xkb_layout_chooser_enable_disable_buttons (GladeXML * chooser_dialog) GtkTreeIter liter, viter; gboolean enable_ok = gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbel), &liter) - && gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbev), &viter); + && gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbev), + &viter); gtk_dialog_set_response_sensitive (GTK_DIALOG (CWID ("xkb_layout_chooser")), @@ -128,23 +130,23 @@ xkb_layout_chooser_available_layout_changed (GladeXML * chooser_dialog) } static gint -xkb_layout_chooser_variant_compare_func (GtkTreeModel *model, - GtkTreeIter *a, - GtkTreeIter *b, +xkb_layout_chooser_variant_compare_func (GtkTreeModel * model, + GtkTreeIter * a, + GtkTreeIter * b, gpointer user_data) { gchar *desc_a = NULL, *desc_b = NULL; gboolean a_is_default, b_is_default; gint retval; - + gtk_tree_model_get (model, a, COMBO_BOX_MODEL_COL_DESCRIPTION, &desc_a, - COMBO_BOX_MODEL_COL_IS_DEFAULT, &a_is_default, - -1); + COMBO_BOX_MODEL_COL_IS_DEFAULT, &a_is_default, + -1); gtk_tree_model_get (model, b, COMBO_BOX_MODEL_COL_DESCRIPTION, &desc_b, - COMBO_BOX_MODEL_COL_IS_DEFAULT, &b_is_default, - -1); + COMBO_BOX_MODEL_COL_IS_DEFAULT, &b_is_default, + -1); if (a_is_default || b_is_default) retval = b_is_default - a_is_default; @@ -173,7 +175,8 @@ xkl_layout_chooser_separate_default_variant (GtkTreeModel * model, gchar *id; /* Rows with COMBO_BOX_MODEL_COL_DESCRIPTION value NULL are separators */ - gtk_tree_model_get (model, iter, COMBO_BOX_MODEL_COL_DESCRIPTION, &id, -1); + gtk_tree_model_get (model, iter, COMBO_BOX_MODEL_COL_DESCRIPTION, + &id, -1); g_free (id); return id == NULL; @@ -189,9 +192,9 @@ xkb_layout_chooser_available_variants_fill (GladeXML * chooser_dialog) GtkTreeIter liter, vdefault_iter; gboolean set_default = FALSE; - model = GTK_TREE_MODEL (gtk_list_store_new + model = GTK_TREE_MODEL (gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_BOOLEAN)); + G_TYPE_BOOLEAN)); if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbel), &liter)) { GtkTreeModel *lm = @@ -201,54 +204,56 @@ xkb_layout_chooser_available_variants_fill (GladeXML * chooser_dialog) AddVariantData data = { GTK_LIST_STORE (model), 0 }; /* The 'Default' row */ - gtk_list_store_insert_with_values (GTK_LIST_STORE (model), &vdefault_iter, -1, + gtk_list_store_insert_with_values (GTK_LIST_STORE (model), + &vdefault_iter, -1, COMBO_BOX_MODEL_COL_DESCRIPTION, _("Default"), COMBO_BOX_MODEL_COL_ID, DEFAULT_VARIANT_ID, - COMBO_BOX_MODEL_COL_IS_DEFAULT, TRUE, - -1); + COMBO_BOX_MODEL_COL_IS_DEFAULT, + TRUE, -1); set_default = TRUE; /* Now the variants of the selected lang */ gtk_tree_model_get (lm, &liter, - COMBO_BOX_MODEL_COL_ID, &value, - -1); + COMBO_BOX_MODEL_COL_ID, &value, -1); g_assert (value != NULL); xkl_config_registry_foreach_layout_variant - (config_registry, value, - (ConfigItemProcessFunc) + (config_registry, value, (ConfigItemProcessFunc) xkb_layout_chooser_add_variant_to_available_variants, &data); g_free (value); - + /* Add a separator row, but only if we have any non-default items */ if (data.n_items > 0) - gtk_list_store_insert_with_values (GTK_LIST_STORE (model), &viter, -1, + gtk_list_store_insert_with_values (GTK_LIST_STORE + (model), &viter, + -1, COMBO_BOX_MODEL_COL_DESCRIPTION, NULL, - COMBO_BOX_MODEL_COL_ID, + COMBO_BOX_MODEL_COL_ID, NULL, - COMBO_BOX_MODEL_COL_IS_DEFAULT, FALSE, - -1); + COMBO_BOX_MODEL_COL_IS_DEFAULT, + FALSE, -1); } /* Turn on sorting after filling the store, since that's faster */ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), COMBO_BOX_MODEL_COL_DESCRIPTION, - (GtkTreeIterCompareFunc) + (GtkTreeIterCompareFunc) xkb_layout_chooser_variant_compare_func, - NULL, NULL); + NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), COMBO_BOX_MODEL_COL_DESCRIPTION, - GTK_SORT_ASCENDING); + GTK_SORT_ASCENDING); gtk_combo_box_set_model (GTK_COMBO_BOX (cbev), model); /* Select the default variant */ if (set_default) { - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (cbev), &vdefault_iter); + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (cbev), + &vdefault_iter); } } @@ -259,15 +264,17 @@ xkb_layout_chooser_available_layouts_fill (GladeXML * chooser_dialog) GtkWidget *cbev = CWID ("xkb_variants_available"); GtkCellRenderer *renderer; GtkTreeModel *model = - GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING)); + GTK_TREE_MODEL (gtk_list_store_new + (2, G_TYPE_STRING, G_TYPE_STRING)); gtk_combo_box_set_model (GTK_COMBO_BOX (cbe), model); - renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cbe), renderer, TRUE); - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cbe), renderer, - "text", COMBO_BOX_MODEL_COL_DESCRIPTION, - NULL); + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cbe), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cbe), renderer, + "text", + COMBO_BOX_MODEL_COL_DESCRIPTION, + NULL); xkl_config_registry_foreach_layout (config_registry, (ConfigItemProcessFunc) @@ -277,7 +284,7 @@ xkb_layout_chooser_available_layouts_fill (GladeXML * chooser_dialog) /* Turn on sorting after filling the model since that's faster */ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), COMBO_BOX_MODEL_COL_DESCRIPTION, - GTK_SORT_ASCENDING); + GTK_SORT_ASCENDING); g_signal_connect_swapped (G_OBJECT (cbe), "changed", G_CALLBACK @@ -286,9 +293,11 @@ xkb_layout_chooser_available_layouts_fill (GladeXML * chooser_dialog) /* Setup the variants combo */ renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cbev), renderer, TRUE); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cbev), renderer, + TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cbev), renderer, - "text", COMBO_BOX_MODEL_COL_DESCRIPTION, + "text", + COMBO_BOX_MODEL_COL_DESCRIPTION, NULL); g_signal_connect_swapped (G_OBJECT (cbev), "changed", @@ -298,8 +307,7 @@ xkb_layout_chooser_available_layouts_fill (GladeXML * chooser_dialog) gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (cbev), (GtkTreeViewRowSeparatorFunc) xkl_layout_chooser_separate_default_variant, - chooser_dialog, - NULL); + chooser_dialog, NULL); } void @@ -443,20 +451,21 @@ xkb_layout_chooser_get_selected_id (GladeXML * chooser_dialog) gchar *lname, *vname; gchar *retval; - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbel), &liter) || - !gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbev), &viter)) + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbel), &liter) + || !gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbev), + &viter)) return NULL; gtk_tree_model_get (lm, &liter, - COMBO_BOX_MODEL_COL_ID, &lname, - -1); + COMBO_BOX_MODEL_COL_ID, &lname, -1); gtk_tree_model_get (vm, &viter, - COMBO_BOX_MODEL_COL_ID, &vname, - -1); + COMBO_BOX_MODEL_COL_ID, &vname, -1); if (strcmp (vname, DEFAULT_VARIANT_ID)) - retval = g_strdup (gkbd_keyboard_config_merge_items (lname, vname)); + retval = + g_strdup (gkbd_keyboard_config_merge_items + (lname, vname)); else retval = g_strdup (lname); diff --git a/capplets/keyboard/gnome-keyboard-properties-xkbot.c b/capplets/keyboard/gnome-keyboard-properties-xkbot.c index 49f9b99a2..67aa22abd 100644 --- a/capplets/keyboard/gnome-keyboard-properties-xkbot.c +++ b/capplets/keyboard/gnome-keyboard-properties-xkbot.c @@ -182,38 +182,6 @@ option_toggled_cb (GtkWidget * checkbutton, gpointer data) xkb_options_deselect (optionID); } -/* Update UI state from xkb backend */ -static void -option_update_cb (GConfClient * client, - guint cnxn_id, GConfEntry * entry, gpointer data) -{ - GtkToggleButton *toggle = GTK_TOGGLE_BUTTON (data); - GtkWidget *expander = - xkb_options_get_expander (GTK_WIDGET (toggle)); - gboolean old_state = gtk_toggle_button_get_active (toggle); - gboolean new_state = - xkb_options_is_selected (g_object_get_data - (G_OBJECT (toggle), OPTION_ID_PROP)); - int old_gstate = - GPOINTER_TO_INT (g_object_get_data - (G_OBJECT (toggle), GCONFSTATE_PROP)); - int state_diff = new_state - old_gstate; - - if (GTK_WIDGET_TYPE (toggle) == GTK_TYPE_RADIO_BUTTON && - old_state == TRUE && new_state == FALSE) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON - (g_object_get_data - (G_OBJECT (toggle), - "NoneRadio")), TRUE); - else - gtk_toggle_button_set_active (toggle, new_state); - - g_object_set_data (G_OBJECT (toggle), GCONFSTATE_PROP, - GINT_TO_POINTER (new_state)); - xkb_options_expander_selcounter_add (expander, state_diff); - xkb_options_expander_highlight (expander); -} - /* Add a check_button or radio_button to control a particular option This function makes particular use of the current... variables at the top of this file. */ @@ -274,12 +242,6 @@ xkb_options_add_option (XklConfigRegistry * config_registry, g_signal_connect (G_OBJECT (option_check), "toggled", G_CALLBACK (option_toggled_cb), NULL); - gconf_client_notify_add (xkb_gconf_client, - GKBD_KEYBOARD_CONFIG_KEY_OPTIONS, - (GConfClientNotifyFunc) - option_update_cb, option_check, NULL, - NULL); - gtk_box_pack_start_defaults (GTK_BOX (current_vbox), option_check); xkb_options_expander_selcounter_add (xkb_options_get_expander @@ -356,6 +318,12 @@ xkb_options_load_options (GladeXML * dialog) GSList *expanders_list; GtkWidget *expander; + current1st_level_id = NULL; + current_vbox = NULL; + current_none_radio = NULL; + current_multi_select = FALSE; + current_radio_group = NULL; + /* fill the list */ xkl_config_registry_foreach_option_group (config_registry, (ConfigItemProcessFunc) @@ -383,6 +351,27 @@ xkb_options_load_options (GladeXML * dialog) gtk_widget_show_all (opts_vbox); } + +/* Create popup dialog*/ +void +xkb_options_popup_dialog (GladeXML * dialog) +{ + GladeXML *chooser_dialog = + glade_xml_new (GNOMECC_GLADE_DIR + "/gnome-keyboard-properties.glade", + "xkb_options_dialog", NULL); + GtkWidget *chooser = CWID ("xkb_options_dialog"); + + gtk_window_set_transient_for (GTK_WINDOW (chooser), + GTK_WINDOW (WID + ("keyboard_dialog"))); + xkb_options_load_options (chooser_dialog); + + gtk_dialog_run (GTK_DIALOG (chooser)); + + gtk_widget_destroy (chooser); +} + /* Respond to a change in the xkb gconf settings */ static void xkb_options_update (GConfClient * client, diff --git a/capplets/keyboard/gnome-keyboard-properties-xkbpv.c b/capplets/keyboard/gnome-keyboard-properties-xkbpv.c index 698e93b13..37b50597b 100644 --- a/capplets/keyboard/gnome-keyboard-properties-xkbpv.c +++ b/capplets/keyboard/gnome-keyboard-properties-xkbpv.c @@ -74,8 +74,7 @@ xkb_layout_preview_update (GladeXML * chooser_dialog) GtkWidget *chooser = CWID ("xkb_layout_chooser"); GtkWidget *kbdraw = GTK_WIDGET (g_object_get_data (G_OBJECT (chooser), "kbdraw")); - gchar *id = - xkb_layout_chooser_get_selected_id (chooser_dialog); + gchar *id = xkb_layout_chooser_get_selected_id (chooser_dialog); if (kbdraw != NULL && id != NULL) { XklConfigRec *data; diff --git a/capplets/keyboard/gnome-keyboard-properties.c b/capplets/keyboard/gnome-keyboard-properties.c index ff41481db..7f13ffa31 100644 --- a/capplets/keyboard/gnome-keyboard-properties.c +++ b/capplets/keyboard/gnome-keyboard-properties.c @@ -40,8 +40,7 @@ #include "gnome-keyboard-properties-xkb.h" -enum -{ +enum { RESPONSE_APPLY = 1, RESPONSE_CLOSE }; @@ -53,7 +52,10 @@ create_dialog (void) GtkSizeGroup *size_group; GtkWidget *image; - dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-keyboard-properties.glade", "keyboard_dialog", NULL); + dialog = + glade_xml_new (GNOMECC_GLADE_DIR + "/gnome-keyboard-properties.glade", + "keyboard_dialog", NULL); size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_size_group_add_widget (size_group, WID ("repeat_slow_label")); @@ -70,65 +72,75 @@ create_dialog (void) size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_size_group_add_widget (size_group, WID ("repeat_delay_scale")); gtk_size_group_add_widget (size_group, WID ("repeat_speed_scale")); - gtk_size_group_add_widget (size_group, WID ("cursor_blink_time_scale")); + gtk_size_group_add_widget (size_group, + WID ("cursor_blink_time_scale")); g_object_unref (G_OBJECT (size_group)); - image = gtk_image_new_from_stock (GTK_STOCK_JUMP_TO, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (WID ("accessibility_button")), image); + image = + gtk_image_new_from_stock (GTK_STOCK_JUMP_TO, + GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (WID ("accessibility_button")), + image); - image = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON); + image = + gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON); gtk_button_set_image (GTK_BUTTON (WID ("xkb_layouts_add")), image); - image = gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (WID ("xkb_reset_to_defaults")), image); + image = + gtk_image_new_from_stock (GTK_STOCK_REFRESH, + GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (WID ("xkb_reset_to_defaults")), + image); return dialog; } static GConfValue * -blink_from_widget (GConfPropertyEditor *peditor, const GConfValue *value) +blink_from_widget (GConfPropertyEditor * peditor, const GConfValue * value) { GConfValue *new_value; new_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (new_value, 2600 - gconf_value_get_int (value)); + gconf_value_set_int (new_value, + 2600 - gconf_value_get_int (value)); return new_value; } static GConfValue * -blink_to_widget (GConfPropertyEditor *peditor, const GConfValue *value) +blink_to_widget (GConfPropertyEditor * peditor, const GConfValue * value) { GConfValue *new_value; gint current_rate; current_rate = gconf_value_get_int (value); new_value = gconf_value_new (GCONF_VALUE_INT); - gconf_value_set_int (new_value, CLAMP (2600 - current_rate, 100, 2500)); + gconf_value_set_int (new_value, + CLAMP (2600 - current_rate, 100, 2500)); return new_value; } static void -accessibility_button_clicked (GtkWidget *widget, - gpointer data) +accessibility_button_clicked (GtkWidget * widget, gpointer data) { GError *err = NULL; - if (!g_spawn_command_line_async ("gnome-accessibility-keyboard-properties", &err)) - capplet_error_dialog (GTK_WINDOW (gtk_widget_get_toplevel (widget)), - _("There was an error launching the keyboard tool: %s"), - err); + if (!g_spawn_command_line_async + ("gnome-accessibility-keyboard-properties", &err)) + capplet_error_dialog (GTK_WINDOW + (gtk_widget_get_toplevel (widget)), + _ + ("There was an error launching the keyboard tool: %s"), + err); } static void -dialog_response (GtkWidget *widget, - gint response_id, - GConfChangeSet *changeset) +dialog_response (GtkWidget * widget, + gint response_id, GConfChangeSet * changeset) { if (response_id == GTK_RESPONSE_HELP) capplet_help (GTK_WINDOW (widget), - "user-guide.xml", - "goscustperiph-2"); + "user-guide.xml", "goscustperiph-2"); else if (response_id == 0) accessibility_button_clicked (NULL, NULL); else @@ -136,8 +148,7 @@ dialog_response (GtkWidget *widget, } static void -setup_dialog (GladeXML *dialog, - GConfChangeSet *changeset) +setup_dialog (GladeXML * dialog, GConfChangeSet * changeset) { GObject *peditor; @@ -145,41 +156,57 @@ setup_dialog (GladeXML *dialog, capplet_init_stock_icons (); peditor = gconf_peditor_new_boolean - (changeset, "/desktop/gnome/peripherals/keyboard/repeat", WID ("repeat_toggle"), NULL); - gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("repeat_table")); + (changeset, "/desktop/gnome/peripherals/keyboard/repeat", + WID ("repeat_toggle"), NULL); + gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), + WID ("repeat_table")); gconf_peditor_new_numeric_range - (changeset, "/desktop/gnome/peripherals/keyboard/delay", WID ("repeat_delay_scale"), - NULL); + (changeset, "/desktop/gnome/peripherals/keyboard/delay", + WID ("repeat_delay_scale"), NULL); gconf_peditor_new_numeric_range - (changeset, "/desktop/gnome/peripherals/keyboard/rate", WID ("repeat_speed_scale"), - NULL); + (changeset, "/desktop/gnome/peripherals/keyboard/rate", + WID ("repeat_speed_scale"), NULL); peditor = gconf_peditor_new_boolean - (changeset, "/desktop/gnome/interface/cursor_blink", WID ("cursor_toggle"), NULL); - gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("cursor_hbox")); - gconf_peditor_new_numeric_range - (changeset, "/desktop/gnome/interface/cursor_blink_time", WID ("cursor_blink_time_scale"), - "conv-to-widget-cb", blink_to_widget, - "conv-from-widget-cb", blink_from_widget, - NULL); + (changeset, "/desktop/gnome/interface/cursor_blink", + WID ("cursor_toggle"), NULL); + gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), + WID ("cursor_hbox")); + gconf_peditor_new_numeric_range (changeset, + "/desktop/gnome/interface/cursor_blink_time", + WID ("cursor_blink_time_scale"), + "conv-to-widget-cb", + blink_to_widget, + "conv-from-widget-cb", + blink_from_widget, NULL); /* Ergonomics */ peditor = gconf_peditor_new_boolean - (changeset, "/desktop/gnome/typing_break/enabled", WID ("break_enabled_toggle"), NULL); - gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("break_details_table")); - gconf_peditor_new_numeric_range - (changeset, "/desktop/gnome/typing_break/type_time", WID ("break_enabled_spin"), NULL); - gconf_peditor_new_numeric_range - (changeset, "/desktop/gnome/typing_break/break_time", WID ("break_interval_spin"), NULL); - gconf_peditor_new_boolean - (changeset, "/desktop/gnome/typing_break/allow_postpone", WID ("break_postponement_toggle"), NULL); - g_signal_connect (G_OBJECT (WID ("keyboard_dialog")), "response", (GCallback) dialog_response, changeset); + (changeset, "/desktop/gnome/typing_break/enabled", + WID ("break_enabled_toggle"), NULL); + gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), + WID ("break_details_table")); + gconf_peditor_new_numeric_range (changeset, + "/desktop/gnome/typing_break/type_time", + WID ("break_enabled_spin"), NULL); + gconf_peditor_new_numeric_range (changeset, + "/desktop/gnome/typing_break/break_time", + WID ("break_interval_spin"), + NULL); + gconf_peditor_new_boolean (changeset, + "/desktop/gnome/typing_break/allow_postpone", + WID ("break_postponement_toggle"), + NULL); + g_signal_connect (G_OBJECT (WID ("keyboard_dialog")), "response", + (GCallback) dialog_response, changeset); - gtk_label_set_use_markup (GTK_LABEL (GTK_BIN (WID ("break_enabled_toggle"))->child), TRUE); + gtk_label_set_use_markup (GTK_LABEL + (GTK_BIN (WID ("break_enabled_toggle"))-> + child), TRUE); - setup_xkb_tabs(dialog,changeset); + setup_xkb_tabs (dialog, changeset); } static void @@ -191,25 +218,40 @@ get_legacy_settings (void) client = gconf_client_get_default (); - COPY_FROM_LEGACY (bool, "/gnome/desktop/peripherals/keyboard/repeat", "/Desktop/Keyboard/repeat=true"); - COPY_FROM_LEGACY (bool, "/gnome/desktop/peripherals/keyboard/click", "/Desktop/Keyboard/click=true"); - COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/rate", "/Desktop/Keyboard/rate=30"); - COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/delay", "/Desktop/Keyboard/delay=500"); - COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/volume", "/Desktop/Keyboard/clickvolume=0"); + COPY_FROM_LEGACY (bool, + "/gnome/desktop/peripherals/keyboard/repeat", + "/Desktop/Keyboard/repeat=true"); + COPY_FROM_LEGACY (bool, + "/gnome/desktop/peripherals/keyboard/click", + "/Desktop/Keyboard/click=true"); + COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/rate", + "/Desktop/Keyboard/rate=30"); + COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/delay", + "/Desktop/Keyboard/delay=500"); + COPY_FROM_LEGACY (int, + "/gnome/desktop/peripherals/keyboard/volume", + "/Desktop/Keyboard/clickvolume=0"); #if 0 - COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/bell_volume", "/Desktop/Bell/percent=50"); + COPY_FROM_LEGACY (int, + "/gnome/desktop/peripherals/keyboard/bell_volume", + "/Desktop/Bell/percent=50"); #endif - COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/bell_pitch", "/Desktop/Bell/pitch=50"); - COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/bell_duration", "/Desktop/Bell/duration=100"); + COPY_FROM_LEGACY (int, + "/gnome/desktop/peripherals/keyboard/bell_pitch", + "/Desktop/Bell/pitch=50"); + COPY_FROM_LEGACY (int, + "/gnome/desktop/peripherals/keyboard/bell_duration", + "/Desktop/Bell/duration=100"); g_object_unref (G_OBJECT (client)); } #if 0 static void -setup_accessibility (GladeXML *dialog, GConfChangeSet *changeset) +setup_accessibility (GladeXML * dialog, GConfChangeSet * changeset) { GtkWidget *notebook = WID ("notebook1"); - GtkWidget *label = gtk_label_new_with_mnemonic (_("_Accessibility")); + GtkWidget *label = + gtk_label_new_with_mnemonic (_("_Accessibility")); GtkWidget *page = setup_accessX_dialog (changeset, FALSE); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); } @@ -218,9 +260,9 @@ setup_accessibility (GladeXML *dialog, GConfChangeSet *changeset) int main (int argc, char **argv) { - GConfClient *client; + GConfClient *client; GConfChangeSet *changeset; - GladeXML *dialog; + GladeXML *dialog; GOptionContext *context; static gboolean apply_only = FALSE; @@ -228,15 +270,23 @@ main (int argc, char **argv) static gboolean switch_to_typing_break_page = FALSE; static GOptionEntry cap_options[] = { - { "apply", 0, 0, G_OPTION_ARG_NONE, &apply_only, - N_("Just apply settings and quit (compatibility only; now handled by daemon)"), NULL }, - { "init-session-settings", 0, 0, G_OPTION_ARG_NONE, &apply_only, - N_("Just apply settings and quit (compatibility only; now handled by daemon)"), NULL }, - { "get-legacy", 0, 0, G_OPTION_ARG_NONE, &get_legacy, - N_("Retrieve and store legacy settings"), NULL }, - { "typing-break", 0, 0, G_OPTION_ARG_NONE, &switch_to_typing_break_page, - N_("Start the page with the typing break settings showing"), NULL }, - { NULL } + {"apply", 0, 0, G_OPTION_ARG_NONE, &apply_only, + N_ + ("Just apply settings and quit (compatibility only; now handled by daemon)"), + NULL}, + {"init-session-settings", 0, 0, G_OPTION_ARG_NONE, + &apply_only, + N_ + ("Just apply settings and quit (compatibility only; now handled by daemon)"), + NULL}, + {"get-legacy", 0, 0, G_OPTION_ARG_NONE, &get_legacy, + N_("Retrieve and store legacy settings"), NULL}, + {"typing-break", 0, 0, G_OPTION_ARG_NONE, + &switch_to_typing_break_page, + N_ + ("Start the page with the typing break settings showing"), + NULL}, + {NULL} }; bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); @@ -244,9 +294,11 @@ main (int argc, char **argv) textdomain (GETTEXT_PACKAGE); context = g_option_context_new (_("- GNOME Keyboard Preferences")); - g_option_context_add_main_entries (context, cap_options, GETTEXT_PACKAGE); + g_option_context_add_main_entries (context, cap_options, + GETTEXT_PACKAGE); - gnome_program_init ("gnome-keyboard-properties", VERSION, LIBGNOMEUI_MODULE, argc, argv, + gnome_program_init ("gnome-keyboard-properties", VERSION, + LIBGNOMEUI_MODULE, argc, argv, GNOME_PARAM_GOPTION_CONTEXT, context, GNOME_PARAM_APP_DATADIR, GNOMECC_DATA_DIR, NULL); @@ -254,8 +306,11 @@ main (int argc, char **argv) activate_settings_daemon (); client = gconf_client_get_default (); - gconf_client_add_dir (client, "/desktop/gnome/peripherals/keyboard", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - gconf_client_add_dir (client, "/desktop/gnome/interface", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, + "/desktop/gnome/peripherals/keyboard", + GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, "/desktop/gnome/interface", + GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); g_object_unref (client); if (get_legacy) { @@ -265,7 +320,10 @@ main (int argc, char **argv) dialog = create_dialog (); setup_dialog (dialog, changeset); if (switch_to_typing_break_page) { - gtk_notebook_set_current_page (GTK_NOTEBOOK (WID ("keyboard_notebook")), 3); + gtk_notebook_set_current_page (GTK_NOTEBOOK + (WID + ("keyboard_notebook")), + 3); } capplet_set_icon (WID ("keyboard_dialog"), "gnome-dev-keyboard"); diff --git a/capplets/keyboard/gnome-keyboard-properties.glade b/capplets/keyboard/gnome-keyboard-properties.glade index bb91d0c59..f01adcad8 100644 --- a/capplets/keyboard/gnome-keyboard-properties.glade +++ b/capplets/keyboard/gnome-keyboard-properties.glade @@ -62,6 +62,7 @@ True Key presses _repeat when key is held down True + 0 True @@ -260,6 +261,7 @@ True Cursor _blinks in text boxes and fields True + 0 True @@ -389,9 +391,6 @@ - - False - @@ -401,7 +400,6 @@ tab - False False @@ -409,59 +407,61 @@ True 12 + 18 - + True - 6 + 12 - + True - 12 - - - True - 0 - Keyboard _model: - True - xkb_model - - - False - False - - - - - True - False - Microsoft Natural Keyboard - - - 1 - - - - - True - True - Choose... - True - - - False - False - 2 - - - - - + 0 + Keyboard _model: + True + xkb_model False False + + + True + False + Microsoft Natural Keyboard + + + 1 + + + + + True + True + Choose... + True + 0 + + + False + False + 2 + + + + + + + + False + False + + + + + True + 6 True @@ -504,9 +504,6 @@ - - 1 - @@ -514,36 +511,42 @@ True Separate _layout for each window True + 0 True False False - 2 + 1 - + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 - - - True - True - _Add... - True - - - False - False - - + GTK_BUTTONBOX_END True True gtk-remove True + 0 + + + False + False + 1 + + + + + True + True + _Add... + True + 0 False @@ -557,26 +560,51 @@ True Reset to De_faults True + 0 False False GTK_PACK_END - 1 + 2 False - 3 + 2 + + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_BUTTONBOX_END + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Layout _Options... + True + 0 + + + + + False + 2 + 1 - False @@ -587,43 +615,6 @@ tab 1 - False - False - - - - - True - True - 12 - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - - - True - GTK_SHADOW_NONE - - - True - - - - - - - 2 - False - - - - - True - Layout Options - - - tab - 2 - False False @@ -647,6 +638,7 @@ Lock screen after a certain duration to help prevent repetitive keyboard use injuries <b>_Lock screen to enforce typing break</b> True + 0 True @@ -780,6 +772,7 @@ Check if breaks are allowed to be postponed All_ow postponing of breaks True + 0 True @@ -806,8 +799,7 @@ - 3 - False + 2 @@ -817,8 +809,7 @@ tab - 3 - False + 2 False @@ -848,6 +839,7 @@ True _Accessibility... True + 0 1 @@ -1154,4 +1146,81 @@ + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + Keyboard Layout Options + GTK_WIN_POS_CENTER_ON_PARENT + 550 + 400 + GDK_WINDOW_TYPE_HINT_DIALOG + False + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + + + True + True + 5 + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_OUT + + + True + GTK_SHADOW_NONE + + + True + + + + + + + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_BUTTONBOX_END + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-help + True + -11 + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-close + True + 0 + + + 1 + + + + + False + GTK_PACK_END + + + + +