]> Pileus Git - grits/commitdiff
Gtk 3 Port gtk3
authorAndy Spencer <andy753421@gmail.com>
Mon, 3 Dec 2012 00:12:41 +0000 (00:12 +0000)
committerAndy Spencer <andy753421@gmail.com>
Wed, 2 Jan 2013 10:29:25 +0000 (10:29 +0000)
15 files changed:
configure.ac
examples/.gitignore
examples/gl/gl.c
examples/gl/mkfile
src/grits-demo.c
src/grits-opengl.c
src/grits-test.c
src/grits-viewer.c
src/grits.pc.in
src/gtkgl.c
src/gtkgl.h
src/objects/grits-marker.c
src/plugins/env.c
src/plugins/test.c
src/tile-test.c

index e3e9dc4ddda83d7f28b9eeb0014aa1492c343885..d80cf8404222f519e2bc21b371713ee5e4b0e680 100644 (file)
@@ -28,7 +28,7 @@ GTK_DOC_CHECK(1.9)
 # Check for required packages
 PKG_CHECK_MODULES(GLIB,  glib-2.0 >= 2.14 gobject-2.0 gthread-2.0 gmodule-2.0)
 PKG_CHECK_MODULES(CAIRO, cairo)
-PKG_CHECK_MODULES(GTK,   gtk+-2.0 >= 2.16)
+PKG_CHECK_MODULES(GTK,   gtk+-3.0 >= 3.0)
 PKG_CHECK_MODULES(SOUP,  libsoup-2.4 >= 2.26)
 
 # Check for glut for example plugin
index a8ee8153e6f446f0b149a6eac466447cc9316240..7a6e1c1ded71b22a499611532530a0398dd93bab 100644 (file)
@@ -1,6 +1,7 @@
 *.o
 *.so
 *.exe
+gl/gl
 info/info
 interp/interp
 plugin/teapot
index 1f8448667761e90446ab79b9e5ac83bb1a5e8ef0..d999dad97923c8df16827f35a01a542fbc5ea817 100644 (file)
@@ -13,7 +13,7 @@
  ************************/
 #if defined(SYS_CAIRO)
 gpointer setup(GtkWidget *widget) { return NULL; }
-gboolean expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
+gboolean expose(GtkWidget *widget, void *cairo, gpointer user_data)
 {
        GtkAllocation alloc;
        gtk_widget_get_allocation(widget, &alloc);
@@ -50,7 +50,7 @@ gpointer setup(GtkWidget *widget)
                        glconfig, NULL, TRUE, GDK_GL_RGBA_TYPE);
        return NULL;
 }
-gboolean expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
+gboolean expose(GtkWidget *widget, void *cairo, gpointer user_data)
 {
        GtkAllocation alloc;
        gtk_widget_get_allocation(widget, &alloc);
@@ -80,7 +80,7 @@ gboolean expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
 #include <gdk/gdkx.h>
 void realize(GtkWidget *widget, gpointer user_data)
 {
-      gdk_window_ensure_native(gtk_widget_get_window(widget));
+       gdk_window_ensure_native(gtk_widget_get_window(widget));
 }
 gpointer setup(GtkWidget *widget)
 {
@@ -100,17 +100,16 @@ gpointer setup(GtkWidget *widget)
        XVisualInfo *xvinfo  = glXChooseVisual(xdisplay, nscreen, attribs);
        GLXContext   context = glXCreateContext(xdisplay, xvinfo, 0, True);
 
-       /* Fix up colormap */
-       GdkVisual   *visual  = gdk_x11_screen_lookup_visual(screen, xvinfo->visualid);
-       GdkColormap *cmap    = gdk_colormap_new(visual, FALSE);
-       gtk_widget_set_colormap(widget, cmap);
+       /* Fix up visual */
+       GdkVisual *visual = gdk_x11_screen_lookup_visual(screen, xvinfo->visualid);
+       gtk_widget_set_visual(widget, visual);
 
        /* Disable GTK double buffering */
        gtk_widget_set_double_buffered(widget, FALSE);
 
        return context;
 }
-gboolean expose(GtkWidget *widget, GdkEventExpose *event, GLXContext context)
+gboolean expose(GtkWidget *widget, void *cairo, GLXContext context)
 {
        /* Make current */
        Display     *xdisplay = GDK_SCREEN_XDISPLAY(gdk_screen_get_default());
@@ -168,7 +167,7 @@ gpointer setup(GtkWidget *widget)
        gtk_widget_set_double_buffered(widget, FALSE);
        return FALSE;
 }
-gboolean expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
+gboolean expose(GtkWidget *widget, void *cairo, gpointer user_data)
 {
        GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
        GdkWindow *window   = gtk_widget_get_window(widget);
@@ -270,7 +269,7 @@ gboolean configure(GtkWidget *widget, GdkEventConfigure *event, NSOpenGLContext
        [ctx  update];
        return FALSE;
 }
-gboolean expose(GtkWidget *widget, GdkEventExpose *event, NSOpenGLContext *ctx)
+gboolean expose(GtkWidget *widget, void *cairo, NSOpenGLContext *ctx)
 {
        gdk_window_ensure_native(gtk_widget_get_window(widget));
 
@@ -304,7 +303,7 @@ gboolean expose(GtkWidget *widget, GdkEventExpose *event, NSOpenGLContext *ctx)
  ****************************/
 #else
 gpointer setup(GtkWidget *widget) { return NULL; }
-gboolean expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
+gboolean expose(GtkWidget *widget, void *cairo, gpointer user_data)
 {
        g_message("unimplemented");
        return FALSE;
@@ -318,7 +317,7 @@ gboolean expose(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
  ***************/
 gboolean key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
 {
-       if (event->keyval == GDK_q)
+       if (event->keyval == GDK_KEY_q)
                gtk_main_quit();
        return FALSE;
 }
@@ -326,7 +325,7 @@ int main(int argc, char **argv)
 {
        gtk_init_check(&argc, &argv);
        GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       GtkWidget *box    = gtk_vbox_new(FALSE, 5);
+       GtkWidget *box    = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
        GtkWidget *draw   = gtk_drawing_area_new();
        GtkWidget *label  = gtk_label_new("Hello, World");
        GtkWidget *button = gtk_button_new_with_label("Hello, World");
@@ -334,7 +333,7 @@ int main(int argc, char **argv)
        g_signal_connect(window, "destroy",         G_CALLBACK(gtk_main_quit), NULL);
        g_signal_connect(window, "key-press-event", G_CALLBACK(key_press),     NULL);
        //g_signal_connect(draw,   "configure-event", G_CALLBACK(configure),     data);
-       g_signal_connect(draw,   "expose-event",    G_CALLBACK(expose),        data);
+       g_signal_connect(draw,   "draw",            G_CALLBACK(expose),        data);
        gtk_widget_set_size_request(draw,   300, 300);
        gtk_widget_set_size_request(button, -1,  50);
        gtk_box_pack_start(GTK_BOX(box), label,  FALSE, TRUE, 0);
index ecb68033f38c5e93a2a68cfc477e08ebab2cde0a..12058991b78da7c171b545577685bdb291c38079 100644 (file)
@@ -1,4 +1,4 @@
-PKGS=gtk+-2.0
+PKGS=gtk+-3.0
 PROGS=gl
 
 # Cairo
index e5f18b63af44ea0787b1c9d3978eab8c0ab5209e..c4e9b2bc6abd50ade39c088b846984bd6fc44ea2 100644 (file)
@@ -127,7 +127,7 @@ static GtkWidget *setup_window(GtkUIManager *manager, GtkWidget **_notebook)
        GtkWidget *window   = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        GtkWidget *menu     = gtk_ui_manager_get_widget(manager, "/Menu");
        GtkWidget *notebook = gtk_notebook_new();
-       GtkWidget *vbox     = gtk_vbox_new(FALSE, 0);
+       GtkWidget *vbox     = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
        gtk_container_add(GTK_CONTAINER(window), vbox);
        gtk_box_pack_start(GTK_BOX(vbox), menu,               FALSE, TRUE, 0);
        gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(viewer), TRUE,  TRUE, 0);
@@ -166,14 +166,13 @@ static void restore_states(GtkUIManager *manager)
 
 int main(int argc, char **argv)
 {
-       gdk_threads_init();
        gtk_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();
+       //gdk_threads_enter();
 
        GtkWidget    *notebook = NULL;
        GtkUIManager *manager  = setup_actions();
@@ -188,7 +187,7 @@ int main(int argc, char **argv)
        grits_plugins_free(plugins);
        g_object_unref(prefs);
 
-       gdk_threads_leave();
+       //gdk_threads_leave();
 
        g_debug("GritsDemo: main - refs=%d,%d",
                        G_OBJECT(manager)->ref_count,
index 0e803baf3b5abd6a30e141bde022075254223123..0245f6072e5a113e7b59a4af986f97f21c058ab9 100644 (file)
@@ -66,8 +66,10 @@ static void _set_projection(GritsOpenGL *opengl)
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
 
-       double width  = GTK_WIDGET(opengl)->allocation.width;
-       double height = GTK_WIDGET(opengl)->allocation.height;
+       GtkAllocation alloc;
+       gtk_widget_get_allocation(GTK_WIDGET(opengl), &alloc);
+       double width  = alloc.width;
+       double height = alloc.height;
        double ang    = atan((height/2)/FOV_DIST)*2;
        double atmos  = 100000;
        double near   = MAX(elev*0.75 - atmos, 50); // View 100km of atmosphere
@@ -217,9 +219,11 @@ static gint run_picking(GritsOpenGL *opengl, GdkEvent *event,
 
 static gboolean run_mouse_move(GritsOpenGL *opengl, GdkEventMotion *event)
 {
-       gdouble height = GTK_WIDGET(opengl)->allocation.height;
+       GtkAllocation alloc;
+       gtk_widget_get_allocation(GTK_WIDGET(opengl), &alloc);
+
        gdouble gl_x   = event->x;
-       gdouble gl_y   = height - event->y;
+       gdouble gl_y   = alloc.height - event->y;
        gdouble delta  = opengl->pickmode ? 200 : 2;
 
        if (opengl->pickmode) {
@@ -319,11 +323,11 @@ static void _draw_level(gpointer _level, gpointer _opengl)
 
        /* Start ortho */
        if (level->num >= GRITS_LEVEL_HUD) {
+               GtkAllocation alloc;
+               gtk_widget_get_allocation(GTK_WIDGET(opengl), &alloc);
                glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity();
                glMatrixMode(GL_MODELVIEW);  glPushMatrix(); glLoadIdentity();
-               gint win_width  = GTK_WIDGET(opengl)->allocation.width;
-               gint win_height = GTK_WIDGET(opengl)->allocation.height;
-               glOrtho(0, win_width, win_height, 0, 1000, -1000);
+               glOrtho(0, alloc.width, alloc.height, 0, 1000, -1000);
        }
 
        /* Draw unsorted objects without depth testing,
@@ -353,12 +357,12 @@ static void _draw_level(gpointer _level, gpointer _opengl)
                        nunsorted, nsorted);
 }
 
-static gboolean on_expose(GritsOpenGL *opengl, GdkEventExpose *event, gpointer _)
+static gboolean on_draw(GritsOpenGL *opengl, void *cairo, gpointer _)
 {
-       g_debug("GritsOpenGL: on_expose - begin");
+       g_debug("GritsOpenGL: on_draw - begin");
 
        if (opengl->pickmode)
-               return run_mouse_move(opengl, (GdkEventMotion*)event);
+               return run_mouse_move(opengl, &(GdkEventMotion){});
 
        if (opengl->mouse_queue.type != GDK_NOTHING) {
                run_mouse_move(opengl, &opengl->mouse_queue);
@@ -389,30 +393,30 @@ static gboolean on_expose(GritsOpenGL *opengl, GdkEventExpose *event, gpointer _
 
        gtk_gl_end(GTK_WIDGET(opengl));
 
-       g_debug("GritsOpenGL: on_expose - end\n");
+       g_debug("GritsOpenGL: on_draw - end\n");
        return FALSE;
 }
 
 static gboolean on_key_press(GritsOpenGL *opengl, GdkEventKey *event, gpointer _)
 {
        g_debug("GritsOpenGL: on_key_press - key=%x, state=%x, plus=%x",
-                       event->keyval, event->state, GDK_plus);
+                       event->keyval, event->state, GDK_KEY_plus);
 
        guint kv = event->keyval;
        /* Testing */
-       if (kv == GDK_w) {
+       if (kv == GDK_KEY_w) {
                opengl->wireframe = !opengl->wireframe;
                grits_viewer_queue_draw(GRITS_VIEWER(opengl));
        }
-       if (kv == GDK_p) {
+       if (kv == GDK_KEY_p) {
                opengl->pickmode = !opengl->pickmode;
                grits_viewer_queue_draw(GRITS_VIEWER(opengl));
        }
 #ifdef ROAM_DEBUG
-       else if (kv == GDK_n) roam_sphere_split_one(opengl->sphere);
-       else if (kv == GDK_p) roam_sphere_merge_one(opengl->sphere);
-       else if (kv == GDK_r) roam_sphere_split_merge(opengl->sphere);
-       else if (kv == GDK_u) roam_sphere_update_errors(opengl->sphere);
+       else if (kv == GDK_KEY_n) roam_sphere_split_one(opengl->sphere);
+       else if (kv == GDK_KEY_p) roam_sphere_merge_one(opengl->sphere);
+       else if (kv == GDK_KEY_r) roam_sphere_split_merge(opengl->sphere);
+       else if (kv == GDK_KEY_u) roam_sphere_update_errors(opengl->sphere);
        grits_viewer_queue_draw(GRITS_VIEWER(opengl));
 #endif
        return FALSE;
@@ -440,7 +444,7 @@ static void on_realize(GritsOpenGL *opengl, gpointer _)
        /* Connect signals and idle functions now that opengl is fully initialized */
        gtk_widget_add_events(GTK_WIDGET(opengl), GDK_KEY_PRESS_MASK);
        g_signal_connect(opengl, "configure-event",  G_CALLBACK(_set_projection), NULL);
-       g_signal_connect(opengl, "expose-event",     G_CALLBACK(on_expose),       NULL);
+       g_signal_connect(opengl, "draw",             G_CALLBACK(on_draw),         NULL);
 
        g_signal_connect(opengl, "key-press-event",  G_CALLBACK(on_key_press),    NULL);
 
index 10d59ece3491dfbd24c6e2deaa9a7bd2aa09c4f0..5d57ff7a5a12e2343e1d6bb1ead26556e4dfc261 100644 (file)
@@ -47,7 +47,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;
 }
@@ -65,16 +65,15 @@ static void load_plugin(GritsPlugins *plugins, gchar *name,
  ***********/
 int main(int argc, char **argv)
 {
-       gdk_threads_init();
        gtk_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();
+       //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);
@@ -98,9 +97,9 @@ int main(int argc, char **argv)
 
        gtk_widget_show_all(config);
        gtk_main();
-       gdk_threads_leave();
+       //gdk_threads_leave();
 
-       gdk_display_close(gdk_display_get_default());
+       //gdk_display_close(gdk_display_get_default());
 
        prefs   = NULL;
        plugins = NULL;
index 86d00c45256751f59d549c35bfa3a55641aff615..1afd2eaece9be068a2f6cec0e9bb268019a69118 100644 (file)
@@ -117,22 +117,22 @@ static void _grits_viewer_emit_offline(GritsViewer *viewer)
 static gboolean on_key_press(GritsViewer *viewer, GdkEventKey *event, gpointer _)
 {
        g_debug("GritsViewer: on_key_press - key=%x, state=%x, plus=%x",
-                       event->keyval, event->state, GDK_plus);
+                       event->keyval, event->state, GDK_KEY_plus);
 
        double lat, lon, elev, pan;
        grits_viewer_get_location(viewer, &lat, &lon, &elev);
        pan = MIN(elev/(EARTH_R/2), 30);
        switch (event->keyval) {
-       case GDK_Left:  case GDK_h: grits_viewer_pan(viewer,  0,  -pan, 0); break;
-       case GDK_Down:  case GDK_j: grits_viewer_pan(viewer, -pan, 0,   0); break;
-       case GDK_Up:    case GDK_k: grits_viewer_pan(viewer,  pan, 0,   0); break;
-       case GDK_Right: case GDK_l: grits_viewer_pan(viewer,  0,   pan, 0); break;
-       case GDK_minus: case GDK_o: grits_viewer_zoom(viewer, 10./9); break;
-       case GDK_plus:  case GDK_i: grits_viewer_zoom(viewer, 9./10); break;
-       case GDK_H: grits_viewer_rotate(viewer,  0, 0, -2); break;
-       case GDK_J: grits_viewer_rotate(viewer,  2, 0,  0); break;
-       case GDK_K: grits_viewer_rotate(viewer, -2, 0,  0); break;
-       case GDK_L: grits_viewer_rotate(viewer,  0, 0,  2); break;
+       case GDK_KEY_Left:  case GDK_KEY_h: grits_viewer_pan(viewer,  0,  -pan, 0); break;
+       case GDK_KEY_Down:  case GDK_KEY_j: grits_viewer_pan(viewer, -pan, 0,   0); break;
+       case GDK_KEY_Up:    case GDK_KEY_k: grits_viewer_pan(viewer,  pan, 0,   0); break;
+       case GDK_KEY_Right: case GDK_KEY_l: grits_viewer_pan(viewer,  0,   pan, 0); break;
+       case GDK_KEY_minus: case GDK_KEY_o: grits_viewer_zoom(viewer, 10./9); break;
+       case GDK_KEY_plus:  case GDK_KEY_i: grits_viewer_zoom(viewer, 9./10); break;
+       case GDK_KEY_H: grits_viewer_rotate(viewer,  0, 0, -2); break;
+       case GDK_KEY_J: grits_viewer_rotate(viewer,  2, 0,  0); break;
+       case GDK_KEY_K: grits_viewer_rotate(viewer, -2, 0,  0); break;
+       case GDK_KEY_L: grits_viewer_rotate(viewer,  0, 0,  2); break;
        }
        return FALSE;
 }
index da0ea6a1209d0ccdee58834c42a1a190507b63b2..7b54bbe532fdd7c83db1e5aba7eecd1a4d459c4c 100644 (file)
@@ -6,6 +6,6 @@ includedir=@includedir@
 Name: Grits
 Description: Grits is a Virtual Globe library
 Version: @VERSION@
-Requires: gmodule-2.0 gtk+-2.0 libsoup-2.4
+Requires: gmodule-2.0 gtk+-3.0 libsoup-2.4
 Libs: -L${libdir} -lgrits @GL_LIBS@
 Cflags: -I${includedir}/grits @GL_CFLAGS@
index 6c4913b1fd17d28412c8b32611410b20383eb32f..86118351c757e112a48160b54288507b4366306d 100644 (file)
@@ -108,11 +108,9 @@ void gtk_gl_enable(GtkWidget *widget)
 
        g_object_set_data(G_OBJECT(widget), "glcontext", context);
 
-       /* Fix up colormap */
-       GdkVisual   *visual = gdk_x11_screen_lookup_visual(screen, xvinfo->visualid);
-       GdkColormap *cmap   = gdk_colormap_new(visual, FALSE);
-       gtk_widget_set_colormap(widget, cmap);
-       g_object_unref(cmap);
+       /* Fix up visual */
+       GdkVisual *visual = gdk_x11_screen_lookup_visual(screen, xvinfo->visualid);
+       gtk_widget_set_visual(widget, visual);
        XFree(xvinfo);
 
        /* Disable GTK double buffering */
index c0a8bd6f60bf8de788039f7964c8d397f174a8c5..482ec4296aeec3995e03cc77561ab2336a0ec5ff 100644 (file)
 /* Call before widget is realized */
 void gtk_gl_enable(GtkWidget *widget);
 
-/* Call at the start of "expose" */
+/* Call at the start of "draw" */
 void gtk_gl_begin(GtkWidget *widget);
 
-/* Call at the end of "expose-event" */
+/* Call at the end of "draw" */
 void gtk_gl_end(GtkWidget *widget);
 
 /* Call when done to cleanup data */
index 35103538dfa6975454932adc822c9a1f8f8b7d70..40d45f4e57fa8ee2363085f276090f993f3b146a 100644 (file)
@@ -256,11 +256,12 @@ static void grits_marker_draw(GritsObject *_marker, GritsOpenGL *opengl)
                                point->lat, point->lon, point->elev,
                                &px, &py, &pz);
 
-               gint win_height = GTK_WIDGET(opengl)->allocation.height;
                if (pz > 1)
                        return;
 
-               glTranslated(px, win_height-py, 0);
+               GtkAllocation alloc;
+               gtk_widget_get_allocation(GTK_WIDGET(opengl), &alloc);
+               glTranslated(px, alloc.height-py, 0);
                glRotatef(marker->angle, 0, 0, -1);
                glTranslated(-marker->xoff, -marker->yoff, 0);
        } else {
index 6312f3b2ae7e7f9e76d0058ff720061dd2aabf02..3893056d9abf15aae51a009297e5dc216a6e187c 100644 (file)
@@ -195,11 +195,11 @@ static void compass_expose(GritsCallback *compass, GritsOpenGL *opengl, gpointer
        grits_viewer_get_rotation(env->viewer, &x, &y, &z);
 
        /* Setup projection */
-       gint win_width  = GTK_WIDGET(opengl)->allocation.width;
-       gint win_height = GTK_WIDGET(opengl)->allocation.height;
-       float scale     = CLAMP(MIN(win_width,win_height)/2.0 * 0.1, 40, 100);
+       GtkAllocation alloc;
+       gtk_widget_get_allocation(GTK_WIDGET(opengl), &alloc);
+       float scale     = CLAMP(MIN(alloc.width,alloc.height)/2.0 * 0.1, 40, 100);
        float offset    = scale + 20;
-       glTranslatef(win_width - offset, offset, 0);
+       glTranslatef(alloc.width - offset, offset, 0);
 
        /* Setup state */
        glClear(GL_DEPTH_BUFFER_BIT);
@@ -226,8 +226,8 @@ static gboolean compass_click(GritsCallback *compass, GdkEvent *evnet, GritsView
 /* Info */
 static void info_expose(GritsCallback *compass, GritsOpenGL *opengl, gpointer _env)
 {
-       gint win_width  = GTK_WIDGET(opengl)->allocation.width;
-       gint win_height = GTK_WIDGET(opengl)->allocation.height;
+       GtkAllocation alloc;
+       gtk_widget_get_allocation(GTK_WIDGET(opengl), &alloc);
 
        /* Create cairo  surface */
        guint            tex     = 0;
@@ -292,7 +292,7 @@ static void info_expose(GritsCallback *compass, GritsOpenGL *opengl, gpointer _e
        glEnable(GL_TEXTURE_2D);
        glBindTexture(GL_TEXTURE_2D, tex);
        glDisable(GL_CULL_FACE);
-       glTranslatef(win_width - width, win_height - height, 0);
+       glTranslatef(alloc.width - width, alloc.height - height, 0);
        glBegin(GL_QUADS);
        glTexCoord2f(1, 0); glVertex3f(width, 0     , 0); // 0 - 3    0
        glTexCoord2f(1, 1); glVertex3f(width, height, 0); // 1 - |    |
index cfc999b854143e3e932aa0a9ed2b16e9a1e95fa8..2c3e52f97718e704bc935a74438957086cdb7a80 100644 (file)
@@ -65,9 +65,9 @@ static gboolean on_poly_key(GritsPoly *poly, GdkEventKey *event)
 {
        g_debug("GritsPluginTest: on_poly_key - %d", event->keyval);
        gdouble colors[0xff][3] = {
-               [GDK_r] {1, 0, 0},
-               [GDK_g] {0, 1, 0},
-               [GDK_b] {0, 0, 1},
+               [GDK_KEY_r] {1, 0, 0},
+               [GDK_KEY_g] {0, 1, 0},
+               [GDK_KEY_b] {0, 0, 1},
        };
        if (event->keyval >= G_N_ELEMENTS(colors))
                return FALSE;
index aeb01ff7dd939415911edaebc7300add854c2523..ad512bb4d8bd9173cd628189110443e2ceef1d9b 100644 (file)
@@ -63,9 +63,9 @@ gpointer do_bmng_cache(gpointer _image)
 
        g_message("Loading bmng image: [%s]", path);
        GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, NULL);
-       gdk_threads_enter();
+       //gdk_threads_enter();
        gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf);
-       gdk_threads_leave();
+       //gdk_threads_leave();
 
        g_message("Cleaning bmng up");
        grits_wms_free(bmng_wms);
@@ -89,9 +89,9 @@ gpointer do_osm_cache(gpointer _image)
 
        g_message("Loading osm image: [%s]", path);
        GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, NULL);
-       gdk_threads_enter();
+       //gdk_threads_enter();
        gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf);
-       gdk_threads_leave();
+       //gdk_threads_leave();
 
        g_message("Cleaning osm up");
        grits_wms_free(osm_wms);
@@ -114,9 +114,9 @@ gpointer do_osm2_cache(gpointer _image)
 
        g_message("Loading osm2 image: [%s]", path);
        GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, NULL);
-       gdk_threads_enter();
+       //gdk_threads_enter();
        gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf);
-       gdk_threads_leave();
+       //gdk_threads_leave();
 
        g_message("Cleaning osm2 up");
        grits_tms_free(osm2_tms);
@@ -127,19 +127,18 @@ gpointer do_osm2_cache(gpointer _image)
 
 gboolean key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
 {
-       if (event->keyval == GDK_q)
+       if (event->keyval == GDK_KEY_q)
                gtk_main_quit();
        return TRUE;
 }
 
 int main(int argc, char **argv)
 {
-       gdk_threads_init();
        gtk_init(&argc, &argv);
 
        GtkWidget *win        = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       GtkWidget *vbox1      = gtk_vbox_new(FALSE, 0);
-       GtkWidget *vbox2      = gtk_vbox_new(FALSE, 0);
+       GtkWidget *vbox1      = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+       GtkWidget *vbox2      = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
        GtkWidget *status     = gtk_statusbar_new();
        GtkWidget *scroll     = gtk_scrolled_window_new(NULL, NULL);
        GtkWidget *bmng_image = gtk_image_new();