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
9 Copyright (C) 2002, 2003, 2004 Gerber van der Graaf
11 This file is part of gpiv.
13 Gpiv is free software; you can redistribute it and/or modify
14 it under the terms of the GNU General Public License as published by
15 the Free Software Foundation; either version 2, or (at your option)
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27 ----------------------------------------------------------------------*/
30 * $Id: dialog_interface.c,v 1.1 2008-09-16 11:19:37 gerber Exp $
39 #include "dialog_interface.h"
46 /*-----------------------------------------------------------------------------
50 GdkPixbuf
*logo
= NULL
;
51 const gchar
*authors
[] = {
52 "Gerber van der Graaf <gerber_graaf@users.sourceforge.net>",
55 #endif /* ENABLE_TRIG */
60 logo
= gdk_pixbuf_new_from_file(PIXMAPSDIR
"gpiv_logo.png", NULL
);
63 GdkPixbuf
*temp_logo
= NULL
;
65 temp_logo
= gdk_pixbuf_scale_simple (logo
,
66 gdk_pixbuf_get_width (logo
),
67 gdk_pixbuf_get_height (logo
),
69 g_object_unref (logo
);
74 about
= g_object_new (GTK_TYPE_ABOUT_DIALOG
,
77 "copyright", _("Copyright G. Van der Graaf"),
78 "comments", _("GPIV is a program for (Digital) \
79 Particle Image Velocimetry. It \
80 interrogates images (pairs) of a fluid flow that has been seeded \
81 with tracer particles, resulting into the velocity field of \
88 gtk_object_set_data (GTK_OBJECT (about
),
92 g_signal_connect_swapped (GTK_DIALOG (about
),
94 G_CALLBACK (gtk_widget_destroy
),
97 gtk_widget_show(GTK_WIDGET(about
));
98 if (logo
!= NULL
) g_object_unref (logo
);
105 *create_exit_dialog (/* GtkWidget *console */
107 /*-----------------------------------------------------------------------------
110 GtkDialog
*exit_dialog
;
111 GtkWidget
*dialog_vbox1
;
115 GdkPixbuf
*logo
= NULL
;
117 GtkWidget
*exit_message_label
;
118 gchar
*message
= _("There are unsaved data that will be lost.\nAre you sure you want to quit?");
124 /* logo = gdk_pixbuf_new_from_file(PIXMAPSDIR "gpiv_logo.png", NULL); */
125 exit_dialog
= GTK_DIALOG( gtk_dialog_new_with_buttons
128 GTK_DIALOG_DESTROY_WITH_PARENT
,
129 GTK_STOCK_NO
, GTK_RESPONSE_REJECT
,
130 GTK_STOCK_YES
, GTK_RESPONSE_ACCEPT
,
133 gtk_dialog_set_default_response(exit_dialog
,
134 GTK_RESPONSE_REJECT
);
135 g_signal_connect( exit_dialog
,
137 G_CALLBACK (on_button_quit_gpiv_clicked
),
140 gtk_window_set_icon(GTK_WINDOW( exit_dialog
), logo
);
141 if (logo
!= NULL
) g_object_unref (logo
);
145 hbox
= g_object_new(GTK_TYPE_HBOX
,
148 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(exit_dialog
)->vbox
),
150 gtk_widget_show(GTK_WIDGET (hbox
));
155 icon
= g_object_new(GTK_TYPE_IMAGE
,
156 "stock", /* GTK_STOCK_DIALOG_QUESTION */ GTK_STOCK_DIALOG_WARNING
,
157 "icon-size", GTK_ICON_SIZE_DIALOG
,
161 gtk_box_pack_start (GTK_BOX(hbox
),
166 gtk_widget_show(GTK_WIDGET (icon
));
171 text
= g_object_new(GTK_TYPE_LABEL
,
176 gtk_box_pack_start (GTK_BOX(hbox
),
181 gtk_widget_show(GTK_WIDGET (text
));
189 *create_message_dialog (gchar
* message
191 /*-----------------------------------------------------------------------------
194 GtkDialog
*message_dialog
;
198 GdkPixbuf
*logo
= NULL
;
203 message_dialog
= GTK_DIALOG( gtk_dialog_new_with_buttons
206 GTK_DIALOG_DESTROY_WITH_PARENT
,
207 GTK_STOCK_OK
, GTK_RESPONSE_NONE
,
210 g_signal_connect_swapped (GTK_DIALOG (message_dialog
),
212 G_CALLBACK (gtk_widget_destroy
),
216 gtk_window_set_icon(GTK_WINDOW( message_dialog
), logo
);
217 if (logo
!= NULL
) g_object_unref (logo
);
219 hbox
= g_object_new(GTK_TYPE_HBOX
,
222 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(message_dialog
)->vbox
),
224 gtk_widget_show(GTK_WIDGET (hbox
));
229 icon
= g_object_new(GTK_TYPE_IMAGE
,
230 "stock", GTK_STOCK_DIALOG_INFO
,
231 "icon-size", GTK_ICON_SIZE_DIALOG
,
235 gtk_box_pack_start (GTK_BOX(hbox
),
240 gtk_widget_show(GTK_WIDGET (icon
));
244 text
= g_object_new(GTK_TYPE_LABEL
,
249 gtk_box_pack_start (GTK_BOX(hbox
),
254 gtk_widget_show(GTK_WIDGET (text
));
255 gtk_widget_show(GTK_WIDGET (text
));
258 return message_dialog
;
264 *create_warning_dialog (gchar
* message
266 /*-----------------------------------------------------------------------------
269 GtkDialog
*warning_dialog
;
273 GdkPixbuf
*logo
= NULL
;
278 warning_dialog
= GTK_DIALOG( gtk_dialog_new_with_buttons
281 GTK_DIALOG_DESTROY_WITH_PARENT
,
282 GTK_STOCK_OK
, GTK_RESPONSE_NONE
,
285 g_signal_connect_swapped (GTK_DIALOG (warning_dialog
),
287 G_CALLBACK (gtk_widget_destroy
),
291 gtk_window_set_icon(GTK_WINDOW( warning_dialog
), logo
);
292 if (logo
!= NULL
) g_object_unref (logo
);
294 hbox
= g_object_new(GTK_TYPE_HBOX
,
297 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(warning_dialog
)->vbox
),
299 gtk_widget_show(GTK_WIDGET (hbox
));
304 icon
= g_object_new(GTK_TYPE_IMAGE
,
305 "stock", GTK_STOCK_DIALOG_WARNING
,
306 "icon-size", GTK_ICON_SIZE_DIALOG
,
310 gtk_box_pack_start (GTK_BOX(hbox
),
315 gtk_widget_show(GTK_WIDGET (icon
));
319 text
= g_object_new(GTK_TYPE_LABEL
,
324 gtk_box_pack_start (GTK_BOX(hbox
),
329 gtk_widget_show(GTK_WIDGET (text
));
330 /* gtk_container_add (GTK_CONTAINER (GTK_DIALOG(warning_dialog)->vbox), */
331 /* GTK_WIDGET (text)); */
332 gtk_widget_show(GTK_WIDGET (text
));
335 return warning_dialog
;
341 *create_error_dialog (gchar
* message
343 /*-----------------------------------------------------------------------------
346 GtkDialog
*error_dialog
;
352 error_dialog
= GTK_DIALOG( gtk_dialog_new_with_buttons
356 | GTK_DIALOG_DESTROY_WITH_PARENT
,
357 GTK_STOCK_OK
, GTK_RESPONSE_NONE
,
360 g_signal_connect_swapped (GTK_DIALOG (error_dialog
),
362 G_CALLBACK (gtk_widget_destroy
),
366 * BUGFIX: probably not necessary as OK button connect with
368 /* g_signal_connect( error_box, */
370 /* G_CALLBACK(on_error_response), */
374 hbox
= g_object_new(GTK_TYPE_HBOX
,
377 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(error_dialog
)->vbox
),
379 gtk_widget_show(GTK_WIDGET (hbox
));
384 icon
= g_object_new(GTK_TYPE_IMAGE
,
385 "stock", GTK_STOCK_DIALOG_ERROR
,
386 "icon-size", GTK_ICON_SIZE_DIALOG
,
390 gtk_box_pack_start (GTK_BOX (hbox
),
395 gtk_widget_show(GTK_WIDGET (icon
));
400 text
= g_object_new(GTK_TYPE_LABEL
,
405 gtk_box_pack_start (GTK_BOX (hbox
),
410 gtk_widget_show(GTK_WIDGET (text
));
418 *create_close_buffer_dialog (GpivConsole
* gpiv
,
422 /*-----------------------------------------------------------------------------
425 GtkDialog
*close_buffer_dialog
;
430 close_buffer_dialog
= GTK_DIALOG(gtk_dialog_new_with_buttons
431 ("gpiv close_buffer",
432 GTK_WINDOW (gpiv
->console
),
433 GTK_DIALOG_DESTROY_WITH_PARENT
,
434 GTK_STOCK_NO
, GTK_RESPONSE_REJECT
,
435 GTK_STOCK_YES
, GTK_RESPONSE_ACCEPT
,
438 g_signal_connect (close_buffer_dialog
,
440 G_CALLBACK (on_close_buffer_response
),
443 g_signal_connect_swapped (GTK_DIALOG (close_buffer_dialog
),
445 G_CALLBACK (gtk_widget_destroy
),
446 close_buffer_dialog
);
449 hbox
= g_object_new(GTK_TYPE_HBOX
,
452 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(close_buffer_dialog
)->vbox
),
454 gtk_widget_show(GTK_WIDGET (hbox
));
459 icon
= g_object_new(GTK_TYPE_IMAGE
,
460 "stock", /* GTK_STOCK_DIALOG_QUESTION */ GTK_STOCK_DIALOG_WARNING
,
461 "icon-size", GTK_ICON_SIZE_DIALOG
,
465 gtk_box_pack_start (GTK_BOX(hbox
),
470 gtk_widget_show(GTK_WIDGET (icon
));
475 text
= g_object_new(GTK_TYPE_LABEL
,
480 gtk_box_pack_start (GTK_BOX(hbox
),
485 gtk_widget_show(GTK_WIDGET (text
));
487 gtk_object_set_data (GTK_OBJECT (close_buffer_dialog
),
490 gtk_object_set_data (GTK_OBJECT (close_buffer_dialog
),
495 return close_buffer_dialog
;