aboutsummaryrefslogtreecommitdiff
path: root/src/imagedisplay.c
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-12-03 00:05:51 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-12-03 00:05:51 +0000
commit7fce8715762390de88450c777f2fba474bf6bf12 (patch)
tree83fa16fcb5997bb4de4cf785d880a73e482ff3d3 /src/imagedisplay.c
parentcf7a9b848cfa0ec4b649f54100b6ff92e5553232 (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.c33
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);