void setup_xkb_tabs (GtkBuilder * dialog, MateConfChangeSet * changeset) { GObject *peditor; GtkWidget *chk_new_windows_inherit_layout = WID ("chk_new_windows_inherit_layout"); xkb_mateconf_client = mateconf_client_get_default (); engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY(gdk_display_get_default())); config_registry = xkl_config_registry_get_instance (engine); matekbd_desktop_config_init (&desktop_config, xkb_mateconf_client, engine); matekbd_desktop_config_load_from_mateconf (&desktop_config); xkl_config_registry_load (config_registry, desktop_config.load_extra_items); matekbd_keyboard_config_init (&initial_config, xkb_mateconf_client, engine); matekbd_keyboard_config_load_from_x_initial (&initial_config, NULL); setup_model_entry (dialog); peditor = mateconf_peditor_new_boolean (changeset, (gchar *) MATEKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_separate_group_per_window"), NULL); g_signal_connect (peditor, "value-changed", (GCallback) chk_separate_group_per_window_toggled, dialog); #ifdef HAVE_X11_EXTENSIONS_XKB_H if (strcmp (xkl_engine_get_backend_name (engine), "XKB")) #endif gtk_widget_hide (WID ("xkb_layouts_print")); xkb_layouts_prepare_selected_tree (dialog, changeset); xkb_layouts_fill_selected_tree (dialog); gtk_widget_set_sensitive (chk_new_windows_inherit_layout, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("chk_separate_group_per_window")))); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (chk_new_windows_inherit_layout), xkb_get_default_group () < 0); xkb_layouts_register_buttons_handlers (dialog); g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")), "clicked", G_CALLBACK (reset_to_defaults), dialog); g_signal_connect (G_OBJECT (chk_new_windows_inherit_layout), "toggled", (GCallback) chk_new_windows_inherit_layout_toggled, dialog); g_signal_connect_swapped (G_OBJECT (WID ("xkb_layout_options")), "clicked", G_CALLBACK (xkb_options_popup_dialog), dialog); g_signal_connect_swapped (G_OBJECT (WID ("xkb_model_pick")), "clicked", G_CALLBACK (choose_model), dialog); xkb_layouts_register_mateconf_listener (dialog); xkb_options_register_mateconf_listener (dialog); g_signal_connect (G_OBJECT (WID ("keyboard_dialog")), "destroy", G_CALLBACK (cleanup_xkb_tabs), dialog); enable_disable_restoring (dialog); }
static void show_dialog (MateDACapplet* capplet, const gchar* start_page) { GObject *obj; GtkBuilder *builder; guint builder_result; capplet->builder = builder = gtk_builder_new (); if (g_file_test (MATECC_UI_DIR "/mate-default-applications-properties.ui", G_FILE_TEST_EXISTS) != FALSE) { builder_result = gtk_builder_add_from_file (builder, MATECC_UI_DIR "/mate-default-applications-properties.ui", NULL); } else { builder_result = gtk_builder_add_from_file (builder, "./mate-default-applications-properties.ui", NULL); } if (builder_result == 0) { GtkWidget *dialog; dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not load the main interface")); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("Please make sure that the applet " "is properly installed")); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); exit (EXIT_FAILURE); } capplet->window = _gtk_builder_get_widget (builder,"preferred_apps_dialog"); g_signal_connect (capplet->window, "response", G_CALLBACK (close_cb), NULL); capplet->web_browser_command_entry = _gtk_builder_get_widget (builder, "web_browser_command_entry"); capplet->web_browser_command_label = _gtk_builder_get_widget (builder, "web_browser_command_label"); capplet->web_browser_terminal_checkbutton = _gtk_builder_get_widget(builder, "web_browser_terminal_checkbutton"); capplet->default_radiobutton = _gtk_builder_get_widget (builder, "web_browser_default_radiobutton"); capplet->new_win_radiobutton = _gtk_builder_get_widget (builder, "web_browser_new_win_radiobutton"); capplet->new_tab_radiobutton = _gtk_builder_get_widget (builder, "web_browser_new_tab_radiobutton"); capplet->mail_reader_command_entry = _gtk_builder_get_widget (builder, "mail_reader_command_entry"); capplet->mail_reader_command_label = _gtk_builder_get_widget (builder, "mail_reader_command_label"); capplet->mail_reader_terminal_checkbutton = _gtk_builder_get_widget (builder, "mail_reader_terminal_checkbutton"); capplet->terminal_command_entry = _gtk_builder_get_widget (builder, "terminal_command_entry"); capplet->terminal_command_label = _gtk_builder_get_widget (builder, "terminal_command_label"); capplet->terminal_exec_flag_entry = _gtk_builder_get_widget (builder, "terminal_exec_flag_entry"); capplet->terminal_exec_flag_label = _gtk_builder_get_widget (builder, "terminal_exec_flag_label"); capplet->media_player_command_entry = _gtk_builder_get_widget (builder, "media_player_command_entry"); capplet->media_player_command_label = _gtk_builder_get_widget (builder, "media_player_command_label"); capplet->media_player_terminal_checkbutton = _gtk_builder_get_widget (builder, "media_player_terminal_checkbutton"); capplet->visual_command_entry = _gtk_builder_get_widget (builder, "visual_command_entry"); capplet->visual_command_label = _gtk_builder_get_widget (builder, "visual_command_label"); capplet->visual_startup_checkbutton = _gtk_builder_get_widget (builder, "visual_start_checkbutton"); capplet->mobility_command_entry = _gtk_builder_get_widget (builder, "mobility_command_entry"); capplet->mobility_command_label = _gtk_builder_get_widget (builder, "mobility_command_label"); capplet->mobility_startup_checkbutton = _gtk_builder_get_widget (builder, "mobility_start_checkbutton"); capplet->web_combo_box = _gtk_builder_get_widget (builder, "web_browser_combobox"); capplet->mail_combo_box = _gtk_builder_get_widget (builder, "mail_reader_combobox"); capplet->term_combo_box = _gtk_builder_get_widget (builder, "terminal_combobox"); capplet->media_combo_box = _gtk_builder_get_widget (builder, "media_player_combobox"); capplet->visual_combo_box = _gtk_builder_get_widget (builder, "visual_combobox"); capplet->mobility_combo_box = _gtk_builder_get_widget (builder, "mobility_combobox"); g_signal_connect (capplet->window, "screen-changed", G_CALLBACK (screen_changed_cb), capplet); screen_changed_cb (capplet->window, gdk_screen_get_default (), capplet); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->web_combo_box), capplet->web_browsers); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->mail_combo_box), capplet->mail_readers); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->term_combo_box), capplet->terminals); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->media_combo_box), capplet->media_players); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->visual_combo_box), capplet->visual_ats); fill_combo_box (capplet->icon_theme, GTK_COMBO_BOX (capplet->mobility_combo_box), capplet->mobility_ats); g_signal_connect (capplet->web_combo_box, "changed", G_CALLBACK (web_combo_changed_cb), capplet); g_signal_connect (capplet->mail_combo_box, "changed", G_CALLBACK (mail_combo_changed_cb), capplet); g_signal_connect (capplet->term_combo_box, "changed", G_CALLBACK (terminal_combo_changed_cb), capplet); g_signal_connect (capplet->media_combo_box, "changed", G_CALLBACK (media_combo_changed_cb), capplet); g_signal_connect (capplet->visual_combo_box, "changed", G_CALLBACK (visual_combo_changed_cb), capplet); g_signal_connect (capplet->mobility_combo_box, "changed", G_CALLBACK (mobility_combo_changed_cb), capplet); g_signal_connect (capplet->default_radiobutton, "toggled", G_CALLBACK (web_radiobutton_toggled_cb), capplet); g_signal_connect (capplet->new_win_radiobutton, "toggled", G_CALLBACK (web_radiobutton_toggled_cb), capplet); g_signal_connect (capplet->new_tab_radiobutton, "toggled", G_CALLBACK (web_radiobutton_toggled_cb), capplet); /* Setup MateConfPropertyEditors */ /* Web Browser */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_HTTP_EXEC, capplet->web_combo_box, "conv-from-widget-cb", web_combo_conv_from_widget, "conv-to-widget-cb", web_combo_conv_to_widget, "data", capplet, NULL); obj = mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_HTTP_EXEC, capplet->web_browser_command_entry, NULL); g_signal_connect (obj, "value-changed", G_CALLBACK (web_mateconf_changed_cb), capplet); obj = mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_HTTP_NEEDS_TERM, capplet->web_browser_terminal_checkbutton, NULL); g_signal_connect (obj, "value-changed", G_CALLBACK (web_mateconf_changed_cb), capplet); /* Mailer */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_MAILER_EXEC, capplet->mail_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->mail_readers, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_MAILER_EXEC, capplet->mail_reader_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_MAILER_NEEDS_TERM, capplet->mail_reader_terminal_checkbutton, NULL); /* Media player */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_MEDIA_EXEC, capplet->media_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->media_players, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_MEDIA_EXEC, capplet->media_player_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_MEDIA_NEEDS_TERM, capplet->media_player_terminal_checkbutton, NULL); /* Terminal */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC, capplet->term_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->terminals, NULL); mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG, capplet->term_combo_box, "conv-from-widget-cb", combo_conv_from_widget_term_flag, "conv-to-widget-cb", combo_conv_to_widget_term_flag, "data", capplet->terminals, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC, capplet->terminal_command_entry, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG, capplet->terminal_exec_flag_entry, NULL); /* Visual */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_VISUAL_EXEC, capplet->visual_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->visual_ats, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_VISUAL_EXEC, capplet->visual_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_VISUAL_STARTUP, capplet->visual_startup_checkbutton, NULL); /* Mobility */ mateconf_peditor_new_combo_box (NULL, DEFAULT_APPS_KEY_MOBILITY_EXEC, capplet->mobility_combo_box, "conv-from-widget-cb", combo_conv_from_widget, "conv-to-widget-cb", combo_conv_to_widget, "data", capplet->mobility_ats, NULL); mateconf_peditor_new_string (NULL, DEFAULT_APPS_KEY_MOBILITY_EXEC, capplet->mobility_command_entry, NULL); mateconf_peditor_new_boolean (NULL, DEFAULT_APPS_KEY_MOBILITY_STARTUP, capplet->mobility_startup_checkbutton, NULL); gtk_window_set_icon_name (GTK_WINDOW (capplet->window), "preferences-desktop-default-applications"); if (start_page != NULL) { gchar *page_name; GtkWidget *w; page_name = g_strconcat (start_page, "_vbox", NULL); w = _gtk_builder_get_widget (builder, page_name); if (w != NULL) { GtkNotebook *nb; gint pindex; nb = GTK_NOTEBOOK (_gtk_builder_get_widget (builder, "preferred_apps_notebook")); pindex = gtk_notebook_page_num (nb, w); if (pindex != -1) gtk_notebook_set_current_page (nb, pindex); } g_free (page_name); } gtk_widget_show (capplet->window); }