2 /*----------------------------------------------------------------------
4 gpiv - Graphic program for Particle Image Velocimetry, based on gtk/gnome
7 Copyright (C) 2002 Gerber van der Graaf
9 This file is part of gpiv.
11 Gpiv is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2, or (at your option)
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software Foundation,
23 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 ----------------------------------------------------------------------*/
28 * interface for create_display
29 * $Log: display_interface.c,v $
30 * Revision 1.1 2003-06-17 17:10:52 gerber
36 #include "display_interface.h"
37 #include "display_menus.h"
42 create_display(gchar
* fname
,
47 Display
*disp
= g_new0(Display
,
49 static gint screen_width
= 0, screen_height
= 0;
50 static gint width
= 0, height
= 0;
51 static gchar title
[MAX_CHARS
];
58 snprintf(disp
->msg_display_default
,
63 disp
->count
= display_count
;
64 disp
->zoom_index
= gpiv_par
.zoom_index
;
65 disp
->zoom_factor
= zfactor
[disp
->zoom_index
];
66 disp
->vector_scale
= gpiv_par
.vector_scale
;
67 disp
->display_img1
= gpiv_par
.display_img1
;
68 disp
->display_img2
= gpiv_par
.display_img2
;
69 disp
->display_intregs
= gpiv_par
.display_intregs
;
70 disp
->display_piv
= gpiv_par
.display_piv
;
71 disp
->display_vor
= gpiv_par
.display_vor
;
72 disp
->display_sstrain
= gpiv_par
.display_sstrain
;
73 disp
->display_nstrain
= gpiv_par
.display_nstrain
;
75 disp
->img
.exist_img
= FALSE
;
76 disp
->gpd
.exist_piv
= FALSE
;
77 disp
->gpd
.saved_piv
= TRUE
;
78 disp
->gpd
.scaled_piv
= FALSE
;
79 disp
->gpd
.exist_valid
= FALSE
;
80 disp
->gpd
.exist_vor
= FALSE
;
81 disp
->gpd
.exist_vor_scaled
= FALSE
;
82 disp
->gpd
.saved_vor
= TRUE
;
83 disp
->gpd
.exist_sstrain
= FALSE
;
84 disp
->gpd
.exist_sstrain_scaled
= FALSE
;
85 disp
->gpd
.saved_sstrain
= TRUE
;
86 disp
->gpd
.exist_nstrain
= FALSE
;
87 disp
->gpd
.exist_nstrain_scaled
= FALSE
;
88 disp
->gpd
.saved_nstrain
= TRUE
;
92 /* disp->intreg.gci_intreg1 = alloc_gci_matrix(MAX_DATA, MAX_DATA); */
93 /* gpiv_warning("create_display:: A back from alloc_gci_matrix"); */
94 /* disp->intreg.gci_intreg2 = alloc_gci_matrix(MAX_DATA, MAX_DATA); */
95 /* gpiv_warning("create_display:: B back from alloc_gci_matrix"); */
98 disp
->mwin
= gtk_window_new(GTK_WINDOW_TOPLEVEL
);
99 gtk_window_set_title(GTK_WINDOW(disp
->mwin
),
101 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
104 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
111 /* gtk_object_set_data_full(GTK_OBJECT(disp->mwin), */
114 /* (GtkDestroyNotify) gtk_widget_unref); */
115 /* gtk_signal_connect (GTK_OBJECT (disp->mwin), "destroy", */
116 /* GTK_SIGNAL_FUNC (destroy), NULL); */
120 * focussing the actual display
122 gtk_signal_connect(GTK_OBJECT(disp
->mwin
),
124 GTK_SIGNAL_FUNC(on_display_set_focus
),
127 if (screen_width
== 0 || screen_height
== 0) {
128 screen_width
= gdk_screen_width();
129 screen_height
= gdk_screen_height();
132 width
= (gint
) (disp
->zoom_factor
* gpiv_par
.img_width
+ VIEW_HMARGE
);
133 height
= (gint
) (disp
->zoom_factor
* gpiv_par
.img_height
+ VIEW_VMARGE
);
134 /* if (width < screen_width && height < screen_height) { */
135 gtk_window_set_default_size(GTK_WINDOW(disp
->mwin
),
141 /* gtk_window_set_policy (GTK_WINDOW (disp->mwin), */
148 disp
->table
= gtk_table_new(2,
151 gtk_widget_ref(disp
->table
);
152 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
155 (GtkDestroyNotify
) gtk_widget_unref
);
156 gtk_widget_show(disp
->table
);
157 /* gtk_container_add (GTK_CONTAINER (viewport_display),
159 gtk_container_add(GTK_CONTAINER(disp
->mwin
),
164 * button with arrow disabled as conflicts with popup menu
166 /* disp->button_origin = gtk_button_new(); */
167 /* disp->arrow_origin = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_OUT); */
168 /* gtk_container_add(GTK_CONTAINER(disp->button_origin), */
169 /* disp->arrow_origin); */
170 /* gtk_widget_show(disp->arrow_origin); */
171 /* gtk_signal_connect(GTK_OBJECT(disp->button_origin), */
172 /* "button_press_event", */
173 /* GTK_SIGNAL_FUNC(on_view_options_clicked), NULL); */
174 /* gtk_widget_show(disp->button_origin); */
175 /* gtk_table_attach(GTK_TABLE(disp->table), disp->button_origin, 0, 1, */
176 /* 0, 1, (GtkAttachOptions) (GTK_FILL), */
177 /* (GtkAttachOptions) (0), 0, 0); */
178 /* gtk_widget_set_usize(disp->button_origin, 1, 0); */
179 /* gtk_signal_connect(GTK_OBJECT(disp->button_origin), */
180 /* "button_press_event", */
181 /* GTK_SIGNAL_FUNC */
182 /* (on_button_display_origin_press_event), NULL); */
188 #define EVENT_METHOD(i, x) GTK_WIDGET_CLASS(GTK_OBJECT(i)->klass)->x
190 disp
->hruler
= gtk_hruler_new();
191 gtk_widget_ref(disp
->hruler
);
192 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
195 (GtkDestroyNotify
) gtk_widget_unref
);
196 gtk_widget_show(disp
->hruler
);
197 gtk_table_attach(GTK_TABLE(disp
->table
),
203 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
204 (GtkAttachOptions
) (GTK_FILL
),
207 /* gtk_ruler_set_range (GTK_RULER (disp->hruler), 0, 500, 0, 1279); */
208 gtk_ruler_set_range(GTK_RULER(disp
->hruler
),
210 gpiv_par
.img_width
- 1,
212 gpiv_par
.img_height
- 1);
214 disp
->vruler
= gtk_vruler_new();
215 gtk_widget_ref(disp
->vruler
);
216 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
219 (GtkDestroyNotify
) gtk_widget_unref
);
220 gtk_widget_show(disp
->vruler
);
221 gtk_table_attach(GTK_TABLE(disp
->table
),
227 (GtkAttachOptions
) (GTK_FILL
),
228 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
231 /* gtk_ruler_set_range (GTK_RULER (disp->vruler), 0, 550, 0, 1023); */
232 gtk_ruler_set_range(GTK_RULER(disp
->vruler
),
234 gpiv_par
.img_width
- 1,
236 gpiv_par
.img_height
- 1);
242 disp
->scrolledwindow
= gtk_scrolled_window_new(NULL
,
244 gtk_widget_ref(disp
->scrolledwindow
);
245 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
247 disp
->scrolledwindow
,
248 (GtkDestroyNotify
) gtk_widget_unref
);
249 gtk_widget_show(disp
->scrolledwindow
);
250 /* gtk_container_add (GTK_CONTAINER (disp->mwin), disp->scrolledwindow); */
251 gtk_table_attach(GTK_TABLE(disp
->table
),
252 disp
->scrolledwindow
,
257 (GtkAttachOptions
) (GTK_FILL
),
258 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
261 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
262 (disp
->scrolledwindow
),
265 /* gtk_widget_set_usize (disp->scrolledwindow_buf, 160, -2); */
268 disp
->scrolledwindow_hadj
=
269 gtk_adjustment_new(0.0,
271 (gfloat
) gpiv_par
.img_width
,
275 gtk_scrolled_window_set_hadjustment(GTK_SCROLLED_WINDOW
276 (disp
->scrolledwindow
),
278 (disp
->scrolledwindow_hadj
));
279 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
280 "scrolledwindow_hadj",
281 disp
->scrolledwindow_hadj
,
282 (GtkDestroyNotify
) gtk_widget_unref
);
283 gtk_object_set_data(GTK_OBJECT(disp
->scrolledwindow_hadj
),
286 gtk_signal_connect(GTK_OBJECT(disp
->scrolledwindow_hadj
),
289 (on_scrolledwindow_display_adj_changed
),
293 disp
->scrolledwindow_vadj
=
294 gtk_adjustment_new(0.0,
296 (gfloat
) gpiv_par
.img_height
,
300 gtk_scrolled_window_set_vadjustment(GTK_SCROLLED_WINDOW
301 (disp
->scrolledwindow
),
303 (disp
->scrolledwindow_vadj
));
304 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
305 "scrolledwindow_vadj",
306 disp
->scrolledwindow_vadj
,
307 (GtkDestroyNotify
) gtk_widget_unref
);
308 gtk_object_set_data(GTK_OBJECT(disp
->scrolledwindow_vadj
),
311 gtk_signal_connect(GTK_OBJECT(disp
->scrolledwindow_vadj
),
314 (on_scrolledwindow_display_adj_changed
),
320 gtk_widget_push_visual(gdk_imlib_get_visual());
321 gtk_widget_push_colormap(gdk_imlib_get_colormap());
322 /* gtk_widget_push_visual (gdk_rgb_get_visual ()); */
323 /* gtk_widget_push_colormap (gdk_rgb_get_cmap ()); */
325 disp
->canvas
= gnome_canvas_new
/* _aa */ ();
326 gtk_widget_pop_colormap();
327 gtk_widget_pop_visual();
328 gtk_widget_ref(disp
->canvas
);
329 gtk_widget_set_events(GTK_WIDGET(disp
->canvas
),
330 GDK_LEAVE_NOTIFY_MASK
|
331 GDK_BUTTON_PRESS_MASK
|
332 GDK_BUTTON_RELEASE_MASK
|
333 GDK_POINTER_MOTION_MASK
|
334 GDK_POINTER_MOTION_HINT_MASK
);
336 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
339 (GtkDestroyNotify
) gtk_widget_unref
);
340 gtk_widget_show(disp
->canvas
);
341 gnome_canvas_set_scroll_region(GNOME_CANVAS(disp
->canvas
),
344 gpiv_par
.img_width
- 1,
345 gpiv_par
.img_height
- 1);
346 gtk_container_add(GTK_CONTAINER(disp
->scrolledwindow
),
351 gtk_object_set_data(GTK_OBJECT(disp
->canvas
),
354 gtk_object_set_data(GTK_OBJECT(disp
->canvas
),
357 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
358 "enter_notify_event",
359 GTK_SIGNAL_FUNC(canvas_display_enter_notify
),
361 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
362 "motion_notify_event",
363 GTK_SIGNAL_FUNC(canvas_display_motion_notify
),
365 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
366 "button_press_event",
367 GTK_SIGNAL_FUNC(canvas_display_button_press
),
369 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
370 "button_release_event",
371 GTK_SIGNAL_FUNC(canvas_display_button_release
),
373 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
374 "leave_notify_event",
375 GTK_SIGNAL_FUNC(canvas_display_leave_notify
),
380 * connect rulers to gnome_canvas drawing area
382 gtk_signal_connect_object(GTK_OBJECT(disp
->canvas
),
383 "motion_notify_event",
385 EVENT_METHOD(disp
->vruler
,
386 motion_notify_event
),
387 GTK_OBJECT(disp
->vruler
));
389 gtk_signal_connect_object(GTK_OBJECT(disp
->canvas
),
390 "motion_notify_event",
392 EVENT_METHOD(disp
->hruler
,
393 motion_notify_event
),
394 GTK_OBJECT(disp
->hruler
));
398 * application/status bar
400 disp
->appbar
= gnome_appbar_new(FALSE
,
402 GNOME_PREFERENCES_NEVER
);
403 gtk_widget_ref(disp
->appbar
);
404 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
407 (GtkDestroyNotify
) gtk_widget_unref
);
408 gtk_widget_show(disp
->appbar
);
409 gtk_table_attach(GTK_TABLE(disp
->table
),
415 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
416 (GtkAttachOptions
) (GTK_FILL
),
419 gnome_appbar_set_default(GNOME_APPBAR(disp
->appbar
),
420 disp
->msg_display_default
);
425 /* gtk_signal_connect_object(GTK_OBJECT(disp->mwin), "button_press_event", */
426 /* GTK_SIGNAL_FUNC (on_my_popup_handler), */
427 /* GTK_OBJECT(display_menu)); */
429 /* the navigation window button See GIMP */
430 disp
->nav_ebox
= gtk_event_box_new();
431 gtk_widget_ref(disp
->nav_ebox
);
432 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
435 (GtkDestroyNotify
) gtk_widget_unref
);
436 gtk_table_attach(GTK_TABLE(disp
->table
),
442 (GtkAttachOptions
) (GTK_FILL
),
443 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
446 gtk_widget_show(disp
->nav_ebox
);
447 gtk_signal_connect(GTK_OBJECT(disp
->nav_ebox
),
448 "button_press_event",
449 GTK_SIGNAL_FUNC(nav_popup_click_handler
),
452 /* disp->pixmap = gtk_pixmap_new (navbutton_pixmap, navbutton_mask); */
453 /* gtk_container_add (GTK_CONTAINER (disp->nav_ebox), disp->pixmap); */
454 /* gtk_widget_show (disp->pixmap); */
463 create_display_menu(Display
* disp
)
465 GtkWidget
*display_menu
= NULL
;
467 display_menu
= gtk_menu_new();
469 /* GTK_OBJECT(display_act->gpd.display->mwin), */
470 GTK_OBJECT(disp
->mwin
),
473 gnome_app_fill_menu(GTK_MENU_SHELL(display_menu
),
483 gtk_widget_ref(display_menu_uiinfo
[0].widget
);
484 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
486 display_menu_uiinfo
[0].widget
,
487 (GtkDestroyNotify
) gtk_widget_unref
);
490 gtk_widget_ref(view_menu_display
[2].widget
);
491 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
493 view_menu_display
[2].widget
,
494 (GtkDestroyNotify
) gtk_widget_unref
);
495 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
496 "view_menu_display2",
497 view_menu_display
[2].widget
);
498 g_warning("display_img1 = %d", disp
->display_img1
);
499 if (disp
->display_img1
) {
500 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
501 (view_menu_display
[2].widget
),
507 gtk_widget_ref(view_menu_display
[3].widget
);
508 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
510 view_menu_display
[3].widget
,
511 (GtkDestroyNotify
) gtk_widget_unref
);
512 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
513 "view_menu_display3",
514 view_menu_display
[3].widget
);
515 g_warning("display_img2 = %d", disp
->display_img2
);
516 if (disp
->display_img2
) {
517 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
518 (view_menu_display
[3].widget
),
524 gtk_widget_ref(view_menu_display
[4].widget
);
525 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
527 view_menu_display
[4].widget
,
528 (GtkDestroyNotify
) gtk_widget_unref
);
529 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
530 "view_menu_display4",
531 view_menu_display
[4].widget
);
532 g_warning("display_intregs = %d", disp
->display_intregs
);
533 if (disp
->display_intregs
) {
534 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
535 (view_menu_display
[4].widget
),
541 gtk_widget_ref(view_menu_display
[5].widget
);
542 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
544 view_menu_display
[5].widget
,
545 (GtkDestroyNotify
) gtk_widget_unref
);
546 /* gtk_object_set_data(GTK_OBJECT(disp->mwin), */
547 /* "view_menu_display5", */
548 /* view_menu_display[5].widget); */
549 if (disp
->display_piv
) {
550 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
551 (view_menu_display
[5].widget
),
557 gtk_widget_ref(view_menu_display
[6].widget
);
558 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
560 view_menu_display
[6].widget
,
561 (GtkDestroyNotify
) gtk_widget_unref
);
562 if (gpiv_par
.display_vor
) {
563 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
564 (view_menu_display
[6].widget
),
567 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
568 (view_menu_display
[6].widget
),
574 gtk_widget_ref(view_menu_display
[7].widget
);
575 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
577 view_menu_display
[7].widget
,
578 (GtkDestroyNotify
) gtk_widget_unref
);
579 if (gpiv_par
.display_sstrain
) {
580 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
581 (view_menu_display
[7].widget
),
584 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
585 (view_menu_display
[7].widget
),
591 gtk_widget_ref(view_menu_display
[8].widget
);
592 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
594 view_menu_display
[8].widget
,
595 (GtkDestroyNotify
) gtk_widget_unref
);
596 if (gpiv_par
.display_nstrain
) {
597 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
598 (view_menu_display
[8].widget
),
601 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
602 (view_menu_display
[8].widget
),
611 gtk_widget_ref(zoomscale_menu_display
[0].widget
);
612 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
614 zoomscale_menu_display
[0].widget
,
615 (GtkDestroyNotify
) gtk_widget_unref
);
616 if (disp
->zoom_index
== ZOOM_0
) {
617 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
618 (zoomscale_menu_display
[0].widget
),
624 gtk_widget_ref(zoomscale_menu_display
[1].widget
);
625 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
627 zoomscale_menu_display
[1].widget
,
628 (GtkDestroyNotify
) gtk_widget_unref
);
629 if (disp
->zoom_index
== ZOOM_1
) {
630 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
631 (zoomscale_menu_display
[1].widget
),
637 gtk_widget_ref(zoomscale_menu_display
[2].widget
);
638 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
640 zoomscale_menu_display
[2].widget
,
641 (GtkDestroyNotify
) gtk_widget_unref
);
642 if (disp
->zoom_index
== ZOOM_2
) {
643 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
644 (zoomscale_menu_display
[2].widget
),
650 gtk_widget_ref(zoomscale_menu_display
[3].widget
);
651 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
653 zoomscale_menu_display
[3].widget
,
654 (GtkDestroyNotify
) gtk_widget_unref
);
655 if (disp
->zoom_index
== ZOOM_3
) {
656 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
657 (zoomscale_menu_display
[3].widget
),
663 gtk_widget_ref(zoomscale_menu_display
[4].widget
);
664 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
666 zoomscale_menu_display
[4].widget
,
667 (GtkDestroyNotify
) gtk_widget_unref
);
668 if (disp
->zoom_index
== ZOOM_4
) {
669 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
670 (zoomscale_menu_display
[4].widget
),
676 gtk_widget_ref(zoomscale_menu_display
[5].widget
);
677 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
679 zoomscale_menu_display
[5].widget
,
680 (GtkDestroyNotify
) gtk_widget_unref
);
681 if (disp
->zoom_index
== ZOOM_5
) {
682 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
683 (zoomscale_menu_display
[5].widget
),
689 * stretch window menu widget to resize window after zoomscaling
692 gtk_widget_ref(view_menu_display
[0].widget
);
693 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
695 view_menu_display
[0].widget
,
696 (GtkDestroyNotify
) gtk_widget_unref
);
697 gtk_menu_item_activate(GTK_MENU_ITEM(view_menu_display
[0].widget
));
701 * vectorscale menu widgets
703 gtk_widget_ref(vectorscale_menu_display
[0].widget
);
704 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
706 vectorscale_menu_display
[0].widget
,
707 (GtkDestroyNotify
) gtk_widget_unref
);
708 if (gpiv_par
.vector_scale
== 1) {
709 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
710 (vectorscale_menu_display
[0].widget
),
716 gtk_widget_ref(vectorscale_menu_display
[1].widget
);
717 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
719 vectorscale_menu_display
[1].widget
,
720 (GtkDestroyNotify
) gtk_widget_unref
);
721 if (gpiv_par
.vector_scale
== 2) {
722 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
723 (vectorscale_menu_display
[1].widget
),
729 gtk_widget_ref(vectorscale_menu_display
[2].widget
);
730 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
732 vectorscale_menu_display
[2].widget
,
733 (GtkDestroyNotify
) gtk_widget_unref
);
734 if (gpiv_par
.vector_scale
== 4) {
735 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
736 (vectorscale_menu_display
[2].widget
),
742 gtk_widget_ref(vectorscale_menu_display
[3].widget
);
743 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
745 vectorscale_menu_display
[3].widget
,
746 (GtkDestroyNotify
) gtk_widget_unref
);
747 if (gpiv_par
.vector_scale
== 8) {
748 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
749 (vectorscale_menu_display
[3].widget
),
755 gtk_widget_ref(vectorscale_menu_display
[4].widget
);
756 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
758 vectorscale_menu_display
[0].widget
,
759 (GtkDestroyNotify
) gtk_widget_unref
);
760 if (gpiv_par
.vector_scale
== 16) {
761 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
762 (vectorscale_menu_display
[4].widget
),
768 gtk_widget_ref(vectorscale_menu_display
[5].widget
);
769 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
771 vectorscale_menu_display
[5].widget
,
772 (GtkDestroyNotify
) gtk_widget_unref
);
773 if (gpiv_par
.vector_scale
== 32) {
774 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
775 (vectorscale_menu_display
[5].widget
),
781 gtk_widget_ref(vectorscale_menu_display
[6].widget
);
782 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
784 vectorscale_menu_display
[6].widget
,
785 (GtkDestroyNotify
) gtk_widget_unref
);
786 if (gpiv_par
.vector_scale
== 64) {
787 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
788 (vectorscale_menu_display
[6].widget
),
794 gtk_widget_ref(vectorscale_menu_display
[7].widget
);
795 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
797 vectorscale_menu_display
[7].widget
,
798 (GtkDestroyNotify
) gtk_widget_unref
);
799 if (gpiv_par
.vector_scale
== 128) {
800 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
801 (vectorscale_menu_display
[7].widget
),
807 gtk_widget_ref(vectorscale_menu_display
[8].widget
);
808 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
810 vectorscale_menu_display
[8].widget
,
811 (GtkDestroyNotify
) gtk_widget_unref
);
812 if (gpiv_par
.vector_scale
== 256) {
813 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
814 (vectorscale_menu_display
[8].widget
),
826 GtkWidget
*create_img_display(gchar
* fname
,
830 img_display_window
= NULL
;
834 img_display_window
= gtk_window_new(GTK_WINDOW_TOPLEVEL
);
835 gtk_object_set_data(GTK_OBJECT(img_display_window
),
836 "img_display_window",
838 gtk_window_set_title(GTK_WINDOW(img_display_window
),
845 darea
= gtk_drawing_area_new();
846 gtk_drawing_area_size(GTK_DRAWING_AREA(darea
),
848 gpiv_par
.img_height
);
849 gtk_container_add(GTK_CONTAINER(img_display_window
),
851 gtk_signal_connect(GTK_OBJECT(darea
),
853 GTK_SIGNAL_FUNC(on_darea_img_expose
),
856 /* if (gpiv_par.view_gpivbuttons) { */
857 /* gtk_widget_show(handlebox1); */
860 /* gtk_widget_hide(handlebox1); */
862 /* gtk_widget_show(handlebox1); */
863 /* gtk_widget_show(scrolledwindow_handbox1); */
864 /* gtk_widget_show(viewport_handbox1); */
865 /* gtk_widget_show(toolbar2); */
866 /* gtk_widget_show (hbox_toolbar2); */
867 return img_display_window
;