Merge branch 'master' of git+ssh://repo.or.cz/srv/git/sgc
[sgc.git] / signals-realize.c
blob788f4098b998deab19485bf8c8bfcfa73e199f91
1 #include "sgc.h"
3 /* This file contains all code that is required to initiate the widgets.
4 * And should be linked to from Glade
5 */
7 void on_filechooserdialog_realize(GtkWidget *widget, gpointer user_data){
8 GtkFileFilter *filter;
10 filter = gtk_file_filter_new ();
11 gtk_file_filter_add_pattern (filter, "*.sgc");
12 gtk_file_filter_add_pattern (filter, "*.txt");
13 gtk_file_filter_add_pattern (filter, "*.zip");
14 gtk_file_filter_set_name (filter, _("All Loadable Files"));
15 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(widget), filter);
17 filter = gtk_file_filter_new ();
18 gtk_file_filter_add_pattern (filter, "*.sgc");
19 gtk_file_filter_set_name (filter, _("SGC Distribution (*.sgc)"));
20 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(widget), filter);
22 filter = gtk_file_filter_new ();
23 gtk_file_filter_add_pattern (filter, "*.txt");
24 gtk_file_filter_set_name (filter, _("Plain Text (*.txt)"));
25 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(widget), filter);
27 filter = gtk_file_filter_new ();
28 gtk_file_filter_add_pattern (filter, "*.zip");
29 gtk_file_filter_set_name (filter, _("Zip File (*.zip)"));
30 gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(widget), filter);
34 void adder(gchar *dir, GtkWidget *menu) {
35 GDir *dirExamples = g_dir_open(dir, 0, NULL);
36 if (dirExamples != NULL) {
37 const gchar *current;
38 while ((current = g_dir_read_name (dirExamples)) != NULL) {
39 gchar *path = g_build_path(G_DIR_SEPARATOR_S, dir, current, "wordlist.txt", NULL);
40 g_debug("%s", path);
41 if (g_file_test(path, G_FILE_TEST_EXISTS) == TRUE) {
42 GtkWidget *item = gtk_image_menu_item_new_with_label(g_strdup(current));
43 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
44 g_signal_connect_data(item, "activate", G_CALLBACK(fileOpen), path, (GClosureNotify)g_free, G_CONNECT_SWAPPED);
45 gtk_menu_shell_prepend (GTK_MENU_SHELL(menu), item);
48 gtk_widget_show_all(GTK_WIDGET(menu));
52 void on_menuWordlists_realize(GtkWidget *menu, gpointer user_data) {
53 gchar *dir, *cwd;
54 dir = g_build_path(G_DIR_SEPARATOR_S, g_getenv(STORAGE), STOREAS, WORDLISTS, NULL);
55 adder(dir, menu);
56 free(dir);
57 cwd = g_get_current_dir();
58 dir = g_build_path(G_DIR_SEPARATOR_S, cwd, WORDLISTS, NULL);
59 free(cwd);
60 adder(dir, menu);
61 free(dir);
64 void on_windowMain_realize(GtkWidget *widget, gpointer user_data) {
65 GtkCellRenderer *renderer;
66 GtkTreeViewColumn *col;
67 GtkTreeSelection *sel;
68 GtkWidget *view = glade_xml_get_widget(xml, "treeviewWords");
70 liststore = gtk_list_store_new(NUM_COLS, G_TYPE_STRING); /* NUM_COLS = 1 */
72 gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(liststore));
74 renderer = gtk_cell_renderer_text_new();
76 g_object_set(renderer, "editable", TRUE, NULL);
77 g_signal_connect(renderer, "edited", G_CALLBACK(on_treeview_edited), GTK_TREE_MODEL(liststore));
79 col = gtk_tree_view_column_new();
81 gtk_tree_view_column_pack_start(col, renderer, TRUE);
82 gtk_tree_view_column_add_attribute(col, renderer, "text", COL_TEXT);
83 gtk_tree_view_column_set_title(col, _(" Mandarin "));
85 gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
87 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
88 gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
90 configOpen();
93 void removeRecordings() {
94 GDir *record;
95 gchar *file = g_build_filename(SCRIPTPATH, "lastExample.wav", NULL);
96 g_unlink(file);
97 g_free(file);
98 if ((record = g_dir_open(RECORDPATH, 0, NULL)) != NULL) {
99 const gchar *name;
100 while ((name = g_dir_read_name(record)) != NULL) {
101 if (g_str_has_suffix(name, ".wav") || g_str_has_suffix(name, ".Pitch") || g_str_has_suffix(name, ".PitchTier")) {
102 file = g_build_filename(RECORDPATH, name, NULL);
103 g_unlink(file);
104 g_free(file);
107 g_dir_close(record);