| File: | capplets/keyboard/cafe-keyboard-properties-xkbltadd.c |
| Warning: | line 406, column 2 Value stored to 'options_list_strv' is never read |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
| 1 | /* -*- mode: c; style: linux -*- */ |
| 2 | |
| 3 | /* cafe-keyboard-properties-xkbltadd.c |
| 4 | * Copyright (C) 2007 Sergey V. Udaltsov |
| 5 | * |
| 6 | * Written by: Sergey V. Udaltsov <svu@gnome.org> |
| 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License as published by |
| 10 | * the Free Software Foundation; either version 2, or (at your option) |
| 11 | * any later version. |
| 12 | * |
| 13 | * This program is distributed in the hope that it will be useful, |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | * GNU General Public License for more details. |
| 17 | * |
| 18 | * You should have received a copy of the GNU General Public License |
| 19 | * along with this program; if not, write to the Free Software |
| 20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
| 21 | * 02110-1301, USA. |
| 22 | */ |
| 23 | |
| 24 | #ifdef HAVE_CONFIG_H1 |
| 25 | # include <config.h> |
| 26 | #endif |
| 27 | |
| 28 | #include <string.h> |
| 29 | |
| 30 | #include <libcafekbd/cafekbd-keyboard-drawing.h> |
| 31 | #include <libcafekbd/cafekbd-util.h> |
| 32 | |
| 33 | #include "capplet-util.h" |
| 34 | #include "cafe-keyboard-properties-xkb.h" |
| 35 | |
| 36 | enum { |
| 37 | COMBO_BOX_MODEL_COL_SORT, |
| 38 | COMBO_BOX_MODEL_COL_VISIBLE, |
| 39 | COMBO_BOX_MODEL_COL_XKB_ID, |
| 40 | COMBO_BOX_MODEL_COL_REAL_ID |
| 41 | }; |
| 42 | |
| 43 | typedef void (*LayoutIterFunc) (XklConfigRegistry * config, |
| 44 | ConfigItemProcessFunc func, gpointer data); |
| 45 | |
| 46 | typedef struct { |
| 47 | CtkListStore *list_store; |
| 48 | const gchar *lang_id; |
| 49 | } AddVariantData; |
| 50 | |
| 51 | static void |
| 52 | |
| 53 | |
| 54 | |
| 55 | |
| 56 | |
| 57 | |
| 58 | |
| 59 | |
| 60 | |
| 61 | xkb_layout_chooser_available_layouts_fill (CtkBuilder * chooser_dialog, |
| 62 | const gchar cblid[], |
| 63 | const gchar cbvid[], |
| 64 | LayoutIterFunc layout_iterator, |
| 65 | ConfigItemProcessFunc |
| 66 | layout_handler, |
| 67 | GCallback combo_changed_notify); |
| 68 | |
| 69 | static void |
| 70 | |
| 71 | |
| 72 | |
| 73 | |
| 74 | |
| 75 | |
| 76 | |
| 77 | |
| 78 | |
| 79 | xkb_layout_chooser_available_language_variants_fill (CtkBuilder * |
| 80 | chooser_dialog); |
| 81 | |
| 82 | static void |
| 83 | |
| 84 | |
| 85 | |
| 86 | |
| 87 | |
| 88 | |
| 89 | |
| 90 | |
| 91 | |
| 92 | xkb_layout_chooser_available_country_variants_fill (CtkBuilder * |
| 93 | chooser_dialog); |
| 94 | |
| 95 | static void |
| 96 | xkb_layout_chooser_add_variant_to_available_country_variants |
| 97 | (XklConfigRegistry * config_registry, |
| 98 | XklConfigItem * parent_config_item, XklConfigItem * config_item, |
| 99 | AddVariantData * data) { |
| 100 | gchar *utf_variant_name = config_item ? |
| 101 | xkb_layout_description_utf8 (cafekbd_keyboard_config_merge_items |
| 102 | (parent_config_item->name, |
| 103 | config_item->name)) : |
| 104 | xci_desc_to_utf8 (parent_config_item); |
| 105 | CtkTreeIter iter; |
| 106 | const gchar *xkb_id = |
| 107 | config_item ? |
| 108 | cafekbd_keyboard_config_merge_items (parent_config_item->name, |
| 109 | config_item->name) : |
| 110 | parent_config_item->name; |
| 111 | |
| 112 | if (config_item && g_object_get_data |
| 113 | (G_OBJECT (config_item)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((config_item)), (((GType) ((20) << (2)))))))), XCI_PROP_EXTRA_ITEM"extraItem")) { |
| 114 | gchar *buf = |
| 115 | g_strdup_printf ("<i>%s</i>", utf_variant_name); |
| 116 | ctk_list_store_insert_with_values (data->list_store, &iter, |
| 117 | -1, |
| 118 | COMBO_BOX_MODEL_COL_SORT, |
| 119 | utf_variant_name, |
| 120 | COMBO_BOX_MODEL_COL_VISIBLE, |
| 121 | buf, |
| 122 | COMBO_BOX_MODEL_COL_XKB_ID, |
| 123 | xkb_id, -1); |
| 124 | g_free (buf); |
| 125 | } else |
| 126 | ctk_list_store_insert_with_values (data->list_store, &iter, |
| 127 | -1, |
| 128 | COMBO_BOX_MODEL_COL_SORT, |
| 129 | utf_variant_name, |
| 130 | COMBO_BOX_MODEL_COL_VISIBLE, |
| 131 | utf_variant_name, |
| 132 | COMBO_BOX_MODEL_COL_XKB_ID, |
| 133 | xkb_id, -1); |
| 134 | g_free (utf_variant_name); |
| 135 | } |
| 136 | |
| 137 | static void |
| 138 | xkb_layout_chooser_add_variant_to_available_language_variants |
| 139 | (XklConfigRegistry * config_registry, |
| 140 | XklConfigItem * parent_config_item, XklConfigItem * config_item, |
| 141 | AddVariantData * data) { |
| 142 | xkb_layout_chooser_add_variant_to_available_country_variants |
| 143 | (config_registry, parent_config_item, config_item, data); |
| 144 | } |
| 145 | |
| 146 | static void |
| 147 | xkb_layout_chooser_add_language_to_available_languages (XklConfigRegistry * |
| 148 | config_registry, |
| 149 | XklConfigItem * |
| 150 | config_item, |
| 151 | CtkListStore * |
| 152 | list_store) |
| 153 | { |
| 154 | ctk_list_store_insert_with_values (list_store, NULL((void*)0), -1, |
| 155 | COMBO_BOX_MODEL_COL_SORT, |
| 156 | config_item->description, |
| 157 | COMBO_BOX_MODEL_COL_VISIBLE, |
| 158 | config_item->description, |
| 159 | COMBO_BOX_MODEL_COL_REAL_ID, |
| 160 | config_item->name, -1); |
| 161 | } |
| 162 | |
| 163 | static void |
| 164 | xkb_layout_chooser_add_country_to_available_countries (XklConfigRegistry * |
| 165 | config_registry, |
| 166 | XklConfigItem * |
| 167 | config_item, |
| 168 | CtkListStore * |
| 169 | list_store) |
| 170 | { |
| 171 | ctk_list_store_insert_with_values (list_store, NULL((void*)0), -1, |
| 172 | COMBO_BOX_MODEL_COL_SORT, |
| 173 | config_item->description, |
| 174 | COMBO_BOX_MODEL_COL_VISIBLE, |
| 175 | config_item->description, |
| 176 | COMBO_BOX_MODEL_COL_REAL_ID, |
| 177 | config_item->name, -1); |
| 178 | } |
| 179 | |
| 180 | static void |
| 181 | xkb_layout_chooser_enable_disable_buttons (CtkBuilder * chooser_dialog) |
| 182 | { |
| 183 | CtkWidget *cbv = |
| 184 | CWID (ctk_notebook_get_current_page((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))) |
| 185 | (CTK_NOTEBOOK (CWID ("choosers_nb"))) ?((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))) |
| 186 | "xkb_language_variants_available" :((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))) |
| 187 | "xkb_country_variants_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))); |
| 188 | CtkTreeIter viter; |
| 189 | gboolean enable_ok = |
| 190 | ctk_combo_box_get_active_iter (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ())))))), |
| 191 | &viter); |
| 192 | |
| 193 | ctk_dialog_set_response_sensitive (CTK_DIALOG((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))))), ((ctk_dialog_get_type ( ))))))) |
| 194 | (CWID((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))))), ((ctk_dialog_get_type ( ))))))) |
| 195 | ("xkb_layout_chooser"))((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))))), ((ctk_dialog_get_type ( ))))))), |
| 196 | CTK_RESPONSE_OK, enable_ok); |
| 197 | ctk_widget_set_sensitive (CWID ("btnPrint")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "btnPrint"))), ( (ctk_widget_get_type ())))))), enable_ok); |
| 198 | } |
| 199 | |
| 200 | static void |
| 201 | xkb_layout_chooser_available_variant_changed (CtkBuilder * chooser_dialog) |
| 202 | { |
| 203 | xkb_layout_preview_update (chooser_dialog); |
| 204 | xkb_layout_chooser_enable_disable_buttons (chooser_dialog); |
| 205 | } |
| 206 | |
| 207 | static void |
| 208 | xkb_layout_chooser_available_language_changed (CtkBuilder * chooser_dialog) |
| 209 | { |
| 210 | xkb_layout_chooser_available_language_variants_fill |
| 211 | (chooser_dialog); |
| 212 | xkb_layout_chooser_available_variant_changed (chooser_dialog); |
| 213 | } |
| 214 | |
| 215 | static void |
| 216 | xkb_layout_chooser_available_country_changed (CtkBuilder * chooser_dialog) |
| 217 | { |
| 218 | xkb_layout_chooser_available_country_variants_fill |
| 219 | (chooser_dialog); |
| 220 | xkb_layout_chooser_available_variant_changed (chooser_dialog); |
| 221 | } |
| 222 | |
| 223 | static void |
| 224 | xkb_layout_chooser_page_changed (CtkWidget * notebook, CtkWidget * page, |
| 225 | gint page_num, |
| 226 | CtkBuilder * chooser_dialog) |
| 227 | { |
| 228 | xkb_layout_chooser_available_variant_changed (chooser_dialog); |
| 229 | } |
| 230 | |
| 231 | static void |
| 232 | xkb_layout_chooser_available_language_variants_fill (CtkBuilder * |
| 233 | chooser_dialog) |
| 234 | { |
| 235 | CtkWidget *cbl = CWID ("xkb_languages_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_languages_available" ))), ((ctk_widget_get_type ())))))); |
| 236 | CtkWidget *cbv = CWID ("xkb_language_variants_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_language_variants_available" ))), ((ctk_widget_get_type ())))))); |
| 237 | CtkListStore *list_store; |
| 238 | CtkTreeIter liter; |
| 239 | |
| 240 | list_store = ctk_list_store_new |
| 241 | (4, G_TYPE_STRING((GType) ((16) << (2))), G_TYPE_STRING((GType) ((16) << (2))), G_TYPE_STRING((GType) ((16) << (2))), |
| 242 | G_TYPE_STRING((GType) ((16) << (2)))); |
| 243 | |
| 244 | if (ctk_combo_box_get_active_iter (CTK_COMBO_BOX (cbl)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_combo_box_get_type ())))))), &liter)) { |
| 245 | CtkTreeModel *lm = |
| 246 | ctk_combo_box_get_model (CTK_COMBO_BOX (cbl)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_combo_box_get_type ()))))))); |
| 247 | gchar *lang_id; |
| 248 | AddVariantData data = { list_store, 0 }; |
| 249 | |
| 250 | /* Now the variants of the selected layout */ |
| 251 | ctk_tree_model_get (lm, &liter, |
| 252 | COMBO_BOX_MODEL_COL_REAL_ID, |
| 253 | &lang_id, -1); |
| 254 | data.lang_id = lang_id; |
| 255 | |
| 256 | xkl_config_registry_foreach_language_variant |
| 257 | (config_registry, lang_id, (TwoConfigItemsProcessFunc) |
| 258 | xkb_layout_chooser_add_variant_to_available_language_variants, |
| 259 | &data); |
| 260 | g_free (lang_id); |
| 261 | } |
| 262 | |
| 263 | /* Turn on sorting after filling the store, since that's faster */ |
| 264 | ctk_tree_sortable_set_sort_column_id (CTK_TREE_SORTABLE((((CtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_sortable_get_type ())))))) |
| 265 | (list_store)((((CtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_sortable_get_type ())))))), |
| 266 | COMBO_BOX_MODEL_COL_SORT, |
| 267 | CTK_SORT_ASCENDING); |
| 268 | |
| 269 | ctk_combo_box_set_model (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ())))))), |
| 270 | CTK_TREE_MODEL (list_store)((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_model_get_type ()))))))); |
| 271 | ctk_combo_box_set_active (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ())))))), 0); |
| 272 | } |
| 273 | |
| 274 | static void |
| 275 | xkb_layout_chooser_available_country_variants_fill (CtkBuilder * |
| 276 | chooser_dialog) |
| 277 | { |
| 278 | CtkWidget *cbl = CWID ("xkb_countries_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_countries_available" ))), ((ctk_widget_get_type ())))))); |
| 279 | CtkWidget *cbv = CWID ("xkb_country_variants_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))); |
| 280 | CtkListStore *list_store; |
| 281 | CtkTreeIter liter; |
| 282 | |
| 283 | list_store = ctk_list_store_new |
| 284 | (4, G_TYPE_STRING((GType) ((16) << (2))), G_TYPE_STRING((GType) ((16) << (2))), G_TYPE_STRING((GType) ((16) << (2))), |
| 285 | G_TYPE_STRING((GType) ((16) << (2)))); |
| 286 | |
| 287 | if (ctk_combo_box_get_active_iter (CTK_COMBO_BOX (cbl)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_combo_box_get_type ())))))), &liter)) { |
| 288 | CtkTreeModel *lm = |
| 289 | ctk_combo_box_get_model (CTK_COMBO_BOX (cbl)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_combo_box_get_type ()))))))); |
| 290 | gchar *country_id; |
| 291 | AddVariantData data = { list_store, 0 }; |
| 292 | |
| 293 | /* Now the variants of the selected layout */ |
| 294 | ctk_tree_model_get (lm, &liter, |
| 295 | COMBO_BOX_MODEL_COL_REAL_ID, |
| 296 | &country_id, -1); |
| 297 | xkl_config_registry_foreach_country_variant |
| 298 | (config_registry, country_id, |
| 299 | (TwoConfigItemsProcessFunc) |
| 300 | xkb_layout_chooser_add_variant_to_available_country_variants, |
| 301 | &data); |
| 302 | g_free (country_id); |
| 303 | } |
| 304 | |
| 305 | /* Turn on sorting after filling the store, since that's faster */ |
| 306 | ctk_tree_sortable_set_sort_column_id (CTK_TREE_SORTABLE((((CtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_sortable_get_type ())))))) |
| 307 | (list_store)((((CtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_sortable_get_type ())))))), |
| 308 | COMBO_BOX_MODEL_COL_SORT, |
| 309 | CTK_SORT_ASCENDING); |
| 310 | |
| 311 | ctk_combo_box_set_model (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ())))))), |
| 312 | CTK_TREE_MODEL (list_store)((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_model_get_type ()))))))); |
| 313 | ctk_combo_box_set_active (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ())))))), 0); |
| 314 | } |
| 315 | |
| 316 | static void |
| 317 | xkb_layout_chooser_available_layouts_fill (CtkBuilder * |
| 318 | chooser_dialog, |
| 319 | const gchar cblid[], |
| 320 | const gchar cbvid[], |
| 321 | LayoutIterFunc layout_iterator, |
| 322 | ConfigItemProcessFunc |
| 323 | layout_handler, |
| 324 | GCallback combo_changed_notify) |
| 325 | { |
| 326 | CtkWidget *cbl = CWID (cblid)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, cblid))), ((ctk_widget_get_type ())))))); |
| 327 | CtkWidget *cbev = CWID (cbvid)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, cbvid))), ((ctk_widget_get_type ())))))); |
| 328 | CtkCellRenderer *renderer; |
| 329 | CtkListStore *list_store; |
| 330 | |
| 331 | list_store = ctk_list_store_new |
| 332 | (4, G_TYPE_STRING((GType) ((16) << (2))), G_TYPE_STRING((GType) ((16) << (2))), G_TYPE_STRING((GType) ((16) << (2))), |
| 333 | G_TYPE_STRING((GType) ((16) << (2)))); |
| 334 | |
| 335 | ctk_combo_box_set_model (CTK_COMBO_BOX (cbl)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_combo_box_get_type ())))))), |
| 336 | CTK_TREE_MODEL (list_store)((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_model_get_type ()))))))); |
| 337 | |
| 338 | renderer = ctk_cell_renderer_text_new (); |
| 339 | ctk_cell_layout_pack_start (CTK_CELL_LAYOUT (cbl)((((CtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_cell_layout_get_type ())))))), renderer, TRUE(!(0))); |
| 340 | ctk_cell_layout_set_attributes (CTK_CELL_LAYOUT (cbl)((((CtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbl)), ((ctk_cell_layout_get_type ())))))), |
| 341 | renderer, "markup", |
| 342 | COMBO_BOX_MODEL_COL_VISIBLE, NULL((void*)0)); |
| 343 | |
| 344 | layout_iterator (config_registry, layout_handler, list_store); |
| 345 | |
| 346 | /* Turn on sorting after filling the model since that's faster */ |
| 347 | ctk_tree_sortable_set_sort_column_id (CTK_TREE_SORTABLE((((CtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_sortable_get_type ())))))) |
| 348 | (list_store)((((CtkTreeSortable*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((list_store)), ((ctk_tree_sortable_get_type ())))))), |
| 349 | COMBO_BOX_MODEL_COL_SORT, |
| 350 | CTK_SORT_ASCENDING); |
| 351 | |
| 352 | g_signal_connect_swapped (G_OBJECT (cbl), "changed",g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((cbl)), (((GType) ((20) << (2)))))) ))), ("changed"), (combo_changed_notify), (chooser_dialog), ( (void*)0), G_CONNECT_SWAPPED) |
| 353 | combo_changed_notify, chooser_dialog)g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((cbl)), (((GType) ((20) << (2)))))) ))), ("changed"), (combo_changed_notify), (chooser_dialog), ( (void*)0), G_CONNECT_SWAPPED); |
| 354 | |
| 355 | /* Setup the variants combo */ |
| 356 | renderer = ctk_cell_renderer_text_new (); |
| 357 | ctk_cell_layout_pack_start (CTK_CELL_LAYOUT (cbev)((((CtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbev)), ((ctk_cell_layout_get_type ())))))), |
| 358 | renderer, TRUE(!(0))); |
| 359 | ctk_cell_layout_set_attributes (CTK_CELL_LAYOUT (cbev)((((CtkCellLayout*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbev)), ((ctk_cell_layout_get_type ())))))), |
| 360 | renderer, "markup", |
| 361 | COMBO_BOX_MODEL_COL_VISIBLE, NULL((void*)0)); |
| 362 | |
| 363 | g_signal_connect_swapped (G_OBJECT (cbev), "changed",g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((cbev)), (((GType) ((20) << (2))))) )))), ("changed"), (((GCallback) (xkb_layout_chooser_available_variant_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_SWAPPED) |
| 364 | G_CALLBACKg_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((cbev)), (((GType) ((20) << (2))))) )))), ("changed"), (((GCallback) (xkb_layout_chooser_available_variant_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_SWAPPED) |
| 365 | (xkb_layout_chooser_available_variant_changed),g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((cbev)), (((GType) ((20) << (2))))) )))), ("changed"), (((GCallback) (xkb_layout_chooser_available_variant_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_SWAPPED) |
| 366 | chooser_dialog)g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((cbev)), (((GType) ((20) << (2))))) )))), ("changed"), (((GCallback) (xkb_layout_chooser_available_variant_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_SWAPPED); |
| 367 | } |
| 368 | |
| 369 | GSList* |
| 370 | xkb_layout_gslist_from_strv (gchar **array) |
| 371 | { |
| 372 | GSList *list = NULL((void*)0); |
| 373 | gint i; |
| 374 | if (array != NULL((void*)0)) { |
| 375 | for (i = 0; array[i]; i++) { |
| 376 | list = g_slist_append (list, g_strdup (array[i])g_strdup_inline (array[i])); |
| 377 | } |
| 378 | } |
| 379 | return list; |
| 380 | } |
| 381 | |
| 382 | gchar ** |
| 383 | xkb_layout_strv_from_gslist (GSList *list) |
| 384 | { |
| 385 | GArray *array; |
| 386 | GSList *l; |
| 387 | array = g_array_new (TRUE(!(0)), TRUE(!(0)), sizeof (gchar *)); |
| 388 | for (l = list; l; l = l->next) { |
| 389 | array = g_array_append_val (array, l->data)g_array_append_vals (array, &(l->data), 1); |
| 390 | } |
| 391 | return (gchar **) array->data; |
| 392 | } |
| 393 | |
| 394 | |
| 395 | |
| 396 | void |
| 397 | xkl_layout_chooser_add_default_switcher_if_necessary (GSList * |
| 398 | layouts_list) |
| 399 | { |
| 400 | GSList *options_list = xkb_options_get_selected_list (); |
| 401 | gboolean was_appended; |
| 402 | |
| 403 | gchar **layouts_list_strv = xkb_layout_strv_from_gslist (layouts_list); |
| 404 | gchar **options_list_strv = xkb_layout_strv_from_gslist (options_list); |
| 405 | |
| 406 | options_list_strv = |
Value stored to 'options_list_strv' is never read | |
| 407 | cafekbd_keyboard_config_add_default_switch_option_if_necessary |
| 408 | (layouts_list_strv, options_list_strv, &was_appended); |
| 409 | if (was_appended) { |
| 410 | xkb_options_set_selected_list (options_list); |
| 411 | |
| 412 | } |
| 413 | clear_xkb_elements_list (options_list); |
| 414 | } |
| 415 | |
| 416 | static void |
| 417 | xkb_layout_chooser_print (CtkBuilder * chooser_dialog) |
| 418 | { |
| 419 | CtkWidget *chooser = CWID ("xkb_layout_chooser")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))); |
| 420 | CtkWidget *kbdraw = |
| 421 | CTK_WIDGET (g_object_get_data (G_OBJECT (chooser), "kbdraw"))((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((chooser)), (((GType) ((20) << (2)) )))))), "kbdraw"))), ((ctk_widget_get_type ())))))); |
| 422 | const char *id = |
| 423 | xkb_layout_chooser_get_selected_id (chooser_dialog); |
| 424 | char *descr = xkb_layout_description_utf8 (id); |
| 425 | cafekbd_keyboard_drawing_print (CAFEKBD_KEYBOARD_DRAWING((((CafekbdKeyboardDrawing*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((kbdraw)), (cafekbd_keyboard_drawing_get_type ()))))) |
| 426 | (kbdraw)((((CafekbdKeyboardDrawing*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((kbdraw)), (cafekbd_keyboard_drawing_get_type ()))))), |
| 427 | CTK_WINDOW (CWID((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))))), ((ctk_window_get_type ( ))))))) |
| 428 | ("xkb_layout_chooser"))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))))), ((ctk_window_get_type ( ))))))), |
| 429 | descr); |
| 430 | g_free (descr); |
| 431 | } |
| 432 | |
| 433 | static void |
| 434 | xkb_layout_chooser_response (CtkDialog * dialog, |
| 435 | gint response, CtkBuilder * chooser_dialog) |
| 436 | { |
| 437 | CdkRectangle rect; |
| 438 | |
| 439 | if (response == CTK_RESPONSE_OK) { |
| 440 | gchar *selected_id = (gchar *) |
| 441 | xkb_layout_chooser_get_selected_id (chooser_dialog); |
| 442 | |
| 443 | if (selected_id != NULL((void*)0)) { |
| 444 | GSList *layouts_list = |
| 445 | xkb_layouts_get_selected_list (); |
| 446 | |
| 447 | selected_id = g_strdup (selected_id)g_strdup_inline (selected_id); |
| 448 | |
| 449 | layouts_list = |
| 450 | g_slist_append (layouts_list, selected_id); |
| 451 | xkb_layouts_set_selected_list (layouts_list); |
| 452 | |
| 453 | xkl_layout_chooser_add_default_switcher_if_necessary |
| 454 | (layouts_list); |
| 455 | |
| 456 | clear_xkb_elements_list (layouts_list); |
| 457 | } |
| 458 | } else if (response == ctk_dialog_get_response_for_widget |
| 459 | (dialog, CWID ("btnPrint")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "btnPrint"))), ( (ctk_widget_get_type ())))))))) { |
| 460 | xkb_layout_chooser_print (chooser_dialog); |
| 461 | g_signal_stop_emission_by_name (dialog, "response"); |
| 462 | return; |
| 463 | } |
| 464 | |
| 465 | ctk_window_get_position (CTK_WINDOW (dialog)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((dialog)), ((ctk_window_get_type ())))))), &rect.x, &rect.y); |
| 466 | ctk_window_get_size (CTK_WINDOW (dialog)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((dialog)), ((ctk_window_get_type ())))))), &rect.width, |
| 467 | &rect.height); |
| 468 | cafekbd_preview_save_position (&rect); |
| 469 | } |
| 470 | |
| 471 | void |
| 472 | xkb_layout_choose (CtkBuilder * dialog) |
| 473 | { |
| 474 | CtkBuilder *chooser_dialog; |
| 475 | |
| 476 | chooser_dialog = ctk_builder_new (); |
| 477 | ctk_builder_add_from_resource (chooser_dialog, |
| 478 | "/org/cafe/ccc/keyboard/cafe-keyboard-properties-layout-chooser.ui", |
| 479 | NULL((void*)0)); |
| 480 | CtkWidget *chooser = CWID ("xkb_layout_chooser")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_layout_chooser" ))), ((ctk_widget_get_type ())))))); |
| 481 | CtkWidget *lang_chooser = CWID ("xkb_languages_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_languages_available" ))), ((ctk_widget_get_type ())))))); |
| 482 | CtkWidget *notebook = CWID ("choosers_nb")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))); |
| 483 | CtkWidget *kbdraw = NULL((void*)0); |
| 484 | CtkWidget *toplevel = NULL((void*)0); |
| 485 | |
| 486 | ctk_window_set_transient_for (CTK_WINDOW (chooser)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((chooser)), ((ctk_window_get_type ())))))), |
| 487 | CTK_WINDOW (WID((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (dialog, "keyboard_dialog"))), (( ctk_widget_get_type ())))))))), ((ctk_window_get_type ()))))) ) |
| 488 | ("keyboard_dialog"))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (dialog, "keyboard_dialog"))), (( ctk_widget_get_type ())))))))), ((ctk_window_get_type ()))))) )); |
| 489 | |
| 490 | xkb_layout_chooser_available_layouts_fill (chooser_dialog, |
| 491 | "xkb_countries_available", |
| 492 | "xkb_country_variants_available", |
| 493 | xkl_config_registry_foreach_country, |
| 494 | (ConfigItemProcessFunc) |
| 495 | xkb_layout_chooser_add_country_to_available_countries, |
| 496 | G_CALLBACK((GCallback) (xkb_layout_chooser_available_country_changed)) |
| 497 | (xkb_layout_chooser_available_country_changed)((GCallback) (xkb_layout_chooser_available_country_changed))); |
| 498 | xkb_layout_chooser_available_layouts_fill (chooser_dialog, |
| 499 | "xkb_languages_available", |
| 500 | "xkb_language_variants_available", |
| 501 | xkl_config_registry_foreach_language, |
| 502 | (ConfigItemProcessFunc) |
| 503 | xkb_layout_chooser_add_language_to_available_languages, |
| 504 | G_CALLBACK((GCallback) (xkb_layout_chooser_available_language_changed)) |
| 505 | (xkb_layout_chooser_available_language_changed)((GCallback) (xkb_layout_chooser_available_language_changed))); |
| 506 | |
| 507 | g_signal_connect_after (G_OBJECT (notebook), "switch_page",g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((notebook)), (((GType) ((20) << (2) )))))))), ("switch_page"), (((GCallback) (xkb_layout_chooser_page_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_AFTER) |
| 508 | G_CALLBACKg_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((notebook)), (((GType) ((20) << (2) )))))))), ("switch_page"), (((GCallback) (xkb_layout_chooser_page_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_AFTER) |
| 509 | (xkb_layout_chooser_page_changed),g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((notebook)), (((GType) ((20) << (2) )))))))), ("switch_page"), (((GCallback) (xkb_layout_chooser_page_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_AFTER) |
| 510 | chooser_dialog)g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((notebook)), (((GType) ((20) << (2) )))))))), ("switch_page"), (((GCallback) (xkb_layout_chooser_page_changed ))), (chooser_dialog), ((void*)0), G_CONNECT_AFTER); |
| 511 | |
| 512 | ctk_combo_box_set_active (CTK_COMBO_BOX((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_countries_available" ))), ((ctk_widget_get_type ())))))))), ((ctk_combo_box_get_type ())))))) |
| 513 | (CWID ("xkb_countries_available"))((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_countries_available" ))), ((ctk_widget_get_type ())))))))), ((ctk_combo_box_get_type ())))))), |
| 514 | FALSE(0)); |
| 515 | |
| 516 | if (ctk_tree_model_iter_n_children |
| 517 | (ctk_combo_box_get_model (CTK_COMBO_BOX (lang_chooser)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((lang_chooser)), ((ctk_combo_box_get_type ()))))))), |
| 518 | NULL((void*)0))) { |
| 519 | ctk_combo_box_set_active (CTK_COMBO_BOX((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_languages_available" ))), ((ctk_widget_get_type ())))))))), ((ctk_combo_box_get_type ())))))) |
| 520 | (CWID((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_languages_available" ))), ((ctk_widget_get_type ())))))))), ((ctk_combo_box_get_type ())))))) |
| 521 | ("xkb_languages_available"))((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "xkb_languages_available" ))), ((ctk_widget_get_type ())))))))), ((ctk_combo_box_get_type ())))))), |
| 522 | FALSE(0)); |
| 523 | } else { |
| 524 | /* If language info is not available - remove the corresponding tab, |
| 525 | pretend there is no notebook at all */ |
| 526 | ctk_notebook_remove_page (CTK_NOTEBOOK (notebook)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((notebook)), ((ctk_notebook_get_type ())))))), 1); |
| 527 | ctk_notebook_set_show_tabs (CTK_NOTEBOOK (notebook)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((notebook)), ((ctk_notebook_get_type ())))))), |
| 528 | FALSE(0)); |
| 529 | ctk_notebook_set_show_border (CTK_NOTEBOOK (notebook)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((notebook)), ((ctk_notebook_get_type ())))))), |
| 530 | FALSE(0)); |
| 531 | } |
| 532 | |
| 533 | #ifdef HAVE_X11_EXTENSIONS_XKB_H1 |
| 534 | if (!strcmp (xkl_engine_get_backend_name (engine), "XKB")) { |
| 535 | kbdraw = xkb_layout_preview_create_widget (chooser_dialog); |
| 536 | g_object_set_data (G_OBJECT (chooser)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((chooser)), (((GType) ((20) << (2)))))))), "kbdraw", kbdraw); |
| 537 | ctk_container_add (CTK_CONTAINER((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "previewFrame")) ), ((ctk_widget_get_type ())))))))), ((ctk_container_get_type ())))))) |
| 538 | (CWID ("previewFrame"))((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "previewFrame")) ), ((ctk_widget_get_type ())))))))), ((ctk_container_get_type ())))))), kbdraw); |
| 539 | ctk_widget_show_all (kbdraw); |
| 540 | ctk_button_box_set_child_secondary (CTK_BUTTON_BOX((((CtkButtonBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "hbtnBox"))), (( ctk_widget_get_type ())))))))), ((ctk_button_box_get_type ()) ))))) |
| 541 | (CWID((((CtkButtonBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "hbtnBox"))), (( ctk_widget_get_type ())))))))), ((ctk_button_box_get_type ()) ))))) |
| 542 | ("hbtnBox"))((((CtkButtonBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "hbtnBox"))), (( ctk_widget_get_type ())))))))), ((ctk_button_box_get_type ()) ))))), |
| 543 | CWID((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "btnPrint"))), ( (ctk_widget_get_type ())))))) |
| 544 | ("btnPrint")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "btnPrint"))), ( (ctk_widget_get_type ())))))), TRUE(!(0))); |
| 545 | } else |
| 546 | #endif |
| 547 | { |
| 548 | ctk_widget_hide (CWID ("vboxPreview")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "vboxPreview"))) , ((ctk_widget_get_type ()))))))); |
| 549 | ctk_widget_hide (CWID ("btnPrint")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "btnPrint"))), ( (ctk_widget_get_type ()))))))); |
| 550 | } |
| 551 | |
| 552 | g_signal_connect (G_OBJECT (chooser),g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((chooser)), (((GType) ((20) << (2)) ))))))), ("response"), (((GCallback) (xkb_layout_chooser_response ))), (chooser_dialog), ((void*)0), (GConnectFlags) 0) |
| 553 | "response",g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((chooser)), (((GType) ((20) << (2)) ))))))), ("response"), (((GCallback) (xkb_layout_chooser_response ))), (chooser_dialog), ((void*)0), (GConnectFlags) 0) |
| 554 | G_CALLBACK (xkb_layout_chooser_response),g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((chooser)), (((GType) ((20) << (2)) ))))))), ("response"), (((GCallback) (xkb_layout_chooser_response ))), (chooser_dialog), ((void*)0), (GConnectFlags) 0) |
| 555 | chooser_dialog)g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((chooser)), (((GType) ((20) << (2)) ))))))), ("response"), (((GCallback) (xkb_layout_chooser_response ))), (chooser_dialog), ((void*)0), (GConnectFlags) 0); |
| 556 | |
| 557 | toplevel = ctk_widget_get_toplevel (chooser); |
| 558 | if (ctk_widget_is_toplevel (toplevel)) { |
| 559 | CdkRectangle *rect = cafekbd_preview_load_position (); |
| 560 | if (rect != NULL((void*)0)) { |
| 561 | ctk_window_move (CTK_WINDOW (toplevel)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((toplevel)), ((ctk_window_get_type ())))))), |
| 562 | rect->x, rect->y); |
| 563 | ctk_window_resize (CTK_WINDOW (toplevel)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((toplevel)), ((ctk_window_get_type ())))))), |
| 564 | rect->width, rect->height); |
| 565 | g_free (rect); |
| 566 | } |
| 567 | } |
| 568 | |
| 569 | xkb_layout_preview_update (chooser_dialog); |
| 570 | ctk_dialog_run (CTK_DIALOG (chooser)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((chooser)), ((ctk_dialog_get_type ()))))))); |
| 571 | ctk_widget_destroy (chooser); |
| 572 | } |
| 573 | |
| 574 | gchar * |
| 575 | xkb_layout_chooser_get_selected_id (CtkBuilder * chooser_dialog) |
| 576 | { |
| 577 | CtkWidget *cbv = |
| 578 | CWID (ctk_notebook_get_current_page((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))) |
| 579 | (CTK_NOTEBOOK (CWID ("choosers_nb"))) ?((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))) |
| 580 | "xkb_language_variants_available" :((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))) |
| 581 | "xkb_country_variants_available")((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, ctk_notebook_get_current_page (((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ctk_builder_get_object (chooser_dialog, "choosers_nb"))) , ((ctk_widget_get_type ())))))))), ((ctk_notebook_get_type ( )))))))) ? "xkb_language_variants_available" : "xkb_country_variants_available" ))), ((ctk_widget_get_type ())))))); |
| 582 | CtkTreeModel *vm = ctk_combo_box_get_model (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ()))))))); |
| 583 | CtkTreeIter viter; |
| 584 | gchar *v_id; |
| 585 | |
| 586 | if (!ctk_combo_box_get_active_iter (CTK_COMBO_BOX (cbv)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((cbv)), ((ctk_combo_box_get_type ())))))), &viter)) |
| 587 | return NULL((void*)0); |
| 588 | |
| 589 | ctk_tree_model_get (vm, &viter, |
| 590 | COMBO_BOX_MODEL_COL_XKB_ID, &v_id, -1); |
| 591 | |
| 592 | return v_id; |
| 593 | } |