annotate src/utildlg.c @ 8:e0d0593d519e

Sync to GQview 1.5.9 release. ######## DO NOT BASE ENHANCEMENTS OR TRANSLATION UPDATES ON CODE IN THIS CVS! This CVS is never up to date with current development and is provided solely for reference purposes, please use the latest official release package when making any changes or translation updates. ########
author gqview
date Sat, 26 Feb 2005 00:07:07 +0000
parents c0e337a01cb7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2 * GQview image viewer
3
gqview
parents: 1
diff changeset
3 * (C)2000 John Ellis
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
4 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
5 * Author: John Ellis
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
6 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
7 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
8
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
9 #include "gqview.h"
3
gqview
parents: 1
diff changeset
10 #include "image.h"
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
11
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
12 static void warning_dialog_close(GtkWidget *w, gpointer data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
13 static void warning_dialog_destroy(GtkWidget *w, GdkEvent *event, gpointer data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
14
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
15 static void confirm_dialog_click_cb(GtkWidget *w, gpointer data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
16 static void confirm_dialog_delete_cb(GtkWidget *w, GdkEvent *event, gpointer data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
17
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
18 static void generic_dialog_delete_cb(GtkWidget *widget, GdkEvent *event, gpointer data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
19
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
20
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
21 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
22 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
23 * warning dialog routines
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
24 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
25 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
26
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
27 static void warning_dialog_close(GtkWidget *w, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
28 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
29 GtkWidget *warning_window = data;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
30 gtk_widget_destroy(warning_window);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
31 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
32
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
33 static void warning_dialog_destroy(GtkWidget *w, GdkEvent *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
34 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
35 warning_dialog_close(NULL, data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
36 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
37
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
38 void warning_dialog(gchar *title, gchar *message)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
39 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
40 GtkWidget *warning_window;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
41 GtkWidget *hbox;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
42 GtkWidget *vbox;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
43 GtkWidget *label;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
44 GtkWidget *button;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
45
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
46 warning_window = gtk_window_new(GTK_WINDOW_DIALOG);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
47 gtk_signal_connect (GTK_OBJECT (warning_window), "delete_event",(GtkSignalFunc) warning_dialog_destroy, warning_window);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
48 gtk_window_set_policy (GTK_WINDOW(warning_window), FALSE, FALSE, TRUE);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
49 gtk_window_set_title (GTK_WINDOW (warning_window), title);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
50 gtk_container_border_width (GTK_CONTAINER (warning_window), 10);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
51
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
52 vbox = gtk_vbox_new(FALSE, 5);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
53 gtk_container_add(GTK_CONTAINER(warning_window),vbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
54 gtk_widget_show(vbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
55
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
56 label = gtk_label_new(message);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
57 gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
58 gtk_widget_show(label);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
59
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
60 label = gtk_hseparator_new();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
61 gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
62 gtk_widget_show(label);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
63
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
64 hbox = gtk_hbox_new(TRUE, 5);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
65 gtk_container_add(GTK_CONTAINER(vbox),hbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
66 gtk_widget_show(hbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
67
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
68 button = gtk_button_new_with_label(_(" Ok "));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
69 gtk_signal_connect (GTK_OBJECT (button), "clicked",(GtkSignalFunc) warning_dialog_close, warning_window);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
70 gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
71 gtk_widget_show(button);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
72
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
73 gtk_widget_show(warning_window);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
74 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
75
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
76 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
77 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
78 * confirmation dialog
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
79 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
80 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
81
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
82 static void confirm_dialog_click_cb(GtkWidget *w, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
83 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
84 ConfirmDialog *cd = data;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
85 gtk_widget_destroy(cd->dialog);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
86 g_free(cd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
87 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
88
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
89 static void confirm_dialog_delete_cb(GtkWidget *w, GdkEvent *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
90 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
91 ConfirmDialog *cd = data;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
92 cd->cancel_cb(NULL, cd->data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
93 confirm_dialog_click_cb(w, data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
94 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
95
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
96 void confirm_dialog_add(ConfirmDialog *cd, gchar *text, void (*func_cb)(GtkWidget *, gpointer))
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
97 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
98 GtkWidget *button;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
99 button = gtk_button_new_with_label(text);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
100 gtk_signal_connect(GTK_OBJECT(button), "clicked", func_cb, cd->data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
101 gtk_signal_connect(GTK_OBJECT(button), "clicked", confirm_dialog_click_cb, cd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
102 gtk_box_pack_end(GTK_BOX(cd->hbox), button, TRUE, TRUE, 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
103 gtk_widget_grab_focus(button);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
104 gtk_widget_show(button);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
105 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
106
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
107 ConfirmDialog *confirm_dialog_new(gchar *title, gchar *message, void (*cancel_cb)(GtkWidget *, gpointer), gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
108 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
109 ConfirmDialog *cd;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
110 GtkWidget *vbox;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
111 GtkWidget *label;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
112
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
113 cd = g_new0(ConfirmDialog, 1);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
114 cd->data = data;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
115 cd->cancel_cb = cancel_cb;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
116
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
117 cd->dialog = gtk_window_new(GTK_WINDOW_DIALOG);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
118 gtk_signal_connect (GTK_OBJECT (cd->dialog), "delete_event", confirm_dialog_delete_cb, cd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
119 gtk_window_set_policy (GTK_WINDOW(cd->dialog), FALSE, FALSE, TRUE);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
120 gtk_window_set_title (GTK_WINDOW (cd->dialog), title);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
121 gtk_container_border_width (GTK_CONTAINER (cd->dialog), 10);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
122
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
123 vbox = gtk_vbox_new(FALSE, 15);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
124 gtk_container_add(GTK_CONTAINER(cd->dialog),vbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
125 gtk_widget_show(vbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
126
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
127 label = gtk_label_new(message);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
128 gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
129 gtk_widget_show(label);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
130
3
gqview
parents: 1
diff changeset
131 cd->util_hbox = gtk_hbox_new(FALSE, 0);
gqview
parents: 1
diff changeset
132 gtk_box_pack_start(GTK_BOX(vbox), cd->util_hbox, TRUE, TRUE, 0);
gqview
parents: 1
diff changeset
133 gtk_widget_show(cd->util_hbox);
gqview
parents: 1
diff changeset
134
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
135 label = gtk_hseparator_new();
3
gqview
parents: 1
diff changeset
136 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
137 gtk_widget_show(label);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
138
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
139 cd->hbox = gtk_hbox_new(TRUE, 15);
3
gqview
parents: 1
diff changeset
140 gtk_box_pack_start(GTK_BOX(vbox), cd->hbox, FALSE, FALSE, 0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
141 gtk_widget_show(cd->hbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
142
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
143 gtk_widget_show(cd->dialog);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
144
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
145 confirm_dialog_add(cd, _("Cancel"), cd->cancel_cb);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
146
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
147 return cd;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
148 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
149
3
gqview
parents: 1
diff changeset
150 ConfirmDialog *confirm_dialog_new_with_image(gchar *title, gchar *message,
gqview
parents: 1
diff changeset
151 gchar *img_path1, gchar *img_path2,
gqview
parents: 1
diff changeset
152 void (*cancel_cb)(GtkWidget *, gpointer), gpointer data)
gqview
parents: 1
diff changeset
153 {
gqview
parents: 1
diff changeset
154 ConfirmDialog *cd;
gqview
parents: 1
diff changeset
155 GtkWidget *vbox;
gqview
parents: 1
diff changeset
156 GtkWidget *label;
gqview
parents: 1
diff changeset
157 ImageWindow *image1;
gqview
parents: 1
diff changeset
158 ImageWindow *image2;
gqview
parents: 1
diff changeset
159
gqview
parents: 1
diff changeset
160 cd = confirm_dialog_new(title, message, cancel_cb, data);
gqview
parents: 1
diff changeset
161
gqview
parents: 1
diff changeset
162 gtk_widget_set_usize (cd->dialog, 600, 450);
gqview
parents: 1
diff changeset
163 gtk_window_set_policy (GTK_WINDOW(cd->dialog), FALSE, TRUE, FALSE);
gqview
parents: 1
diff changeset
164
gqview
parents: 1
diff changeset
165 gtk_box_set_homogeneous(GTK_BOX(cd->util_hbox), TRUE);
gqview
parents: 1
diff changeset
166
gqview
parents: 1
diff changeset
167 if (img_path1)
gqview
parents: 1
diff changeset
168 {
gqview
parents: 1
diff changeset
169 vbox = gtk_vbox_new(FALSE, 5);
gqview
parents: 1
diff changeset
170 gtk_box_pack_start(GTK_BOX(cd->util_hbox), vbox, TRUE, TRUE, 0);
gqview
parents: 1
diff changeset
171 gtk_widget_show(vbox);
gqview
parents: 1
diff changeset
172
gqview
parents: 1
diff changeset
173 image1 = image_area_new(NULL);
gqview
parents: 1
diff changeset
174 gtk_box_pack_start(GTK_BOX(vbox), image1->eventbox, TRUE, TRUE, 0);
gqview
parents: 1
diff changeset
175 image_area_set_image (image1, img_path1, ZOOM_RESET_ORIGINAL);
gqview
parents: 1
diff changeset
176 gtk_widget_show_all(image1->eventbox);
gqview
parents: 1
diff changeset
177 gtk_object_set_data_full(GTK_OBJECT(image1->eventbox), "image1", image1,
gqview
parents: 1
diff changeset
178 (GtkDestroyNotify)image_area_free);
gqview
parents: 1
diff changeset
179
gqview
parents: 1
diff changeset
180 label = gtk_label_new(img_path1);
gqview
parents: 1
diff changeset
181 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
gqview
parents: 1
diff changeset
182 gtk_widget_show(label);
gqview
parents: 1
diff changeset
183 }
gqview
parents: 1
diff changeset
184
gqview
parents: 1
diff changeset
185 if (img_path2)
gqview
parents: 1
diff changeset
186 {
gqview
parents: 1
diff changeset
187 vbox = gtk_vbox_new(FALSE, 5);
gqview
parents: 1
diff changeset
188 gtk_box_pack_start(GTK_BOX(cd->util_hbox), vbox, TRUE, TRUE, 0);
gqview
parents: 1
diff changeset
189 gtk_widget_show(vbox);
gqview
parents: 1
diff changeset
190
gqview
parents: 1
diff changeset
191 image2 = image_area_new(NULL);
gqview
parents: 1
diff changeset
192 gtk_box_pack_start(GTK_BOX(vbox), image2->eventbox, TRUE, TRUE, 0);
gqview
parents: 1
diff changeset
193 image_area_set_image (image2, img_path2, ZOOM_RESET_ORIGINAL);
gqview
parents: 1
diff changeset
194 gtk_widget_show_all(image2->eventbox);
gqview
parents: 1
diff changeset
195 gtk_object_set_data_full(GTK_OBJECT(image2->eventbox), "image2", image2,
gqview
parents: 1
diff changeset
196 (GtkDestroyNotify)image_area_free);
gqview
parents: 1
diff changeset
197
gqview
parents: 1
diff changeset
198 label = gtk_label_new(img_path2);
gqview
parents: 1
diff changeset
199 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
gqview
parents: 1
diff changeset
200 gtk_widget_show(label);
gqview
parents: 1
diff changeset
201 }
gqview
parents: 1
diff changeset
202
gqview
parents: 1
diff changeset
203 return cd;
gqview
parents: 1
diff changeset
204 }
gqview
parents: 1
diff changeset
205
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
206 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
207 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
208 * generic file ops dialog routines
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
209 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
210 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
211
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
212 void generic_dialog_close(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
213 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
214 FileDialog *fd = data;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
215 if(fd->dialog) gtk_widget_destroy(fd->dialog);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
216 g_free(fd->source_path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
217 g_free(fd->dest_path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
218 if (fd->source_list) free_selected_list(fd->source_list);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
219 g_free(fd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
220 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
221
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
222 static void generic_dialog_delete_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
223 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
224 generic_dialog_close(NULL, data);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
225 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
226
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
227 FileDialog *generic_dialog_new(gchar *title, gchar *text, gchar *btn1, gchar *btn2,
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
228 void (*btn1_cb)(GtkWidget *, gpointer),
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
229 void (*btn2_cb)(GtkWidget *, gpointer))
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
230 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
231 FileDialog *fd = NULL;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
232 GtkWidget *button;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
233 GtkWidget *hbox;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
234 GtkWidget *label;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
235
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
236 fd = g_new0(FileDialog, 1);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
237
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
238 fd->dialog = gtk_window_new(GTK_WINDOW_DIALOG);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
239 gtk_signal_connect (GTK_OBJECT (fd->dialog), "delete_event", (GtkSignalFunc)generic_dialog_delete_cb, fd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
240 gtk_window_set_policy (GTK_WINDOW(fd->dialog), FALSE, TRUE, FALSE);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
241 gtk_window_set_title (GTK_WINDOW (fd->dialog), title);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
242 gtk_container_border_width (GTK_CONTAINER (fd->dialog), 10);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
243
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
244 fd->vbox = gtk_vbox_new(FALSE,5);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
245 gtk_container_add (GTK_CONTAINER(fd->dialog), fd->vbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
246 gtk_widget_show(fd->vbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
247
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
248 if (text)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
249 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
250 label = gtk_label_new(text);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
251 gtk_box_pack_start(GTK_BOX(fd->vbox), label, FALSE, FALSE, 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
252 gtk_widget_show(label);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
253 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
254
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
255 if (btn1_cb || btn2_cb)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
256 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
257 GtkWidget *sep;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
258 hbox = gtk_hbox_new(TRUE, 15);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
259 gtk_box_pack_end(GTK_BOX(fd->vbox), hbox, FALSE, FALSE, 5);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
260 gtk_widget_show(hbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
261
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
262 sep = gtk_hseparator_new();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
263 gtk_box_pack_end(GTK_BOX(fd->vbox), sep, FALSE, FALSE, 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
264 gtk_widget_show(sep);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
265 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
266
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
267 if (btn1_cb)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
268 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
269 button = gtk_button_new_with_label(btn1);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
270 gtk_signal_connect (GTK_OBJECT (button), "clicked",(GtkSignalFunc) btn1_cb, fd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
271 gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
272 gtk_widget_grab_focus(button);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
273 gtk_widget_show(button);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
274 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
275
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
276 if (btn2_cb)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
277 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
278 button = gtk_button_new_with_label(btn2);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
279 gtk_signal_connect (GTK_OBJECT (button), "clicked",(GtkSignalFunc) btn2_cb, fd);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
280 gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
281 gtk_widget_show(button);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
282 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
283
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
284 gtk_widget_show(fd->dialog);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
285 return fd;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
286 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
287