From: Andy Spencer Date: Sat, 6 Feb 2010 11:31:14 +0000 (+0000) Subject: [Re]add gis-test X-Git-Tag: v0.4~85 X-Git-Url: http://pileus.org/git/?p=grits;a=commitdiff_plain;h=e995faabd07f00eac2b97ef70430edc0683f06bf [Re]add gis-test Use gis-test for testing, valgrind, etc. It's simpler so it's easier to debug, but not suitable for demonstrations. --- diff --git a/src/.gitignore b/src/.gitignore index bfc4cc8..2701c8c 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -10,5 +10,6 @@ .libs gis-demo gis-marshal.[ch] +gis-test gmon.* tile-test diff --git a/src/Makefile.am b/src/Makefile.am index 6e33bff..8910cd5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 index 0000000..3364a68 --- /dev/null +++ b/src/gis-test.c @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2009-2010 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 + * 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 . + */ + +#include +#include +#include + +#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; +}