summaryrefslogtreecommitdiffstats
path: root/lassi-prefs.c
blob: 50d1c132a212c546a6f2f01fe05bf2326d7b5d86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <string.h>

#include "lassi-prefs.h"
#include "lassi-server.h"

static void on_add_button_clicked(GtkButton *widget, LassiPrefsInfo *i) {
}

static void on_remove_button_clicked(GtkButton *widget, LassiPrefsInfo *i) {
}

static void on_up_button_clicked(GtkButton *widget, LassiPrefsInfo *i) {
}

static void on_down_button_clicked(GtkButton *widget, LassiPrefsInfo *i) {
}

static void on_close_button_clicked(GtkButton *widget, LassiPrefsInfo *i) {
    gtk_widget_hide(GTK_WIDGET(i->dialog));
}


int lassi_prefs_init(LassiPrefsInfo *i, LassiServer *server) {
    g_assert(i);
    g_assert(server);

    memset(i, 0, sizeof(*i));
    i->server = server;

    i->xml = glade_xml_new("mango-lassi.glade", NULL, NULL);

    i->dialog = glade_xml_get_widget(i->xml, "preferences_dialog");
    i->up_button = glade_xml_get_widget(i->xml, "up_button");
    i->down_button = glade_xml_get_widget(i->xml, "down_button");
    i->add_button = glade_xml_get_widget(i->xml, "add_button");
    i->remove_button = glade_xml_get_widget(i->xml, "remove_button");
    i->tree_view = glade_xml_get_widget(i->xml, "tree_view");
    
    glade_xml_signal_connect_data(i->xml, "on_add_button_clicked", (GCallback) on_add_button_clicked, i);
    glade_xml_signal_connect_data(i->xml, "on_remove_button_clicked", (GCallback) on_remove_button_clicked, i);
    glade_xml_signal_connect_data(i->xml, "on_up_button_clicked", (GCallback) on_up_button_clicked, i);
    glade_xml_signal_connect_data(i->xml, "on_down_button_clicked", (GCallback) on_down_button_clicked, i);

    glade_xml_signal_connect_data(i->xml, "on_close_button_clicked", (GCallback) on_close_button_clicked, i);

    g_signal_connect(G_OBJECT(i->dialog), "delete_event", G_CALLBACK(gtk_widget_hide_on_delete), NULL);
    
    i->list_store = gtk_list_store_new(1, G_TYPE_STRING);

    return 0;
}

void lassi_prefs_show(LassiPrefsInfo *i) {
    g_assert(i);

    gtk_window_present(GTK_WINDOW(i->dialog));
}

void lassi_prefs_done(LassiPrefsInfo *i) {
    g_assert(i);

    g_object_unref(G_OBJECT(i->xml));
    g_object_unref(G_OBJECT(i->list_store));
    
    memset(i, 0, sizeof(*i));
}