diff options
author | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-12-03 00:05:51 +0000 |
---|---|---|
committer | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-12-03 00:05:51 +0000 |
commit | 7fce8715762390de88450c777f2fba474bf6bf12 (patch) | |
tree | 83fa16fcb5997bb4de4cf785d880a73e482ff3d3 /src/imagedisplay.c | |
parent | cf7a9b848cfa0ec4b649f54100b6ff92e5553232 (diff) |
UI revamp
Bump version number to 1.0.7
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@217 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/imagedisplay.c')
-rw-r--r-- | src/imagedisplay.c | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/imagedisplay.c b/src/imagedisplay.c index 9c3f6cd..9774a33 100644 --- a/src/imagedisplay.c +++ b/src/imagedisplay.c @@ -162,7 +162,9 @@ static void imagedisplay_destroyed(GtkWidget *widget, ImageDisplay *imagedisplay void imagedisplay_close(ImageDisplay *imagedisplay) { imagedisplay->flags = (imagedisplay->flags | IMAGEDISPLAY_QUIT_IF_CLOSED)^IMAGEDISPLAY_QUIT_IF_CLOSED; - gtk_widget_destroy(imagedisplay->window); + if ( imagedisplay->window ) { + gtk_widget_destroy(imagedisplay->window); + } } #define imagedisplay_draw_line(gc,x1,y1,x2,y2) (gdk_draw_line(drawingarea->window,gc, \ @@ -295,32 +297,27 @@ static gint imagedisplay_realize(GtkWidget *widget, ImageDisplay *imagedisplay) } -/* Display an image */ -ImageDisplay *imagedisplay_open_with_message(ImageRecord imagerecord, const char *title, const char *message, - ImageDisplayFlags flags, GCallback mouse_click_func, gpointer callback_data) { +ImageDisplay *imagedisplay_new_nowindow(ImageRecord imagerecord, ImageDisplayFlags flags, const char *message, + GCallback mouse_click_func, gpointer callback_data) { ImageDisplay *imagedisplay; - GdkGeometry geom; imagedisplay = malloc(sizeof(ImageDisplay)); imagedisplay->imagerecord = imagerecord; imagedisplay->view_width = 512; imagedisplay->view_height = 512; - imagedisplay->title = strdup(title); imagedisplay->message = message; - imagedisplay->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); imagedisplay->mouse_click_func = mouse_click_func; imagedisplay->flags = flags; imagedisplay->marks = NULL; imagedisplay->pixbuf = NULL; imagedisplay->pixbuf_scaled = NULL; imagedisplay->realised = FALSE; - gtk_window_set_title(GTK_WINDOW(imagedisplay->window), imagedisplay->title); + imagedisplay->window = NULL; imagedisplay_put_data(imagedisplay, imagerecord); imagedisplay->vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(imagedisplay->window), imagedisplay->vbox); if ( message ) { GtkWidget *label; @@ -343,6 +340,24 @@ ImageDisplay *imagedisplay_open_with_message(ImageRecord imagerecord, const char g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "configure_event", G_CALLBACK(imagedisplay_configure_event), imagedisplay); g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "expose-event", G_CALLBACK(imagedisplay_redraw), imagedisplay); + return imagedisplay; + +} + +/* Display an image */ +ImageDisplay *imagedisplay_open_with_message(ImageRecord imagerecord, const char *title, const char *message, + ImageDisplayFlags flags, GCallback mouse_click_func, gpointer callback_data) { + + ImageDisplay *imagedisplay; + GdkGeometry geom; + + imagedisplay = imagedisplay_new_nowindow(imagerecord, flags, message, mouse_click_func, callback_data); + + imagedisplay->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_container_add(GTK_CONTAINER(imagedisplay->window), imagedisplay->vbox); + imagedisplay->title = strdup(title); + gtk_window_set_title(GTK_WINDOW(imagedisplay->window), imagedisplay->title); + geom.min_width = 128; geom.min_height = 128; gtk_window_set_geometry_hints(GTK_WINDOW(imagedisplay->window), GTK_WIDGET(imagedisplay->drawingarea), &geom, GDK_HINT_MIN_SIZE); |