static void plugin_button_clicked_cb (GtkButton *button, Totem *totem) { if (totem->plugins == NULL) { GtkWidget *manager; totem->plugins = gtk_dialog_new_with_buttons (_("Configure Plugins"), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (button))), GTK_DIALOG_DESTROY_WITH_PARENT, _("_Close"), GTK_RESPONSE_CLOSE, NULL); gtk_window_set_modal (GTK_WINDOW (totem->plugins), TRUE); gtk_container_set_border_width (GTK_CONTAINER (totem->plugins), 5); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (totem->plugins))), 2); g_signal_connect_object (G_OBJECT (totem->plugins), "delete_event", G_CALLBACK (totem_plugins_window_delete_cb), NULL, 0); g_signal_connect_object (G_OBJECT (totem->plugins), "response", G_CALLBACK (totem_plugins_response_cb), NULL, 0); manager = peas_gtk_plugin_manager_new (NULL); gtk_widget_show_all (GTK_WIDGET (manager)); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (totem->plugins))), manager, TRUE, TRUE, 0); gtk_window_set_default_size (GTK_WINDOW (totem->plugins), 600, 400); } gtk_window_present (GTK_WINDOW (totem->plugins)); }
static void consort_shell_init (ConsortShell *object) { ConsortShellPrivate *priv = CONSORT_SHELL_GET_PRIVATE (object); struct desktop *desktop; /* Set up the PeasEngine */ priv->engine = peas_engine_get_default (); priv->extensions = peas_extension_set_new (peas_engine_get_default (), PEAS_TYPE_ACTIVATABLE, "object", object, NULL); peas_engine_add_search_path (priv->engine, CONSORT_SHELL_PLUGIN_DATA_DIR, CONSORT_SHELL_PLUGIN_DIR); peas_engine_enable_loader (priv->engine, "python3"); /* Plugin manager */ priv->plugin_manager = peas_gtk_plugin_manager_new (priv->engine); priv->plugin_window = plugin_window_create (priv); gtk_window_set_title (priv->plugin_window, "Consort2 Plugin Manager"); gtk_widget_show_all (priv->plugin_window); /* Preload any plugins */ peas_extension_set_foreach (priv->extensions, (PeasExtensionSetForeachFunc) on_extension_added, object); g_signal_connect (priv->extensions, "extension-added", G_CALLBACK (on_extension_added), object); g_signal_connect (priv->extensions, "extension-removed", G_CALLBACK (on_extension_removed), object); desktop = malloc(sizeof *desktop); desktop->output = NULL; desktop->shell = NULL; desktop->gdk_display = gdk_display_get_default(); desktop->display = gdk_wayland_display_get_wl_display(desktop->gdk_display); if (desktop->display == NULL) { fprintf(stderr, "failed to get display: %m\n"); return -1; } desktop->registry = wl_display_get_registry(desktop->display); wl_registry_add_listener(desktop->registry, ®istry_listener, desktop); /* Wait until we have been notified about the compositor and shell * objects */ while (!desktop->output || !desktop->shell) wl_display_roundtrip (desktop->display); priv->desktop = desktop; }
/***************Plugins pages****************/ static void setup_plugin_pages (GtrPreferencesDialog * dlg) { GtkWidget *alignment; GtkWidget *page_content; alignment = gtk_alignment_new (0., 0., 1., 1.); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 12, 12, 12); page_content = peas_gtk_plugin_manager_new (NULL); g_return_if_fail (page_content != NULL); gtk_container_add (GTK_CONTAINER (alignment), page_content); gtk_box_pack_start (GTK_BOX (dlg->priv->plugins_box), alignment, TRUE, TRUE, 0); gtk_widget_show_all (page_content); }
static GtkWidget * create_main_window (void) { GtkWidget *window; GtkWidget *box; GtkWidget *manager; GtkWidget *button_box; GtkWidget *button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "delete-event", G_CALLBACK (gtk_main_quit), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 6); gtk_window_set_title (GTK_WINDOW (window), "Peas Demo"); gtk_window_set_has_resize_grip (GTK_WINDOW (window), FALSE); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_add (GTK_CONTAINER (window), box); manager = peas_gtk_plugin_manager_new (peas_engine_get_default ()); gtk_box_pack_start (GTK_BOX (box), manager, TRUE, TRUE, 0); button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_set_spacing (GTK_BOX (button_box), 6); gtk_button_box_set_layout (GTK_BUTTON_BOX (button_box), GTK_BUTTONBOX_END); gtk_box_pack_start (GTK_BOX (box), button_box, FALSE, FALSE, 0); button = gtk_button_new_with_label ("New window"); g_signal_connect (button, "clicked", G_CALLBACK (create_new_window), NULL); gtk_container_add (GTK_CONTAINER (button_box), button); button = gtk_button_new_from_stock (GTK_STOCK_QUIT); g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL); gtk_container_add (GTK_CONTAINER (button_box), button); return window; }
static void is_preferences_dialog_init(IsPreferencesDialog *self) { IsPreferencesDialogPrivate *priv; GtkWidget *box; GtkWidget *notebook; GtkWidget *plugins; GtkWidget *label; gchar *markup; self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE(self, IS_TYPE_PREFERENCES_DIALOG, IsPreferencesDialogPrivate); priv->application_settings = g_settings_new("indicator-sensors.application"); priv->indicator_settings = g_settings_new("indicator-sensors.indicator"); gtk_window_set_title(GTK_WINDOW(self), _("Hardware Sensors Indicator Preferences")); gtk_window_set_default_size(GTK_WINDOW(self), 500, 600); priv->sensor_properties_button = gtk_button_new_with_mnemonic(_("_Properties")); g_signal_connect(priv->sensor_properties_button, "clicked", G_CALLBACK(sensor_properties_clicked_cb), self); gtk_widget_set_sensitive(priv->sensor_properties_button, FALSE); gtk_dialog_add_button(GTK_DIALOG(self), _("_Close"), GTK_RESPONSE_ACCEPT); /* pack content into box */ priv->grid = gtk_grid_new(); gtk_grid_set_column_spacing(GTK_GRID(priv->grid), 6); gtk_grid_set_row_spacing(GTK_GRID(priv->grid), 6); gtk_container_set_border_width(GTK_CONTAINER(priv->grid), 6); label = gtk_label_new(NULL); markup = g_strdup_printf("<span weight='bold'>%s</span>", _("General")); gtk_label_set_markup(GTK_LABEL(label), markup); g_free(markup); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_grid_attach(GTK_GRID(priv->grid), label, 0, 0, 1, 1) ; priv->autostart_check_button = gtk_check_button_new_with_label (_("Start automatically on login")); gtk_widget_set_sensitive(priv->autostart_check_button, FALSE); gtk_grid_attach(GTK_GRID(priv->grid), priv->autostart_check_button, 0, 1, 3, 1); label = gtk_label_new(_("Primary sensor display")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_misc_set_padding(GTK_MISC(label), 2, 0); gtk_grid_attach(GTK_GRID(priv->grid), label, 0, 2, 1, 1); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); priv->display_icon_check_button = gtk_check_button_new_with_label (_("Icon")); gtk_widget_set_sensitive(priv->display_icon_check_button, FALSE); gtk_box_pack_start(GTK_BOX(box), priv->display_icon_check_button, TRUE, TRUE, 0); priv->display_label_check_button = gtk_check_button_new_with_label (_("Label")); gtk_widget_set_sensitive(priv->display_label_check_button, FALSE); gtk_box_pack_start(GTK_BOX(box), priv->display_label_check_button, TRUE, TRUE, 0); priv->display_value_check_button = gtk_check_button_new_with_label (_("Value")); gtk_widget_set_sensitive(priv->display_value_check_button, FALSE); gtk_box_pack_start(GTK_BOX(box), priv->display_value_check_button, TRUE, TRUE, 0); gtk_grid_attach(GTK_GRID(priv->grid), box, 1, 2, 2, 1); label = gtk_label_new(_("Temperature scale")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_misc_set_padding(GTK_MISC(label), 2, 0); gtk_grid_attach(GTK_GRID(priv->grid), label, 0, 3, 1, 1); priv->celsius_radio_button = gtk_radio_button_new_with_label (NULL, _("Celsius (\302\260C)")); gtk_widget_set_sensitive(priv->celsius_radio_button, FALSE); gtk_widget_set_hexpand(priv->celsius_radio_button, TRUE); gtk_grid_attach(GTK_GRID(priv->grid), priv->celsius_radio_button, 1, 3, 1, 1); g_signal_connect(priv->celsius_radio_button, "toggled", G_CALLBACK(temperature_scale_toggled), self); priv->fahrenheit_radio_button = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON(priv->celsius_radio_button), _("Fahrenheit (\302\260F)")); gtk_widget_set_sensitive(priv->fahrenheit_radio_button, FALSE); gtk_widget_set_hexpand(priv->fahrenheit_radio_button, TRUE); gtk_grid_attach(GTK_GRID(priv->grid), priv->fahrenheit_radio_button, 2, 3, 1, 1); g_signal_connect(priv->fahrenheit_radio_button, "toggled", G_CALLBACK(temperature_scale_toggled), self); notebook = gtk_notebook_new(); label = gtk_label_new(_("Preferences")); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6); gtk_box_pack_start(GTK_BOX(box), priv->grid, TRUE, TRUE, 0); gtk_widget_set_hexpand(priv->sensor_properties_button, FALSE); gtk_widget_set_halign(priv->sensor_properties_button, GTK_ALIGN_END); gtk_box_pack_start(GTK_BOX(box), priv->sensor_properties_button, FALSE, TRUE, 0); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), box, label); plugins = peas_gtk_plugin_manager_new(NULL); label = gtk_label_new(_("Plugins")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), plugins, label); gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(self))), notebook, TRUE, TRUE, 0); }
void preferences_dialog_init (PreferencesDialog *pd) { GtkWidget *widget, *entry; GtkComboBox *combo; GtkListStore *store; GtkTreeIter treeiter; GtkAdjustment *itemCount; GtkTreeStore *treestore; GtkTreeViewColumn *column; GSList *list; gchar *proxyport; gchar *configuredBrowser, *name; gboolean enabled; static int manual; struct browser *iter; gint tmp, i, iSetting, proxy_port; gboolean bSetting, show_tray_icon; gchar *proxy_host, *proxy_user, *proxy_passwd; gchar *browser_command; prefdialog = pd; pd->priv = PREFERENCES_DIALOG_GET_PRIVATE (pd); pd->priv->dialog = liferea_dialog_new ("prefs.ui", "prefdialog"); /* Set up browser selection popup */ store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for(i = 0, iter = browser_get_all (); iter->id != NULL; iter++, i++) { gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, _(iter->display), 1, i, -1); } manual = i; /* This allows the user to choose their own browser by typing in the command. */ gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, _("Manual"), 1, i, -1); combo = GTK_COMBO_BOX (liferea_dialog_lookup (pd->priv->dialog, "browserpopup")); gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store)); ui_common_setup_combo_text (combo, 0); g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(on_browser_changed), pd); /* Create location menu */ store = gtk_list_store_new (1, G_TYPE_STRING); combo = GTK_COMBO_BOX (liferea_dialog_lookup (pd->priv->dialog, "browserlocpopup")); gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store)); ui_common_setup_combo_text (combo, 0); g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(on_browser_place_changed), pd); gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, _("Browser default"), -1); gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, _("Existing window"), -1); gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, _("New window"), -1); gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, _("New tab"), -1); /* ================== panel 1 "feeds" ==================== */ /* check box for feed startup update */ conf_get_int_value (STARTUP_FEED_ACTION, &iSetting); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "startupactionbtn")), (iSetting == 0)); /* cache size setting */ widget = liferea_dialog_lookup (pd->priv->dialog, "itemCountBtn"); itemCount = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget)); conf_get_int_value (DEFAULT_MAX_ITEMS, &iSetting); gtk_adjustment_set_value (itemCount, iSetting); /* set default update interval spin button and unit combo box */ ui_common_setup_combo_menu (liferea_dialog_lookup (pd->priv->dialog, "globalRefreshIntervalUnitComboBox"), default_update_interval_unit_options, G_CALLBACK (on_default_update_interval_unit_changed), -1); widget = liferea_dialog_lookup (pd->priv->dialog, "globalRefreshIntervalUnitComboBox"); conf_get_int_value (DEFAULT_UPDATE_INTERVAL, &tmp); if (tmp % 1440 == 0) { /* days */ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2); tmp /= 1440; } else if (tmp % 60 == 0) { /* hours */ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1); tmp /= 60; } else { /* minutes */ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); } widget = liferea_dialog_lookup (pd->priv->dialog,"globalRefreshIntervalSpinButton"); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), tmp); g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (on_default_update_interval_value_changed), pd); /* ================== panel 2 "folders" ==================== */ g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "updateAllFavicons")), "clicked", G_CALLBACK(on_updateallfavicons_clicked), pd); conf_get_int_value (FOLDER_DISPLAY_MODE, &iSetting); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "folderdisplaybtn")), iSetting?TRUE:FALSE); conf_get_bool_value (FOLDER_DISPLAY_HIDE_READ, &bSetting); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "hidereadbtn")), bSetting?TRUE:FALSE); /* ================== panel 3 "headlines" ==================== */ conf_get_int_value (BROWSE_KEY_SETTING, &iSetting); ui_common_setup_combo_menu (liferea_dialog_lookup (pd->priv->dialog, "skimKeyCombo"), browser_skim_key_options, G_CALLBACK (on_skim_key_changed), iSetting); conf_get_int_value (DEFAULT_VIEW_MODE, &iSetting); ui_common_setup_combo_menu (liferea_dialog_lookup (pd->priv->dialog, "defaultViewModeCombo"), default_view_mode_options, G_CALLBACK (on_default_view_mode_changed), iSetting); /* Setup social bookmarking list */ i = 0; conf_get_str_value (SOCIAL_BM_SITE, &name); store = gtk_list_store_new (1, G_TYPE_STRING); list = bookmarkSites; while (list) { socialSitePtr siter = list->data; if (name && !strcmp (siter->name, name)) tmp = i; gtk_list_store_append (store, &treeiter); gtk_list_store_set (store, &treeiter, 0, siter->name, -1); list = g_slist_next (list); i++; } combo = GTK_COMBO_BOX (liferea_dialog_lookup (pd->priv->dialog, "socialpopup")); g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (on_socialsite_changed), pd); gtk_combo_box_set_model (combo, GTK_TREE_MODEL (store)); ui_common_setup_combo_text (combo, 0); gtk_combo_box_set_active (combo, tmp); /* ================== panel 4 "browser" ==================== */ /* set the inside browsing flag */ widget = liferea_dialog_lookup(pd->priv->dialog, "browseinwindow"); conf_get_bool_value(BROWSE_INSIDE_APPLICATION, &bSetting); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), bSetting); /* set the javascript-disabled flag */ widget = liferea_dialog_lookup(pd->priv->dialog, "disablejavascript"); conf_get_bool_value(DISABLE_JAVASCRIPT, &bSetting); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), bSetting); /* set the enable Plugins flag */ widget = liferea_dialog_lookup(pd->priv->dialog, "enableplugins"); conf_get_bool_value(ENABLE_PLUGINS, &bSetting); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), bSetting); tmp = 0; conf_get_str_value(BROWSER_ID, &configuredBrowser); if(!strcmp(configuredBrowser, "manual")) tmp = manual; else for(i=0, iter = browser_get_all (); iter->id != NULL; iter++, i++) if(!strcmp(configuredBrowser, iter->id)) tmp = i; gtk_combo_box_set_active(GTK_COMBO_BOX(liferea_dialog_lookup(pd->priv->dialog, "browserpopup")), tmp); g_free(configuredBrowser); conf_get_int_value (BROWSER_PLACE, &iSetting); gtk_combo_box_set_active(GTK_COMBO_BOX(liferea_dialog_lookup(pd->priv->dialog, "browserlocpopup")), iSetting); conf_get_str_value (BROWSER_COMMAND, &browser_command); entry = liferea_dialog_lookup(pd->priv->dialog, "browsercmd"); gtk_entry_set_text(GTK_ENTRY(entry), browser_command); g_free (browser_command); gtk_widget_set_sensitive (GTK_WIDGET (entry), tmp == manual); gtk_widget_set_sensitive (liferea_dialog_lookup (pd->priv->dialog, "manuallabel"), tmp == manual); gtk_widget_set_sensitive (liferea_dialog_lookup (pd->priv->dialog, "urlhintlabel"), tmp == manual); /* ================== panel 4 "GUI" ================ */ widget = liferea_dialog_lookup (pd->priv->dialog, "popupwindowsoptionbtn"); conf_get_bool_value (SHOW_POPUP_WINDOWS, &bSetting); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bSetting); widget = liferea_dialog_lookup (pd->priv->dialog, "trayiconoptionbtn"); conf_get_bool_value (SHOW_TRAY_ICON, &show_tray_icon); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), show_tray_icon); widget = liferea_dialog_lookup (pd->priv->dialog, "newcountintraybtn"); conf_get_bool_value (SHOW_NEW_COUNT_IN_TRAY, &bSetting); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bSetting); gtk_widget_set_sensitive (liferea_dialog_lookup (pd->priv->dialog, "newcountintraybtn"), show_tray_icon); widget = liferea_dialog_lookup (pd->priv->dialog, "minimizetotraybtn"); conf_get_bool_value (DONT_MINIMIZE_TO_TRAY, &bSetting); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bSetting); gtk_widget_set_sensitive (liferea_dialog_lookup (pd->priv->dialog, "minimizetotraybtn"), show_tray_icon); widget = liferea_dialog_lookup (pd->priv->dialog, "startintraybtn"); conf_get_bool_value (START_IN_TRAY, &bSetting); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bSetting); gtk_widget_set_sensitive (liferea_dialog_lookup (pd->priv->dialog, "startintraybtn"), show_tray_icon); if (ui_indicator_is_visible ()) { /* If we use the indicator applet: - The "show tray icon" and "minimize to tray icon" settings are interpreted as "show indicator" and "minimize to indicator" - The "new count in tray icon" setting doesn't make sense and is ignored by indicator handling code */ gtk_widget_hide (liferea_dialog_lookup (pd->priv->dialog, "newcountintraybtn")); gtk_button_set_label (GTK_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "trayiconoptionbtn")), _("Integrate with the messaging menu (indicator)")); gtk_button_set_label (GTK_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "minimizetotraybtn")), _("Terminate instead of minimizing to the messaging menu")); gtk_button_set_label (GTK_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "startintraybtn")), _("Start minimized to the messaging menu")); } /* tool bar settings */ widget = liferea_dialog_lookup (pd->priv->dialog, "hidetoolbarbtn"); conf_get_bool_value(DISABLE_TOOLBAR, &bSetting); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), bSetting); /* select currently active toolbar style option */ conf_get_str_value (TOOLBAR_STYLE, &name); for (i = 0; gui_toolbar_style_values[i] != NULL; ++i) { if (strcmp (name, gui_toolbar_style_values[i]) == 0) break; } g_free (name); /* On invalid key value: revert to default */ if (gui_toolbar_style_values[i] == NULL) i = 0; /* create toolbar style menu */ ui_common_setup_combo_menu (liferea_dialog_lookup (pd->priv->dialog, "toolbarCombo"), gui_toolbar_style_options, G_CALLBACK (on_gui_toolbar_style_changed), i); /* ================= panel 5 "proxy" ======================== */ conf_get_str_value (PROXY_HOST, &proxy_host); gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (pd->priv->dialog, "proxyhostentry")), proxy_host); g_free (proxy_host); conf_get_int_value (PROXY_PORT, &proxy_port); proxyport = g_strdup_printf ("%d", proxy_port); gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (pd->priv->dialog, "proxyportentry")), proxyport); g_free (proxyport); conf_get_bool_value (PROXY_USEAUTH, &enabled); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "useProxyAuth")), enabled); conf_get_str_value (PROXY_USER, &proxy_user); gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (pd->priv->dialog, "proxyusernameentry")), proxy_user); g_free (proxy_user); conf_get_str_value (PROXY_PASSWD, &proxy_passwd); gtk_entry_set_text (GTK_ENTRY (liferea_dialog_lookup (pd->priv->dialog, "proxypasswordentry")), proxy_passwd); g_free (proxy_passwd); gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup(pd->priv->dialog, "proxyauthtable")), enabled); conf_get_int_value (PROXY_DETECT_MODE, &i); switch (i) { default: case 0: /* proxy auto detect */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "proxyAutoDetectRadio")), TRUE); enabled = FALSE; break; case 1: /* no proxy */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "noProxyRadio")), TRUE); enabled = FALSE; break; case 2: /* manual proxy */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (liferea_dialog_lookup (pd->priv->dialog, "manualProxyRadio")), TRUE); enabled = TRUE; break; } gtk_widget_set_sensitive (GTK_WIDGET (liferea_dialog_lookup (pd->priv->dialog, "proxybox")), enabled); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "proxyAutoDetectRadio")), "clicked", G_CALLBACK (on_proxyAutoDetect_clicked), pd); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "noProxyRadio")), "clicked", G_CALLBACK (on_noProxy_clicked), pd); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "manualProxyRadio")), "clicked", G_CALLBACK (on_manualProxy_clicked), pd); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "proxyhostentry")), "changed", G_CALLBACK (on_proxyhostentry_changed), pd); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "proxyportentry")), "changed", G_CALLBACK (on_proxyportentry_changed), pd); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "proxyusernameentry")), "changed", G_CALLBACK (on_proxyusernameentry_changed), pd); g_signal_connect (G_OBJECT (liferea_dialog_lookup (pd->priv->dialog, "proxypasswordentry")), "changed", G_CALLBACK (on_proxypasswordentry_changed), pd); /* ================= panel 6 "Enclosures" ======================== */ /* menu for download tool */ conf_get_int_value (DOWNLOAD_TOOL, &iSetting); ui_common_setup_combo_menu (liferea_dialog_lookup (pd->priv->dialog, "downloadToolCombo"), enclosure_download_tool_options, G_CALLBACK (on_enclosure_download_tool_changed), iSetting); /* set up list of configured enclosure types */ treestore = gtk_tree_store_new (FTS_LEN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); list = (GSList *)enclosure_mime_types_get (); while (list) { GtkTreeIter *newIter = g_new0 (GtkTreeIter, 1); gtk_tree_store_append (treestore, newIter, NULL); gtk_tree_store_set (treestore, newIter, FTS_TYPE, (NULL != ((encTypePtr)(list->data))->mime)?((encTypePtr)(list->data))->mime:((encTypePtr)(list->data))->extension, FTS_CMD, ((encTypePtr)(list->data))->cmd, FTS_PTR, list->data, -1); list = g_slist_next (list); } widget = liferea_dialog_lookup (pd->priv->dialog, "enc_action_view"); gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (treestore)); column = gtk_tree_view_column_new_with_attributes (_("Type"), gtk_cell_renderer_text_new (), "text", FTS_TYPE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column); gtk_tree_view_column_set_sort_column_id (column, FTS_TYPE); column = gtk_tree_view_column_new_with_attributes (_("Program"), gtk_cell_renderer_text_new (), "text", FTS_CMD, NULL); gtk_tree_view_column_set_sort_column_id (column, FTS_CMD); gtk_tree_view_append_column (GTK_TREE_VIEW(widget), column); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW(widget)), GTK_SELECTION_SINGLE); /* ================= panel 7 "Plugins" ======================== */ pd->priv->plugins_box = liferea_dialog_lookup (pd->priv->dialog, "plugins_box"); g_assert (pd->priv->plugins_box != NULL); GtkWidget *alignment; alignment = gtk_alignment_new (0., 0., 1., 1.); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 12, 12, 12); widget = peas_gtk_plugin_manager_new (NULL); g_assert (widget != NULL); gtk_container_add (GTK_CONTAINER (alignment), widget); gtk_box_pack_start (GTK_BOX (pd->priv->plugins_box), alignment, TRUE, TRUE, 0); g_signal_connect_object (pd->priv->dialog, "destroy", G_CALLBACK (preferences_dialog_destroy_cb), pd, 0); gtk_widget_show_all (pd->priv->dialog); gtk_window_present (GTK_WINDOW (pd->priv->dialog)); }
static GObject * eom_preferences_dialog_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params) { EomPreferencesDialogPrivate *priv; GtkWidget *dlg; GtkWidget *interpolate_check; GtkWidget *extrapolate_check; GtkWidget *autorotate_check; GtkWidget *bg_color_check; GtkWidget *bg_color_button; GtkWidget *color_radio; GtkWidget *checkpattern_radio; GtkWidget *background_radio; GtkWidget *color_button; GtkWidget *upscale_check; GtkWidget *random_check; GtkWidget *loop_check; GtkWidget *seconds_spin; GtkWidget *plugin_manager; GtkWidget *plugin_manager_container; GObject *object; object = G_OBJECT_CLASS (eom_preferences_dialog_parent_class)->constructor (type, n_construct_properties, construct_params); priv = EOM_PREFERENCES_DIALOG (object)->priv; priv->view_settings = g_settings_new (EOM_CONF_VIEW); priv->fullscreen_settings = g_settings_new (EOM_CONF_FULLSCREEN); eom_dialog_construct (EOM_DIALOG (object), "eom-preferences-dialog.ui", "eom_preferences_dialog"); eom_dialog_get_controls (EOM_DIALOG (object), "eom_preferences_dialog", &dlg, "interpolate_check", &interpolate_check, "extrapolate_check", &extrapolate_check, "autorotate_check", &autorotate_check, "bg_color_check", &bg_color_check, "bg_color_button", &bg_color_button, "color_radio", &color_radio, "checkpattern_radio", &checkpattern_radio, "background_radio", &background_radio, "color_button", &color_button, "upscale_check", &upscale_check, "random_check", &random_check, "loop_check", &loop_check, "seconds_spin", &seconds_spin, "plugin_manager_container", &plugin_manager_container, NULL); g_signal_connect (G_OBJECT (dlg), "response", G_CALLBACK (eom_preferences_response_cb), dlg); g_settings_bind (priv->view_settings, EOM_CONF_VIEW_INTERPOLATE, G_OBJECT (interpolate_check), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->view_settings, EOM_CONF_VIEW_EXTRAPOLATE, G_OBJECT (extrapolate_check), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->view_settings, EOM_CONF_VIEW_AUTOROTATE, G_OBJECT (autorotate_check), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->view_settings, EOM_CONF_VIEW_USE_BG_COLOR, G_OBJECT (bg_color_check), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind_with_mapping (priv->view_settings, EOM_CONF_VIEW_BACKGROUND_COLOR, bg_color_button, "color", G_SETTINGS_BIND_DEFAULT, pd_string_to_color_mapping, pd_color_to_string_mapping, NULL, NULL); g_object_set_data (G_OBJECT (color_radio), GSETTINGS_OBJECT_VALUE, GINT_TO_POINTER (EOM_TRANSP_COLOR)); g_signal_connect (G_OBJECT (color_radio), "toggled", G_CALLBACK (pd_transp_radio_toggle_cb), priv->view_settings); g_object_set_data (G_OBJECT (checkpattern_radio), GSETTINGS_OBJECT_VALUE, GINT_TO_POINTER (EOM_TRANSP_CHECKED)); g_signal_connect (G_OBJECT (checkpattern_radio), "toggled", G_CALLBACK (pd_transp_radio_toggle_cb), priv->view_settings); g_object_set_data (G_OBJECT (background_radio), GSETTINGS_OBJECT_VALUE, GINT_TO_POINTER (EOM_TRANSP_BACKGROUND)); g_signal_connect (G_OBJECT (background_radio), "toggled", G_CALLBACK (pd_transp_radio_toggle_cb), priv->view_settings); switch (g_settings_get_enum (priv->view_settings, EOM_CONF_VIEW_TRANSPARENCY)) { case EOM_TRANSP_COLOR: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (color_radio), TRUE); break; case EOM_TRANSP_CHECKED: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkpattern_radio), TRUE); break; default: // Log a warning and use EOM_TRANSP_BACKGROUND as fallback g_warn_if_reached (); case EOM_TRANSP_BACKGROUND: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (background_radio), TRUE); break; } g_settings_bind_with_mapping (priv->view_settings, EOM_CONF_VIEW_TRANS_COLOR, color_button, "color", G_SETTINGS_BIND_DEFAULT, pd_string_to_color_mapping, pd_color_to_string_mapping, NULL, NULL); g_settings_bind (priv->fullscreen_settings, EOM_CONF_FULLSCREEN_UPSCALE, upscale_check, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->fullscreen_settings, EOM_CONF_FULLSCREEN_LOOP, G_OBJECT (loop_check), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->fullscreen_settings, EOM_CONF_FULLSCREEN_RANDOM, G_OBJECT (random_check), "active", G_SETTINGS_BIND_DEFAULT); g_signal_connect (priv->fullscreen_settings, "changed::" EOM_CONF_FULLSCREEN_RANDOM, G_CALLBACK (random_change_cb), loop_check); random_change_cb (priv->fullscreen_settings, EOM_CONF_FULLSCREEN_RANDOM, loop_check); g_settings_bind (priv->fullscreen_settings, EOM_CONF_FULLSCREEN_SECONDS, G_OBJECT (seconds_spin), "value", G_SETTINGS_BIND_DEFAULT); plugin_manager = peas_gtk_plugin_manager_new (NULL); g_assert (plugin_manager != NULL); gtk_box_pack_start (GTK_BOX (plugin_manager_container), plugin_manager, TRUE, TRUE, 0); gtk_widget_show_all (plugin_manager); return object; }