]> Pileus Git - grits/blob - src/aweather.c
switching to glade
[grits] / src / aweather.c
1 #include <config.h>
2 #include <gtk/gtk.h>
3 #include <gtk/gtkgl.h>
4 #include <gdk/gdkkeysyms.h>
5
6 #include "opengl.h"
7 #include "plugin-radar.h"
8 #include "plugin-ridge.h"
9 #include "plugin-example.h"
10
11 gboolean on_window_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
12 {
13         if (event->keyval == GDK_q)
14                 gtk_main_quit();
15         return TRUE;
16 }
17
18 int main(int argc, char *argv[])
19 {
20
21         gtk_init(&argc, &argv);
22         gtk_gl_init(&argc, &argv);
23
24         GError *error = NULL;
25         GtkBuilder *builder = gtk_builder_new();
26         if (!gtk_builder_add_from_file(builder, DATADIR "/aweather/aweather.xml", &error))
27                 g_error("Failed to create gtk builder: %s", error->message);
28         gtk_builder_connect_signals(builder, NULL);
29
30         GtkWidget  *window  = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
31         GtkWidget  *drawing = GTK_WIDGET(gtk_builder_get_object(builder, "drawing"));
32         GtkWidget  *tabs    = GTK_WIDGET(gtk_builder_get_object(builder, "tabs"));
33         if (window  == NULL) g_error("window  is null");
34         if (drawing == NULL) g_error("drawing is null");
35         if (tabs    == NULL) g_error("tabs    is null");
36
37         /* Set up darwing area */
38         GdkGLConfig *glconfig = gdk_gl_config_new_by_mode(
39                         GDK_GL_MODE_RGBA   | GDK_GL_MODE_DEPTH |
40                         GDK_GL_MODE_DOUBLE | GDK_GL_MODE_ALPHA);
41         if (!glconfig)
42                 g_assert_not_reached();
43         if (!gtk_widget_set_gl_capability(drawing, glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE))
44                 g_assert_not_reached();
45
46         /* Load plugins */
47         opengl_init (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tabs));
48         radar_init  (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tabs));
49         ridge_init  (GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tabs));
50         example_init(GTK_DRAWING_AREA(drawing), GTK_NOTEBOOK(tabs));
51
52         gtk_widget_show_all(window);
53         gtk_main();
54
55         return 0;
56 }