9 void onAddButtonPress (GtkWidget
*entry
, gpointer data
)
11 add_entry("<< NEW >>");
14 void add_entry(gchar
*txt
) {
15 /* ignore if entry is empty */
20 GtkWidget
*treeview
= glade_xml_get_widget(xml
, "treeviewWords");
22 model
= gtk_tree_view_get_model(GTK_TREE_VIEW(treeview
));
24 gtk_list_store_append(GTK_LIST_STORE(model
), &newrow
);
26 gtk_list_store_set(GTK_LIST_STORE(model
), &newrow
, COL_TEXT
, txt
, -1);
28 g_debug("n-columns: %d", gtk_tree_model_iter_n_children(model
, NULL
));
34 GtkWidget *treeview = glade_xml_get_widget(xml, "treeviewWords");
36 model = gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
38 gtk_tree_model_get_iter_first(model, &parent);
46 void onDelButtonPress (GtkWidget
*button
, gpointer data
)
48 GtkTreeSelection
*sel
;
50 GtkTreeIter selected_row
;
51 GtkWidget
*treeview
= glade_xml_get_widget(xml
, "treeviewWords");
53 sel
= gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview
));
55 g_assert(gtk_tree_selection_get_mode(sel
) == GTK_SELECTION_SINGLE
);
57 if (gtk_tree_selection_get_selected(sel
, &model
, &selected_row
))
59 gtk_list_store_remove(GTK_LIST_STORE(model
), &selected_row
);
63 /* If no row is selected, the button should
64 * * not be clickable in the first place */
65 g_assert_not_reached();
69 void on_treeview_edited (GtkCellRendererText
*celltext
,
70 const gchar
*string_path
, const gchar
*new_text
, gpointer data
) {
72 GtkTreeModel
*model
= GTK_TREE_MODEL(data
);
74 gtk_tree_model_get_iter_from_string(model
, &iter
, string_path
);
75 gtk_list_store_set(GTK_LIST_STORE(model
), &iter
, COL_TEXT
, new_text
, -1);
78 void create_list_view() {
79 GtkCellRenderer
*renderer
;
80 GtkTreeViewColumn
*col
;
81 GtkTreeSelection
*sel
;
82 GtkListStore
*liststore
;
84 GtkWidget
*view
= glade_xml_get_widget(xml
, "treeviewWords");
86 liststore
= gtk_list_store_new(NUM_COLS
, G_TYPE_STRING
); /* NUM_COLS = 1 */
89 gtk_tree_view_set_model(GTK_TREE_VIEW(view
), GTK_TREE_MODEL(liststore
));
91 renderer
= gtk_cell_renderer_text_new();
92 g_object_set(renderer
, "editable", TRUE
, NULL
);
93 g_signal_connect(renderer
, "edited", G_CALLBACK(on_treeview_edited
), GTK_TREE_MODEL(liststore
));
95 col
= gtk_tree_view_column_new();
97 gtk_tree_view_column_pack_start(col
, renderer
, TRUE
);
98 gtk_tree_view_column_add_attribute(col
, renderer
, "text", COL_TEXT
);
99 gtk_tree_view_column_set_title(col
, " Mandarin ");
101 gtk_tree_view_append_column(GTK_TREE_VIEW(view
), col
);
103 sel
= gtk_tree_view_get_selection(GTK_TREE_VIEW(view
));
104 gtk_tree_selection_set_mode(sel
, GTK_SELECTION_SINGLE
);
107 void create_word_lists() {
108 GError
*errDirOpen
= NULL
;
109 GDir
*dirExamples
= g_dir_open(TESTPATH
, 0, &errDirOpen
);
110 if (errDirOpen
== NULL
) {
112 while ((current
= g_dir_read_name (dirExamples
)) != NULL
) {
113 /* Voeg aan menu toe */