moving layout options to separate popup
svn path=/trunk/; revision=8248
This commit is contained in:
parent
24f4ae9df5
commit
071af09ea6
9 changed files with 422 additions and 287 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2007-11-03 Sergey Udaltsov <svu@gnome.org>
|
||||||
|
|
||||||
|
* 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 <kmaraas@gnome.org>
|
2007-10-31 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* gnome-keyboard-properties-xkblt.c:
|
* gnome-keyboard-properties-xkblt.c:
|
||||||
|
|
|
@ -170,19 +170,19 @@ setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset)
|
||||||
g_signal_connect (peditor, "value-changed", (GCallback)
|
g_signal_connect (peditor, "value-changed", (GCallback)
|
||||||
chk_separate_group_per_window_toggled, dialog);
|
chk_separate_group_per_window_toggled, dialog);
|
||||||
|
|
||||||
/* tab 2 */
|
|
||||||
/*fill_available_layouts_tree (dialog); */
|
|
||||||
xkb_layouts_prepare_selected_tree (dialog, changeset);
|
xkb_layouts_prepare_selected_tree (dialog, changeset);
|
||||||
xkb_layouts_fill_selected_tree (dialog);
|
xkb_layouts_fill_selected_tree (dialog);
|
||||||
|
|
||||||
/* tab 3 */
|
|
||||||
xkb_options_load_options (dialog);
|
|
||||||
|
|
||||||
xkb_layouts_register_buttons_handlers (dialog);
|
xkb_layouts_register_buttons_handlers (dialog);
|
||||||
g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")),
|
g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")),
|
||||||
"clicked", G_CALLBACK (reset_to_defaults),
|
"clicked", G_CALLBACK (reset_to_defaults),
|
||||||
dialog);
|
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")),
|
g_signal_connect_swapped (G_OBJECT (WID ("xkb_model_pick")),
|
||||||
"clicked", G_CALLBACK (choose_model),
|
"clicked", G_CALLBACK (choose_model),
|
||||||
dialog);
|
dialog);
|
||||||
|
|
|
@ -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_load_options (GladeXML * dialog);
|
||||||
|
|
||||||
|
extern void xkb_options_popup_dialog(GladeXML * dialog);
|
||||||
|
|
||||||
extern void clear_xkb_elements_list (GSList * list);
|
extern void clear_xkb_elements_list (GSList * list);
|
||||||
|
|
||||||
extern char *xci_desc_to_utf8 (XklConfigItem * ci);
|
extern char *xci_desc_to_utf8 (XklConfigItem * ci);
|
||||||
|
|
|
@ -349,7 +349,8 @@ xkb_layouts_prepare_selected_tree (GladeXML * dialog,
|
||||||
g_signal_connect (G_OBJECT (tree_view), "drag_data_get",
|
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_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
|
void
|
||||||
|
|
|
@ -74,8 +74,7 @@ xkb_layout_chooser_add_variant_to_available_variants (XklConfigRegistry *
|
||||||
COMBO_BOX_MODEL_COL_ID,
|
COMBO_BOX_MODEL_COL_ID,
|
||||||
config_item->name,
|
config_item->name,
|
||||||
COMBO_BOX_MODEL_COL_IS_DEFAULT,
|
COMBO_BOX_MODEL_COL_IS_DEFAULT,
|
||||||
FALSE,
|
FALSE, -1);
|
||||||
-1);
|
|
||||||
g_free (utf_variant_name);
|
g_free (utf_variant_name);
|
||||||
|
|
||||||
data->n_items++;
|
data->n_items++;
|
||||||
|
@ -86,15 +85,17 @@ xkb_layout_chooser_add_layout_to_available_layouts (XklConfigRegistry *
|
||||||
config_registry,
|
config_registry,
|
||||||
XklConfigItem *
|
XklConfigItem *
|
||||||
config_item,
|
config_item,
|
||||||
GtkListStore *list_store)
|
GtkListStore *
|
||||||
|
list_store)
|
||||||
{
|
{
|
||||||
char *utf_layout_name = xci_desc_to_utf8 (config_item);
|
char *utf_layout_name = xci_desc_to_utf8 (config_item);
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
|
||||||
gtk_list_store_insert_with_values (list_store, &iter, -1,
|
gtk_list_store_insert_with_values (list_store, &iter, -1,
|
||||||
COMBO_BOX_MODEL_COL_DESCRIPTION, utf_layout_name,
|
COMBO_BOX_MODEL_COL_DESCRIPTION,
|
||||||
COMBO_BOX_MODEL_COL_ID, config_item->name,
|
utf_layout_name,
|
||||||
-1);
|
COMBO_BOX_MODEL_COL_ID,
|
||||||
|
config_item->name, -1);
|
||||||
g_free (utf_layout_name);
|
g_free (utf_layout_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,7 +107,8 @@ xkb_layout_chooser_enable_disable_buttons (GladeXML * chooser_dialog)
|
||||||
GtkTreeIter liter, viter;
|
GtkTreeIter liter, viter;
|
||||||
gboolean enable_ok =
|
gboolean enable_ok =
|
||||||
gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbel), &liter)
|
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
|
gtk_dialog_set_response_sensitive (GTK_DIALOG
|
||||||
(CWID ("xkb_layout_chooser")),
|
(CWID ("xkb_layout_chooser")),
|
||||||
|
@ -128,9 +130,9 @@ xkb_layout_chooser_available_layout_changed (GladeXML * chooser_dialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
xkb_layout_chooser_variant_compare_func (GtkTreeModel *model,
|
xkb_layout_chooser_variant_compare_func (GtkTreeModel * model,
|
||||||
GtkTreeIter *a,
|
GtkTreeIter * a,
|
||||||
GtkTreeIter *b,
|
GtkTreeIter * b,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
gchar *desc_a = NULL, *desc_b = NULL;
|
gchar *desc_a = NULL, *desc_b = NULL;
|
||||||
|
@ -173,7 +175,8 @@ xkl_layout_chooser_separate_default_variant (GtkTreeModel * model,
|
||||||
gchar *id;
|
gchar *id;
|
||||||
|
|
||||||
/* Rows with COMBO_BOX_MODEL_COL_DESCRIPTION value NULL are separators */
|
/* 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);
|
g_free (id);
|
||||||
|
|
||||||
return id == NULL;
|
return id == NULL;
|
||||||
|
@ -201,37 +204,38 @@ xkb_layout_chooser_available_variants_fill (GladeXML * chooser_dialog)
|
||||||
AddVariantData data = { GTK_LIST_STORE (model), 0 };
|
AddVariantData data = { GTK_LIST_STORE (model), 0 };
|
||||||
|
|
||||||
/* The 'Default' row */
|
/* 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,
|
COMBO_BOX_MODEL_COL_DESCRIPTION,
|
||||||
_("Default"),
|
_("Default"),
|
||||||
COMBO_BOX_MODEL_COL_ID,
|
COMBO_BOX_MODEL_COL_ID,
|
||||||
DEFAULT_VARIANT_ID,
|
DEFAULT_VARIANT_ID,
|
||||||
COMBO_BOX_MODEL_COL_IS_DEFAULT, TRUE,
|
COMBO_BOX_MODEL_COL_IS_DEFAULT,
|
||||||
-1);
|
TRUE, -1);
|
||||||
set_default = TRUE;
|
set_default = TRUE;
|
||||||
|
|
||||||
/* Now the variants of the selected lang */
|
/* Now the variants of the selected lang */
|
||||||
gtk_tree_model_get (lm, &liter,
|
gtk_tree_model_get (lm, &liter,
|
||||||
COMBO_BOX_MODEL_COL_ID, &value,
|
COMBO_BOX_MODEL_COL_ID, &value, -1);
|
||||||
-1);
|
|
||||||
g_assert (value != NULL);
|
g_assert (value != NULL);
|
||||||
|
|
||||||
xkl_config_registry_foreach_layout_variant
|
xkl_config_registry_foreach_layout_variant
|
||||||
(config_registry, value,
|
(config_registry, value, (ConfigItemProcessFunc)
|
||||||
(ConfigItemProcessFunc)
|
|
||||||
xkb_layout_chooser_add_variant_to_available_variants,
|
xkb_layout_chooser_add_variant_to_available_variants,
|
||||||
&data);
|
&data);
|
||||||
g_free (value);
|
g_free (value);
|
||||||
|
|
||||||
/* Add a separator row, but only if we have any non-default items */
|
/* Add a separator row, but only if we have any non-default items */
|
||||||
if (data.n_items > 0)
|
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,
|
COMBO_BOX_MODEL_COL_DESCRIPTION,
|
||||||
NULL,
|
NULL,
|
||||||
COMBO_BOX_MODEL_COL_ID,
|
COMBO_BOX_MODEL_COL_ID,
|
||||||
NULL,
|
NULL,
|
||||||
COMBO_BOX_MODEL_COL_IS_DEFAULT, FALSE,
|
COMBO_BOX_MODEL_COL_IS_DEFAULT,
|
||||||
-1);
|
FALSE, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Turn on sorting after filling the store, since that's faster */
|
/* Turn on sorting after filling the store, since that's faster */
|
||||||
|
@ -248,7 +252,8 @@ xkb_layout_chooser_available_variants_fill (GladeXML * chooser_dialog)
|
||||||
|
|
||||||
/* Select the default variant */
|
/* Select the default variant */
|
||||||
if (set_default) {
|
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,14 +264,16 @@ xkb_layout_chooser_available_layouts_fill (GladeXML * chooser_dialog)
|
||||||
GtkWidget *cbev = CWID ("xkb_variants_available");
|
GtkWidget *cbev = CWID ("xkb_variants_available");
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeModel *model =
|
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);
|
gtk_combo_box_set_model (GTK_COMBO_BOX (cbe), model);
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cbe), renderer, TRUE);
|
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cbe), renderer, TRUE);
|
||||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cbe), renderer,
|
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cbe), renderer,
|
||||||
"text", COMBO_BOX_MODEL_COL_DESCRIPTION,
|
"text",
|
||||||
|
COMBO_BOX_MODEL_COL_DESCRIPTION,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
xkl_config_registry_foreach_layout (config_registry,
|
xkl_config_registry_foreach_layout (config_registry,
|
||||||
|
@ -286,9 +293,11 @@ xkb_layout_chooser_available_layouts_fill (GladeXML * chooser_dialog)
|
||||||
|
|
||||||
/* Setup the variants combo */
|
/* Setup the variants combo */
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
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,
|
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cbev), renderer,
|
||||||
"text", COMBO_BOX_MODEL_COL_DESCRIPTION,
|
"text",
|
||||||
|
COMBO_BOX_MODEL_COL_DESCRIPTION,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
g_signal_connect_swapped (G_OBJECT (cbev), "changed",
|
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),
|
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (cbev),
|
||||||
(GtkTreeViewRowSeparatorFunc)
|
(GtkTreeViewRowSeparatorFunc)
|
||||||
xkl_layout_chooser_separate_default_variant,
|
xkl_layout_chooser_separate_default_variant,
|
||||||
chooser_dialog,
|
chooser_dialog, NULL);
|
||||||
NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -443,20 +451,21 @@ xkb_layout_chooser_get_selected_id (GladeXML * chooser_dialog)
|
||||||
gchar *lname, *vname;
|
gchar *lname, *vname;
|
||||||
gchar *retval;
|
gchar *retval;
|
||||||
|
|
||||||
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (cbel), &liter) ||
|
if (!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))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
gtk_tree_model_get (lm, &liter,
|
gtk_tree_model_get (lm, &liter,
|
||||||
COMBO_BOX_MODEL_COL_ID, &lname,
|
COMBO_BOX_MODEL_COL_ID, &lname, -1);
|
||||||
-1);
|
|
||||||
|
|
||||||
gtk_tree_model_get (vm, &viter,
|
gtk_tree_model_get (vm, &viter,
|
||||||
COMBO_BOX_MODEL_COL_ID, &vname,
|
COMBO_BOX_MODEL_COL_ID, &vname, -1);
|
||||||
-1);
|
|
||||||
|
|
||||||
if (strcmp (vname, DEFAULT_VARIANT_ID))
|
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
|
else
|
||||||
retval = g_strdup (lname);
|
retval = g_strdup (lname);
|
||||||
|
|
||||||
|
|
|
@ -182,38 +182,6 @@ option_toggled_cb (GtkWidget * checkbutton, gpointer data)
|
||||||
xkb_options_deselect (optionID);
|
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
|
/* Add a check_button or radio_button to control a particular option
|
||||||
This function makes particular use of the current... variables at
|
This function makes particular use of the current... variables at
|
||||||
the top of this file. */
|
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_signal_connect (G_OBJECT (option_check), "toggled",
|
||||||
G_CALLBACK (option_toggled_cb), NULL);
|
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);
|
gtk_box_pack_start_defaults (GTK_BOX (current_vbox), option_check);
|
||||||
|
|
||||||
xkb_options_expander_selcounter_add (xkb_options_get_expander
|
xkb_options_expander_selcounter_add (xkb_options_get_expander
|
||||||
|
@ -356,6 +318,12 @@ xkb_options_load_options (GladeXML * dialog)
|
||||||
GSList *expanders_list;
|
GSList *expanders_list;
|
||||||
GtkWidget *expander;
|
GtkWidget *expander;
|
||||||
|
|
||||||
|
current1st_level_id = NULL;
|
||||||
|
current_vbox = NULL;
|
||||||
|
current_none_radio = NULL;
|
||||||
|
current_multi_select = FALSE;
|
||||||
|
current_radio_group = NULL;
|
||||||
|
|
||||||
/* fill the list */
|
/* fill the list */
|
||||||
xkl_config_registry_foreach_option_group (config_registry,
|
xkl_config_registry_foreach_option_group (config_registry,
|
||||||
(ConfigItemProcessFunc)
|
(ConfigItemProcessFunc)
|
||||||
|
@ -383,6 +351,27 @@ xkb_options_load_options (GladeXML * dialog)
|
||||||
gtk_widget_show_all (opts_vbox);
|
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 */
|
/* Respond to a change in the xkb gconf settings */
|
||||||
static void
|
static void
|
||||||
xkb_options_update (GConfClient * client,
|
xkb_options_update (GConfClient * client,
|
||||||
|
|
|
@ -74,8 +74,7 @@ xkb_layout_preview_update (GladeXML * chooser_dialog)
|
||||||
GtkWidget *chooser = CWID ("xkb_layout_chooser");
|
GtkWidget *chooser = CWID ("xkb_layout_chooser");
|
||||||
GtkWidget *kbdraw =
|
GtkWidget *kbdraw =
|
||||||
GTK_WIDGET (g_object_get_data (G_OBJECT (chooser), "kbdraw"));
|
GTK_WIDGET (g_object_get_data (G_OBJECT (chooser), "kbdraw"));
|
||||||
gchar *id =
|
gchar *id = xkb_layout_chooser_get_selected_id (chooser_dialog);
|
||||||
xkb_layout_chooser_get_selected_id (chooser_dialog);
|
|
||||||
|
|
||||||
if (kbdraw != NULL && id != NULL) {
|
if (kbdraw != NULL && id != NULL) {
|
||||||
XklConfigRec *data;
|
XklConfigRec *data;
|
||||||
|
|
|
@ -40,8 +40,7 @@
|
||||||
|
|
||||||
#include "gnome-keyboard-properties-xkb.h"
|
#include "gnome-keyboard-properties-xkb.h"
|
||||||
|
|
||||||
enum
|
enum {
|
||||||
{
|
|
||||||
RESPONSE_APPLY = 1,
|
RESPONSE_APPLY = 1,
|
||||||
RESPONSE_CLOSE
|
RESPONSE_CLOSE
|
||||||
};
|
};
|
||||||
|
@ -53,7 +52,10 @@ create_dialog (void)
|
||||||
GtkSizeGroup *size_group;
|
GtkSizeGroup *size_group;
|
||||||
GtkWidget *image;
|
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);
|
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
|
||||||
gtk_size_group_add_widget (size_group, WID ("repeat_slow_label"));
|
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);
|
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_delay_scale"));
|
||||||
gtk_size_group_add_widget (size_group, WID ("repeat_speed_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));
|
g_object_unref (G_OBJECT (size_group));
|
||||||
|
|
||||||
image = gtk_image_new_from_stock (GTK_STOCK_JUMP_TO, GTK_ICON_SIZE_BUTTON);
|
image =
|
||||||
gtk_button_set_image (GTK_BUTTON (WID ("accessibility_button")), 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);
|
gtk_button_set_image (GTK_BUTTON (WID ("xkb_layouts_add")), image);
|
||||||
|
|
||||||
image = gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_BUTTON);
|
image =
|
||||||
gtk_button_set_image (GTK_BUTTON (WID ("xkb_reset_to_defaults")), 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;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GConfValue *
|
static GConfValue *
|
||||||
blink_from_widget (GConfPropertyEditor *peditor, const GConfValue *value)
|
blink_from_widget (GConfPropertyEditor * peditor, const GConfValue * value)
|
||||||
{
|
{
|
||||||
GConfValue *new_value;
|
GConfValue *new_value;
|
||||||
|
|
||||||
new_value = gconf_value_new (GCONF_VALUE_INT);
|
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;
|
return new_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GConfValue *
|
static GConfValue *
|
||||||
blink_to_widget (GConfPropertyEditor *peditor, const GConfValue *value)
|
blink_to_widget (GConfPropertyEditor * peditor, const GConfValue * value)
|
||||||
{
|
{
|
||||||
GConfValue *new_value;
|
GConfValue *new_value;
|
||||||
gint current_rate;
|
gint current_rate;
|
||||||
|
|
||||||
current_rate = gconf_value_get_int (value);
|
current_rate = gconf_value_get_int (value);
|
||||||
new_value = gconf_value_new (GCONF_VALUE_INT);
|
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;
|
return new_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
accessibility_button_clicked (GtkWidget *widget,
|
accessibility_button_clicked (GtkWidget * widget, gpointer data)
|
||||||
gpointer data)
|
|
||||||
{
|
{
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
if (!g_spawn_command_line_async ("gnome-accessibility-keyboard-properties", &err))
|
if (!g_spawn_command_line_async
|
||||||
capplet_error_dialog (GTK_WINDOW (gtk_widget_get_toplevel (widget)),
|
("gnome-accessibility-keyboard-properties", &err))
|
||||||
_("There was an error launching the keyboard tool: %s"),
|
capplet_error_dialog (GTK_WINDOW
|
||||||
|
(gtk_widget_get_toplevel (widget)),
|
||||||
|
_
|
||||||
|
("There was an error launching the keyboard tool: %s"),
|
||||||
err);
|
err);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_response (GtkWidget *widget,
|
dialog_response (GtkWidget * widget,
|
||||||
gint response_id,
|
gint response_id, GConfChangeSet * changeset)
|
||||||
GConfChangeSet *changeset)
|
|
||||||
{
|
{
|
||||||
if (response_id == GTK_RESPONSE_HELP)
|
if (response_id == GTK_RESPONSE_HELP)
|
||||||
capplet_help (GTK_WINDOW (widget),
|
capplet_help (GTK_WINDOW (widget),
|
||||||
"user-guide.xml",
|
"user-guide.xml", "goscustperiph-2");
|
||||||
"goscustperiph-2");
|
|
||||||
else if (response_id == 0)
|
else if (response_id == 0)
|
||||||
accessibility_button_clicked (NULL, NULL);
|
accessibility_button_clicked (NULL, NULL);
|
||||||
else
|
else
|
||||||
|
@ -136,8 +148,7 @@ dialog_response (GtkWidget *widget,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setup_dialog (GladeXML *dialog,
|
setup_dialog (GladeXML * dialog, GConfChangeSet * changeset)
|
||||||
GConfChangeSet *changeset)
|
|
||||||
{
|
{
|
||||||
GObject *peditor;
|
GObject *peditor;
|
||||||
|
|
||||||
|
@ -145,41 +156,57 @@ setup_dialog (GladeXML *dialog,
|
||||||
capplet_init_stock_icons ();
|
capplet_init_stock_icons ();
|
||||||
|
|
||||||
peditor = gconf_peditor_new_boolean
|
peditor = gconf_peditor_new_boolean
|
||||||
(changeset, "/desktop/gnome/peripherals/keyboard/repeat", WID ("repeat_toggle"), NULL);
|
(changeset, "/desktop/gnome/peripherals/keyboard/repeat",
|
||||||
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("repeat_table"));
|
WID ("repeat_toggle"), NULL);
|
||||||
|
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor),
|
||||||
|
WID ("repeat_table"));
|
||||||
|
|
||||||
gconf_peditor_new_numeric_range
|
gconf_peditor_new_numeric_range
|
||||||
(changeset, "/desktop/gnome/peripherals/keyboard/delay", WID ("repeat_delay_scale"),
|
(changeset, "/desktop/gnome/peripherals/keyboard/delay",
|
||||||
NULL);
|
WID ("repeat_delay_scale"), NULL);
|
||||||
|
|
||||||
gconf_peditor_new_numeric_range
|
gconf_peditor_new_numeric_range
|
||||||
(changeset, "/desktop/gnome/peripherals/keyboard/rate", WID ("repeat_speed_scale"),
|
(changeset, "/desktop/gnome/peripherals/keyboard/rate",
|
||||||
NULL);
|
WID ("repeat_speed_scale"), NULL);
|
||||||
|
|
||||||
peditor = gconf_peditor_new_boolean
|
peditor = gconf_peditor_new_boolean
|
||||||
(changeset, "/desktop/gnome/interface/cursor_blink", WID ("cursor_toggle"), NULL);
|
(changeset, "/desktop/gnome/interface/cursor_blink",
|
||||||
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("cursor_hbox"));
|
WID ("cursor_toggle"), NULL);
|
||||||
gconf_peditor_new_numeric_range
|
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor),
|
||||||
(changeset, "/desktop/gnome/interface/cursor_blink_time", WID ("cursor_blink_time_scale"),
|
WID ("cursor_hbox"));
|
||||||
"conv-to-widget-cb", blink_to_widget,
|
gconf_peditor_new_numeric_range (changeset,
|
||||||
"conv-from-widget-cb", blink_from_widget,
|
"/desktop/gnome/interface/cursor_blink_time",
|
||||||
NULL);
|
WID ("cursor_blink_time_scale"),
|
||||||
|
"conv-to-widget-cb",
|
||||||
|
blink_to_widget,
|
||||||
|
"conv-from-widget-cb",
|
||||||
|
blink_from_widget, NULL);
|
||||||
|
|
||||||
/* Ergonomics */
|
/* Ergonomics */
|
||||||
peditor = gconf_peditor_new_boolean
|
peditor = gconf_peditor_new_boolean
|
||||||
(changeset, "/desktop/gnome/typing_break/enabled", WID ("break_enabled_toggle"), NULL);
|
(changeset, "/desktop/gnome/typing_break/enabled",
|
||||||
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("break_details_table"));
|
WID ("break_enabled_toggle"), NULL);
|
||||||
gconf_peditor_new_numeric_range
|
gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor),
|
||||||
(changeset, "/desktop/gnome/typing_break/type_time", WID ("break_enabled_spin"), NULL);
|
WID ("break_details_table"));
|
||||||
gconf_peditor_new_numeric_range
|
gconf_peditor_new_numeric_range (changeset,
|
||||||
(changeset, "/desktop/gnome/typing_break/break_time", WID ("break_interval_spin"), NULL);
|
"/desktop/gnome/typing_break/type_time",
|
||||||
gconf_peditor_new_boolean
|
WID ("break_enabled_spin"), NULL);
|
||||||
(changeset, "/desktop/gnome/typing_break/allow_postpone", WID ("break_postponement_toggle"), NULL);
|
gconf_peditor_new_numeric_range (changeset,
|
||||||
g_signal_connect (G_OBJECT (WID ("keyboard_dialog")), "response", (GCallback) dialog_response, 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
|
static void
|
||||||
|
@ -191,25 +218,40 @@ get_legacy_settings (void)
|
||||||
|
|
||||||
client = gconf_client_get_default ();
|
client = gconf_client_get_default ();
|
||||||
|
|
||||||
COPY_FROM_LEGACY (bool, "/gnome/desktop/peripherals/keyboard/repeat", "/Desktop/Keyboard/repeat=true");
|
COPY_FROM_LEGACY (bool,
|
||||||
COPY_FROM_LEGACY (bool, "/gnome/desktop/peripherals/keyboard/click", "/Desktop/Keyboard/click=true");
|
"/gnome/desktop/peripherals/keyboard/repeat",
|
||||||
COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/rate", "/Desktop/Keyboard/rate=30");
|
"/Desktop/Keyboard/repeat=true");
|
||||||
COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/delay", "/Desktop/Keyboard/delay=500");
|
COPY_FROM_LEGACY (bool,
|
||||||
COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/volume", "/Desktop/Keyboard/clickvolume=0");
|
"/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
|
#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
|
#endif
|
||||||
COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/bell_pitch", "/Desktop/Bell/pitch=50");
|
COPY_FROM_LEGACY (int,
|
||||||
COPY_FROM_LEGACY (int, "/gnome/desktop/peripherals/keyboard/bell_duration", "/Desktop/Bell/duration=100");
|
"/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));
|
g_object_unref (G_OBJECT (client));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void
|
static void
|
||||||
setup_accessibility (GladeXML *dialog, GConfChangeSet *changeset)
|
setup_accessibility (GladeXML * dialog, GConfChangeSet * changeset)
|
||||||
{
|
{
|
||||||
GtkWidget *notebook = WID ("notebook1");
|
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);
|
GtkWidget *page = setup_accessX_dialog (changeset, FALSE);
|
||||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
|
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
|
||||||
}
|
}
|
||||||
|
@ -228,15 +270,23 @@ main (int argc, char **argv)
|
||||||
static gboolean switch_to_typing_break_page = FALSE;
|
static gboolean switch_to_typing_break_page = FALSE;
|
||||||
|
|
||||||
static GOptionEntry cap_options[] = {
|
static GOptionEntry cap_options[] = {
|
||||||
{ "apply", 0, 0, G_OPTION_ARG_NONE, &apply_only,
|
{"apply", 0, 0, G_OPTION_ARG_NONE, &apply_only,
|
||||||
N_("Just apply settings and quit (compatibility only; now handled by daemon)"), NULL },
|
N_
|
||||||
{ "init-session-settings", 0, 0, G_OPTION_ARG_NONE, &apply_only,
|
("Just apply settings and quit (compatibility only; now handled by daemon)"),
|
||||||
N_("Just apply settings and quit (compatibility only; now handled by daemon)"), NULL },
|
NULL},
|
||||||
{ "get-legacy", 0, 0, G_OPTION_ARG_NONE, &get_legacy,
|
{"init-session-settings", 0, 0, G_OPTION_ARG_NONE,
|
||||||
N_("Retrieve and store legacy settings"), NULL },
|
&apply_only,
|
||||||
{ "typing-break", 0, 0, G_OPTION_ARG_NONE, &switch_to_typing_break_page,
|
N_
|
||||||
N_("Start the page with the typing break settings showing"), NULL },
|
("Just apply settings and quit (compatibility only; now handled by daemon)"),
|
||||||
{ NULL }
|
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);
|
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
|
||||||
|
@ -244,9 +294,11 @@ main (int argc, char **argv)
|
||||||
textdomain (GETTEXT_PACKAGE);
|
textdomain (GETTEXT_PACKAGE);
|
||||||
|
|
||||||
context = g_option_context_new (_("- GNOME Keyboard Preferences"));
|
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_GOPTION_CONTEXT, context,
|
||||||
GNOME_PARAM_APP_DATADIR, GNOMECC_DATA_DIR,
|
GNOME_PARAM_APP_DATADIR, GNOMECC_DATA_DIR,
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -254,8 +306,11 @@ main (int argc, char **argv)
|
||||||
activate_settings_daemon ();
|
activate_settings_daemon ();
|
||||||
|
|
||||||
client = gconf_client_get_default ();
|
client = gconf_client_get_default ();
|
||||||
gconf_client_add_dir (client, "/desktop/gnome/peripherals/keyboard", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
|
gconf_client_add_dir (client,
|
||||||
gconf_client_add_dir (client, "/desktop/gnome/interface", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
|
"/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);
|
g_object_unref (client);
|
||||||
|
|
||||||
if (get_legacy) {
|
if (get_legacy) {
|
||||||
|
@ -265,7 +320,10 @@ main (int argc, char **argv)
|
||||||
dialog = create_dialog ();
|
dialog = create_dialog ();
|
||||||
setup_dialog (dialog, changeset);
|
setup_dialog (dialog, changeset);
|
||||||
if (switch_to_typing_break_page) {
|
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"),
|
capplet_set_icon (WID ("keyboard_dialog"),
|
||||||
"gnome-dev-keyboard");
|
"gnome-dev-keyboard");
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label" translatable="yes">Key presses _repeat when key is held down</property>
|
<property name="label" translatable="yes">Key presses _repeat when key is held down</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -260,6 +261,7 @@
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label" translatable="yes">Cursor _blinks in text boxes and fields</property>
|
<property name="label" translatable="yes">Cursor _blinks in text boxes and fields</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -389,9 +391,6 @@
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkLabel" id="label1">
|
<widget class="GtkLabel" id="label1">
|
||||||
|
@ -401,7 +400,6 @@
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="type">tab</property>
|
<property name="type">tab</property>
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
<property name="tab_fill">False</property>
|
<property name="tab_fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
@ -409,10 +407,7 @@
|
||||||
<widget class="GtkVBox" id="vbox33">
|
<widget class="GtkVBox" id="vbox33">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="border_width">12</property>
|
<property name="border_width">12</property>
|
||||||
<child>
|
<property name="spacing">18</property>
|
||||||
<widget class="GtkVBox" id="vbox34">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="spacing">6</property>
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="xkb_models_box">
|
<widget class="GtkHBox" id="xkb_models_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
@ -446,6 +441,7 @@
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label" translatable="yes">Choose...</property>
|
<property name="label" translatable="yes">Choose...</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -462,6 +458,10 @@
|
||||||
<property name="fill">False</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="vbox34">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkVBox" id="vbox41">
|
<widget class="GtkVBox" id="vbox41">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
@ -504,9 +504,6 @@
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkCheckButton" id="chk_separate_group_per_window">
|
<widget class="GtkCheckButton" id="chk_separate_group_per_window">
|
||||||
|
@ -514,36 +511,42 @@
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label" translatable="yes">Separate _layout for each window</property>
|
<property name="label" translatable="yes">Separate _layout for each window</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">False</property>
|
<property name="fill">False</property>
|
||||||
<property name="position">2</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox30">
|
<widget class="GtkHButtonBox" id="hbuttonbox2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
<property name="spacing">6</property>
|
<property name="spacing">6</property>
|
||||||
<child>
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
<widget class="GtkButton" id="xkb_layouts_add">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="label" translatable="yes">_Add...</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="xkb_layouts_remove">
|
<widget class="GtkButton" id="xkb_layouts_remove">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label">gtk-remove</property>
|
<property name="label">gtk-remove</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="xkb_layouts_add">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">_Add...</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -557,26 +560,51 @@
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label" translatable="yes">Reset to De_faults</property>
|
<property name="label" translatable="yes">Reset to De_faults</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">False</property>
|
<property name="fill">False</property>
|
||||||
<property name="pack_type">GTK_PACK_END</property>
|
<property name="pack_type">GTK_PACK_END</property>
|
||||||
<property name="position">1</property>
|
<property name="position">2</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="position">3</property>
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHButtonBox" id="hbuttonbox3">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="xkb_layout_options">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Layout _Options...</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="position">2</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
<packing>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -587,43 +615,6 @@
|
||||||
<packing>
|
<packing>
|
||||||
<property name="type">tab</property>
|
<property name="type">tab</property>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
<property name="tab_fill">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkScrolledWindow" id="scrolledwindow7">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="border_width">12</property>
|
|
||||||
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
|
||||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkViewport" id="viewport1">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkVBox" id="options_vbox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="position">2</property>
|
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkLabel" id="label64">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">Layout Options</property>
|
|
||||||
</widget>
|
|
||||||
<packing>
|
|
||||||
<property name="type">tab</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
<property name="tab_fill">False</property>
|
<property name="tab_fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
@ -647,6 +638,7 @@
|
||||||
<property name="tooltip" translatable="yes">Lock screen after a certain duration to help prevent repetitive keyboard use injuries</property>
|
<property name="tooltip" translatable="yes">Lock screen after a certain duration to help prevent repetitive keyboard use injuries</property>
|
||||||
<property name="label" translatable="yes"><b>_Lock screen to enforce typing break</b></property>
|
<property name="label" translatable="yes"><b>_Lock screen to enforce typing break</b></property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -780,6 +772,7 @@
|
||||||
<property name="tooltip" translatable="yes">Check if breaks are allowed to be postponed</property>
|
<property name="tooltip" translatable="yes">Check if breaks are allowed to be postponed</property>
|
||||||
<property name="label" translatable="yes">All_ow postponing of breaks</property>
|
<property name="label" translatable="yes">All_ow postponing of breaks</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<property name="draw_indicator">True</property>
|
<property name="draw_indicator">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -806,8 +799,7 @@
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="position">3</property>
|
<property name="position">2</property>
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
@ -817,8 +809,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="type">tab</property>
|
<property name="type">tab</property>
|
||||||
<property name="position">3</property>
|
<property name="position">2</property>
|
||||||
<property name="tab_expand">False</property>
|
|
||||||
<property name="tab_fill">False</property>
|
<property name="tab_fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
@ -848,6 +839,7 @@
|
||||||
<property name="can_default">True</property>
|
<property name="can_default">True</property>
|
||||||
<property name="label" translatable="yes">_Accessibility...</property>
|
<property name="label" translatable="yes">_Accessibility...</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
|
@ -1154,4 +1146,81 @@
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="GtkDialog" id="xkb_options_dialog">
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="border_width">5</property>
|
||||||
|
<property name="title" translatable="yes">Keyboard Layout Options</property>
|
||||||
|
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
|
||||||
|
<property name="default_width">550</property>
|
||||||
|
<property name="default_height">400</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="has_separator">False</property>
|
||||||
|
<child internal-child="vbox">
|
||||||
|
<widget class="GtkVBox" id="dialog-vbox4">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="spacing">2</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkScrolledWindow" id="scrolledwindow7">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="border_width">5</property>
|
||||||
|
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||||
|
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||||
|
<property name="shadow_type">GTK_SHADOW_OUT</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkViewport" id="viewport1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="options_vbox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child internal-child="action_area">
|
||||||
|
<widget class="GtkHButtonBox" id="dialog-action_area4">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="button3">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">gtk-help</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
<property name="response_id">-11</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="button2">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">gtk-close</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="pack_type">GTK_PACK_END</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
</glade-interface>
|
</glade-interface>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue