static void gs_shell_category_create_filter_list (GsShellCategory *shell, GsCategory *category, GsCategory *subcategory) { GsShellCategoryPrivate *priv = shell->priv; GtkWidget *row; GList *l; GsCategory *s; _cleanup_list_free_ GList *list = NULL; gs_container_remove_all (GTK_CONTAINER (priv->category_detail_grid)); list = gs_category_get_subcategories (category); if (!list) return; gtk_grid_attach (GTK_GRID (priv->category_detail_grid), priv->col0_placeholder, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID (priv->category_detail_grid), priv->col1_placeholder, 1, 0, 1, 1); gs_container_remove_all (GTK_CONTAINER (priv->listbox_filter)); for (l = list; l; l = l->next) { s = l->data; if (gs_category_get_size (s) < 1) continue; row = gtk_label_new (gs_category_get_name (s)); g_object_set_data_full (G_OBJECT (row), "category", g_object_ref (s), g_object_unref); g_object_set (row, "xalign", 0.0, "margin", 10, NULL); gtk_widget_show (row); gtk_list_box_insert (GTK_LIST_BOX (priv->listbox_filter), row, -1); if (subcategory == s) gtk_list_box_select_row (GTK_LIST_BOX (priv->listbox_filter), GTK_LIST_BOX_ROW (gtk_widget_get_parent (row))); } }
static void show_filter_widgets (GtkWidget *chooser) { CcInputChooserPrivate *priv = GET_PRIVATE (chooser); LocaleInfo *info; GHashTableIter iter; remove_all_children (GTK_CONTAINER (priv->list)); g_hash_table_iter_init (&iter, priv->locales); while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &info)) add_input_source_widgets_for_locale (chooser, info); gtk_widget_show_all (priv->list); gtk_adjustment_set_value (priv->adjustment, gtk_adjustment_get_lower (priv->adjustment)); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->list), update_header_func_filter, NULL, NULL); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->list), GTK_SELECTION_SINGLE); gtk_list_box_set_placeholder (GTK_LIST_BOX (priv->list), priv->no_results); if (gtk_widget_is_visible (priv->filter_entry)) gtk_widget_grab_focus (priv->filter_entry); }
int main (int argc, char *argv[]) { GtkWidget *window, *list, *sw, *row; GtkWidget *hbox, *vbox, *combo, *button; gint i; gchar *text; gtk_init (NULL, NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), -1, 300); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_add (GTK_CONTAINER (window), hbox); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); g_object_set (vbox, "margin", 12, NULL); gtk_container_add (GTK_CONTAINER (hbox), vbox); list = gtk_list_box_new (); gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE); g_signal_connect (list, "row-activated", G_CALLBACK (on_row_activated), NULL); g_signal_connect (list, "selected-rows-changed", G_CALLBACK (on_selected_children_changed), NULL); g_signal_connect (gtk_widget_get_accessible (list), "selection-changed", G_CALLBACK (a11y_selection_changed), NULL); sw = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_hexpand (sw, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (hbox), sw); gtk_container_add (GTK_CONTAINER (sw), list); button = gtk_check_button_new_with_label ("Activate on single click"); g_object_bind_property (list, "activate-on-single-click", button, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); gtk_container_add (GTK_CONTAINER (vbox), button); combo = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "None"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Single"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Browse"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Multiple"); g_signal_connect (combo, "changed", G_CALLBACK (selection_mode_changed), list); gtk_container_add (GTK_CONTAINER (vbox), combo); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), gtk_list_box_get_selection_mode (GTK_LIST_BOX (list))); for (i = 0; i < 20; i++) { text = g_strdup_printf ("Row %d", i); row = create_row (text); gtk_list_box_insert (GTK_LIST_BOX (list), row, -1); } gtk_widget_show_all (window); gtk_main (); return 0; }
static void empathy_roster_view_constructed (GObject *object) { EmpathyRosterView *self = EMPATHY_ROSTER_VIEW (object); void (*chain_up) (GObject *) = ((GObjectClass *) empathy_roster_view_parent_class)->constructed; if (chain_up != NULL) chain_up (object); g_assert (EMPATHY_IS_ROSTER_MODEL (self->priv->model)); /* Get saved group states. */ empathy_contact_groups_get_all (); populate_view (self); tp_g_signal_connect_object (self->priv->model, "individual-added", G_CALLBACK (individual_added_cb), self, 0); tp_g_signal_connect_object (self->priv->model, "individual-removed", G_CALLBACK (individual_removed_cb), self, 0); tp_g_signal_connect_object (self->priv->model, "groups-changed", G_CALLBACK (groups_changed_cb), self, 0); gtk_list_box_set_sort_func (GTK_LIST_BOX (self), roster_view_sort, self, NULL); gtk_list_box_set_header_func (GTK_LIST_BOX (self), update_header, self, NULL); gtk_list_box_set_filter_func (GTK_LIST_BOX (self), filter_list, self, NULL); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (self), FALSE); }
static void show_input_sources_for_locale (GtkWidget *chooser, LocaleInfo *info) { CcInputChooserPrivate *priv = GET_PRIVATE (chooser); set_fixed_size (chooser); remove_all_children (GTK_CONTAINER (priv->list)); if (!info->back_row) { info->back_row = g_object_ref_sink (back_row_new (info->name)); g_object_set_data (G_OBJECT (info->back_row), "back", GINT_TO_POINTER (TRUE)); g_object_set_data (G_OBJECT (info->back_row), "locale-info", info); } gtk_container_add (GTK_CONTAINER (priv->list), GTK_WIDGET (info->back_row)); add_input_source_rows_for_locale (chooser, info); gtk_widget_show_all (priv->list); gtk_adjustment_set_value (priv->adjustment, gtk_adjustment_get_lower (priv->adjustment)); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list)); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->list), GTK_SELECTION_SINGLE); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (priv->list), FALSE); gtk_list_box_unselect_all (GTK_LIST_BOX (priv->list)); if (gtk_widget_is_visible (priv->filter_entry) && !gtk_widget_is_focus (priv->filter_entry)) gtk_widget_grab_focus (priv->filter_entry); }
gint main (gint argc, gchar *argv[]) { g_autoptr (DummyProvider) dummy_provider = NULL; GtdTaskModel *model = NULL; GtkWidget *scrolledwindow = NULL; GtkWindow *window = NULL; GtkWidget *listbox = NULL; g_set_prgname ("test-task-model"); g_set_application_name ("GNOME To Do | Task Model Test"); gtk_init (); gtd_log_init (); /* Create a DumbProvider and pre-populate it */ dummy_provider = dummy_provider_new (); dummy_provider_generate_task_lists (dummy_provider); /* Inject a dumb fake provider */ _gtd_manager_inject_provider (gtd_manager_get_default (), GTD_PROVIDER (dummy_provider)); /* Now create the model - the initial providers must be there already */ model = _gtd_task_model_new (gtd_manager_get_default ()); /* Listbox */ listbox = gtk_list_box_new (); gtk_list_box_bind_model (GTK_LIST_BOX (listbox), G_LIST_MODEL (model), create_task_cb, NULL, NULL); gtk_list_box_set_header_func (GTK_LIST_BOX (listbox), header_func, NULL, NULL); /* Scrolled window */ scrolledwindow = g_object_new (GTK_TYPE_SCROLLED_WINDOW, "propagate-natural-height", TRUE, "max-content-height", 600, "hscrollbar-policy", GTK_POLICY_NEVER, NULL); gtk_container_add (GTK_CONTAINER (scrolledwindow), listbox); /* Window */ window = GTK_WINDOW (gtk_window_new (GTK_WINDOW_TOPLEVEL)); gtk_window_set_default_size (window, 800, 600); gtk_container_add (GTK_CONTAINER (window), scrolledwindow); gtk_window_present (window); /* Now, generate more tasks and lists after injecting to the manager */ dummy_provider_generate_task_lists (dummy_provider); /* Schedule a live removal of tasks */ dummy_provider_schedule_remove_task (dummy_provider); gtk_main (); return 0; }
static void subtitle_def_selected_lang_list_clear(signal_user_data_t *ud) { GtkListBox *avail, *selected; avail = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_avail_lang")); selected = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_selected_lang")); gtk_container_foreach(GTK_CONTAINER(selected), subtitle_def_lang_list_clear_cb, (gpointer)avail); }
GtkWidget * cc_input_chooser_new (GtkWindow *main_window, GnomeXkbInfo *xkb_info, GHashTable *ibus_engines) { GtkBuilder *builder; GtkWidget *chooser; CcInputChooserPrivate *priv; gint width; GError *error = NULL; builder = gtk_builder_new (); if (gtk_builder_add_from_resource (builder, "/org/gnome/initial-setup/input-chooser.ui", &error) == 0) { g_object_unref (builder); g_warning ("failed to load input chooser: %s", error->message); g_error_free (error); return NULL; } chooser = WID ("input-dialog"); priv = g_new0 (CcInputChooserPrivate, 1); g_object_set_data_full (G_OBJECT (chooser), "private", priv, cc_input_chooser_private_free); g_object_set_data_full (G_OBJECT (chooser), "builder", builder, g_object_unref); priv->xkb_info = xkb_info; priv->ibus_engines = ibus_engines; priv->add_button = WID ("add-button"); priv->filter_entry = WID ("filter-entry"); priv->list = WID ("list"); priv->scrolledwindow = WID ("scrolledwindow"); priv->adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->scrolledwindow)); priv->more_item = g_object_ref_sink (more_widget_new ()); priv->no_results = g_object_ref_sink (no_results_widget_new ()); gtk_list_box_set_filter_func (GTK_LIST_BOX (priv->list), list_filter, chooser, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->list), list_sort, chooser, NULL); g_signal_connect (priv->list, "row-activated", G_CALLBACK (row_activated), chooser); g_signal_connect (priv->list, "row-selected", G_CALLBACK (row_selected), chooser); g_signal_connect_swapped (priv->filter_entry, "changed", G_CALLBACK (filter_changed), chooser); get_locale_infos (chooser); #ifdef HAVE_IBUS get_ibus_locale_infos (chooser); #endif /* HAVE_IBUS */ show_locale_widgets (chooser); /* Try to come up with a sensible width */ gtk_window_get_size (main_window, &width, NULL); gtk_widget_set_size_request (chooser, width * MAIN_WINDOW_WIDTH_RATIO, -1); gtk_window_set_resizable (GTK_WINDOW (chooser), TRUE); gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window); return chooser; }
GtkWidget * cc_search_locations_dialog_new (CcSearchPanel *self) { GtkWidget *locations_dialog, *widget, *list_box; GtkBuilder *dialog_builder; GError *error = NULL; dialog_builder = gtk_builder_new (); gtk_builder_add_from_resource (dialog_builder, "/org/gnome/control-center/search/search-locations-dialog.ui", &error); if (error != NULL) { g_warning ("Could not load interface file: %s", error->message); g_error_free (error); return NULL; } tracker_preferences = g_settings_new (TRACKER_SCHEMA); locations_dialog = GTK_WIDGET (gtk_builder_get_object (dialog_builder, "locations_dialog")); widget = GTK_WIDGET (gtk_builder_get_object (dialog_builder, "locations_scrolledwindow")); list_box = GTK_WIDGET (gtk_list_box_new ()); gtk_container_add (GTK_CONTAINER (widget), list_box); gtk_list_box_set_sort_func (GTK_LIST_BOX (list_box), (GtkListBoxSortFunc)place_compare_func, NULL, NULL); gtk_list_box_set_header_func (GTK_LIST_BOX (list_box), place_header_func, NULL, NULL); gtk_widget_show (list_box); widget = GTK_WIDGET (gtk_builder_get_object (dialog_builder, "locations_remove")); gtk_widget_set_sensitive (widget, FALSE); g_signal_connect (list_box, "row-selected", G_CALLBACK (list_box_row_selected), widget); g_signal_connect (widget, "clicked", G_CALLBACK (remove_button_clicked), list_box); g_signal_connect_swapped (tracker_preferences, "changed::" TRACKER_KEY_RECURSIVE_DIRECTORIES, G_CALLBACK (locations_dialog_refresh), list_box); widget = GTK_WIDGET (gtk_builder_get_object (dialog_builder, "locations_add")); g_signal_connect (widget, "clicked", G_CALLBACK (add_button_clicked), list_box); gtk_window_set_transient_for (GTK_WINDOW (locations_dialog), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self)))); g_signal_connect (locations_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (locations_dialog, "destroy", G_CALLBACK (locations_dialog_destroy), NULL); populate_list_box (list_box); g_object_unref (dialog_builder); return locations_dialog; }
GtkWidget * cc_language_chooser_new (GtkWidget *parent) { GtkBuilder *builder; GtkWidget *chooser; CcLanguageChooserPrivate *priv; GError *error = NULL; g_resources_register (cc_common_get_resource ()); builder = gtk_builder_new (); if (gtk_builder_add_from_resource (builder, "/org/gnome/control-center/common/language-chooser.ui", &error) == 0) { g_object_unref (builder); g_warning ("failed to load language chooser: %s", error->message); g_error_free (error); return NULL; } chooser = WID ("language-dialog"); priv = g_new0 (CcLanguageChooserPrivate, 1); g_object_set_data_full (G_OBJECT (chooser), "private", priv, cc_language_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 ("language-filter-entry"); priv->language_list = WID ("language-list"); priv->scrolledwindow = WID ("language-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); gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->language_list), sort_languages, chooser, NULL); gtk_list_box_set_filter_func (GTK_LIST_BOX (priv->language_list), language_visible, chooser, NULL); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->language_list), GTK_SELECTION_NONE); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->language_list), cc_list_box_update_header_func, NULL, NULL); add_all_languages (GTK_DIALOG (chooser)); g_signal_connect_swapped (priv->filter_entry, "search-changed", G_CALLBACK (filter_changed), chooser); g_signal_connect (priv->language_list, "row-activated", G_CALLBACK (row_activated), chooser); gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->language_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 subtitle_def_lang_list_init(signal_user_data_t *ud) { GValue *lang_list; // Clear selected languages. subtitle_def_selected_lang_list_clear(ud); lang_list = ghb_settings_get_value(ud->settings, "SubtitleLanguageList"); if (lang_list == NULL) { lang_list = ghb_array_value_new(8); ghb_settings_set_value(ud->settings, "SubtitleLanguageList", lang_list); } int ii, count; count = ghb_array_len(lang_list); for (ii = 0; ii < count; ) { GValue *lang_val = ghb_array_get_nth(lang_list, ii); int idx = ghb_lookup_audio_lang(lang_val); if (ii == 0) { const iso639_lang_t *lang; lang = ghb_iso639_lookup_by_int(idx); subtitle_update_pref_lang(ud, lang); } GtkListBox *avail, *selected; GtkListBoxRow *row; avail = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_avail_lang")); selected = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_selected_lang")); row = ghb_find_lang_row(avail, idx); if (row) { GtkWidget *label = gtk_bin_get_child(GTK_BIN(row)); g_object_ref(G_OBJECT(label)); gtk_widget_destroy(GTK_WIDGET(row)); gtk_widget_show(label); gtk_list_box_insert(selected, label, -1); ii++; } else { // Error in list. Probably duplicate languages. Remove // this item from the list. GValue *glang = ghb_array_get_nth(lang_list, ii); ghb_array_remove(lang_list, ii); ghb_value_free(glang); count--; } } if (count == 0) { subtitle_update_pref_lang(ud, NULL); } }
static void show_locale_rows (GtkWidget *chooser) { CcInputChooserPrivate *priv = GET_PRIVATE (chooser); GHashTable *initial = NULL; LocaleInfo *info; GHashTableIter iter; remove_all_children (GTK_CONTAINER (priv->list)); if (!priv->showing_extra) initial = cc_common_language_get_initial_languages (); g_hash_table_iter_init (&iter, priv->locales); while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &info)) { if (!info->default_input_source_row && !g_hash_table_size (info->layout_rows_by_id) && !g_hash_table_size (info->engine_rows_by_id)) continue; if (!info->locale_row) { info->locale_row = g_object_ref_sink (locale_row_new (info->name)); g_object_set_data (G_OBJECT (info->locale_row), "locale-info", info); if (!priv->showing_extra && !g_hash_table_contains (initial, info->id) && !is_current_locale (info->id)) g_object_set_data (G_OBJECT (info->locale_row), "is-extra", GINT_TO_POINTER (TRUE)); } gtk_container_add (GTK_CONTAINER (priv->list), GTK_WIDGET (info->locale_row)); } gtk_container_add (GTK_CONTAINER (priv->list), GTK_WIDGET (priv->more_row)); gtk_widget_show_all (priv->list); gtk_adjustment_set_value (priv->adjustment, gtk_adjustment_get_lower (priv->adjustment)); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->list), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->list)); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->list), GTK_SELECTION_NONE); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (priv->list), TRUE); if (gtk_widget_is_visible (priv->filter_entry) && !gtk_widget_is_focus (priv->filter_entry)) gtk_widget_grab_focus (priv->filter_entry); if (!priv->showing_extra) g_hash_table_destroy (initial); }
static void add_routes_section (CEPageIP4 *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_ip4_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_ip4_config_get_num_routes (page->setting); i++) { NMIP4Route *route; struct in_addr tmp_addr; gchar address[INET_ADDRSTRLEN + 1]; gchar netmask[INET_ADDRSTRLEN + 1]; gchar gateway[INET_ADDRSTRLEN + 1]; gint metric; route = nm_setting_ip4_config_get_route (page->setting, i); if (!route) continue; tmp_addr.s_addr = nm_ip4_route_get_dest (route); (void) inet_ntop (AF_INET, &tmp_addr, &address[0], sizeof (address)); tmp_addr.s_addr = nm_utils_ip4_prefix_to_netmask (nm_ip4_route_get_prefix (route)); (void) inet_ntop (AF_INET, &tmp_addr, &netmask[0], sizeof (netmask)); tmp_addr.s_addr = nm_ip4_route_get_next_hop (route); (void) inet_ntop (AF_INET, &tmp_addr, &gateway[0], sizeof (gateway)); metric = nm_ip4_route_get_metric (route); add_route_row (page, address, netmask, gateway, metric); } if (nm_setting_ip4_config_get_num_routes (page->setting) == 0) add_empty_route_row (page); gtk_widget_show_all (widget); }
static void gs_update_list_init (GsUpdateList *update_list) { GsUpdateListPrivate *priv = GET_PRIV (update_list); priv->sizegroup_image = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); priv->sizegroup_name = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_list_box_set_header_func (GTK_LIST_BOX (update_list), list_header_func, update_list, NULL); gtk_list_box_set_sort_func (GTK_LIST_BOX (update_list), list_sort_func, update_list, NULL); }
static void cc_language_chooser_constructed (GObject *object) { GtkBuilder *builder; CcLanguageChooser *chooser = CC_LANGUAGE_CHOOSER (object); CcLanguageChooserPrivate *priv = chooser->priv; GError *error = NULL; G_OBJECT_CLASS (cc_language_chooser_parent_class)->constructed (object); builder = gtk_builder_new (); if (gtk_builder_add_from_resource (builder, "/org/gnome/control-center/language-chooser.ui", &error) == 0) { g_object_unref (builder); g_warning ("failed to load language chooser: %s", error->message); g_error_free (error); return; } gtk_container_add (GTK_CONTAINER (chooser), WID ("language-chooser")); priv->filter_entry = WID ("language-filter-entry"); priv->language_list = WID ("language-list"); priv->more_item = more_widget_new (); priv->no_results = no_results_widget_new (); gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->language_list), sort_languages, chooser, NULL); gtk_list_box_set_filter_func (GTK_LIST_BOX (priv->language_list), language_visible, chooser, NULL); gtk_list_box_set_header_func (GTK_LIST_BOX (priv->language_list), update_header_func, chooser, NULL); gtk_list_box_set_selection_mode (GTK_LIST_BOX (priv->language_list), GTK_SELECTION_NONE); add_all_languages (chooser); g_signal_connect (priv->filter_entry, "changed", G_CALLBACK (filter_changed), chooser); g_signal_connect (priv->language_list, "row-activated", G_CALLBACK (row_activated), chooser); if (priv->language == NULL) priv->language = cc_common_language_get_current_language (); sync_all_checkmarks (chooser); g_object_unref (builder); }
static void add_address_section (CEPageIP6 *page) { GtkWidget *widget; GtkWidget *frame; GtkWidget *list; gint i; widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_section")); frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (widget), frame); page->address_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); add_section_toolbar (page, widget, G_CALLBACK (add_empty_address_row)); for (i = 0; i < nm_setting_ip6_config_get_num_addresses (page->setting); i++) { NMIP6Address *addr; const struct in6_addr *tmp_addr; gchar address[INET6_ADDRSTRLEN + 1]; gchar network[INET6_ADDRSTRLEN + 1]; gchar gateway[INET6_ADDRSTRLEN + 1]; addr = nm_setting_ip6_config_get_address (page->setting, i); if (!addr) continue; tmp_addr = nm_ip6_address_get_address (addr); (void) inet_ntop (AF_INET6, tmp_addr, &address[0], sizeof (address)); snprintf (network, sizeof (network), "%u", nm_ip6_address_get_prefix (addr)); tmp_addr = nm_ip6_address_get_gateway (addr); if (tmp_addr && !IN6_IS_ADDR_UNSPECIFIED (tmp_addr)) (void) inet_ntop (AF_INET6, tmp_addr, &gateway[0], sizeof (gateway)); else gateway[0] = '\0'; add_address_row (page, address, network, gateway); } if (nm_setting_ip6_config_get_num_addresses (page->setting) == 0) add_empty_address_row (page); gtk_widget_show_all (widget); }
G_MODULE_EXPORT void subtitle_remove_lang_clicked_cb(GtkWidget *widget, signal_user_data_t *ud) { GtkListBox *avail, *selected; GtkListBoxRow *row; GtkWidget *label; avail = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_avail_lang")); selected = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_selected_lang")); row = gtk_list_box_get_selected_row(selected); if (row != NULL) { gint index; GValue *lang_list; index = gtk_list_box_row_get_index(row); // Remove from UI selected language list box label = gtk_bin_get_child(GTK_BIN(row)); g_object_ref(G_OBJECT(label)); int idx = (intptr_t)g_object_get_data(G_OBJECT(label), "lang_idx"); gtk_widget_destroy(GTK_WIDGET(row)); gtk_widget_show(label); // Add to UI available language list box gtk_list_box_insert(avail, label, idx); // Remove from preset language list lang_list = ghb_settings_get_value(ud->settings, "SubtitleLanguageList"); GValue *glang = ghb_array_get_nth(lang_list, index); ghb_array_remove(lang_list, index); ghb_value_free(glang); ghb_clear_presets_selection(ud); if (ghb_array_len(lang_list) > 0) { const iso639_lang_t *lang; GValue *entry = ghb_array_get_nth(lang_list, 0); lang = ghb_iso639_lookup_by_int(ghb_lookup_audio_lang(entry)); subtitle_update_pref_lang(ud, lang); } else { subtitle_update_pref_lang(ud, NULL); } } }
static void set_locale_id (GtkDialog *chooser, const gchar *locale_id) { CcLanguageChooserPrivate *priv = GET_PRIVATE (chooser); GList *children, *l; children = gtk_container_get_children (GTK_CONTAINER (priv->language_list)); for (l = children; l; l = l->next) { GtkWidget *row = l->data; GtkWidget *check = g_object_get_data (G_OBJECT (row), "check"); const gchar *language = g_object_get_data (G_OBJECT (row), "locale-id"); if (check == NULL || language == NULL) continue; if (g_strcmp0 (locale_id, language) == 0) { gboolean is_extra; gtk_widget_set_opacity (check, 1.0); /* make sure the selected language is shown */ is_extra = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (row), "is-extra")); if (!priv->showing_extra && is_extra) { g_object_set_data (G_OBJECT (row), "is-extra", GINT_TO_POINTER (FALSE)); gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->language_list)); } } else { gtk_widget_set_opacity (check, 0.0); } } g_list_free (children); g_free (priv->language); priv->language = g_strdup (locale_id); }
void glade_gtk_listbox_set_child_property (GladeWidgetAdaptor *adaptor, GObject *container, GObject *child, const gchar *property_name, GValue *value) { g_return_if_fail (GTK_IS_LIST_BOX (container)); g_return_if_fail (GTK_IS_LIST_BOX_ROW (child)); g_return_if_fail (property_name != NULL || value != NULL); if (strcmp (property_name, "position") == 0) { gint position; position = g_value_get_int (value); glade_gtk_listbox_reorder (GTK_LIST_BOX (container), GTK_LIST_BOX_ROW (child), position); } else { /* Chain Up */ GWA_GET_CLASS (GTK_TYPE_CONTAINER)->child_set_property (adaptor, container, child, property_name, value); } }
gboolean cc_input_chooser_get_selected (GtkWidget *chooser, gchar **type, gchar **id, gchar **name) { CcInputChooserPrivate *priv = GET_PRIVATE (chooser); GtkListBoxRow *selected; const gchar *t, *i, *n; selected = gtk_list_box_get_selected_row (GTK_LIST_BOX (priv->list)); if (!selected) return FALSE; t = g_object_get_data (G_OBJECT (selected), "type"); i = g_object_get_data (G_OBJECT (selected), "id"); n = g_object_get_data (G_OBJECT (selected), "name"); if (!t || !i || !n) return FALSE; *type = g_strdup (t); *id = g_strdup (i); *name = g_strdup (n); return TRUE; }
static void on_remove_project_clicked (GtkButton *button, gpointer user_data) { GtkRecentManager *manager; GtkListBox *recent_list_box; GtkListBoxRow *row; GError *error; manager = gtk_recent_manager_get_default (); recent_list_box = GTK_LIST_BOX (user_data); row = gtk_list_box_get_selected_row (recent_list_box); error = NULL; if (row != NULL) { if (gtk_recent_manager_remove_item (manager, g_object_get_data (row, URI_KEY), &error)) { gtk_container_remove (GTK_CONTAINER (recent_list_box), row); } else { DEBUG_PRINT ("Could not remove recent item. %s", error->message); g_error_free (error); } } }
static void ide_editor_spell_widget__add_button_clicked_cb (IdeEditorSpellWidget *self, GtkButton *button) { const gchar *word; GtkWidget *item; GtkWidget *toplevel; GtkWidget *focused_widget; g_assert (IDE_IS_EDITOR_SPELL_WIDGET (self)); g_assert (GTK_IS_BUTTON (button)); word = gtk_entry_get_text (GTK_ENTRY (self->dict_word_entry)); /* TODO: check if word already in dict */ if (check_dict_available (self) && !ide_str_empty0 (word)) { if (!ide_editor_spell_dict_add_word_to_personal (self->dict, word)) return; item = dict_create_word_row (self, word); gtk_list_box_insert (GTK_LIST_BOX (self->dict_words_list), item, 0); toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self)); if (GTK_IS_WINDOW (toplevel) && NULL != (focused_widget = gtk_window_get_focus (GTK_WINDOW (toplevel)))) { if (focused_widget != GTK_WIDGET (self->word_entry) && focused_widget != self->dict_word_entry) gtk_widget_grab_focus (self->dict_word_entry); } gtk_entry_set_text (GTK_ENTRY (self->dict_word_entry), ""); } }
static GtkWidget* main_window() { GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Cheeseburger Machine"); gtk_container_set_border_width(GTK_CONTAINER(window), 10); GtkWidget* listbox = gtk_list_box_new(); gtk_list_box_set_selection_mode(GTK_LIST_BOX(listbox), GTK_SELECTION_NONE); gtk_container_add(GTK_CONTAINER(window), listbox); // Re-use variables so we're not making row1, row2, and such. GtkWidget *row, *box, *label; // Checkbox row = gtk_list_box_row_new(); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 100); gtk_container_add(GTK_CONTAINER(row), box); label = gtk_label_new("Check if you love cheeseburgers:"); GtkWidget* check = gtk_check_button_new(); gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(box), check, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(listbox), row); // Toggle Switch row = gtk_list_box_row_new(); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 100); gtk_container_add(GTK_CONTAINER(row), box); label = gtk_label_new("Burger making machine`:"); GtkWidget* switcher = gtk_switch_new(); gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(box), switcher, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(listbox), row); return window; }
static void add_languages (CcLanguageChooser *chooser, char **locale_ids, GHashTable *initial) { CcLanguageChooserPrivate *priv = chooser->priv; while (*locale_ids) { const gchar *locale_id; gboolean is_initial; GtkWidget *widget; locale_id = *locale_ids; locale_ids ++; if (!cc_common_language_has_font (locale_id)) continue; is_initial = (g_hash_table_lookup (initial, locale_id) != NULL); widget = language_widget_new (locale_id, !is_initial); gtk_container_add (GTK_CONTAINER (priv->language_list), widget); } gtk_container_add (GTK_CONTAINER (priv->language_list), priv->more_item); gtk_list_box_set_placeholder (GTK_LIST_BOX (priv->language_list), priv->no_results); gtk_widget_show_all (priv->language_list); }
static void pocketvox_setup_get_modules_grid(PocketvoxSetup *setup) { setup->priv = G_TYPE_INSTANCE_GET_PRIVATE (setup, TYPE_POCKETVOX_SETUP, PocketvoxSetupPrivate); PocketvoxSetupPrivate *priv = setup->priv; GVariant *modules; GVariantIter *iter; gchar *key, *value; gboolean isapps; priv->listBox = gtk_list_box_new(); GtkWidget *ph_widget = gtk_label_new("Add your modules"); gtk_label_set_markup(GTK_LABEL(ph_widget), _("<b><b><big> ADD YOUR MODULES </big></b></b>")); gtk_widget_show(ph_widget); gtk_list_box_set_placeholder(GTK_LIST_BOX(priv->listBox),ph_widget); //only need to connect signals modules = g_settings_get_value(priv->settings, "list-apps"); //get the content of the GVariant g_variant_get(modules, "a(ssb)", &iter); //loop other all apps while(g_variant_iter_loop(iter, "(ssb)", &key, &value, &isapps)) { pocketvox_setup_add_module(setup, key, value, isapps); } g_variant_iter_free(iter); }
void ghb_init_subtitle_defaults_ui(signal_user_data_t *ud) { GtkListBox *list_box; list_box = GTK_LIST_BOX(GHB_WIDGET(ud->builder, "subtitle_avail_lang")); ghb_init_lang_list_box(list_box); }
static void add_address_section (CEPageIP4 *page) { GtkWidget *widget; GtkWidget *frame; GtkWidget *list; gint i; widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_section")); frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (widget), frame); page->address_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); add_section_toolbar (page, widget, G_CALLBACK (add_empty_address_row)); for (i = 0; i < nm_setting_ip4_config_get_num_addresses (page->setting); i++) { NMIP4Address *addr; struct in_addr tmp_addr; gchar address[INET_ADDRSTRLEN + 1]; gchar network[INET_ADDRSTRLEN + 1]; gchar gateway[INET_ADDRSTRLEN + 1]; addr = nm_setting_ip4_config_get_address (page->setting, i); if (!addr) continue; tmp_addr.s_addr = nm_ip4_address_get_address (addr); (void) inet_ntop (AF_INET, &tmp_addr, &address[0], sizeof (address)); tmp_addr.s_addr = nm_utils_ip4_prefix_to_netmask (nm_ip4_address_get_prefix (addr)); (void) inet_ntop (AF_INET, &tmp_addr, &network[0], sizeof (network)); tmp_addr.s_addr = nm_ip4_address_get_gateway (addr); (void) inet_ntop (AF_INET, &tmp_addr, &gateway[0], sizeof (gateway)); add_address_row (page, address, network, gateway); } if (nm_setting_ip4_config_get_num_addresses (page->setting) == 0) add_empty_address_row (page); gtk_widget_show_all (widget); }
void glade_gtk_listbox_remove_child (GladeWidgetAdaptor *adaptor, GObject *object, GObject *child) { gtk_container_remove (GTK_CONTAINER (object), GTK_WIDGET (child)); sync_row_positions (GTK_LIST_BOX (object)); }
static gboolean search_timeout_cb (EmpathyRosterView *self) { gtk_list_box_invalidate_filter (GTK_LIST_BOX (self)); select_first_contact (self); self->priv->search_id = 0; return G_SOURCE_REMOVE; }
static void cc_ua_panel_init_hearing (CcUaPanel *self) { CcUaPanelPrivate *priv = self->priv; GtkWidget *list; GtkWidget *dialog; list = WID ("list_hearing"); add_section (list, self); add_separators (GTK_LIST_BOX (list)); g_signal_connect_swapped (list, "row-activated", G_CALLBACK (activate_row), self); /* set the initial visual bell values */ visual_bell_type_notify_cb (NULL, NULL, self); /* and listen */ g_settings_bind (priv->wm_settings, KEY_VISUAL_BELL_ENABLED, WID ("visual_alerts_switch"), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind_with_mapping (priv->wm_settings, KEY_VISUAL_BELL_ENABLED, WID ("value_visual_alerts"), "label", G_SETTINGS_BIND_GET, on_off_label_mapping_get, NULL, NULL, NULL); g_object_bind_property (WID ("visual_alerts_switch"), "active", WID ("visual_alerts_window_radio"), "sensitive", G_BINDING_SYNC_CREATE); g_object_bind_property (WID ("visual_alerts_switch"), "active", WID ("visual_alerts_screen_radio"), "sensitive", G_BINDING_SYNC_CREATE); g_signal_connect (priv->wm_settings, "changed::" KEY_VISUAL_BELL_TYPE, G_CALLBACK (visual_bell_type_notify_cb), self); g_signal_connect (WID ("visual_alerts_window_radio"), "toggled", G_CALLBACK (visual_bell_type_toggle_cb), self); dialog = WID ("visual_alerts_dialog"); g_object_set_data (G_OBJECT (WID ("row_visual_alerts")), "dialog", dialog); g_signal_connect_swapped (WID ("visual_alerts_done"), "clicked", G_CALLBACK (gtk_widget_hide), dialog); g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); g_signal_connect (WID ("visual_alerts_test_button"), "clicked", G_CALLBACK (gdk_beep), NULL); g_signal_connect (WID ("heading_visual_alerts"), "mnemonic-activate", G_CALLBACK (mnemonic_activate), self); }