bugrepair: drag and drop
[gpiv.git] / src / console_interface.c
blob8329660e166b7d35651b226fa865a29573fd78f8
1 /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 c-style: "K&R" -*- */
4 /*----------------------------------------------------------------------
6 gpiv - Graphic program for Particle Image Velocimetry, based on gtk/gnome
7 libraries.
9 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
10 Gerber van der Graaf <gerber_graaf@users.sourceforge.net>
12 This file is part of gpiv.
14 Gpiv is free software; you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation; either version 2, or (at your option)
17 any later version.
19 This program is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 GNU General Public License for more details.
24 You should have received a copy of the GNU General Public License
25 along with this program; if not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 ----------------------------------------------------------------------*/
31 * $Log: console_interface.c,v $
32 * Revision 1.20 2007-12-19 08:42:35 gerber
33 * debugged
35 * Revision 1.19 2007-11-23 16:24:07 gerber
36 * release 0.5.0: Kafka
38 * Revision 1.18 2007-06-06 17:00:48 gerber
39 * Retreives images/data from URI using Gnome Virtual File System.
41 * Revision 1.17 2007-03-22 16:00:32 gerber
42 * Added image processing tabulator
44 * Revision 1.16 2007-02-16 17:09:48 gerber
45 * added Gauss weighting on I.A. and SPOF filtering (on correlation function)
47 * Revision 1.15 2007-01-29 11:27:43 gerber
48 * added image formats png, gif, tif png, bmp, improved buffer display
50 * Revision 1.14 2006-09-18 07:27:05 gerber
51 * *** empty log message ***
53 * Revision 1.13 2006/01/31 14:28:11 gerber
54 * version 0.3.0
56 * Revision 1.11 2005/03/05 17:38:51 gerber
57 * repaired documantation and About
59 * Revision 1.10 2005/02/12 14:12:12 gerber
60 * Changed tabular names and titles
62 * Revision 1.9 2005/01/19 15:53:41 gerber
63 * Initiation of Data Acquisition (DAC); trigerring of lasers and camera
64 * by using RTAI and Realtime Linux, recording images from IEEE1394
65 * (Firewire) IIDC compliant camera's
67 * Revision 1.8 2004/06/14 21:19:23 gerber
68 * Image depth up to 16 bits.
69 * Improvement "single int" and "drag int" in Eval tab.
70 * Viewer's pop-up menu.
71 * Adaption for gpiv_matrix_* and gpiv_vector_*.
72 * Resizing console.
73 * See Changelog for further info.
75 * Revision 1.7 2003/09/04 13:31:55 gerber
76 * init of printing (unfinished)
78 * Revision 1.6 2003/09/01 11:17:14 gerber
79 * improved monitoring of interrogation process
81 * Revision 1.5 2003/08/22 15:24:52 gerber
82 * interactive spatial scaling
84 * Revision 1.4 2003/07/20 18:16:37 gerber
85 * improved about text
87 * Revision 1.3 2003/07/05 13:14:57 gerber
88 * drag and drop of a _series_ of filenames from NAUTILUS
90 * Revision 1.2 2003/06/27 13:47:26 gerber
91 * display ruler, line/point evaluation
93 * Revision 1.1.1.1 2003/06/17 17:10:52 gerber
94 * Imported gpiv
97 #ifdef HAVE_CONFIG_H
98 # include <config.h>
99 #endif
100 #include "support.h"
102 #include "gpiv_gui.h"
103 #include "utils.h"
104 #include "console_interface.h"
105 #include "console_menus.h"
106 #ifdef ENABLE_CAM
107 #include "dac_cam.h"
108 #endif /* ENABLE_CAM */
109 #ifdef ENABLE_TRIG
110 #include "dac_trig.h"
111 #endif /* ENABLE_TRIG */
112 #ifdef ENABLE_IMGPROC
113 #include "imgproc.h"
114 #endif /* ENABLE_IMGPROC */
116 #include "piveval.h"
117 #include "pivvalid.h"
118 #include "pivpost.h"
123 GtkWidget *
124 create_menu_gpiv_popup(GpivConsole *gpiv
126 /*-----------------------------------------------------------------------------
129 GnomeApp *console = gpiv->console;
130 GtkWidget *menu_gpiv_popup = NULL;
132 menu_gpiv_popup = gtk_menu_new();
133 gtk_object_set_data (GTK_OBJECT (console),
134 "menu_gpiv_popup",
135 menu_gpiv_popup);
136 gnome_app_fill_menu (GTK_MENU_SHELL (menu_gpiv_popup),
137 menubar_gpiv_popup,
138 NULL,
139 FALSE,
142 gtk_widget_ref (menubar_gpiv_popup[0].widget);
143 gtk_object_set_data_full (GTK_OBJECT (console),
144 "file",
145 menubar_gpiv_popup[0].widget,
146 (GtkDestroyNotify) gtk_widget_unref);
149 gtk_widget_ref (menubar_gpiv_popup[1].widget);
150 gtk_object_set_data_full (GTK_OBJECT (console),
151 "settings",
152 menubar_gpiv_popup[1].widget,
153 (GtkDestroyNotify) gtk_widget_unref);
156 gtk_widget_ref (menubar_gpiv_popup[2].widget);
157 gtk_object_set_data_full (GTK_OBJECT (console),
158 "help",
159 menubar_gpiv_popup[2].widget,
160 (GtkDestroyNotify) gtk_widget_unref);
162 gtk_widget_ref (help_menu_gpiv_popup[0].widget);
163 gtk_object_set_data_full (GTK_OBJECT (console),
164 "tooltip",
165 help_menu_gpiv_popup[0].widget,
166 (GtkDestroyNotify) gtk_widget_unref);
167 gtk_object_set_data (GTK_OBJECT (help_menu_gpiv_popup[0].widget),
168 "gpiv",
169 gpiv);
170 gtk_object_set_data (GTK_OBJECT (gpiv->console),
171 "help_menu_gpiv_popup0",
172 help_menu_gpiv_popup[0].widget);
176 gtk_widget_ref (file_menu_gpiv_popup[0].widget);
177 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv_popup[0].widget),
178 "gpiv",
179 gpiv);
183 gtk_widget_ref (file_menu_gpiv_popup[1].widget);
184 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv_popup[1].widget),
185 "gpiv",
186 gpiv);
190 gtk_widget_ref (file_menu_gpiv_popup[2].widget);
191 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv_popup[2].widget),
192 "gpiv",
193 gpiv);
197 gtk_widget_ref (file_menu_gpiv_popup[3].widget);
198 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv_popup[3].widget),
199 "gpiv",
200 gpiv);
204 gtk_widget_ref (file_menu_gpiv_popup[4].widget);
205 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv_popup[4].widget),
206 "gpiv",
207 gpiv);
211 gtk_widget_ref (file_menu_gpiv_popup[5].widget);
212 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv_popup[5].widget),
213 "gpiv",
214 gpiv);
218 gtk_widget_ref (settings_menu_gpiv_popup[0].widget);
219 gtk_object_set_data_full (GTK_OBJECT (console),
220 "gpiv_buttons",
221 settings_menu_gpiv_popup[0].widget,
222 (GtkDestroyNotify) gtk_widget_unref);
223 gtk_object_set_data (GTK_OBJECT (settings_menu_gpiv_popup[0].widget),
224 "gpiv",
225 gpiv);
226 if (gpiv_par->console__view_gpivbuttons) {
227 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
228 (settings_menu_gpiv_popup[0].
229 widget),
230 TRUE);
231 } else {
232 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
233 (settings_menu_gpiv_popup[0].
234 widget),
235 FALSE);
240 gtk_widget_ref (settings_menu_gpiv_popup[1].widget);
241 gtk_object_set_data_full (GTK_OBJECT (console),
242 "tabulator",
243 settings_menu_gpiv_popup[1].widget,
244 (GtkDestroyNotify) gtk_widget_unref);
245 gtk_object_set_data (GTK_OBJECT (settings_menu_gpiv_popup[1].widget),
246 "gpiv",
247 gpiv);
248 if (gpiv_par->console__view_tabulator) {
249 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
250 (settings_menu_gpiv_popup[1].
251 widget),
252 TRUE);
253 } else {
254 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
255 (settings_menu_gpiv_popup[1].
256 widget),
257 FALSE);
261 * settings_menu_gpiv_popup[2] represents NOMEUIINFO_SEPARATOR
264 gtk_widget_ref(settings_menu_gpiv_popup[3].widget);
265 gtk_object_set_data_full(GTK_OBJECT(console),
266 "preferences",
267 settings_menu_gpiv_popup[3].widget,
268 (GtkDestroyNotify) gtk_widget_unref);
269 gtk_object_set_data(GTK_OBJECT(settings_menu_gpiv_popup[3].widget),
270 "gpiv",
271 gpiv);
276 if (gpiv_par->console__show_tooltips) {
277 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
278 (help_menu_gpiv_popup[0].
279 widget),
280 TRUE);
281 } else {
282 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
283 (help_menu_gpiv_popup[0].
284 widget),
285 FALSE);
290 return menu_gpiv_popup;
295 GpivConsole *
296 create_gpiv (void
298 /*-----------------------------------------------------------------------------
301 GpivConsole *gpiv = g_new0 (GpivConsole, 1);
302 GdkPixbuf *logo = NULL;
303 gint i;
305 gpiv->tooltips = gtk_tooltips_new ();
308 * Gnome2: from book Official dev.Guide
310 logo = gdk_pixbuf_new_from_file(PIXMAPSDIR "gpiv_logo.png", NULL);
312 gpiv->console = g_object_new(GNOME_TYPE_APP,
313 "title", "gpiv console",
314 "app-id", "gpiv",
315 "default-width", CONSOLE_WIDTH,
316 "default-height", CONSOLE_HEIGHT,
317 "icon", logo,
318 NULL);
319 if (logo != NULL) g_object_unref (logo);
323 gtk_object_set_data (GTK_OBJECT (gpiv->console),
324 "gpiv",
325 gpiv);
326 g_signal_connect (GTK_OBJECT (gpiv->console),
327 "delete_event" ,
328 G_CALLBACK (delete_console),
329 NULL);
333 gpiv->dock1 = GNOME_APP (gpiv->console)->dock;
334 gtk_widget_ref (gpiv->dock1);
335 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
336 "dock1",
337 gpiv->dock1,
338 (GtkDestroyNotify) gtk_widget_unref);
339 gtk_widget_show (gpiv->dock1);
344 * Menu bar with gnome_app_create_menus
347 gnome_app_create_menus (GNOME_APP (gpiv->console),
348 menubar_gpiv);
351 gtk_widget_ref (menubar_gpiv[0].widget);
352 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
353 "file",
354 menubar_gpiv[0].widget,
355 (GtkDestroyNotify) gtk_widget_unref);
358 gtk_widget_ref (file_menu_gpiv[0].widget);
359 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
360 "open",
361 file_menu_gpiv[0].widget,
362 (GtkDestroyNotify) gtk_widget_unref);
363 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv[0].widget),
364 "gpiv",
365 gpiv);
368 gtk_widget_ref (file_menu_gpiv[1].widget);
369 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
370 "save",
371 file_menu_gpiv[1].widget,
372 (GtkDestroyNotify) gtk_widget_unref);
373 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv[1].widget),
374 "gpiv",
375 gpiv);
377 gtk_widget_ref (file_menu_gpiv[2].widget);
378 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
379 "save_as",
380 file_menu_gpiv[2].widget,
381 (GtkDestroyNotify) gtk_widget_unref);
382 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv[2].widget),
383 "gpiv",
384 gpiv);
387 gtk_widget_ref (file_menu_gpiv[3].widget);
388 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
389 "print",
390 file_menu_gpiv[3].widget,
391 (GtkDestroyNotify) gtk_widget_unref);
392 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv[3].widget),
393 "gpiv",
394 gpiv);
397 gtk_widget_ref (file_menu_gpiv[4].widget);
398 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
399 "close",
400 file_menu_gpiv[4].widget,
401 (GtkDestroyNotify) gtk_widget_unref);
402 gtk_object_set_data (GTK_OBJECT (file_menu_gpiv[4].widget),
403 "gpiv",
404 gpiv);
407 gtk_widget_ref (file_menu_gpiv[5].widget);
408 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
409 "separator",
410 file_menu_gpiv[5].widget,
411 (GtkDestroyNotify) gtk_widget_unref);
414 gtk_widget_ref (file_menu_gpiv[6].widget);
415 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
416 "exit",
417 file_menu_gpiv[6].widget,
418 (GtkDestroyNotify) gtk_widget_unref);
421 gtk_widget_ref (menubar_gpiv[1].widget);
422 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
423 "settings",
424 menubar_gpiv[1].widget,
425 (GtkDestroyNotify) gtk_widget_unref);
428 gtk_widget_ref (settings_menu_gpiv[0].widget);
429 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
430 "gpiv_buttons",
431 settings_menu_gpiv[0].widget,
432 (GtkDestroyNotify) gtk_widget_unref);
433 gtk_object_set_data (GTK_OBJECT (settings_menu_gpiv[0].widget),
434 "gpiv",
435 gpiv);
436 gtk_object_set_data (GTK_OBJECT (gpiv->console),
437 "settings_menu_gpiv0",
438 settings_menu_gpiv[0].widget);
441 gtk_widget_ref (settings_menu_gpiv[1].widget);
442 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
443 "tabulator",
444 settings_menu_gpiv[1].widget,
445 (GtkDestroyNotify) gtk_widget_unref);
446 gtk_object_set_data (GTK_OBJECT (settings_menu_gpiv[1].widget),
447 "gpiv",
448 gpiv);
449 gtk_object_set_data (GTK_OBJECT (gpiv->console),
450 "settings_menu_gpiv1",
451 settings_menu_gpiv[1].widget);
454 gtk_widget_ref (settings_menu_gpiv[3].widget);
455 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
456 "preferences",
457 settings_menu_gpiv[3].widget,
458 (GtkDestroyNotify) gtk_widget_unref);
459 gtk_object_set_data (GTK_OBJECT (settings_menu_gpiv[3].widget),
460 "gpiv",
461 gpiv);
462 gtk_object_set_data (GTK_OBJECT (gpiv->console),
463 "settings_menu_gpiv3",
464 settings_menu_gpiv[3].widget);
467 gtk_widget_ref (menubar_gpiv[2].widget);
468 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
469 "help",
470 menubar_gpiv[2].widget,
471 (GtkDestroyNotify) gtk_widget_unref);
474 gtk_widget_ref (help_menu_gpiv[0].widget);
475 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
476 "tooltip",
477 help_menu_gpiv[0].widget,
478 (GtkDestroyNotify) gtk_widget_unref);
479 gtk_object_set_data (GTK_OBJECT (help_menu_gpiv[0].widget),
480 "gpiv",
481 gpiv);
482 gtk_object_set_data (GTK_OBJECT (gpiv->console),
483 "help_menu_gpiv0",
484 help_menu_gpiv[0].widget);
487 gtk_widget_ref (help_menu_gpiv[1].widget);
488 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
489 "manual",
490 help_menu_gpiv[1].widget,
491 (GtkDestroyNotify) gtk_widget_unref);
492 gtk_object_set_data (GTK_OBJECT (help_menu_gpiv[1].widget),
493 "gpiv",
494 gpiv);
497 gtk_widget_ref (help_menu_gpiv[2].widget);
498 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
499 "about",
500 help_menu_gpiv[2].widget,
501 (GtkDestroyNotify) gtk_widget_unref);
502 gtk_object_set_data (GTK_OBJECT (help_menu_gpiv[2].widget),
503 "gpiv",
504 gpiv);
509 * toolbar
511 /* gnome_app_create_toolbar (GNOME_APP (gpiv->console),
512 toolbar_gpiv);
514 gpiv->toolbar1 = gtk_toolbar_new ();
515 gtk_widget_show (gpiv->toolbar1);
516 gnome_app_add_toolbar (GNOME_APP (gpiv->console),
517 GTK_TOOLBAR (gpiv->toolbar1),
518 "gpiv->toolbar1",
519 BONOBO_DOCK_ITEM_BEH_EXCLUSIVE,
520 BONOBO_DOCK_TOP,
524 gtk_toolbar_set_style (GTK_TOOLBAR (gpiv->toolbar1),
525 GTK_TOOLBAR_BOTH);
526 gpiv->tmp_toolbar_icon_size = gtk_toolbar_get_icon_size (GTK_TOOLBAR
527 (gpiv->
528 toolbar1));
532 gpiv->button_open =
533 (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-open");
534 gtk_widget_show (gpiv->button_open);
535 gtk_container_add (GTK_CONTAINER (gpiv->toolbar1),
536 gpiv->button_open);
537 gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_open),
538 gpiv->tooltips,
539 _("Open a PIV image or data-file"), NULL);
541 gtk_object_set_data (GTK_OBJECT (gpiv->button_open),
542 "gpiv",
543 gpiv);
544 g_signal_connect ((gpointer) gpiv->button_open,
545 "clicked",
546 G_CALLBACK (on_button_open_clicked),
547 NULL);
552 gpiv->button_save =
553 (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-save");
554 gtk_widget_show (gpiv->button_save);
555 gtk_container_add (GTK_CONTAINER (gpiv->toolbar1),
556 gpiv->button_save);
557 gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_save),
558 gpiv->tooltips,
559 _("Save data"), NULL);
561 gtk_object_set_data (GTK_OBJECT (gpiv->button_save),
562 "gpiv",
563 gpiv);
564 g_signal_connect (GTK_OBJECT (gpiv->button_save),
565 "clicked",
566 G_CALLBACK (on_save_activate),
567 NULL);
572 /* gpiv->button_print = */
573 /* (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-print"); */
574 /* gtk_widget_show (gpiv->button_print); */
575 /* gtk_container_add (GTK_CONTAINER (gpiv->toolbar1), */
576 /* gpiv->button_print); */
577 /* gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_print), */
578 /* gpiv->tooltips, */
579 /* _("Print the displayed data of active buffer(s)"), */
580 /* NULL); */
582 /* gtk_object_set_data (GTK_OBJECT (gpiv->button_print), */
583 /* "gpiv", */
584 /* gpiv); */
585 /* g_signal_connect (GTK_OBJECT (gpiv->button_print), */
586 /* "clicked", */
587 /* G_CALLBACK (on_print_activate), */
588 /* NULL); */
589 /* gtk_widget_hide (GTK_WIDGET (gpiv->button_print)); */
594 gpiv->button_execute =
595 (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-execute");
596 gtk_widget_show (gpiv->button_execute);
597 gtk_container_add (GTK_CONTAINER (gpiv->toolbar1),
598 gpiv->button_execute);
599 gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_execute),
600 gpiv->tooltips,
601 _("Execute the enabled chain process(es)"),
602 NULL);
604 gtk_object_set_data (GTK_OBJECT (gpiv->button_execute),
605 "gpiv",
606 gpiv);
607 g_signal_connect (GTK_OBJECT (gpiv->button_execute),
608 "clicked",
609 G_CALLBACK (on_execute_activate),
610 NULL);
615 gpiv->button_stop =
616 (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-stop");
617 gtk_widget_show (gpiv->button_stop);
618 gtk_container_add (GTK_CONTAINER (gpiv->toolbar1),
619 gpiv->button_stop);
620 gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_stop),
621 gpiv->tooltips,
622 _("Cancels all running processes"), NULL);
624 gtk_object_set_data (GTK_OBJECT (gpiv->button_stop),
625 "gpiv",
626 gpiv);
627 g_signal_connect ((gpointer) gpiv->button_stop, "clicked",
628 G_CALLBACK (on_button_stop_press),
629 NULL);
630 g_signal_connect (GTK_OBJECT (gpiv->button_stop),
631 "button_press_event",
632 G_CALLBACK (on_button_stop_press),
633 NULL);
634 g_signal_connect (GTK_OBJECT (gpiv->button_stop),
635 "button_release_event",
636 G_CALLBACK (on_button_stop_release),
637 NULL);
642 gpiv->button_close = (GtkWidget*) gtk_tool_button_new_from_stock
643 ("gtk-close");
644 gtk_widget_show (gpiv->button_close);
645 gtk_container_add (GTK_CONTAINER (gpiv->toolbar1),
646 gpiv->button_close);
647 gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_close),
648 gpiv->tooltips,
649 _("Close active buffer(s).\nA warning message will be issued for unsaved data"),
650 NULL);
652 gtk_object_set_data (GTK_OBJECT (gpiv->button_close),
653 "gpiv",
654 gpiv);
655 g_signal_connect (GTK_OBJECT (gpiv->button_close),
656 "clicked",
657 G_CALLBACK (on_close_activate),
658 NULL);
663 /* gpiv->vseparator = gtk_vseparator_new (); */
664 /* gtk_widget_show (gpiv->vseparator); */
665 /* gtk_container_add (GTK_CONTAINER (gpiv->toolbar1), gpiv->vseparator); */
667 /* gnome_app_add_docked (GNOME_APP (gpiv->console), */
668 /* GTK_CONTAINER (gpiv->toolbar1), */
669 /* gpiv->vseparator, */
670 /* "vseparator", */
671 /* BONOBO_DOCK_ITEM_BEH_NORMAL, */
672 /* BONOBO_DOCK_TOP, 2, 0, 0); */
677 gpiv->button_exit =
678 (GtkWidget*) gtk_tool_button_new_from_stock ("gtk-quit");
679 gtk_widget_show (gpiv->button_exit);
680 gtk_container_add (GTK_CONTAINER (gpiv->toolbar1),
681 gpiv->button_exit);
682 gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (gpiv->button_exit),
683 gpiv->tooltips,
684 _("Exit GPIV.\nA warning message will be issued for unsaved data"),
685 NULL);
687 gtk_object_set_data (GTK_OBJECT (gpiv->button_exit),
688 "gpiv",
689 gpiv);
690 g_signal_connect (GTK_OBJECT (gpiv->button_exit),
691 "clicked",
692 G_CALLBACK (on_exit_activate),
693 NULL);
696 * vbox_main contains handleboxes for toolbar, gpiv toolbar, tabulator
697 * and bufferlist
699 gpiv->vbox_main = gtk_vbox_new (FALSE,
701 gtk_widget_ref (gpiv->vbox_main);
702 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
703 "vbox_main",
704 gpiv->vbox_main,
705 (GtkDestroyNotify) gtk_widget_unref);
706 gtk_widget_show (gpiv->vbox_main);
707 gnome_app_set_contents (GNOME_APP (gpiv->console),
708 gpiv->vbox_main);
713 * handlebox and toolbar for gpiv chain processes buttons
715 gpiv->handlebox1 = gtk_handle_box_new ();
716 gtk_widget_ref (gpiv->handlebox1);
717 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
718 "handlebox1",
719 gpiv->handlebox1,
720 (GtkDestroyNotify) gtk_widget_unref);
721 gtk_box_pack_start (GTK_BOX (gpiv->vbox_main),
722 gpiv->handlebox1,
723 FALSE,
724 TRUE,
729 * Scrolled window
731 gpiv->scrolledwindow_handbox1 = gtk_scrolled_window_new (NULL,
732 NULL);
733 gtk_widget_ref (gpiv->scrolledwindow_handbox1);
734 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
735 "scrolledwindow_handbox1",
736 gpiv->scrolledwindow_handbox1,
737 (GtkDestroyNotify) gtk_widget_unref);
738 gtk_widget_show (gpiv->scrolledwindow_handbox1);
739 gtk_container_add (GTK_CONTAINER (gpiv->handlebox1),
740 gpiv->scrolledwindow_handbox1);
741 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
742 (gpiv->scrolledwindow_handbox1),
743 GTK_POLICY_AUTOMATIC,
744 GTK_POLICY_NEVER);
747 gpiv->viewport_handbox1 =
748 gtk_viewport_new (NULL,
749 NULL);
750 gtk_widget_ref (gpiv->viewport_handbox1);
751 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
752 "viewport_handbox1",
753 gpiv->viewport_handbox1,
754 (GtkDestroyNotify) gtk_widget_unref);
755 gtk_widget_show (gpiv->viewport_handbox1);
756 gtk_container_add (GTK_CONTAINER (gpiv->scrolledwindow_handbox1),
757 gpiv->viewport_handbox1);
758 gtk_widget_set_size_request (GTK_WIDGET (gpiv->viewport_handbox1),
759 410,
760 50);
764 * toolbar with buttons for enabling processes
767 gpiv->toolbar2 =
768 gtk_toolbar_new ();
769 gtk_widget_ref (gpiv->toolbar2);
770 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
771 "gpiv->toolbar2",
772 gpiv->toolbar2,
773 (GtkDestroyNotify) gtk_widget_unref);
775 * BUGFIX: Gnome2: disable?
777 /* gtk_toolbar_set_space_style (GTK_TOOLBAR (gpiv->toolbar2), */
778 /* GTK_TOOLBAR_SPACE_LINE); */
779 gtk_widget_show (gpiv->toolbar2);
780 gtk_container_add (GTK_CONTAINER (gpiv->viewport_handbox1),
781 gpiv->toolbar2);
785 gpiv->hbox_toolbar2 = gtk_hbox_new (FALSE,
787 gtk_widget_ref (gpiv->vbox_main);
788 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
789 "hbox_toolbar2",
790 gpiv->hbox_toolbar2,
791 (GtkDestroyNotify) gtk_widget_unref);
792 gtk_widget_show (gpiv->hbox_toolbar2);
793 gtk_container_add (GTK_CONTAINER (gpiv->toolbar2),
794 gpiv->hbox_toolbar2);
798 #ifdef ENABLE_CAM
800 * camera process button
802 gpiv->button_toolbar_cam = gtk_check_button_new_with_label(_("camera"));
803 gtk_widget_ref(gpiv->button_toolbar_cam);
804 gtk_object_set_data_full(GTK_OBJECT(gpiv->console),
805 "button_toolbar_cam",
806 gpiv->button_toolbar_cam,
807 (GtkDestroyNotify) gtk_widget_unref);
808 gtk_widget_show(gpiv->button_toolbar_cam);
809 gtk_box_pack_start(GTK_BOX(gpiv->hbox_toolbar2),
810 gpiv->button_toolbar_cam,
811 FALSE,
812 FALSE,
814 gtk_tooltips_set_tip(gpiv->tooltips,
815 gpiv->button_toolbar_cam,
816 _("Enables camera for image recording within the chain process. \n\
817 The process will be executed by clicking the Execute button"),
818 NULL);
820 gtk_object_set_data(GTK_OBJECT(gpiv->button_toolbar_cam),
821 "gpiv",
822 gpiv);
823 gtk_signal_connect(GTK_OBJECT(gpiv->button_toolbar_cam),
824 "enter",
825 G_CALLBACK (on_button_dac_camstart_enter),
826 NULL);
827 gtk_signal_connect(GTK_OBJECT(gpiv->button_toolbar_cam),
828 "leave",
829 G_CALLBACK (on_widget_leave),
830 NULL);
831 gtk_signal_connect(GTK_OBJECT(gpiv->button_toolbar_cam),
832 "clicked",
833 G_CALLBACK (on_toolbar_checkbutton_cam),
834 NULL);
835 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON
836 (gpiv->button_toolbar_cam),
837 gpiv_par->process__cam);
839 #endif /* ENABLE_CAM */
842 #ifdef ENABLE_TRIG
844 * trigger process button
846 gpiv->button_toolbar_trig = gtk_check_button_new_with_label(_("trigger"));
847 gtk_widget_ref(gpiv->button_toolbar_trig);
848 gtk_object_set_data_full(GTK_OBJECT(gpiv->console),
849 "button_toolbar_trig",
850 gpiv->button_toolbar_trig,
851 (GtkDestroyNotify) gtk_widget_unref);
852 gtk_widget_show(gpiv->button_toolbar_trig);
853 gtk_box_pack_start(GTK_BOX(gpiv->hbox_toolbar2),
854 gpiv->button_toolbar_trig,
855 FALSE,
856 FALSE,
858 gtk_tooltips_set_tip(gpiv->tooltips,
859 gpiv->button_toolbar_trig,
860 _("Enables (RTAI) camera and laser triggering within the chain process. \n\
861 The process will be executed by clicking the Execute button"),
862 NULL);
864 gtk_object_set_data(GTK_OBJECT(gpiv->button_toolbar_trig),
865 "gpiv",
866 gpiv);
867 gtk_signal_connect(GTK_OBJECT(gpiv->button_toolbar_trig),
868 "enter",
869 G_CALLBACK (on_button_dac_triggerstart_enter),
870 NULL);
871 gtk_signal_connect(GTK_OBJECT(gpiv->button_toolbar_trig),
872 "leave",
873 G_CALLBACK (on_widget_leave),
874 NULL);
875 gtk_signal_connect(GTK_OBJECT(gpiv->button_toolbar_trig),
876 "clicked",
877 G_CALLBACK (on_toolbar_checkbutton_trig),
878 NULL);
879 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON
880 (gpiv->button_toolbar_trig),
881 gpiv_par->process__trig);
883 #endif /* ENABLE_TRIG */
886 #ifdef ENABLE_IMGPROC
888 * Image processing button
890 gpiv->button_toolbar_imgproc = gtk_check_button_new_with_label(_("image"));
891 gtk_widget_ref(gpiv->button_toolbar_imgproc);
892 gtk_object_set_data_full(GTK_OBJECT(gpiv->console),
893 "button_toolbar_imgproc",
894 gpiv->button_toolbar_imgproc,
895 (GtkDestroyNotify) gtk_widget_unref);
896 gtk_widget_show(gpiv->button_toolbar_imgproc);
897 gtk_box_pack_start(GTK_BOX(gpiv->hbox_toolbar2),
898 gpiv->button_toolbar_imgproc,
899 FALSE,
900 FALSE,
902 gtk_tooltips_set_tip(gpiv->tooltips,
903 gpiv->button_toolbar_imgproc,
904 _("Enables image processing within the chain process. \n\
905 The process will be executed by clicking the Execute button"),
906 NULL);
908 gtk_object_set_data(GTK_OBJECT(gpiv->button_toolbar_imgproc),
909 "gpiv",
910 gpiv);
911 g_signal_connect(GTK_OBJECT(gpiv->button_toolbar_imgproc),
912 "enter",
913 G_CALLBACK (on_button_imgproc_enter),
914 NULL);
915 g_signal_connect(GTK_OBJECT(gpiv->button_toolbar_imgproc),
916 "leave",
917 G_CALLBACK (on_widget_leave),
918 NULL);
919 g_signal_connect(GTK_OBJECT(gpiv->button_toolbar_imgproc),
920 "clicked",
921 G_CALLBACK (on_toolbar_checkbutton_imgproc),
922 NULL);
923 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON
924 (gpiv->button_toolbar_imgproc),
925 gpiv_par->process__imgproc);
927 #endif /* ENABLE_IMGPROC */
929 * piv process button
931 gpiv->button_toolbar_piv = gtk_check_button_new_with_label ( _("piv"));
932 gtk_widget_ref (gpiv->button_toolbar_piv);
933 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
934 "button_toolbar_piv",
935 gpiv->button_toolbar_piv,
936 (GtkDestroyNotify) gtk_widget_unref);
937 gtk_widget_show (gpiv->button_toolbar_piv);
938 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
939 gpiv->button_toolbar_piv,
940 FALSE,
941 FALSE,
943 gtk_tooltips_set_tip (gpiv->tooltips,
944 gpiv->button_toolbar_piv,
945 _("Enables PIV image interrogation for chain processing: analysing of a PIV image \
946 (pair), resulting into the mean displacements of the particle images within \
947 each interrogation area. \n\
948 The process will be executed by clicking the Execute button"),
949 NULL);
951 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_piv),
952 "gpiv",
953 gpiv);
954 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_piv),
955 "enter",
956 G_CALLBACK (on_button_piv_enter),
957 NULL);
958 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_piv),
959 "leave",
960 G_CALLBACK (on_widget_leave),
961 NULL);
962 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_piv),
963 "clicked",
964 G_CALLBACK (on_toolbar_checkbutton_piv),
965 NULL);
966 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
967 (gpiv->button_toolbar_piv),
968 gpiv_par->process__piv);
972 gpiv->button_toolbar_gradient =
973 gtk_check_button_new_with_label ( _("gradient"));
974 gtk_widget_ref (gpiv->button_toolbar_gradient);
975 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
976 "button_toolbar_gradient",
977 gpiv->button_toolbar_gradient,
978 (GtkDestroyNotify) gtk_widget_unref);
979 gtk_widget_show (gpiv->button_toolbar_gradient);
980 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
981 gpiv->button_toolbar_gradient,
982 FALSE,
983 FALSE,
985 gtk_tooltips_set_tip (gpiv->tooltips,
986 gpiv->button_toolbar_gradient,
987 _("Enables gradient for chain processing: Disables velocities with gradients larger than \
988 0.05 over the interrogation area. \
989 \nThe process will be executed by clicking the \"Execute\" button"),
990 NULL);
992 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_gradient),
993 "gpiv",
994 gpiv);
995 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_gradient),
996 "enter",
997 G_CALLBACK (on_button_valid_gradient_enter),
998 NULL);
999 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_gradient),
1000 "leave",
1001 G_CALLBACK (on_widget_leave),
1002 NULL);
1003 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_gradient),
1004 "clicked",
1005 G_CALLBACK (on_toolbar_checkbutton_gradient),
1006 NULL);
1007 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1008 (gpiv->button_toolbar_gradient),
1009 gpiv_par->process__gradient);
1013 gpiv->button_toolbar_resstats = gtk_check_button_new_with_label ( _("residu"));
1014 gtk_widget_ref (gpiv->button_toolbar_resstats);
1015 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1016 "button_toolbar_resstats",
1017 gpiv->button_toolbar_resstats,
1018 (GtkDestroyNotify) gtk_widget_unref);
1019 gtk_widget_show (gpiv->button_toolbar_resstats);
1020 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1021 gpiv->button_toolbar_resstats,
1022 FALSE,
1023 FALSE,
1025 gtk_tooltips_set_tip (gpiv->tooltips,
1026 gpiv->button_toolbar_resstats,
1027 _("Enables residu statistics for chain processing: calculates \
1028 the residus of displacements for detection of outliers and shows an histogram \
1029 of them. The histogram will be displayed in the Piv Validation tab. \n\
1030 The process will be executed by clicking the Execute button"),
1031 NULL);
1033 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_resstats),
1034 "gpiv",
1035 gpiv);
1036 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_resstats),
1037 "enter",
1038 G_CALLBACK (on_button_valid_errvec_resstats_enter),
1039 NULL);
1040 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_resstats),
1041 "leave",
1042 G_CALLBACK (on_widget_leave),
1043 NULL);
1044 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_resstats),
1045 "clicked",
1046 G_CALLBACK (on_toolbar_checkbutton_resstats),
1047 NULL);
1048 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1049 (gpiv->button_toolbar_resstats),
1050 gpiv_par->process__resstats);
1054 gpiv->button_toolbar_errvec = gtk_check_button_new_with_label
1055 ( _("validate"));
1056 gtk_widget_ref (gpiv->button_toolbar_errvec);
1057 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1058 "button_toolbar_errvec",
1059 gpiv->button_toolbar_errvec,
1060 (GtkDestroyNotify) gtk_widget_unref);
1061 gtk_widget_show (gpiv->button_toolbar_errvec);
1062 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1063 gpiv->button_toolbar_errvec,
1064 FALSE,
1065 FALSE,
1067 gtk_tooltips_set_tip (gpiv->tooltips,
1068 gpiv->button_toolbar_errvec,
1069 _("Enables validation for chain processing: detects \
1070 outliers of PIV data by testing on median residu or by Signal to Noise \
1071 Ratio magnitudes and, eventually, substitutes. \n\
1072 The process will be executed by clicking the Execute button"),
1073 NULL);
1075 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_errvec),
1076 "gpiv",
1077 gpiv);
1078 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_errvec),
1079 "enter",
1080 G_CALLBACK (on_button_valid_errvec_enter),
1081 NULL);
1082 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_errvec),
1083 "leave",
1084 G_CALLBACK (on_widget_leave), NULL);
1085 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_errvec),
1086 "clicked",
1087 G_CALLBACK (on_toolbar_checkbutton_errvec),
1088 NULL);
1089 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1090 (gpiv->button_toolbar_errvec),
1091 gpiv_par->process__errvec);
1095 gpiv->button_toolbar_peaklock =
1096 gtk_check_button_new_with_label ( _("sub-pixel"));
1097 gtk_widget_ref (gpiv->button_toolbar_peaklock);
1098 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1099 "button_toolbar_peaklock",
1100 gpiv->button_toolbar_peaklock,
1101 (GtkDestroyNotify) gtk_widget_unref);
1102 gtk_widget_show (gpiv->button_toolbar_peaklock);
1103 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1104 gpiv->button_toolbar_peaklock,
1105 FALSE,
1106 FALSE,
1108 gtk_tooltips_set_tip (gpiv->tooltips,
1109 gpiv->button_toolbar_peaklock,
1110 _("Enables peak-lock for chain processing: shows an histogram \
1111 of sub-pixel displacements to check on peak-locking effects. \
1112 The histogram will be displayed in the Piv Validation tab. \n\
1113 The process will be executed by clicking the \"Execute\" button"),
1114 NULL);
1116 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_peaklock),
1117 "gpiv",
1118 gpiv);
1119 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_peaklock),
1120 "enter",
1121 G_CALLBACK (on_button_valid_peaklck_enter),
1122 NULL);
1123 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_peaklock),
1124 "leave",
1125 G_CALLBACK (on_widget_leave),
1126 NULL);
1127 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_peaklock),
1128 "clicked",
1129 G_CALLBACK (on_toolbar_checkbutton_peaklck),
1130 NULL);
1131 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1132 (gpiv->button_toolbar_peaklock),
1133 gpiv_par->process__peaklock);
1136 gpiv->button_toolbar_scale =
1137 gtk_check_button_new_with_label ( _("scale"));
1138 gtk_widget_ref (gpiv->button_toolbar_scale);
1139 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1140 "button_toolbar_scale",
1141 gpiv->button_toolbar_scale,
1142 (GtkDestroyNotify) gtk_widget_unref);
1143 gtk_widget_show (gpiv->button_toolbar_scale);
1144 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1145 gpiv->button_toolbar_scale, FALSE,
1146 FALSE,
1148 gtk_tooltips_set_tip (gpiv->tooltips,
1149 gpiv->button_toolbar_scale,
1150 _("Enables scaling for chain processing: scales spatial displacements \
1151 over all data. \
1152 \nThe process will be executed by clicking the \"Execute\" button"),
1153 NULL);
1155 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_scale),
1156 "gpiv",
1157 gpiv);
1158 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_scale),
1159 "enter",
1160 G_CALLBACK (on_button_post_scale_enter),
1161 NULL);
1162 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_scale),
1163 "leave",
1164 G_CALLBACK (on_widget_leave),
1165 NULL);
1166 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_scale),
1167 "clicked",
1168 G_CALLBACK (on_toolbar_checkbutton_scale),
1169 NULL);
1170 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1171 (gpiv->button_toolbar_scale),
1172 gpiv_par->process__scale);
1175 gpiv->button_toolbar_average =
1176 gtk_check_button_new_with_label ( _("average"));
1177 gtk_widget_ref (gpiv->button_toolbar_average);
1178 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1179 "button_toolbar_average",
1180 gpiv->button_toolbar_average,
1181 (GtkDestroyNotify) gtk_widget_unref);
1182 gtk_widget_show (gpiv->button_toolbar_average);
1183 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1184 gpiv->button_toolbar_average, FALSE,
1185 FALSE,
1187 gtk_tooltips_set_tip (gpiv->tooltips,
1188 gpiv->button_toolbar_average,
1189 _("Enables average for chain processing: Calculates spatial average displacements \
1190 over all data. \
1191 \nThe process will be executed by clicking the \"Execute\" button"),
1192 NULL);
1194 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_average),
1195 "gpiv",
1196 gpiv);
1197 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_average),
1198 "enter",
1199 G_CALLBACK (on_button_post_savg_enter),
1200 NULL);
1201 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_average),
1202 "leave",
1203 G_CALLBACK (on_widget_leave),
1204 NULL);
1205 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_average),
1206 "clicked",
1207 G_CALLBACK (on_toolbar_checkbutton_average),
1208 NULL);
1209 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1210 (gpiv->button_toolbar_average),
1211 gpiv_par->process__average);
1214 gpiv->button_toolbar_subavg =
1215 gtk_check_button_new_with_label ( _("subtract"));
1216 gtk_widget_ref (gpiv->button_toolbar_subavg);
1217 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1218 "button_toolbar_subavg",
1219 gpiv->button_toolbar_subavg,
1220 (GtkDestroyNotify) gtk_widget_unref);
1221 gtk_widget_show (gpiv->button_toolbar_subavg);
1222 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1223 gpiv->button_toolbar_subavg,
1224 FALSE,
1225 FALSE,
1227 gtk_tooltips_set_tip (gpiv->tooltips,
1228 gpiv->button_toolbar_subavg,
1229 _("Enables subtract for chain processing: subtracts spatial average displacements \
1230 from all data. \
1231 \nThe process will be executed by clicking the \"Execute\" button"),
1232 NULL);
1234 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_subavg),
1235 "gpiv",
1236 gpiv);
1237 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_subavg),
1238 "enter",
1239 G_CALLBACK (on_button_post_subavg_enter),
1240 NULL);
1241 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_subavg),
1242 "leave",
1243 G_CALLBACK (on_widget_leave),
1244 NULL);
1245 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_subavg),
1246 "clicked",
1247 G_CALLBACK (on_toolbar_checkbutton_subavg),
1248 NULL);
1249 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1250 (gpiv->button_toolbar_subavg),
1251 gpiv_par->process__subtract);
1254 gpiv->button_toolbar_vorstra =
1255 gtk_check_button_new_with_label ( _("vorticity"));
1256 gtk_widget_ref (gpiv->button_toolbar_vorstra);
1257 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1258 "button_toolbar_vorstra",
1259 gpiv->button_toolbar_vorstra,
1260 (GtkDestroyNotify) gtk_widget_unref);
1261 gtk_widget_show (gpiv->button_toolbar_vorstra);
1262 gtk_box_pack_start (GTK_BOX (gpiv->hbox_toolbar2),
1263 gpiv->button_toolbar_vorstra,
1264 FALSE,
1265 FALSE,
1267 gtk_tooltips_set_tip (gpiv->tooltips,
1268 gpiv->button_toolbar_vorstra,
1269 _("Enables vorticity for chain processing: calculates \
1270 vorticity or strain magnitudes from a velocity field.\n\
1271 The process will be executed by clicking the Execute button"),
1272 NULL);
1274 gtk_object_set_data (GTK_OBJECT (gpiv->button_toolbar_vorstra),
1275 "gpiv",
1276 gpiv);
1277 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_vorstra),
1278 "enter",
1279 G_CALLBACK (on_button_post_vorstra_enter),
1280 NULL);
1281 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_vorstra),
1282 "leave",
1283 G_CALLBACK (on_widget_leave),
1284 NULL);
1285 g_signal_connect (GTK_OBJECT (gpiv->button_toolbar_vorstra),
1286 "clicked",
1287 G_CALLBACK (on_toolbar_checkbutton_vorstra),
1288 NULL);
1289 gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON
1290 (gpiv->button_toolbar_vorstra),
1291 gpiv_par->process__vorstra);
1296 * gpiv->hbox_main contains a handlebox with buffer list and tabulator
1298 gpiv->hbox_main = gtk_hbox_new (FALSE,
1300 gtk_widget_ref (gpiv->hbox_main);
1301 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1302 "hbox_main",
1303 gpiv->hbox_main,
1304 (GtkDestroyNotify) gtk_widget_unref);
1305 gtk_widget_show (gpiv->hbox_main);
1306 gtk_box_pack_start (GTK_BOX (gpiv->vbox_main),
1307 gpiv->hbox_main,
1308 TRUE,
1309 TRUE,
1314 * Notebook (tabulator)
1316 gpiv->notebook = gtk_notebook_new ();
1317 gtk_widget_ref (gpiv->notebook);
1318 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1319 "notebook",
1320 gpiv->notebook,
1321 (GtkDestroyNotify) gtk_widget_unref);
1322 gtk_widget_show (gpiv->notebook);
1323 gtk_box_pack_start (GTK_BOX (gpiv->hbox_main),
1324 gpiv->notebook,
1325 TRUE,
1326 TRUE,
1330 #ifdef ENABLE_DAC
1332 * Tabulator for Data Acquisition
1334 gpiv->dac = create_dac (GNOME_APP(gpiv->console),
1335 gpiv->notebook);
1337 gpiv->tablabel_dac = gtk_label_new ( _("Record"));
1338 gtk_widget_ref (gpiv->tablabel_dac);
1339 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1340 "tablabel_dac",
1341 gpiv->tablabel_dac,
1342 (GtkDestroyNotify) gtk_widget_unref);
1343 gtk_widget_show (gpiv->tablabel_dac);
1344 gtk_notebook_set_tab_label
1345 (GTK_NOTEBOOK (gpiv->notebook),
1346 GTK_WIDGET (gtk_notebook_get_nth_page (GTK_NOTEBOOK
1347 (gpiv->notebook),
1348 PAGE_DAC)),
1349 GTK_WIDGET(gpiv->tablabel_dac));
1350 #endif /* ENABLE_DAC */
1353 * Tabulator for Image header
1355 gpiv->imgh = create_imgh (GNOME_APP(gpiv->console),
1356 gpiv->notebook);
1358 gpiv->tablabel_imgh = gtk_label_new ( _("Image"));
1359 gtk_widget_ref (gpiv->tablabel_imgh);
1360 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1361 "tablabel_imgh",
1362 gpiv->tablabel_imgh,
1363 (GtkDestroyNotify) gtk_widget_unref);
1364 gtk_widget_show (gpiv->tablabel_imgh);
1365 gtk_notebook_set_tab_label
1366 (GTK_NOTEBOOK (gpiv->notebook),
1367 GTK_WIDGET (gtk_notebook_get_nth_page (GTK_NOTEBOOK
1368 (gpiv->notebook),
1369 PAGE_IMGH)),
1370 GTK_WIDGET (gpiv->tablabel_imgh));
1374 gtk_object_set_data (GTK_OBJECT (gpiv->imgh->radiobutton_mouse_1),
1375 "gpiv",
1376 gpiv);
1379 #ifdef ENABLE_IMGPROC
1381 * Tabulator for Image processing
1383 gpiv->imgproc = create_imgproc (GNOME_APP(gpiv->console),
1384 gpiv->notebook);
1386 gpiv->tablabel_imgproc = gtk_label_new ( _("Process"));
1387 gtk_widget_ref (gpiv->tablabel_imgproc);
1388 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1389 "tablabel_imgproc",
1390 gpiv->tablabel_imgproc,
1391 (GtkDestroyNotify) gtk_widget_unref);
1392 gtk_widget_show (gpiv->tablabel_imgproc);
1393 gtk_notebook_set_tab_label
1394 (GTK_NOTEBOOK (gpiv->notebook),
1395 GTK_WIDGET (gtk_notebook_get_nth_page (GTK_NOTEBOOK
1396 (gpiv->notebook),
1397 PAGE_IMGPROC)),
1398 GTK_WIDGET (gpiv->tablabel_imgproc));
1401 for (i = 0; i < IMG_FILTERS; i++) {
1402 gtk_object_set_data (GTK_OBJECT (gpiv->imgproc->imf_inf[i]->button_filter),
1403 "gpiv",
1404 gpiv);
1407 gtk_object_set_data (GTK_OBJECT (gpiv->imgproc->button),
1408 "gpiv",
1409 gpiv);
1411 #endif
1414 * Tabulator for Interrogation
1416 gpiv->piveval = create_piveval (GNOME_APP(gpiv->console),
1417 gpiv->notebook);
1418 gpiv->tablabel_piveval = gtk_label_new ( _("Interrogate"));
1419 gtk_widget_ref (gpiv->tablabel_piveval);
1420 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1421 "tablabel_piveval",
1422 gpiv->tablabel_piveval,
1423 (GtkDestroyNotify) gtk_widget_unref);
1424 gtk_widget_show (gpiv->tablabel_piveval);
1425 gtk_notebook_set_tab_label
1426 (GTK_NOTEBOOK (gpiv->notebook),
1427 GTK_WIDGET (gtk_notebook_get_nth_page (GTK_NOTEBOOK
1428 (gpiv->notebook),
1429 PAGE_PIVEVAL)),
1430 GTK_WIDGET (gpiv->tablabel_piveval));
1434 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_0),
1435 "gpiv",
1436 gpiv);
1437 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_1),
1438 "gpiv",
1439 gpiv);
1440 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_2),
1441 "gpiv",
1442 gpiv);
1443 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_3),
1444 "gpiv",
1445 gpiv);
1446 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_4),
1447 "gpiv",
1448 gpiv);
1449 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_5),
1450 "gpiv",
1451 gpiv);
1452 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_mouse_6),
1453 "gpiv",
1454 gpiv);
1455 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->checkbutton_monitor),
1456 "gpiv",
1457 gpiv);
1458 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_fit_none),
1459 "gpiv",
1460 gpiv);
1461 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_fit_gauss),
1462 "gpiv",
1463 gpiv);
1464 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_fit_power),
1465 "gpiv",
1466 gpiv);
1467 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_fit_gravity),
1468 "gpiv",
1469 gpiv);
1470 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_peak_1),
1471 "gpiv",
1472 gpiv);
1473 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_peak_2),
1474 "gpiv",
1475 gpiv);
1476 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_peak_3),
1477 "gpiv",
1478 gpiv);
1479 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_weightkernel),
1480 "gpiv",
1481 gpiv);
1482 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_zerooff),
1483 "gpiv",
1484 gpiv);
1485 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_centraldiff),
1486 "gpiv",
1487 gpiv);
1488 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->radiobutton_imgdeform),
1489 "gpiv",
1490 gpiv);
1491 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->checkbutton_weight_ia),
1492 "gpiv",
1493 gpiv);
1494 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->checkbutton_spof),
1495 "gpiv",
1496 gpiv);
1497 /* gtk_object_set_data (GTK_OBJECT (gpiv->piveval->spinbutton_monitor_zoom), */
1498 /* "gpiv", */
1499 /* gpiv); */
1500 /* gtk_object_set_data (GTK_OBJECT (gpiv->piveval->spinbutton_monitor_vectorscale), */
1501 /* "gpiv", */
1502 /* gpiv); */
1503 gtk_object_set_data (GTK_OBJECT (gpiv->piveval->button),
1504 "gpiv",
1505 gpiv);
1509 * Tabulator for PIV-data validation
1511 gpiv->pivvalid = create_pivvalid (GNOME_APP(gpiv->console),
1512 gpiv->notebook);
1514 gpiv->tablabel_pivvalid = gtk_label_new ( _("Validate"));
1515 gtk_widget_ref (gpiv->tablabel_pivvalid);
1516 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1517 "tablabel_pivvalid",
1518 gpiv->tablabel_pivvalid,
1519 (GtkDestroyNotify) gtk_widget_unref);
1520 gtk_widget_show (gpiv->tablabel_pivvalid);
1521 gtk_notebook_set_tab_label
1522 (GTK_NOTEBOOK (gpiv->notebook),
1523 GTK_WIDGET (gtk_notebook_get_nth_page (GTK_NOTEBOOK
1524 (gpiv->notebook),
1525 PAGE_PIVVALID)),
1526 GTK_WIDGET (gpiv->tablabel_pivvalid));
1530 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->button_gradient),
1531 "gpiv",
1532 gpiv);
1533 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->radiobutton_disable_0),
1534 "gpiv",
1535 gpiv);
1536 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->radiobutton_disable_1),
1537 "gpiv",
1538 gpiv);
1539 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->radiobutton_disable_2),
1540 "gpiv",
1541 gpiv);
1542 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->radiobutton_disable_3),
1543 "gpiv",
1544 gpiv);
1545 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->radiobutton_disable_4),
1546 "gpiv",
1547 gpiv);
1548 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->button_gradient),
1549 "gpiv",
1550 gpiv);
1551 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->button_errvec_resstats),
1552 "gpiv",
1553 gpiv);
1554 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->button_peaklck),
1555 "gpiv",
1556 gpiv);
1557 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->button_uhisto),
1558 "gpiv",
1559 gpiv);
1560 gtk_object_set_data (GTK_OBJECT (gpiv->pivvalid->button_vhisto),
1561 "gpiv",
1562 gpiv);
1563 gtk_object_set_data (GTK_OBJECT
1564 (gpiv->pivvalid->radiobutton_errvec_residu_snr),
1565 "gpiv",
1566 gpiv);
1567 gtk_object_set_data (GTK_OBJECT
1568 (gpiv->pivvalid->radiobutton_errvec_residu_median),
1569 "gpiv",
1570 gpiv);
1571 gtk_object_set_data (GTK_OBJECT
1572 (gpiv->pivvalid->radiobutton_errvec_residu_normmedian),
1573 "gpiv",
1574 gpiv);
1575 gtk_object_set_data (GTK_OBJECT
1576 (gpiv->pivvalid->checkbutton_errvec_disres),
1577 "gpiv",
1578 gpiv);
1579 gtk_object_set_data (GTK_OBJECT
1580 (gpiv->pivvalid->radiobutton_errvec_subst_0),
1581 "gpiv",
1582 gpiv);
1583 gtk_object_set_data (GTK_OBJECT
1584 (gpiv->pivvalid->radiobutton_errvec_subst_1),
1585 "gpiv",
1586 gpiv);
1587 gtk_object_set_data (GTK_OBJECT
1588 (gpiv->pivvalid->radiobutton_errvec_subst_2),
1589 "gpiv",
1590 gpiv);
1591 gtk_object_set_data (GTK_OBJECT
1592 (gpiv->pivvalid->radiobutton_errvec_subst_3),
1593 "gpiv",
1594 gpiv);
1595 gtk_object_set_data (GTK_OBJECT
1596 (gpiv->pivvalid->button_errvec),
1597 "gpiv",
1598 gpiv);
1601 * Tabulator for PIV-data post-processing
1604 /* pivpost->checkbutton_scale */
1605 gpiv->pivpost = create_pivpost (GNOME_APP(gpiv->console),
1606 gpiv->notebook);
1607 /* gtk_object_set_data (GTK_OBJECT (gpiv->console), */
1608 /* "gpiv", */
1609 /* gpiv); */
1611 gpiv->tablabel_pivpost = gtk_label_new ( _("Post process"));
1612 gtk_widget_ref (gpiv->tablabel_pivpost);
1613 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1614 "tablabel_pivpost",
1615 gpiv->tablabel_pivpost,
1616 (GtkDestroyNotify) gtk_widget_unref);
1617 gtk_widget_show (gpiv->tablabel_pivpost);
1618 gtk_notebook_set_tab_label
1619 (GTK_NOTEBOOK (gpiv->notebook),
1620 GTK_WIDGET (gtk_notebook_get_nth_page (GTK_NOTEBOOK
1621 (gpiv->notebook),
1622 PAGE_PIVPOST)),
1623 GTK_WIDGET (gpiv->tablabel_pivpost));
1627 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->button_scale),
1628 "gpiv",
1629 gpiv);
1630 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->button_savg),
1631 "gpiv",
1632 gpiv);
1633 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->button_subavg),
1634 "gpiv",
1635 gpiv);
1636 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1637 radiobutton_vorstra_output_1),
1638 "gpiv",
1639 gpiv);
1640 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1641 radiobutton_vorstra_output_2),
1642 "gpiv",
1643 gpiv);
1644 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1645 radiobutton_vorstra_output_3),
1646 "gpiv",
1647 gpiv);
1648 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1649 radiobutton_vorstra_diffscheme_1),
1650 "gpiv",
1651 gpiv);
1652 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1653 radiobutton_vorstra_diffscheme_2),
1654 "gpiv",
1655 gpiv);
1656 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1657 radiobutton_vorstra_diffscheme_3),
1658 "gpiv",
1659 gpiv);
1660 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->
1661 radiobutton_vorstra_diffscheme_4),
1662 "gpiv",
1663 gpiv);
1664 gtk_object_set_data (GTK_OBJECT (gpiv->pivpost->button_vorstra),
1665 "gpiv",
1666 gpiv);
1669 g_signal_connect (GTK_OBJECT (gpiv->notebook),
1670 "switch-page",
1671 G_CALLBACK (on_notebook_switch_page),
1672 NULL);
1673 gtk_notebook_set_page (GTK_NOTEBOOK (gpiv->notebook),
1674 gpiv_var->tab_pos);
1677 * handlebox of buffer list
1679 gpiv->handlebox_buf = gtk_handle_box_new ();
1680 gtk_widget_ref (gpiv->handlebox_buf);
1681 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1682 "handlebox_buf",
1683 gpiv->handlebox_buf,
1684 (GtkDestroyNotify) gtk_widget_unref);
1685 gtk_widget_show (gpiv->handlebox_buf);
1686 gtk_box_pack_start (GTK_BOX (gpiv->hbox_main),
1687 gpiv->handlebox_buf,
1688 TRUE,
1689 TRUE,
1691 gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (gpiv->handlebox_buf),
1692 GTK_POS_TOP);
1693 gtk_tooltips_set_tip (gpiv->tooltips,
1694 gpiv->handlebox_buf,
1695 _("buffer names and numbers"),
1696 NULL);
1699 gpiv->alignment_buf = gtk_alignment_new (0.0,
1700 0.0,
1701 0.0,
1702 1.0);
1703 gtk_widget_ref (gpiv->alignment_buf);
1704 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1705 "alignment_buf",
1706 gpiv->alignment_buf,
1707 (GtkDestroyNotify) gtk_widget_unref);
1708 gtk_widget_show (gpiv->alignment_buf);
1709 gtk_container_add (GTK_CONTAINER (gpiv->handlebox_buf),
1710 gpiv->alignment_buf);
1713 gpiv->eventbox_buf = gtk_event_box_new ();
1714 gtk_widget_ref (gpiv->eventbox_buf);
1715 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1716 "gpiv->eventbox_buf",
1717 gpiv->eventbox_buf,
1718 (GtkDestroyNotify) gtk_widget_unref);
1719 gtk_widget_show (gpiv->eventbox_buf);
1720 gtk_container_add (GTK_CONTAINER (gpiv->alignment_buf),
1721 gpiv->eventbox_buf);
1724 gpiv->scrolledwindow_buf = gtk_scrolled_window_new (NULL,
1725 NULL);
1726 gtk_widget_ref (gpiv->scrolledwindow_buf);
1727 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1728 "scrolledwindow_buf",
1729 gpiv->scrolledwindow_buf,
1730 (GtkDestroyNotify) gtk_widget_unref);
1731 gtk_widget_show (gpiv->scrolledwindow_buf);
1732 gtk_container_add (GTK_CONTAINER (gpiv->eventbox_buf),
1733 gpiv->scrolledwindow_buf);
1734 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
1735 (gpiv->scrolledwindow_buf),
1736 /* GTK_POLICY_NEVER */
1737 GTK_POLICY_AUTOMATIC,
1738 GTK_POLICY_AUTOMATIC);
1739 /* gpiv->scrolledwindow_buf_adj = gtk_adjustment_new (0.0, 500.0, 100.0, 5.0, 50.0, 2500.0); */
1740 /* gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW (gpiv->scrolledwindow_buf), */
1741 /* GTK_ADJUSTMENT (gpiv->scrolledwindow_buf_adj)); */
1742 /* gnome_canvas_set_scroll_region ( GNOME_CANVAS (canvas_display ()->display_act->gpd.display), */
1743 /* 0.0, 0.0, IMAGE_WIDTH, IMAGE_HEIGHT); */
1746 gpiv->viewport_buf =
1747 gtk_viewport_new (NULL,
1748 NULL);
1749 gtk_widget_ref (gpiv->viewport_buf);
1750 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1751 "viewport_buf",
1752 gpiv->viewport_buf,
1753 (GtkDestroyNotify) gtk_widget_unref);
1754 gtk_widget_show (gpiv->viewport_buf);
1755 gtk_container_add (GTK_CONTAINER (gpiv->scrolledwindow_buf),
1756 gpiv->viewport_buf);
1757 gtk_widget_set_size_request (gpiv->viewport_buf,
1758 120,
1759 400);
1762 #ifdef GTK4
1763 enum
1765 BUFFER_NUMBER,
1766 BUFFER_NAME,
1767 PIV_DATA,
1768 VALIDATED,
1769 STORED,
1770 N_COLUMNS
1773 gpiv->list_buf =
1774 gtk_treelist_store_new (N_COLUMNS, /* Total number of columns */
1775 G_TYPE_INT, /* Buffer number */
1776 G_TYPE_STRING, /* Buffer name */
1777 G_TYPE_BOOLEAN, /* PIV data? */
1778 G_TYPE_BOOLEAN, /* Validated PIV data? */
1779 G_TYPE_BOOLEAN, /* Stored PIV data? */
1781 #endif
1783 gpiv->clist_buf = gtk_clist_new (2);
1784 gtk_widget_ref (gpiv->clist_buf);
1785 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1786 "clist_buf",
1787 gpiv->clist_buf,
1788 (GtkDestroyNotify) gtk_widget_unref);
1789 gtk_widget_show (gpiv->clist_buf);
1790 gtk_container_add (GTK_CONTAINER (gpiv->viewport_buf/* scrolledwindow_buf */ ),
1791 gpiv->clist_buf);
1792 gtk_tooltips_set_tip (gpiv->tooltips, gpiv->clist_buf,
1793 _("buffer list"),
1794 NULL);
1795 gtk_clist_set_column_width (GTK_CLIST (gpiv->clist_buf),
1797 15);
1798 gtk_clist_set_column_width (GTK_CLIST (gpiv->clist_buf),
1800 80);
1801 gtk_clist_set_selection_mode (GTK_CLIST (gpiv->clist_buf),
1802 GTK_SELECTION_EXTENDED /* MULTIPLE */);
1803 gtk_clist_column_titles_show (GTK_CLIST (gpiv->clist_buf));
1805 gtk_object_set_data (GTK_OBJECT (gpiv->clist_buf),
1806 "gpiv",
1807 gpiv);
1808 g_signal_connect (GTK_OBJECT (gpiv->clist_buf),
1809 "select_row",
1810 G_CALLBACK (on_clist_buf_rowselect),
1811 NULL);
1814 gpiv->label_buf_1 = gtk_label_new ( _("#"));
1815 gtk_widget_ref (gpiv->label_buf_1);
1816 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1817 "label_buf_1",
1818 gpiv->label_buf_1,
1819 (GtkDestroyNotify) gtk_widget_unref);
1820 gtk_widget_show (gpiv->label_buf_1);
1821 gtk_clist_set_column_widget (GTK_CLIST (gpiv->clist_buf),
1823 gpiv->label_buf_1);
1826 gpiv->label_buf_2 = gtk_label_new ( _("buffer name"));
1827 gtk_widget_ref (gpiv->label_buf_2);
1828 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1829 "label_buf_2",
1830 gpiv->label_buf_2,
1831 (GtkDestroyNotify) gtk_widget_unref);
1832 gtk_widget_show (gpiv->label_buf_2);
1833 gtk_clist_set_column_widget (GTK_CLIST (gpiv->clist_buf),
1835 gpiv->label_buf_2);
1836 gtk_misc_set_alignment (GTK_MISC (gpiv->label_buf_2),
1837 0.0,
1838 0.5);
1839 gtk_clist_column_titles_passive (GTK_CLIST (gpiv->clist_buf));
1840 /* gtk_clist_set_policy (GTK_CLIST (gpiv->clist_buf), */
1841 /* GTK_POLICY_ALWAYS, */
1842 /* GTK_POLICY_ALWAYS); */
1845 gtk_clist_set_column_auto_resize (GTK_CLIST (gpiv->clist_buf),
1847 TRUE);
1849 gpiv->scrolledwindow_buf_adj =
1850 gtk_adjustment_new (0.0,
1851 500.0,
1852 100.0,
1853 5.0,
1854 50.0,
1855 250.0 /* 2500.0 */);
1856 gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW
1857 (gpiv->scrolledwindow_buf),
1858 GTK_ADJUSTMENT
1859 (gpiv->scrolledwindow_buf_adj));
1862 gtk_drag_dest_set (GTK_WIDGET (gpiv->clist_buf),
1863 GTK_DEST_DEFAULT_ALL,
1864 target_table,
1865 G_N_ELEMENTS (target_table),
1866 GDK_ACTION_COPY);
1867 g_signal_connect (GTK_OBJECT (gpiv->clist_buf),
1868 "drag_data_received",
1869 G_CALLBACK (on_clist_buf_drag_data_received),
1870 NULL);
1873 * Application bar buttons
1875 gpiv->appbar = gnome_appbar_new (TRUE,
1876 TRUE,
1877 GNOME_PREFERENCES_ALWAYS);
1878 gtk_widget_ref (gpiv->appbar);
1879 gtk_object_set_data_full (GTK_OBJECT (gpiv->console),
1880 "appbar",
1881 gpiv->appbar,
1882 (GtkDestroyNotify) gtk_widget_unref);
1883 gtk_widget_show (gpiv->appbar);
1884 gnome_app_set_statusbar (GNOME_APP (gpiv->console),
1885 gpiv->appbar);
1886 /* gtk_widget_set_sensitive (gpiv->appbar, FALSE); */
1893 * set gpiv->menubars after definition of all console widgets
1895 if (gpiv_par->console__view_gpivbuttons) {
1896 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
1897 (settings_menu_gpiv[0].widget),
1898 TRUE);
1899 } else {
1900 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
1901 (settings_menu_gpiv[0].widget),
1902 FALSE);
1906 if (gpiv_par->console__view_tabulator) {
1907 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
1908 (settings_menu_gpiv[1].widget),
1909 TRUE);
1910 } else {
1911 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
1912 (settings_menu_gpiv[1].widget),
1913 FALSE);
1917 if (gpiv_par->console__show_tooltips) {
1918 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
1919 (help_menu_gpiv[0].widget),
1920 TRUE);
1921 } else {
1922 gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
1923 (help_menu_gpiv[0].widget),
1924 FALSE);
1928 gnome_app_install_menu_hints (GNOME_APP (gpiv->console),
1929 menubar_gpiv);
1930 return gpiv;