X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Fgis_test.c;h=97269949731d743cd008199f4c606accea41869b;hb=f70c66f71d15bd773b9cca731d58943a2ac59044;hp=054373e494cdaee0b14e19cca8b11277b5ac6f60;hpb=ac7156bd84aef88b712f117f7e2f3d847d371719;p=grits diff --git a/src/gis_test.c b/src/gis_test.c index 054373e..9726994 100644 --- a/src/gis_test.c +++ b/src/gis_test.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Andy Spencer + * 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 @@ -24,13 +24,15 @@ /************* * Callbacks * *************/ -static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer _) +static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event, + gpointer _window) { - g_debug("gis: on_key_press - key=%x, state=%x", + g_debug("GisTest: on_key_press - key=%x, state=%x", event->keyval, event->state); + GtkWidget *window = _window; switch (event->keyval) { case GDK_q: - gtk_widget_destroy(widget); + gtk_widget_destroy(window); return TRUE; } return FALSE; @@ -41,33 +43,30 @@ static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer _) ***********/ int main(int argc, char **argv) { - gtk_init(&argc, &argv); g_thread_init(NULL); + gdk_threads_init(); + gtk_init(&argc, &argv); GisPrefs *prefs = gis_prefs_new(NULL, NULL); GisPlugins *plugins = gis_plugins_new(NULL); - GisWorld *world = gis_world_new(); - GisView *view = gis_view_new(); - GisOpenGL *opengl = gis_opengl_new(world, view, plugins); - - //gis_plugins_load(plugins, "radar", world, view, opengl, prefs); - //gis_plugins_load(plugins, "ridge", world, view, opengl, prefs); - gis_plugins_load(plugins, "bmng", world, view, opengl, prefs); - gis_plugins_load(plugins, "srtm", world, view, opengl, prefs); + GisViewer *viewer = gis_opengl_new(plugins); + gdk_threads_enter(); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); - g_signal_connect(window, "key-press-event", G_CALLBACK(on_key_press), NULL); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(opengl)); + g_signal_connect(window, "key-press-event", G_CALLBACK(on_key_press), window); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(viewer)); gtk_widget_show_all(window); + gdk_threads_leave(); - gis_view_set_site(view, "KLSX"); + while (*argv) + gis_plugins_load(plugins, *argv++, viewer, prefs); + + gdk_threads_enter(); gtk_main(); - g_object_unref(prefs); - g_object_unref(world); - g_object_unref(view); - g_object_unref(opengl); gis_plugins_free(plugins); + g_object_unref(prefs); + gdk_threads_leave(); return 0; }