static void encodings_list_changed_cb (TerminalApp *app, EncodingDialogData *data) { gtk_list_store_clear (data->base_store); g_hash_table_foreach (terminal_app_get_encodings (app), (GHFunc) liststore_insert_encoding, data->base_store); }
static void init_encodings_combo (GtkWidget *widget) { GtkCellRenderer *renderer; GHashTableIter ht_iter; gpointer key, value; gs_unref_object GtkListStore *store; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); g_hash_table_iter_init (&ht_iter, terminal_app_get_encodings (terminal_app_get ())); while (g_hash_table_iter_next (&ht_iter, &key, &value)) { TerminalEncoding *encoding = value; GtkTreeIter iter; gs_free char *name; name = g_markup_printf_escaped ("%s <span size=\"small\">%s</span>", terminal_encoding_get_charset (encoding), encoding->name); gtk_list_store_insert_with_values (store, &iter, -1, ENCODINGS_COLUMN_MARKUP, name, ENCODINGS_COLUMN_ID, terminal_encoding_get_charset (encoding), -1); } /* Now turn on sorting */ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), ENCODINGS_COLUMN_MARKUP, GTK_SORT_ASCENDING); gtk_combo_box_set_id_column (GTK_COMBO_BOX (widget), ENCODINGS_COLUMN_ID); gtk_combo_box_set_model (GTK_COMBO_BOX (widget), GTK_TREE_MODEL (store)); /* Cell renderer */ renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (widget), renderer, "markup", ENCODINGS_COLUMN_MARKUP, NULL); }