diff options
Diffstat (limited to 'gtk/cookies.c')
-rw-r--r-- | gtk/cookies.c | 116 |
1 files changed, 56 insertions, 60 deletions
diff --git a/gtk/cookies.c b/gtk/cookies.c index cb59d0ae8..7b21dc9b5 100644 --- a/gtk/cookies.c +++ b/gtk/cookies.c @@ -32,12 +32,11 @@ #include "gtk/plotters.h" #include "gtk/scaffolding.h" #include "gtk/treeview.h" - -#define GLADE_NAME "cookies.glade" +#include "gtk/resources.h" #define MENUPROTO(x) static gboolean nsgtk_on_##x##_activate( \ GtkMenuItem *widget, gpointer g) -#define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) } +#define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) } #define MENUHANDLER(x) gboolean nsgtk_on_##x##_activate(GtkMenuItem *widget, \ gpointer g) @@ -46,8 +45,6 @@ struct menu_events { GCallback handler; }; -static void nsgtk_cookies_init_menu(void); - /* edit menu */ MENUPROTO(delete_selected); MENUPROTO(delete_all); @@ -64,98 +61,97 @@ MENUPROTO(collapse_cookies); static struct menu_events menu_events[] = { - + /* edit menu */ MENUEVENT(delete_selected), MENUEVENT(delete_all), MENUEVENT(select_all), MENUEVENT(clear_selection), - + /* view menu*/ MENUEVENT(expand_all), MENUEVENT(expand_domains), - MENUEVENT(expand_cookies), + MENUEVENT(expand_cookies), MENUEVENT(collapse_all), MENUEVENT(collapse_domains), MENUEVENT(collapse_cookies), - + {NULL, NULL} }; -static struct nsgtk_treeview *cookies_window; -static GtkBuilder *gladeFile; +static struct nsgtk_treeview *cookies_treeview; +static GtkBuilder *cookie_builder; GtkWindow *wndCookies; /** - * Creates the window for the cookies tree. + * Connects menu events in the cookies window. */ -bool nsgtk_cookies_init(const char *glade_file_location) +static void nsgtk_cookies_init_menu(void) +{ + struct menu_events *event = menu_events; + GtkWidget *w; + + while (event->widget != NULL) { + w = GTK_WIDGET(gtk_builder_get_object(cookie_builder, event->widget)); + if (w == NULL) { + LOG("Unable to connect menu widget ""%s""", event->widget); } else { + g_signal_connect(G_OBJECT(w), "activate", event->handler, cookies_treeview); + } + event++; + } +} + +/* exported interface documented in gtk/cookies.h */ +nserror nsgtk_cookies_init(void) { - GtkWindow *window; GtkScrolledWindow *scrolled; GtkDrawingArea *drawing_area; + nserror res; - GError* error = NULL; - gladeFile = gtk_builder_new (); - if (!gtk_builder_add_from_file(gladeFile, glade_file_location, &error)) { - g_warning ("Couldn't load builder file: %s", error->message); - g_error_free (error); - return false; + res = nsgtk_builder_new_from_resname("cookies", &cookie_builder); + if (res != NSERROR_OK) { + LOG("Cookie UI builder init failed"); + return res; } - - gtk_builder_connect_signals(gladeFile, NULL); - - wndCookies = GTK_WINDOW(gtk_builder_get_object(gladeFile, "wndCookies")); - window = wndCookies; - - scrolled = GTK_SCROLLED_WINDOW(gtk_builder_get_object(gladeFile, + + gtk_builder_connect_signals(cookie_builder, NULL); + + wndCookies = GTK_WINDOW(gtk_builder_get_object(cookie_builder, + "wndCookies")); + + scrolled = GTK_SCROLLED_WINDOW(gtk_builder_get_object(cookie_builder, "cookiesScrolled")); - drawing_area = GTK_DRAWING_AREA(gtk_builder_get_object(gladeFile, + drawing_area = GTK_DRAWING_AREA(gtk_builder_get_object(cookie_builder, "cookiesDrawingArea")); - - cookies_window = nsgtk_treeview_create(TREE_COOKIES, window, - scrolled, drawing_area); - - if (cookies_window == NULL) - return false; - + + cookies_treeview = nsgtk_treeview_create(TREE_COOKIES, + wndCookies, + scrolled, + drawing_area); + if (cookies_treeview == NULL) { + return NSERROR_INIT_FAILED; + } + #define CONNECT(obj, sig, callback, ptr) \ - g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) - - CONNECT(window, "delete_event", gtk_widget_hide_on_delete, NULL); - CONNECT(window, "hide", nsgtk_tree_window_hide, cookies_window); - - nsgtk_cookies_init_menu(); + g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) - return true; -} + CONNECT(wndCookies, "delete_event", gtk_widget_hide_on_delete, NULL); + CONNECT(wndCookies, "hide", nsgtk_tree_window_hide, cookies_treeview); -/** - * Connects menu events in the cookies window. - */ -void nsgtk_cookies_init_menu() -{ - struct menu_events *event = menu_events; - GtkWidget *w; + nsgtk_cookies_init_menu(); - while (event->widget != NULL) { - w = GTK_WIDGET(gtk_builder_get_object(gladeFile, event->widget)); - if (w == NULL) { - LOG("Unable to connect menu widget ""%s""", event->widget); } else { - g_signal_connect(G_OBJECT(w), "activate", event->handler, cookies_window); - } - event++; - } + return NSERROR_OK; } + /** * Destroys the cookies window and performs any other necessary cleanup actions. */ void nsgtk_cookies_destroy(void) { - /* TODO: what about gladeFile? */ - nsgtk_treeview_destroy(cookies_window); + /** \todo what about cookie_builder? */ + nsgtk_treeview_destroy(cookies_treeview); } |