Even tussendoor
[sgc.git] / editor.c
blob47308728b17670158aab47013b28bd2738fe9bd8
1 #include "sgc.h"
3 enum
5 COL_TEXT = 0,
6 NUM_COLS
7 };
9 void onAddButtonPress (GtkWidget *entry, gpointer data)
11 add_entry("<< NEW >>");
14 void add_entry(gchar *txt) {
15 /* ignore if entry is empty */
16 if (txt && *txt)
18 GtkTreeModel *model;
19 GtkTreeIter newrow;
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));
31 /* {
32 GtkTreeModel *model;
33 GtkTreeIter parent;
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);
40 }*/
46 void onDelButtonPress (GtkWidget *button, gpointer data)
48 GtkTreeSelection *sel;
49 GtkTreeModel *model;
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);
61 else
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);
73 GtkTreeIter iter;
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) {
111 gchar *current;
112 while ((current = g_dir_read_name (dirExamples)) != NULL) {
113 /* Voeg aan menu toe */