X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fgrits-test.c;h=cde36cdc533fdb0786450bc881026ba65696f243;hp=2fef4aef0982ae77828054204582793afecd5aff;hb=5c17e7d79895982036139dcffb5c17cefb1d4d9f;hpb=728d24822cd0836e97e4591f561a72f948dc45a7 diff --git a/src/grits-test.c b/src/grits-test.c index 2fef4ae..cde36cd 100644 --- a/src/grits-test.c +++ b/src/grits-test.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2010 Andy Spencer + * Copyright (C) 2009-2011 Andy Spencer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,11 +17,12 @@ #include #include -#include #include #include "grits.h" +#include "compat.h" + GritsPrefs *prefs = NULL; GritsPlugins *plugins = NULL; GritsViewer *viewer = NULL; @@ -31,13 +32,13 @@ GritsViewer *viewer = NULL; *************/ static gboolean grits_shutdown(GtkWidget *window) { + static gboolean shutdown = FALSE; + if (shutdown) return TRUE; + shutdown = TRUE; + grits_plugins_free(plugins); g_object_unref(prefs); gtk_widget_destroy(window); - - while (gtk_events_pending()) - gtk_main_iteration(); - gtk_main_quit(); return TRUE; } @@ -48,7 +49,7 @@ static gboolean on_delete(GtkWidget *widget, GdkEvent *event, gpointer data) static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer _) { - if (event->keyval == GDK_q) + if (event->keyval == GDK_KEY_q) return grits_shutdown(widget); return FALSE; } @@ -57,7 +58,8 @@ static void load_plugin(GritsPlugins *plugins, gchar *name, { GritsPlugin *plugin = grits_plugins_load(plugins, name, viewer, prefs); GtkWidget *config = grits_plugin_get_config(plugin); - gtk_notebook_append_page(notebook, config, gtk_label_new(name)); + if (config) + gtk_notebook_append_page(notebook, config, gtk_label_new(name)); } /*********** @@ -65,21 +67,18 @@ static void load_plugin(GritsPlugins *plugins, gchar *name, ***********/ int main(int argc, char **argv) { - g_thread_init(NULL); - gdk_threads_init(); gtk_init(&argc, &argv); - gtk_gl_init(&argc, &argv); prefs = grits_prefs_new(NULL, NULL); plugins = grits_plugins_new(g_getenv("GRITS_PLUGIN_PATH"), prefs); viewer = grits_opengl_new(plugins, prefs); - gdk_threads_enter(); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - GtkWidget *vbox = gtk_vbox_new(FALSE, 0); + GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); GtkWidget *config = gtk_notebook_new(); g_signal_connect(window, "delete-event", G_CALLBACK(on_delete), NULL); g_signal_connect(window, "key-press-event", G_CALLBACK(on_key_press), NULL); + gtk_widget_set_size_request(GTK_WIDGET(viewer), 300, 300); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(config), GTK_POS_BOTTOM); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(viewer), TRUE, TRUE, 0); @@ -89,17 +88,22 @@ int main(int argc, char **argv) /* Configurable stuff */ grits_viewer_set_offline(viewer, TRUE); (void)load_plugin; - load_plugin(plugins, "elev", viewer, prefs, GTK_NOTEBOOK(config)); load_plugin(plugins, "env", viewer, prefs, GTK_NOTEBOOK(config)); - //load_plugin(plugins, "map", viewer, prefs, GTK_NOTEBOOK(config)); - load_plugin(plugins, "sat", viewer, prefs, GTK_NOTEBOOK(config)); - load_plugin(plugins, "test", viewer, prefs, GTK_NOTEBOOK(config)); + //load_plugin(plugins, "elev", viewer, prefs, GTK_NOTEBOOK(config)); + //load_plugin(plugins, "sat", viewer, prefs, GTK_NOTEBOOK(config)); + load_plugin(plugins, "map", viewer, prefs, GTK_NOTEBOOK(config)); + //load_plugin(plugins, "alert", viewer, prefs, GTK_NOTEBOOK(config)); //load_plugin(plugins, "radar", viewer, prefs, GTK_NOTEBOOK(config)); + load_plugin(plugins, "test", viewer, prefs, GTK_NOTEBOOK(config)); gtk_widget_show_all(config); gtk_main(); - gdk_threads_leave(); - gdk_display_close(gdk_display_get_default()); + //gdk_display_close(gdk_display_get_default()); + + prefs = NULL; + plugins = NULL; + viewer = NULL; + window = vbox = config = NULL; return 0; }