Update minder code nodig, handel GUI hide zaken gewoon even af in glade.
[sgc.git] / editor.c
blobfcd99614d34f87aa1768d54a4ed5312f9f428ad9
1 #include "sgc.h"
3 enum
5 COL_TEXT = 0,
6 NUM_COLS
7 };
9 void onAddButtonPress (GtkWidget *entry, gpointer data)
11 GtkWidget *treeview = glade_xml_get_widget(xml, "treeviewWords");
13 add_entry("<< NEW >>");
16 void add_entry(gchar *txt) {
17 /* ignore if entry is empty */
18 if (txt && *txt)
20 GtkTreeModel *model;
21 GtkTreeIter newrow;
22 GtkWidget *treeview = glade_xml_get_widget(xml, "treeviewWords");
24 model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
26 gtk_list_store_append(GTK_LIST_STORE(model), &newrow);
28 gtk_list_store_set(GTK_LIST_STORE(model), &newrow, COL_TEXT, txt, -1);
30 g_debug("n-columns: %d", gtk_tree_model_iter_n_children(model, NULL));
33 /* {
34 GtkTreeModel *model;
35 GtkTreeIter parent;
36 GtkWidget *treeview = glade_xml_get_widget(xml, "treeviewWords");
38 model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
40 gtk_tree_model_get_iter_first(model, &parent);
42 }*/
48 void onDelButtonPress (GtkWidget *button, gpointer data)
50 GtkTreeSelection *sel;
51 GtkTreeModel *model;
52 GtkTreeIter selected_row;
53 GtkWidget *treeview = glade_xml_get_widget(xml, "treeviewWords");
55 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
57 g_assert(gtk_tree_selection_get_mode(sel) == GTK_SELECTION_SINGLE);
59 if (gtk_tree_selection_get_selected(sel, &model, &selected_row))
61 gtk_list_store_remove(GTK_LIST_STORE(model), &selected_row);
63 else
65 /* If no row is selected, the button should
66 * * not be clickable in the first place */
67 g_assert_not_reached();
71 void on_treeview_edited (GtkCellRendererText *celltext,
72 const gchar *string_path, const gchar *new_text, gpointer data) {
74 GtkTreeModel *model = GTK_TREE_MODEL(data);
75 GtkTreeIter iter;
76 gtk_tree_model_get_iter_from_string(model, &iter, string_path);
77 gtk_list_store_set(GTK_LIST_STORE(model), &iter, COL_TEXT, new_text, -1);
80 void create_list_view() {
81 GtkCellRenderer *renderer;
82 GtkTreeViewColumn *col;
83 GtkTreeSelection *sel;
84 GtkListStore *liststore;
86 GtkWidget *view = glade_xml_get_widget(xml, "treeviewWords");
88 liststore = gtk_list_store_new(NUM_COLS, G_TYPE_STRING); /* NUM_COLS = 1 */
91 gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(liststore));
93 renderer = gtk_cell_renderer_text_new();
94 g_object_set(renderer, "editable", TRUE, NULL);
95 g_signal_connect(renderer, "edited", G_CALLBACK(on_treeview_edited), GTK_TREE_MODEL(liststore));
97 col = gtk_tree_view_column_new();
99 gtk_tree_view_column_pack_start(col, renderer, TRUE);
100 gtk_tree_view_column_add_attribute(col, renderer, "text", COL_TEXT);
101 gtk_tree_view_column_set_title(col, " Mandarin ");
103 gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
105 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
106 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
108 g_debug("I was here\n");