enable/disable default group depending on the WPG setting

This commit is contained in:
Sergey V. Udaltsov 2004-12-21 02:25:32 +00:00
parent 9a171517c1
commit 7ecb79383c
3 changed files with 43 additions and 17 deletions

View file

@ -127,6 +127,15 @@ update_model (GConfClient * client,
enable_disable_restoring (dialog);
}
static void
chk_separate_group_per_window_toggled (GConfPropertyEditor *peditor,
const gchar *key,
const GConfValue *value,
GladeXML* dialog)
{
xkb_layouts_enable_disable_default (dialog, value && gconf_value_get_bool (value));
}
void
setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset)
{
@ -147,7 +156,7 @@ setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset)
(changeset, (gchar *) GSWITCHIT_CONFIG_KEY_GROUP_PER_WINDOW,
WID ("chk_separate_group_per_window"), NULL);
/*g_signal_connect (peditor, "value-changed", (GCallback) left_handed_toggle_cb, WID ("orientation_image"));*/
g_signal_connect (peditor, "value-changed", (GCallback)chk_separate_group_per_window_toggled , dialog);
/* tab 2 */
/*fill_available_layouts_tree (dialog);*/
@ -182,6 +191,10 @@ setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset)
GSwitchItKbdConfigLoadInitial (&initialConfig);
enable_disable_restoring (dialog);
xkb_layouts_enable_disable_default (dialog,
gconf_client_get_bool (xkbGConfClient,
GSWITCHIT_CONFIG_KEY_GROUP_PER_WINDOW,
NULL));
}
void

View file

@ -69,6 +69,9 @@ extern void choose_model (GladeXML * dialog);
extern void xkb_layout_choose (GladeXML * dialog);
extern void xkb_layouts_enable_disable_default (GladeXML * dialog,
gboolean enable);
#define xkb_layouts_get_selected_list() \
gconf_client_get_list (gconf_client_get_default (), \
GSWITCHIT_KBD_CONFIG_KEY_LAYOUTS, \

View file

@ -58,6 +58,9 @@ static int idx2Select = -1;
static int maxSelectedLayouts = -1;
static int defaultGroup = -1;
static GtkCellRenderer *textRenderer;
static GtkCellRenderer *toggleRenderer;
void
clear_xkb_elements_list (GSList * list)
{
@ -232,29 +235,36 @@ xkb_layout_chooser_enable_disable_buttons (GladeXML * chooserDialog)
GTK_RESPONSE_OK, nSelectedAvailableLayouts > 0);
}
void xkb_layouts_enable_disable_default (GladeXML * dialog,
gboolean enable)
{
GValue val = {0};
g_value_init (&val, G_TYPE_BOOLEAN);
g_value_set_boolean (&val, enable);
g_object_set_property (G_OBJECT (toggleRenderer), "activatable", &val);
}
void
xkb_layouts_prepare_selected_tree (GladeXML * dialog, GConfChangeSet * changeset)
{
GtkListStore *listStore =
gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING);
GtkWidget *treeView = WID ("xkb_layouts_selected");
GtkCellRenderer *textRenderer =
GTK_CELL_RENDERER (gtk_cell_renderer_text_new ());
GtkCellRenderer *toggleRenderer =
GTK_CELL_RENDERER (gtk_cell_renderer_toggle_new ());
GtkTreeViewColumn * descColumn, * defColumn;
GtkTreeSelection *selection;
GtkTreeViewColumn *descColumn = gtk_tree_view_column_new_with_attributes (_("Layout"),
textRenderer,
"text",
SLT_COL_DESCRIPTION,
NULL);
GtkTreeViewColumn *defColumn = gtk_tree_view_column_new_with_attributes (_("Default"),
toggleRenderer,
"active",
SLT_COL_DEFAULT,
NULL);
GtkTreeSelection *selection =
gtk_tree_view_get_selection (GTK_TREE_VIEW (treeView));
textRenderer = GTK_CELL_RENDERER (gtk_cell_renderer_text_new ());
toggleRenderer = GTK_CELL_RENDERER (gtk_cell_renderer_toggle_new ());
descColumn = gtk_tree_view_column_new_with_attributes (_("Layout"),
textRenderer,
"text", SLT_COL_DESCRIPTION,
NULL);
defColumn = gtk_tree_view_column_new_with_attributes (_("Default"),
toggleRenderer,
"active", SLT_COL_DEFAULT,
NULL);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeView));
gtk_tree_view_set_model (GTK_TREE_VIEW (treeView),
GTK_TREE_MODEL (listStore));