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.2 2003-06-27 13:47:26 gerber
31 * display ruler, line/point evaluation
33 * Revision 1.1.1.1 2003/06/17 17:10:52 gerber
39 #include "display_interface.h"
40 #include "display_menus.h"
45 create_display(gchar
* fname
,
50 Display
*disp
= g_new0(Display
,
52 static gint screen_width
= 0, screen_height
= 0;
53 static gint width
= 0, height
= 0;
54 static gchar title
[MAX_CHARS
];
61 snprintf(disp
->msg_display_default
,
66 disp
->count
= display_count
;
67 disp
->zoom_index
= gpiv_par
.zoom_index
;
68 disp
->zoom_factor
= zfactor
[disp
->zoom_index
];
69 disp
->vector_scale
= gpiv_par
.vector_scale
;
70 disp
->display_img1
= gpiv_par
.display_img1
;
71 disp
->display_img2
= gpiv_par
.display_img2
;
72 disp
->display_intregs
= gpiv_par
.display_intregs
;
73 disp
->display_piv
= gpiv_par
.display_piv
;
74 disp
->display_vor
= gpiv_par
.display_vor
;
75 disp
->display_sstrain
= gpiv_par
.display_sstrain
;
76 disp
->display_nstrain
= gpiv_par
.display_nstrain
;
78 disp
->img
.exist_img
= FALSE
;
79 disp
->gpd
.exist_piv
= FALSE
;
80 disp
->gpd
.saved_piv
= TRUE
;
81 disp
->gpd
.scaled_piv
= FALSE
;
82 disp
->gpd
.exist_valid
= FALSE
;
83 disp
->gpd
.exist_vor
= FALSE
;
84 disp
->gpd
.exist_vor_scaled
= FALSE
;
85 disp
->gpd
.saved_vor
= TRUE
;
86 disp
->gpd
.exist_sstrain
= FALSE
;
87 disp
->gpd
.exist_sstrain_scaled
= FALSE
;
88 disp
->gpd
.saved_sstrain
= TRUE
;
89 disp
->gpd
.exist_nstrain
= FALSE
;
90 disp
->gpd
.exist_nstrain_scaled
= FALSE
;
91 disp
->gpd
.saved_nstrain
= TRUE
;
95 /* disp->intreg.gci_intreg1 = alloc_gci_matrix(MAX_DATA, MAX_DATA); */
96 /* gpiv_warning("create_display:: A back from alloc_gci_matrix"); */
97 /* disp->intreg.gci_intreg2 = alloc_gci_matrix(MAX_DATA, MAX_DATA); */
98 /* gpiv_warning("create_display:: B back from alloc_gci_matrix"); */
101 disp
->mwin
= gtk_window_new(GTK_WINDOW_TOPLEVEL
);
102 gtk_window_set_title(GTK_WINDOW(disp
->mwin
),
104 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
107 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
114 /* gtk_object_set_data_full(GTK_OBJECT(disp->mwin), */
117 /* (GtkDestroyNotify) gtk_widget_unref); */
118 /* gtk_signal_connect (GTK_OBJECT (disp->mwin), "destroy", */
119 /* GTK_SIGNAL_FUNC (destroy), NULL); */
123 * focussing the actual display
125 gtk_signal_connect(GTK_OBJECT(disp
->mwin
),
127 GTK_SIGNAL_FUNC(on_display_set_focus
),
130 if (screen_width
== 0 || screen_height
== 0) {
131 screen_width
= gdk_screen_width();
132 screen_height
= gdk_screen_height();
135 width
= (gint
) (disp
->zoom_factor
* gpiv_par
.img_width
+ VIEW_HMARGE
);
136 height
= (gint
) (disp
->zoom_factor
* gpiv_par
.img_height
+ VIEW_VMARGE
);
137 /* if (width < screen_width && height < screen_height) { */
138 gtk_window_set_default_size(GTK_WINDOW(disp
->mwin
),
144 gtk_window_set_policy (GTK_WINDOW (disp
->mwin
),
150 * for gtk 1.4 (or newer?)
152 /* gtk_window_set_user_resizeable(GTK_WINDOW (disp->mwin), */
158 disp
->table
= gtk_table_new(2,
161 gtk_widget_ref(disp
->table
);
162 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
165 (GtkDestroyNotify
) gtk_widget_unref
);
166 gtk_widget_show(disp
->table
);
167 gtk_container_add(GTK_CONTAINER(disp
->mwin
),
172 * button with arrow disabled as it conflicts with popup menu
174 /* disp->button_origin = gtk_button_new(); */
175 /* disp->arrow_origin = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_OUT); */
176 /* gtk_container_add(GTK_CONTAINER(disp->button_origin), */
177 /* disp->arrow_origin); */
178 /* gtk_widget_show(disp->arrow_origin); */
179 /* gtk_signal_connect(GTK_OBJECT(disp->button_origin), */
180 /* "button_press_event", */
181 /* GTK_SIGNAL_FUNC(on_view_options_clicked), NULL); */
182 /* gtk_widget_show(disp->button_origin); */
183 /* gtk_table_attach(GTK_TABLE(disp->table), disp->button_origin, 0, 1, */
184 /* 0, 1, (GtkAttachOptions) (GTK_FILL), */
185 /* (GtkAttachOptions) (0), 0, 0); */
186 /* gtk_widget_set_usize(disp->button_origin, 1, 0); */
187 /* gtk_signal_connect(GTK_OBJECT(disp->button_origin), */
188 /* "button_press_event", */
189 /* GTK_SIGNAL_FUNC */
190 /* (on_button_display_origin_press_event), NULL); */
196 #define EVENT_METHOD(i, x) GTK_WIDGET_CLASS(GTK_OBJECT(i)->klass)->x
198 disp
->hruler
= gtk_hruler_new();
199 gtk_widget_ref(disp
->hruler
);
200 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
203 (GtkDestroyNotify
) gtk_widget_unref
);
204 gtk_widget_show(disp
->hruler
);
205 gtk_table_attach(GTK_TABLE(disp
->table
),
211 (GtkAttachOptions
) (GTK_EXPAND
/* | GTK_FILL */),
212 (GtkAttachOptions
) (GTK_FILL
),
216 gtk_ruler_set_range(GTK_RULER(disp
->hruler
),
218 (gfloat
) (gpiv_par
.img_width
- 1),
220 (gfloat
) (gpiv_par
.img_width
- 1));
221 gtk_widget_set_usize (disp
->hruler
,
222 (gint
) (disp
->zoom_factor
* gpiv_par
.img_width
),
224 gtk_widget_set_uposition (disp
->hruler
, RULER_WIDTH
, 0);
228 disp
->vruler
= gtk_vruler_new();
229 gtk_widget_ref(disp
->vruler
);
230 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
233 (GtkDestroyNotify
) gtk_widget_unref
);
234 gtk_widget_show(disp
->vruler
);
235 gtk_table_attach(GTK_TABLE(disp
->table
),
241 (GtkAttachOptions
) (GTK_EXPAND
/* GTK_FILL */),
242 (GtkAttachOptions
) (GTK_EXPAND
/* | GTK_FILL */),
246 gtk_ruler_set_range(GTK_RULER(disp
->vruler
),
248 (gfloat
) (gpiv_par
.img_height
- 1),
250 (gfloat
) (gpiv_par
.img_height
- 1));
251 gtk_widget_set_usize (disp
->vruler
,
253 (gint
) (disp
->zoom_factor
* gpiv_par
.img_height
));
254 gtk_widget_set_uposition (disp
->vruler
, 0, RULER_WIDTH
);
260 disp
->scrolledwindow
= gtk_scrolled_window_new(NULL
,
262 gtk_widget_ref(disp
->scrolledwindow
);
263 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
265 disp
->scrolledwindow
,
266 (GtkDestroyNotify
) gtk_widget_unref
);
267 gtk_widget_show(disp
->scrolledwindow
);
268 gtk_table_attach(GTK_TABLE(disp
->table
),
269 disp
->scrolledwindow
,
274 (GtkAttachOptions
) (GTK_FILL
),
275 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
278 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
279 (disp
->scrolledwindow
),
283 /* gtk_widget_set_usize (disp->scrolledwindow, */
284 /* gpiv_par.img_width, */
285 /* gpiv_par.img_height); */
288 disp
->scrolledwindow_hadj
=
289 gtk_adjustment_new(0.0,
291 (gfloat
) gpiv_par
.img_width
,
295 gtk_scrolled_window_set_hadjustment(GTK_SCROLLED_WINDOW
296 (disp
->scrolledwindow
),
298 (disp
->scrolledwindow_hadj
));
299 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
300 "scrolledwindow_hadj",
301 disp
->scrolledwindow_hadj
,
302 (GtkDestroyNotify
) gtk_widget_unref
);
303 gtk_object_set_data(GTK_OBJECT(disp
->scrolledwindow_hadj
),
306 gtk_object_set_data(GTK_OBJECT(disp
->scrolledwindow_hadj
),
309 gtk_signal_connect(GTK_OBJECT(disp
->scrolledwindow_hadj
),
312 (on_scrolledwindow_display_adj_changed
),
316 disp
->scrolledwindow_vadj
=
317 gtk_adjustment_new(0.0,
319 (gfloat
) gpiv_par
.img_height
,
323 gtk_scrolled_window_set_vadjustment(GTK_SCROLLED_WINDOW
324 (disp
->scrolledwindow
),
326 (disp
->scrolledwindow_vadj
));
327 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
328 "scrolledwindow_vadj",
329 disp
->scrolledwindow_vadj
,
330 (GtkDestroyNotify
) gtk_widget_unref
);
331 gtk_object_set_data(GTK_OBJECT(disp
->scrolledwindow_vadj
),
334 gtk_object_set_data(GTK_OBJECT(disp
->scrolledwindow_vadj
),
337 gtk_signal_connect(GTK_OBJECT(disp
->scrolledwindow_vadj
),
340 (on_scrolledwindow_display_adj_changed
),
346 /* gtk_widget_push_visual (gdk_rgb_get_visual ()); */
347 /* gtk_widget_push_colormap (gdk_rgb_get_cmap ()); */
348 /* disp->canvas = gnome_canvas_new_aa (); */
350 gtk_widget_push_visual(gdk_imlib_get_visual());
351 gtk_widget_push_colormap(gdk_imlib_get_colormap());
353 disp
->canvas
= gnome_canvas_new ();
354 gtk_widget_pop_colormap();
355 gtk_widget_pop_visual();
356 gtk_widget_ref(disp
->canvas
);
357 gtk_widget_set_events(GTK_WIDGET(disp
->canvas
),
358 GDK_LEAVE_NOTIFY_MASK
|
359 GDK_BUTTON_PRESS_MASK
|
360 GDK_BUTTON_RELEASE_MASK
|
361 GDK_POINTER_MOTION_MASK
|
362 GDK_POINTER_MOTION_HINT_MASK
);
364 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
367 (GtkDestroyNotify
) gtk_widget_unref
);
368 gtk_widget_show(disp
->canvas
);
369 gnome_canvas_set_scroll_region(GNOME_CANVAS(disp
->canvas
),
372 gpiv_par
.img_width
- 1,
373 gpiv_par
.img_height
- 1);
374 gtk_container_add(GTK_CONTAINER(disp
->scrolledwindow
),
378 gtk_object_set_data(GTK_OBJECT(disp
->canvas
),
381 gtk_object_set_data(GTK_OBJECT(disp
->canvas
),
384 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
385 "enter_notify_event",
386 GTK_SIGNAL_FUNC(canvas_display_enter_notify
),
388 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
389 "motion_notify_event",
390 GTK_SIGNAL_FUNC(canvas_display_motion_notify
),
392 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
393 "button_press_event",
394 GTK_SIGNAL_FUNC(canvas_display_button_press
),
396 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
397 "button_release_event",
398 GTK_SIGNAL_FUNC(canvas_display_button_release
),
400 gtk_signal_connect(GTK_OBJECT(disp
->canvas
),
401 "leave_notify_event",
402 GTK_SIGNAL_FUNC(canvas_display_leave_notify
),
407 * connect rulers to gnome_canvas drawing area
409 gtk_signal_connect_object(GTK_OBJECT(disp
->canvas
),
410 "motion_notify_event",
412 EVENT_METHOD(disp
->hruler
,
413 motion_notify_event
),
414 GTK_OBJECT(disp
->hruler
));
416 gtk_signal_connect_object(GTK_OBJECT(disp
->canvas
),
417 "motion_notify_event",
419 EVENT_METHOD(disp
->vruler
,
420 motion_notify_event
),
421 GTK_OBJECT(disp
->vruler
));
425 * application/status bar
427 disp
->appbar
= gnome_appbar_new(FALSE
,
429 GNOME_PREFERENCES_NEVER
);
430 gtk_widget_ref(disp
->appbar
);
431 gtk_object_set_data_full(GTK_OBJECT(disp
->mwin
),
434 (GtkDestroyNotify
) gtk_widget_unref
);
435 gtk_widget_show(disp
->appbar
);
436 gtk_table_attach(GTK_TABLE(disp
->table
),
442 (GtkAttachOptions
) (GTK_EXPAND
| GTK_FILL
),
443 (GtkAttachOptions
) (GTK_FILL
),
446 gnome_appbar_set_default(GNOME_APPBAR(disp
->appbar
),
447 disp
->msg_display_default
);
452 /* gtk_signal_connect_object(GTK_OBJECT(disp->mwin), "button_press_event", */
453 /* GTK_SIGNAL_FUNC (on_my_popup_handler), */
454 /* GTK_OBJECT(display_menu)); */
456 /* the navigation window button See GIMP */
457 /* disp->nav_ebox = gtk_event_box_new(); */
458 /* gtk_widget_ref(disp->nav_ebox); */
459 /* gtk_object_set_data_full(GTK_OBJECT(disp->mwin), */
461 /* disp->nav_ebox, */
462 /* (GtkDestroyNotify) gtk_widget_unref); */
463 /* gtk_table_attach(GTK_TABLE(disp->table), */
464 /* disp->nav_ebox, */
469 /* (GtkAttachOptions) (GTK_FILL), */
470 /* (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), */
473 /* gtk_widget_show(disp->nav_ebox); */
474 /* gtk_signal_connect(GTK_OBJECT(disp->nav_ebox), */
475 /* "button_press_event", */
476 /* GTK_SIGNAL_FUNC(nav_popup_click_handler), */
479 /* disp->pixmap = gtk_pixmap_new (navbutton_pixmap, navbutton_mask); */
480 /* gtk_container_add (GTK_CONTAINER (disp->nav_ebox), disp->pixmap); */
481 /* gtk_widget_show (disp->pixmap); */
484 g_warning("::5 END");
491 create_display_menu(Display
* disp
)
493 GtkWidget
*display_menu
= NULL
;
495 display_menu
= gtk_menu_new();
496 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
499 gnome_app_fill_menu(GTK_MENU_SHELL(display_menu
),
509 gtk_widget_ref(display_menu_uiinfo
[0].widget
);
510 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
512 display_menu_uiinfo
[0].widget
,
513 (GtkDestroyNotify
) gtk_widget_unref
);
516 gtk_widget_ref(view_menu_display
[2].widget
);
517 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
519 view_menu_display
[2].widget
,
520 (GtkDestroyNotify
) gtk_widget_unref
);
521 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
522 "view_menu_display2",
523 view_menu_display
[2].widget
);
524 if (disp
->display_img1
) {
525 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
526 (view_menu_display
[2].widget
),
532 gtk_widget_ref(view_menu_display
[3].widget
);
533 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
535 view_menu_display
[3].widget
,
536 (GtkDestroyNotify
) gtk_widget_unref
);
537 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
538 "view_menu_display3",
539 view_menu_display
[3].widget
);
540 if (disp
->display_img2
) {
541 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
542 (view_menu_display
[3].widget
),
548 gtk_widget_ref(view_menu_display
[4].widget
);
549 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
551 view_menu_display
[4].widget
,
552 (GtkDestroyNotify
) gtk_widget_unref
);
553 gtk_object_set_data(GTK_OBJECT(disp
->mwin
),
554 "view_menu_display4",
555 view_menu_display
[4].widget
);
556 if (disp
->display_intregs
) {
557 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
558 (view_menu_display
[4].widget
),
564 gtk_widget_ref(view_menu_display
[5].widget
);
565 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
567 view_menu_display
[5].widget
,
568 (GtkDestroyNotify
) gtk_widget_unref
);
569 /* gtk_object_set_data(GTK_OBJECT(disp->mwin), */
570 /* "view_menu_display5", */
571 /* view_menu_display[5].widget); */
572 if (disp
->display_piv
) {
573 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
574 (view_menu_display
[5].widget
),
580 gtk_widget_ref(view_menu_display
[6].widget
);
581 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
583 view_menu_display
[6].widget
,
584 (GtkDestroyNotify
) gtk_widget_unref
);
585 if (gpiv_par
.display_vor
) {
586 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
587 (view_menu_display
[6].widget
),
590 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
591 (view_menu_display
[6].widget
),
597 gtk_widget_ref(view_menu_display
[7].widget
);
598 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
600 view_menu_display
[7].widget
,
601 (GtkDestroyNotify
) gtk_widget_unref
);
602 if (gpiv_par
.display_sstrain
) {
603 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
604 (view_menu_display
[7].widget
),
607 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
608 (view_menu_display
[7].widget
),
614 gtk_widget_ref(view_menu_display
[8].widget
);
615 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
617 view_menu_display
[8].widget
,
618 (GtkDestroyNotify
) gtk_widget_unref
);
619 if (gpiv_par
.display_nstrain
) {
620 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
621 (view_menu_display
[8].widget
),
624 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
625 (view_menu_display
[8].widget
),
634 gtk_widget_ref(zoomscale_menu_display
[0].widget
);
635 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
637 zoomscale_menu_display
[0].widget
,
638 (GtkDestroyNotify
) gtk_widget_unref
);
639 if (disp
->zoom_index
== ZOOM_0
) {
640 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
641 (zoomscale_menu_display
[0].widget
),
644 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[0].widget
),
647 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[0].widget
),
653 gtk_widget_ref(zoomscale_menu_display
[1].widget
);
654 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
656 zoomscale_menu_display
[1].widget
,
657 (GtkDestroyNotify
) gtk_widget_unref
);
658 if (disp
->zoom_index
== ZOOM_1
) {
659 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
660 (zoomscale_menu_display
[1].widget
),
663 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[1].widget
),
666 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[1].widget
),
672 gtk_widget_ref(zoomscale_menu_display
[2].widget
);
673 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
675 zoomscale_menu_display
[2].widget
,
676 (GtkDestroyNotify
) gtk_widget_unref
);
677 if (disp
->zoom_index
== ZOOM_2
) {
678 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
679 (zoomscale_menu_display
[2].widget
),
682 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[2].widget
),
685 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[2].widget
),
691 gtk_widget_ref(zoomscale_menu_display
[3].widget
);
692 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
694 zoomscale_menu_display
[3].widget
,
695 (GtkDestroyNotify
) gtk_widget_unref
);
696 if (disp
->zoom_index
== ZOOM_3
) {
697 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
698 (zoomscale_menu_display
[3].widget
),
701 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[3].widget
),
704 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[3].widget
),
710 gtk_widget_ref(zoomscale_menu_display
[4].widget
);
711 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
713 zoomscale_menu_display
[4].widget
,
714 (GtkDestroyNotify
) gtk_widget_unref
);
715 if (disp
->zoom_index
== ZOOM_4
) {
716 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
717 (zoomscale_menu_display
[4].widget
),
720 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[4].widget
),
723 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[4].widget
),
729 gtk_widget_ref(zoomscale_menu_display
[5].widget
);
730 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
732 zoomscale_menu_display
[5].widget
,
733 (GtkDestroyNotify
) gtk_widget_unref
);
734 if (disp
->zoom_index
== ZOOM_5
) {
735 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
736 (zoomscale_menu_display
[5].widget
),
739 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[5].widget
),
742 gtk_object_set_data(GTK_OBJECT(zoomscale_menu_display
[5].widget
),
748 * stretch window menu widget to resize window after zoomscaling
751 gtk_widget_ref(view_menu_display
[0].widget
);
752 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
754 view_menu_display
[0].widget
,
755 (GtkDestroyNotify
) gtk_widget_unref
);
756 gtk_menu_item_activate(GTK_MENU_ITEM(view_menu_display
[0].widget
));
760 * vectorscale menu widgets
762 gtk_widget_ref(vectorscale_menu_display
[0].widget
);
763 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
765 vectorscale_menu_display
[0].widget
,
766 (GtkDestroyNotify
) gtk_widget_unref
);
767 if (gpiv_par
.vector_scale
== 1) {
768 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
769 (vectorscale_menu_display
[0].widget
),
775 gtk_widget_ref(vectorscale_menu_display
[1].widget
);
776 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
778 vectorscale_menu_display
[1].widget
,
779 (GtkDestroyNotify
) gtk_widget_unref
);
780 if (gpiv_par
.vector_scale
== 2) {
781 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
782 (vectorscale_menu_display
[1].widget
),
788 gtk_widget_ref(vectorscale_menu_display
[2].widget
);
789 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
791 vectorscale_menu_display
[2].widget
,
792 (GtkDestroyNotify
) gtk_widget_unref
);
793 if (gpiv_par
.vector_scale
== 4) {
794 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
795 (vectorscale_menu_display
[2].widget
),
801 gtk_widget_ref(vectorscale_menu_display
[3].widget
);
802 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
804 vectorscale_menu_display
[3].widget
,
805 (GtkDestroyNotify
) gtk_widget_unref
);
806 if (gpiv_par
.vector_scale
== 8) {
807 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
808 (vectorscale_menu_display
[3].widget
),
814 gtk_widget_ref(vectorscale_menu_display
[4].widget
);
815 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
817 vectorscale_menu_display
[0].widget
,
818 (GtkDestroyNotify
) gtk_widget_unref
);
819 if (gpiv_par
.vector_scale
== 16) {
820 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
821 (vectorscale_menu_display
[4].widget
),
827 gtk_widget_ref(vectorscale_menu_display
[5].widget
);
828 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
830 vectorscale_menu_display
[5].widget
,
831 (GtkDestroyNotify
) gtk_widget_unref
);
832 if (gpiv_par
.vector_scale
== 32) {
833 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
834 (vectorscale_menu_display
[5].widget
),
840 gtk_widget_ref(vectorscale_menu_display
[6].widget
);
841 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
843 vectorscale_menu_display
[6].widget
,
844 (GtkDestroyNotify
) gtk_widget_unref
);
845 if (gpiv_par
.vector_scale
== 64) {
846 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
847 (vectorscale_menu_display
[6].widget
),
853 gtk_widget_ref(vectorscale_menu_display
[7].widget
);
854 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
856 vectorscale_menu_display
[7].widget
,
857 (GtkDestroyNotify
) gtk_widget_unref
);
858 if (gpiv_par
.vector_scale
== 128) {
859 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
860 (vectorscale_menu_display
[7].widget
),
866 gtk_widget_ref(vectorscale_menu_display
[8].widget
);
867 gtk_object_set_data_full(GTK_OBJECT(display_menu
),
869 vectorscale_menu_display
[8].widget
,
870 (GtkDestroyNotify
) gtk_widget_unref
);
871 if (gpiv_par
.vector_scale
== 256) {
872 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM
873 (vectorscale_menu_display
[8].widget
),
885 GtkWidget
*create_img_display(gchar
* fname
,
889 img_display_window
= NULL
;
893 img_display_window
= gtk_window_new(GTK_WINDOW_TOPLEVEL
);
894 gtk_object_set_data(GTK_OBJECT(img_display_window
),
895 "img_display_window",
897 gtk_window_set_title(GTK_WINDOW(img_display_window
),
904 darea
= gtk_drawing_area_new();
905 gtk_drawing_area_size(GTK_DRAWING_AREA(darea
),
907 gpiv_par
.img_height
);
908 gtk_container_add(GTK_CONTAINER(img_display_window
),
910 gtk_signal_connect(GTK_OBJECT(darea
),
912 GTK_SIGNAL_FUNC(on_darea_img_expose
),
915 /* if (gpiv_par.view_gpivbuttons) { */
916 /* gtk_widget_show(handlebox1); */
919 /* gtk_widget_hide(handlebox1); */
921 /* gtk_widget_show(handlebox1); */
922 /* gtk_widget_show(scrolledwindow_handbox1); */
923 /* gtk_widget_show(viewport_handbox1); */
924 /* gtk_widget_show(toolbar2); */
925 /* gtk_widget_show (hbox_toolbar2); */
926 return img_display_window
;