/*************
* Callbacks *
*************/
-static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer _)
+static gboolean on_key_press(GtkWidget *widget, GdkEventKey *event,
+ gpointer _window)
{
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;
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_plugins_load(plugins, "bmng", viewer, prefs);
+ gis_plugins_load(plugins, "srtm", viewer, prefs);
+ gis_plugins_load(plugins, "test", viewer, prefs);
- gis_view_set_site(view, "KLSX");
+ 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;
}