static void add_routes_section (CEPageIP6 *page) { GtkWidget *widget; GtkWidget *frame; GtkWidget *list; gint i; widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_section")); frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (widget), frame); page->routes_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL); gtk_container_add (GTK_CONTAINER (frame), list); page->auto_routes = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_routes_switch")); gtk_switch_set_active (page->auto_routes, !nm_setting_ip6_config_get_ignore_auto_routes (page->setting)); g_signal_connect (page->auto_routes, "notify::active", G_CALLBACK (switch_toggled), page); add_section_toolbar (page, widget, G_CALLBACK (add_empty_route_row)); for (i = 0; i < nm_setting_ip6_config_get_num_routes (page->setting); i++) { NMIP6Route *route; const struct in6_addr *tmp_addr; gchar address[INET6_ADDRSTRLEN + 1]; gchar gateway[INET6_ADDRSTRLEN + 1]; gint prefix, metric; route = nm_setting_ip6_config_get_route (page->setting, i); if (!route) continue; tmp_addr = nm_ip6_route_get_dest (route); (void) inet_ntop (AF_INET6, tmp_addr, &address[0], sizeof (address)); prefix = nm_ip6_route_get_prefix (route); tmp_addr = nm_ip6_route_get_next_hop (route); (void) inet_ntop (AF_INET6, tmp_addr, &gateway[0], sizeof (gateway)); metric = nm_ip6_route_get_metric (route); add_route_row (page, address, prefix, gateway, metric); } if (nm_setting_ip6_config_get_num_routes (page->setting) == 0) add_empty_route_row (page); gtk_widget_show_all (widget); }
static void device_ethernet_constructed (GObject *object) { NetDeviceEthernet *device = NET_DEVICE_ETHERNET (object); NMClient *client; GtkWidget *list; GtkWidget *swin; GtkWidget *widget; widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "device_off_switch")); g_signal_connect (widget, "notify::active", G_CALLBACK (device_off_toggled), device); device->scrolled_window = swin = GTK_WIDGET (gtk_builder_get_object (device->builder, "list")); device->list = list = GTK_WIDGET (gtk_list_box_new ()); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL); gtk_container_add (GTK_CONTAINER (swin), list); g_signal_connect (list, "row-activated", G_CALLBACK (connection_activated), device); gtk_widget_show (list); device->details = GTK_WIDGET (gtk_builder_get_object (device->builder, "details")); device->details_button = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_button")); g_signal_connect (device->details_button, "clicked", G_CALLBACK (show_details_for_wired), device); device->add_profile_button = GTK_WIDGET (gtk_builder_get_object (device->builder, "add_profile_button")); g_signal_connect (device->add_profile_button, "clicked", G_CALLBACK (add_profile), device); client = net_object_get_client (NET_OBJECT (object)); g_signal_connect (client, NM_CLIENT_CONNECTION_ADDED, G_CALLBACK (client_connection_added_cb), object); g_signal_connect_object (client, NM_CLIENT_CONNECTION_REMOVED, G_CALLBACK (connection_removed), device, 0); device_ethernet_refresh_ui (device); }
static void add_dns_section (CEPageIP6 *page) { GtkWidget *widget; GtkWidget *frame; GtkWidget *list; gint i; widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_section")); frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (widget), frame); page->dns_list = list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (list), update_header, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL); gtk_container_add (GTK_CONTAINER (frame), list); page->auto_dns = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch")); gtk_switch_set_active (page->auto_dns, !nm_setting_ip6_config_get_ignore_auto_dns (page->setting)); g_signal_connect (page->auto_dns, "notify::active", G_CALLBACK (switch_toggled), page); add_section_toolbar (page, widget, G_CALLBACK (add_empty_dns_row)); for (i = 0; i < nm_setting_ip6_config_get_num_dns (page->setting); i++) { const struct in6_addr *tmp_addr; gchar address[INET6_ADDRSTRLEN + 1]; tmp_addr = nm_setting_ip6_config_get_dns (page->setting, i); (void) inet_ntop (AF_INET, tmp_addr, &address[0], sizeof (address)); add_dns_row (page, address); } if (nm_setting_ip6_config_get_num_dns (page->setting) == 0) add_empty_dns_row (page); gtk_widget_show_all (widget); }
static void cc_privacy_panel_init (CcPrivacyPanel *self) { GError *error; GtkWidget *widget; GtkWidget *frame; guint res; self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, CC_TYPE_PRIVACY_PANEL, CcPrivacyPanelPrivate); g_resources_register (cc_privacy_get_resource ()); self->priv->builder = gtk_builder_new (); error = NULL; res = gtk_builder_add_from_resource (self->priv->builder, "/org/gnome/control-center/privacy/privacy.ui", &error); if (res == 0) { g_warning ("Could not load interface file: %s", (error != NULL) ? error->message : "unknown error"); g_clear_error (&error); return; } self->priv->recent_dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "recent_dialog")); self->priv->screen_lock_dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "screen_lock_dialog")); self->priv->trash_dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "trash_dialog")); self->priv->software_dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "software_dialog")); self->priv->abrt_dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "abrt_dialog")); frame = WID ("frame"); widget = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (widget), GTK_SELECTION_NONE); gtk_container_add (GTK_CONTAINER (frame), widget); self->priv->list_box = widget; gtk_widget_show (widget); g_signal_connect_swapped (widget, "row-activated", G_CALLBACK (activate_row), self); gtk_list_box_set_header_func (GTK_LIST_BOX (widget), cc_list_box_update_header_func, NULL, NULL); self->priv->lockdown_settings = g_settings_new ("org.gnome.desktop.lockdown"); self->priv->lock_settings = g_settings_new ("org.gnome.desktop.screensaver"); self->priv->privacy_settings = g_settings_new ("org.gnome.desktop.privacy"); self->priv->notification_settings = g_settings_new ("org.gnome.desktop.notifications"); self->priv->location_settings = g_settings_new ("org.gnome.system.location"); add_screen_lock (self); add_usage_history (self); add_trash_temp (self); add_software (self); add_abrt (self); g_signal_connect (self->priv->lockdown_settings, "changed", G_CALLBACK (on_lockdown_settings_changed), self); update_lock_screen_sensitivity (self); widget = WID ("location_services_switch"); gtk_switch_set_active (GTK_SWITCH (widget), g_settings_get_boolean (self->priv->location_settings, LOCATION_ENABLED)); g_settings_bind (self->priv->location_settings, LOCATION_ENABLED, widget, "active", G_SETTINGS_BIND_DEFAULT); widget = WID ("privacy_vbox"); gtk_container_add (GTK_CONTAINER (self), widget); }
GtkWidget * cc_format_chooser_new (GtkWidget *parent) { GtkBuilder *builder; GtkWidget *chooser; CcFormatChooserPrivate *priv; GError *error = NULL; builder = gtk_builder_new (); if (gtk_builder_add_from_resource (builder, "/org/gnome/control-center/region/format-chooser.ui", &error) == 0) { g_object_unref (builder); g_warning ("failed to load format chooser: %s", error->message); g_error_free (error); return NULL; } chooser = WID ("dialog"); priv = g_new0 (CcFormatChooserPrivate, 1); g_object_set_data_full (G_OBJECT (chooser), "private", priv, cc_format_chooser_private_free); g_object_set_data_full (G_OBJECT (chooser), "builder", builder, g_object_unref); priv->done_button = WID ("ok-button"); priv->filter_entry = WID ("region-filter-entry"); priv->list = WID ("region-list"); priv->scrolledwindow = WID ("region-scrolledwindow"); priv->more_item = more_widget_new (); /* We ref-sink here so we can reuse this widget multiple times */ priv->no_results = g_object_ref_sink (no_results_widget_new ()); gtk_widget_show_all (priv->no_results); priv->full_date = WID ("full-date-format"); priv->medium_date = WID ("medium-date-format"); priv->short_date = WID ("short-date-format"); priv->time = WID ("time-format"); priv->number = WID ("number-format"); priv->measurement = WID ("measurement-format"); priv->paper = WID ("paper-format"); gtk_list_box_set_adjustment (GTK_LIST_BOX (priv->list), gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->scrolledwindow))); gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->list), (GtkListBoxSortFunc)sort_regions, chooser, NULL); gtk_list_box_set_filter_func (GTK_LIST_BOX (priv->list), region_visible, chooser, NULL); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->list), cc_list_box_update_header_func, NULL, NULL); add_all_regions (GTK_DIALOG (chooser)); g_signal_connect_swapped (priv->filter_entry, "search-changed", G_CALLBACK (filter_changed), chooser); g_signal_connect (priv->list, "row-activated", G_CALLBACK (row_activated), chooser); gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list)); gtk_window_set_transient_for (GTK_WINDOW (chooser), GTK_WINDOW (parent)); g_signal_connect (chooser, "activate-default", G_CALLBACK (activate_default), chooser); return chooser; }
static void gis_network_page_constructed (GObject *object) { GisNetworkPage *page = GIS_NETWORK_PAGE (object); GisNetworkPagePrivate *priv = gis_network_page_get_instance_private (page); const GPtrArray *devices; NMDevice *device; guint i; gboolean visible = FALSE; G_OBJECT_CLASS (gis_network_page_parent_class)->constructed (object); priv->icons = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); priv->nm_client = nm_client_new (); g_object_bind_property (priv->nm_client, "wireless-enabled", priv->turn_on_switch, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); devices = nm_client_get_devices (priv->nm_client); if (devices) { for (i = 0; i < devices->len; i++) { device = g_ptr_array_index (devices, i); if (!nm_device_get_managed (device)) continue; if (nm_device_get_device_type (device) == NM_DEVICE_TYPE_WIFI) { /* FIXME deal with multiple, dynamic devices */ priv->nm_device = g_object_ref (device); break; } } } if (priv->nm_device == NULL) { g_debug ("No network device found, hiding network page"); goto out; } if (nm_device_get_state (priv->nm_device) == NM_DEVICE_STATE_ACTIVATED) { g_debug ("Activated network device found, hiding network page"); goto out; } visible = TRUE; priv->nm_settings = nm_remote_settings_new (NULL); g_signal_connect (priv->nm_device, "notify::state", G_CALLBACK (device_state_changed), page); g_signal_connect (priv->nm_client, "notify::active-connections", G_CALLBACK (active_connections_changed), page); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->network_list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->network_list), update_header_func, NULL, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->network_list), ap_sort, NULL, NULL); g_signal_connect (priv->network_list, "row-activated", G_CALLBACK (row_activated), page); refresh_wireless_list (page); sync_complete (page); gis_page_set_skippable (GIS_PAGE (page), TRUE); out: gtk_widget_set_visible (GTK_WIDGET (page), visible); }
void extensions__dlg_preferences_construct_cb (GtkWidget *dialog, GthBrowser *browser, GtkBuilder *dialog_builder) { BrowserData *data; GthExtensionManager *manager; GList *extensions; GList *descriptions; GList *scan; char **all_active_extensions; int i; GtkWidget *label; GtkWidget *page; data = g_new0 (BrowserData, 1); data->builder = _gtk_builder_new_from_file ("extensions-preferences.ui", NULL); data->settings = g_settings_new (GTHUMB_GENERAL_SCHEMA); data->dialog = dialog; data->enabled_disabled_cardinality_changed = FALSE; /* save the active extensions to decide if a restart is needed */ manager = gth_main_get_default_extension_manager (); data->active_extensions = NULL; all_active_extensions = g_settings_get_strv (data->settings, PREF_GENERAL_ACTIVE_EXTENSIONS); for (i = 0; all_active_extensions[i] != NULL; i++) { char *name = all_active_extensions[i]; GthExtensionDescription *description; description = gth_extension_manager_get_description (manager, name); if ((description == NULL) || description->mandatory || description->hidden) continue; data->active_extensions = g_list_prepend (data->active_extensions, g_strdup (name)); } data->active_extensions = g_list_reverse (data->active_extensions); g_strfreev (all_active_extensions); /* the extensions list */ data->extensions_list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (data->extensions_list), GTK_SELECTION_NONE); gtk_list_box_set_filter_func (GTK_LIST_BOX (data->extensions_list), extensions_list_filter_func, data, NULL); extensions = gth_extension_manager_get_extensions (manager); descriptions = NULL; for (scan = extensions; scan; scan = scan->next) { const char *name = scan->data; GthExtensionDescription *description; description = gth_extension_manager_get_description (manager, name); if ((description == NULL) || description->mandatory || description->hidden) continue; descriptions = g_list_prepend (descriptions, description); } descriptions = g_list_sort (descriptions, sort_extensions_by_name); for (scan = descriptions; scan; scan = scan->next) { GthExtensionDescription *description = scan->data; if (scan != descriptions) _gtk_list_box_add_separator (GTK_LIST_BOX (data->extensions_list)); gtk_container_add (GTK_CONTAINER (data->extensions_list), create_extensions_row (description, data)); } gtk_widget_show (data->extensions_list); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("extensions_list_scrolledwindow")), data->extensions_list); g_list_free (descriptions); g_list_free (extensions); /* the category combobox */ add_category_combobox_columns (GET_WIDGET ("category_combobox"), data); data->current_category = g_strdup (EXTENSION_CATEGORY_ALL); for (i = 0; extension_category[i].id != NULL; i++) { GtkTreeIter iter; gtk_list_store_append (GTK_LIST_STORE (GET_WIDGET ("category_liststore")), &iter); if (strcmp (extension_category[i].id, EXTENSION_CATEGORY_SEPARATOR) == 0) gtk_list_store_set (GTK_LIST_STORE (GET_WIDGET ("category_liststore")), &iter, CATEGORY_SEPARATOR_COLUMN, TRUE, -1); else { char *cardinality; cardinality = g_strdup_printf (CARDINALITY_FORMAT, get_category_cardinality (data, extension_category[i].id)); gtk_list_store_set (GTK_LIST_STORE (GET_WIDGET ("category_liststore")), &iter, CATEGORY_NAME_COLUMN, _(extension_category[i].name), CATEGORY_ID_COLUMN, extension_category[i].id, /* CATEGORY_ICON_COLUMN, extension_category[i].icon, */ CATEGORY_SEPARATOR_COLUMN, FALSE, CATEGORY_CARDINALITY_COLUMN, cardinality, -1); g_free (cardinality); } } gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (GET_WIDGET ("category_combobox")), category_view_separator_func, data, NULL); gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("category_combobox")), 0); /* Set the signals handlers. */ g_signal_connect (GET_WIDGET ("category_combobox"), "changed", G_CALLBACK (category_combobox_changed_cb), data); /* add the page to the preferences dialog */ label = gtk_label_new (_("Extensions")); gtk_widget_show (label); page = _gtk_builder_get_widget (data->builder, "preferences_page"); gtk_widget_show (page); gtk_notebook_append_page (GTK_NOTEBOOK (_gtk_builder_get_widget (dialog_builder, "notebook")), page, label); g_object_set_data_full (G_OBJECT (dialog), BROWSER_DATA_KEY, data, (GDestroyNotify) browser_data_free); }