]> Pileus Git - grits/commitdiff
[Re]add gis-test
authorAndy Spencer <andy753421@gmail.com>
Sat, 6 Feb 2010 11:31:14 +0000 (11:31 +0000)
committerAndy Spencer <andy753421@gmail.com>
Sat, 6 Feb 2010 11:31:14 +0000 (11:31 +0000)
Use gis-test for testing, valgrind, etc. It's simpler so it's easier to
debug, but not suitable for demonstrations.

src/.gitignore
src/Makefile.am
src/gis-test.c [new file with mode: 0644]

index bfc4cc87cc249b297950a9a68cdf5f14033929b5..2701c8c5b5a16fc5933a726f4ceb7ae3a56320fe 100644 (file)
@@ -10,5 +10,6 @@
 .libs
 gis-demo
 gis-marshal.[ch]
+gis-test
 gmon.*
 tile-test
index 6e33bff95030a8dfdd159d0ebc95a5113e958e7a..8910cd5c04f99f42a392b101ea141d2537075404 100644 (file)
@@ -43,13 +43,20 @@ libgis_la_LIBADD  = $(AM_LDADD) \
        objects/libgis-objects.la \
        data/libgis-data.la
 
-# Test programs
-bin_PROGRAMS = gis-demo tile-test
+# Demo program
+bin_PROGRAMS = gis-demo
 
 gis_demo_SOURCES  = gis-demo.c
 gis_demo_LDADD    = $(AM_LDADD) libgis.la
 gis_demo_LDFLAGS  = $(AM_LDFLAGS) -static
 
+# Test programs
+noinst_PROGRAMS = gis-test tile-test
+
+gis_test_SOURCES = gis-test.c
+gis_test_LDADD   = $(AM_LDADD) libgis.la
+gis_test_LDFLAGS = $(AM_LDFLAGS) -static
+
 tile_test_SOURCES = tile-test.c
 tile_test_LDADD   = $(AM_LDADD) libgis.la
 tile_test_LDFLAGS = $(AM_LDFLAGS) -static
@@ -63,13 +70,13 @@ MAINTAINERCLEANFILES = Makefile.in
        glib-genmarshal --prefix=gis_cclosure_marshal --header $< > $@
 
 test: all .libs/gis
-       ./gis-demo
+       ./gis-test
 
 gdb: all .libs/gis
-       gdb ./gis-demo
+       gdb ./gis-test
 
 ddd: all .libs/gis
-       ddd ./gis-demo
+       ddd ./gis-test
 
 .libs/gis: plugins/.libs
        ln -sf ../plugins/.libs .libs/gis
@@ -82,5 +89,5 @@ memcheck: all
                 --leak-resolution=high         \
                 --num-callers=50               \
                 --suppressions=gtk.suppression \
-                ./gis-demo                     \
+                ./gis-test                     \
        2> valgrind.out
diff --git a/src/gis-test.c b/src/gis-test.c
new file mode 100644 (file)
index 0000000..3364a68
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2009-2010 Andy Spencer <andy753421@gmail.com>
+ *
+ * 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
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+
+#include "gis.h"
+
+/*************
+ * Callbacks *
+ *************/
+static gboolean on_delete(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+       gtk_main_quit();
+       return TRUE;
+}
+static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event,
+               gpointer window)
+{
+       if (event->keyval == GDK_q) {
+               gtk_main_quit();
+               return TRUE;
+       }
+       return FALSE;
+}
+
+/***********
+ * Methods *
+ ***********/
+int main(int argc, char **argv)
+{
+       g_thread_init(NULL);
+       gdk_threads_init();
+       gtk_init(&argc, &argv);
+
+       GisPrefs   *prefs   = gis_prefs_new(NULL, NULL);
+       GisPlugins *plugins = gis_plugins_new(g_getenv("GIS_PLUGIN_PATH"), prefs);
+       GisViewer  *viewer  = gis_opengl_new(plugins, prefs);
+
+       gdk_threads_enter();
+       GtkWidget  *window  = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+       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_container_add(GTK_CONTAINER(window), GTK_WIDGET(viewer));
+       gtk_widget_show_all(window);
+
+       gis_plugins_load(plugins, "test", viewer, prefs);
+       gis_plugins_load(plugins, "env",  viewer, prefs);
+
+       gtk_main();
+
+       gis_plugins_free(plugins);
+       g_object_unref(prefs);
+       gtk_widget_destroy(window);
+
+       gdk_threads_leave();
+       return 0;
+}