From d1ea51b2ea5fe1f70ecfd8e7a9b77775114ee591 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Mon, 3 Dec 2012 00:12:41 +0000 Subject: [PATCH] Gtk 3 Port --- configure.ac | 2 +- examples/.gitignore | 1 + examples/gl/gl.c | 27 ++++++++++++------------ examples/gl/mkfile | 2 +- src/grits-demo.c | 7 +++---- src/grits-opengl.c | 42 +++++++++++++++++++++----------------- src/grits-test.c | 11 +++++----- src/grits-viewer.c | 22 ++++++++++---------- src/grits.pc.in | 2 +- src/gtkgl.c | 8 +++----- src/gtkgl.h | 4 ++-- src/objects/grits-marker.c | 5 +++-- src/plugins/env.c | 14 ++++++------- src/plugins/test.c | 6 +++--- src/tile-test.c | 19 ++++++++--------- 15 files changed, 86 insertions(+), 86 deletions(-) diff --git a/configure.ac b/configure.ac index e3e9dc4..d80cf84 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/examples/.gitignore b/examples/.gitignore index a8ee815..7a6e1c1 100644 --- a/examples/.gitignore +++ b/examples/.gitignore @@ -1,6 +1,7 @@ *.o *.so *.exe +gl/gl info/info interp/interp plugin/teapot diff --git a/examples/gl/gl.c b/examples/gl/gl.c index 1f84486..d999dad 100644 --- a/examples/gl/gl.c +++ b/examples/gl/gl.c @@ -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 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); diff --git a/examples/gl/mkfile b/examples/gl/mkfile index ecb6803..1205899 100644 --- a/examples/gl/mkfile +++ b/examples/gl/mkfile @@ -1,4 +1,4 @@ -PKGS=gtk+-2.0 +PKGS=gtk+-3.0 PROGS=gl # Cairo diff --git a/src/grits-demo.c b/src/grits-demo.c index e5f18b6..c4e9b2b 100644 --- a/src/grits-demo.c +++ b/src/grits-demo.c @@ -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, diff --git a/src/grits-opengl.c b/src/grits-opengl.c index 0e803ba..0245f60 100644 --- a/src/grits-opengl.c +++ b/src/grits-opengl.c @@ -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); diff --git a/src/grits-test.c b/src/grits-test.c index 10d59ec..5d57ff7 100644 --- a/src/grits-test.c +++ b/src/grits-test.c @@ -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; diff --git a/src/grits-viewer.c b/src/grits-viewer.c index 86d00c4..1afd2ea 100644 --- a/src/grits-viewer.c +++ b/src/grits-viewer.c @@ -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; } diff --git a/src/grits.pc.in b/src/grits.pc.in index da0ea6a..7b54bbe 100644 --- a/src/grits.pc.in +++ b/src/grits.pc.in @@ -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@ diff --git a/src/gtkgl.c b/src/gtkgl.c index 6c4913b..8611835 100644 --- a/src/gtkgl.c +++ b/src/gtkgl.c @@ -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 */ diff --git a/src/gtkgl.h b/src/gtkgl.h index c0a8bd6..482ec42 100644 --- a/src/gtkgl.h +++ b/src/gtkgl.h @@ -33,10 +33,10 @@ /* 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 */ diff --git a/src/objects/grits-marker.c b/src/objects/grits-marker.c index 3510353..40d45f4 100644 --- a/src/objects/grits-marker.c +++ b/src/objects/grits-marker.c @@ -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 { diff --git a/src/plugins/env.c b/src/plugins/env.c index 6312f3b..3893056 100644 --- a/src/plugins/env.c +++ b/src/plugins/env.c @@ -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 - | | diff --git a/src/plugins/test.c b/src/plugins/test.c index cfc999b..2c3e52f 100644 --- a/src/plugins/test.c +++ b/src/plugins/test.c @@ -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; diff --git a/src/tile-test.c b/src/tile-test.c index aeb01ff..ad512bb 100644 --- a/src/tile-test.c +++ b/src/tile-test.c @@ -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(); -- 2.43.2