a bit more cleanup
svn path=/trunk/; revision=7420
This commit is contained in:
parent
a3cac171e0
commit
d173601ca5
4 changed files with 46 additions and 31 deletions
|
@ -29,11 +29,6 @@
|
|||
#include "libgnomekbd/gkbd-keyboard-config.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
#define SEL_LAYOUT_TREE_COL_DESCRIPTION 0
|
||||
#define SEL_LAYOUT_TREE_COL_DEFAULT 1
|
||||
#define SEL_LAYOUT_TREE_COL_ID 2
|
||||
#define AVAIL_LAYOUT_TREE_COL_DESCRIPTION 0
|
||||
#define AVAIL_LAYOUT_TREE_COL_ID 1
|
||||
#define CWID(s) glade_xml_get_widget (chooser_dialog, s)
|
||||
extern XklEngine *engine;
|
||||
extern XklConfigRegistry *config_registry;
|
||||
|
@ -100,5 +95,8 @@ extern GtkWidget *xkb_layout_preview_create_widget (GladeXML *
|
|||
|
||||
extern void xkb_layout_preview_update (GladeXML * chooser_dialog);
|
||||
|
||||
extern gchar *xkb_layout_chooser_get_selected_id (GladeXML *
|
||||
chooser_dialog);
|
||||
|
||||
G_END_DECLS
|
||||
#endif /* __GNOME_KEYBOARD_PROPERTY_XKB_H */
|
||||
|
|
|
@ -35,6 +35,10 @@
|
|||
|
||||
#include "gnome-keyboard-properties-xkb.h"
|
||||
|
||||
#define SEL_LAYOUT_TREE_COL_DESCRIPTION 0
|
||||
#define SEL_LAYOUT_TREE_COL_DEFAULT 1
|
||||
#define SEL_LAYOUT_TREE_COL_ID 2
|
||||
|
||||
static int idx2select = -1;
|
||||
static int max_selected_layouts = -1;
|
||||
static int default_group = -1;
|
||||
|
@ -113,7 +117,7 @@ def_group_in_gconf_changed (GConfClient * client,
|
|||
GConfEntry * entry, GladeXML * dialog)
|
||||
{
|
||||
GConfValue *value = gconf_entry_get_value (entry);
|
||||
|
||||
|
||||
if (!value)
|
||||
return;
|
||||
|
||||
|
@ -219,8 +223,8 @@ xkb_layouts_prepare_selected_tree (GladeXML * dialog,
|
|||
text_renderer = GTK_CELL_RENDERER (gtk_cell_renderer_text_new ());
|
||||
toggle_renderer =
|
||||
GTK_CELL_RENDERER (gtk_cell_renderer_toggle_new ());
|
||||
gtk_cell_renderer_toggle_set_radio (
|
||||
GTK_CELL_RENDERER_TOGGLE (toggle_renderer), TRUE);
|
||||
gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE
|
||||
(toggle_renderer), TRUE);
|
||||
|
||||
desc_column =
|
||||
gtk_tree_view_column_new_with_attributes (_("Layout"),
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
#define GROUP_SWITCHERS_GROUP "grp"
|
||||
#define DEFAULT_GROUP_SWITCH "grp:alts_toggle"
|
||||
|
||||
#define AVAIL_LAYOUT_TREE_COL_DESCRIPTION 0
|
||||
#define AVAIL_LAYOUT_TREE_COL_ID 1
|
||||
|
||||
static GtkTreeIter current1st_level_iter;
|
||||
static const char *current1st_level_id;
|
||||
|
||||
|
@ -93,18 +96,18 @@ add_layout_to_available_layouts_tree (XklConfigRegistry * config_registry,
|
|||
static void
|
||||
xkb_layout_chooser_enable_disable_buttons (GladeXML * chooser_dialog)
|
||||
{
|
||||
GtkWidget *available_layouts_tree = CWID ("xkb_layouts_available");
|
||||
GtkTreeSelection *selection =
|
||||
gtk_tree_view_get_selection (GTK_TREE_VIEW
|
||||
(available_layouts_tree));
|
||||
const int n_selected_available_layouts =
|
||||
gtk_tree_selection_count_selected_rows (selection);
|
||||
GtkWidget *available_layouts_tree = CWID ("xkb_layouts_available");
|
||||
GtkTreeSelection *selection =
|
||||
gtk_tree_view_get_selection (GTK_TREE_VIEW
|
||||
(available_layouts_tree));
|
||||
const int n_selected_available_layouts =
|
||||
gtk_tree_selection_count_selected_rows (selection);
|
||||
|
||||
gtk_dialog_set_response_sensitive (GTK_DIALOG
|
||||
(CWID ("xkb_layout_chooser")),
|
||||
GTK_RESPONSE_OK,
|
||||
n_selected_available_layouts >
|
||||
0);
|
||||
gtk_dialog_set_response_sensitive (GTK_DIALOG
|
||||
(CWID ("xkb_layout_chooser")),
|
||||
GTK_RESPONSE_OK,
|
||||
n_selected_available_layouts >
|
||||
0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -289,3 +292,22 @@ xkb_layout_choose (GladeXML * dialog)
|
|||
gtk_dialog_run (GTK_DIALOG (chooser));
|
||||
gtk_widget_destroy (chooser);
|
||||
}
|
||||
|
||||
gchar *
|
||||
xkb_layout_chooser_get_selected_id (GladeXML * chooser_dialog)
|
||||
{
|
||||
GtkWidget *available_layouts_tree = CWID ("xkb_layouts_available");
|
||||
GtkTreeSelection *selection =
|
||||
gtk_tree_view_get_selection (GTK_TREE_VIEW
|
||||
(available_layouts_tree));
|
||||
GtkTreeIter selected_iter;
|
||||
GtkTreeModel *model;
|
||||
if (gtk_tree_selection_get_selected (selection, &model,
|
||||
&selected_iter)) {
|
||||
gchar *id;
|
||||
gtk_tree_model_get (model, &selected_iter,
|
||||
AVAIL_LAYOUT_TREE_COL_ID, &id, -1);
|
||||
return id;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -72,24 +72,15 @@ xkb_layout_preview_update (GladeXML * chooser_dialog)
|
|||
{
|
||||
#ifdef HAVE_X11_EXTENSIONS_XKB_H
|
||||
GtkWidget *chooser = CWID ("xkb_layout_chooser");
|
||||
GtkWidget *available_layouts_tree = CWID ("xkb_layouts_available");
|
||||
GtkTreeSelection *selection =
|
||||
gtk_tree_view_get_selection (GTK_TREE_VIEW
|
||||
(available_layouts_tree));
|
||||
GtkTreeIter selected_iter;
|
||||
GtkTreeModel *model;
|
||||
GtkWidget *kbdraw =
|
||||
GTK_WIDGET (g_object_get_data (G_OBJECT (chooser), "kbdraw"));
|
||||
if (kbdraw != NULL
|
||||
&& gtk_tree_selection_get_selected (selection, &model,
|
||||
&selected_iter)) {
|
||||
gchar *id;
|
||||
gchar *id = xkb_layout_chooser_get_selected_id (chooser_dialog);
|
||||
|
||||
if (kbdraw != NULL && id != NULL) {
|
||||
XklConfigRec *data;
|
||||
char **p, *layout, *variant;
|
||||
XkbComponentNamesRec component_names;
|
||||
|
||||
gtk_tree_model_get (model, &selected_iter,
|
||||
AVAIL_LAYOUT_TREE_COL_ID, &id, -1);
|
||||
data = xkl_config_rec_new ();
|
||||
if (xkl_config_rec_get_from_server (data, engine)) {
|
||||
if ((p = data->layouts) != NULL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue