4 #include <gdk/gdkkeysyms.h>
6 #include "aweather-gui.h"
7 #include "aweather-view.h"
12 G_DEFINE_TYPE(AWeatherGui, aweather_gui, G_TYPE_OBJECT);
14 /* Constructor / destructors */
15 static void aweather_gui_init(AWeatherGui *gui)
17 g_message("aweather_gui_init");
26 static GObject *aweather_gui_constructor(GType gtype, guint n_properties,
27 GObjectConstructParam *properties)
29 g_message("aweather_gui_constructor");
30 GObjectClass *parent_class = G_OBJECT_CLASS(aweather_gui_parent_class);
31 return parent_class->constructor(gtype, n_properties, properties);
34 static void aweather_gui_dispose (GObject *gobject)
36 g_message("aweather_gui_dispose");
37 AWeatherGui *gui = AWEATHER_GUI(gobject);
38 g_object_unref(gui->view );
39 g_object_unref(gui->builder);
40 g_object_unref(gui->window );
41 g_object_unref(gui->tabs );
42 g_object_unref(gui->drawing);
43 G_OBJECT_CLASS(aweather_gui_parent_class)->dispose(gobject);
46 static void aweather_gui_finalize(GObject *gobject)
48 g_message("aweather_gui_finalize");
49 G_OBJECT_CLASS(aweather_gui_parent_class)->finalize(gobject);
52 static void aweather_gui_class_init(AWeatherGuiClass *klass)
54 g_message("aweather_gui_class_init");
55 GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
56 gobject_class->constructor = aweather_gui_constructor;
57 gobject_class->dispose = aweather_gui_dispose;
58 gobject_class->finalize = aweather_gui_finalize;
62 AWeatherGui *aweather_gui_new()
64 g_message("aweather_gui_new");
67 AWeatherGui *gui = g_object_new(AWEATHER_TYPE_GUI, NULL);
69 gui->builder = gtk_builder_new();
70 if (!gtk_builder_add_from_file(gui->builder, DATADIR "/aweather/aweather.xml", &error))
71 g_error("Failed to create gtk builder: %s", error->message);
72 gui->view = aweather_view_new();
73 gui->window = GTK_WINDOW (gtk_builder_get_object(gui->builder, "window"));
74 gui->tabs = GTK_NOTEBOOK (gtk_builder_get_object(gui->builder, "tabs"));
75 gui->drawing = GTK_DRAWING_AREA(gtk_builder_get_object(gui->builder, "drawing"));
76 gtk_builder_connect_signals(gui->builder, NULL);
79 AWeatherView *aweather_gui_get_view(AWeatherGui *gui)
83 GtkBuilder *aweather_gui_get_builder(AWeatherGui *gui)
87 GtkWindow *aweather_gui_get_window(AWeatherGui *gui)
91 GtkNotebook *aweather_gui_get_tabs(AWeatherGui *gui)
95 GtkDrawingArea *aweather_gui_get_drawing(AWeatherGui *gui)
100 //void aweather_gui_register_plugin(AWeatherGui *gui, AWeatherPlugin *plugin);
102 /************************
103 * GtkBuilder callbacks *
104 ************************/
105 gboolean on_window_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
107 if (event->keyval == GDK_q)
112 void on_site_changed() {
113 g_message("site changed");