1 /*
2 * DO NOT EDIT THIS FILE - it is generated by Glade.
3 */
4
5 #ifdef HAVE_CONFIG_H
6 # include <config.h>
7 #endif
8
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13 #include <stdio.h>
14 #include <libintl.h>
15
16 #include <gdk/gdkkeysyms.h>
17 #include <gtk/gtk.h>
18
19 #include "callbacks.h"
20 #include "interface.h"
21 #include "support.h"
22
23 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
24 g_object_set_data_full (G_OBJECT (component), name, \
25 gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
26
27 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
28 g_object_set_data (G_OBJECT (component), name, widget)
29
30 GtkWidget*
create_mainWindow(void)31 create_mainWindow (void)
32 {
33 GtkWidget *mainWindow;
34 GtkWidget *vbox1;
35 GtkWidget *menubar1;
36 GtkWidget *menuitem13;
37 GtkWidget *menu13;
38 GtkWidget *nouveau;
39 GtkWidget *ouvrir;
40 GtkWidget *enregistrer;
41 GtkWidget *enregistrer_sous;
42 GtkWidget *separatormenuitem1;
43 GtkWidget *quitter;
44 GtkWidget *vbox2;
45 GtkWidget *ParametersFrame;
46 GtkWidget *vbox6;
47 GtkWidget *hbox9;
48 GtkWidget *scrolledwindow1;
49 GtkWidget *URLTreeView;
50 GtkWidget *vbox7;
51 GtkWidget *alignment8;
52 GtkWidget *AddUrlBUtton;
53 GtkWidget *alignment6;
54 GtkWidget *addhbox;
55 GtkWidget *image4;
56 GtkWidget *label14;
57 GtkWidget *DelURLButton;
58 GtkWidget *alignment7;
59 GtkWidget *hbox10;
60 GtkWidget *image5;
61 GtkWidget *label15;
62 GtkWidget *alignment9;
63 GtkWidget *table4;
64 GtkWidget *SaveDirectoryLabel;
65 GtkWidget *FileChooserButton;
66 GtkWidget *LogfileCheckButton;
67 GtkWidget *logfileChooseDialog;
68 GtkWidget *LogfileChooserButton;
69 GtkWidget *PigeModeFrame;
70 GtkWidget *hbox11;
71 GtkWidget *label17;
72 GtkObject *IntervalDelaySpinButton_adj;
73 GtkWidget *IntervalDelaySpinButton;
74 GtkWidget *IntervalTypeComboBox;
75 GtkWidget *label16;
76 GtkWidget *MandatoryParametersLabel;
77 GtkWidget *ExtraParametersFrame;
78 GtkWidget *alignment2;
79 GtkWidget *OnOffTable;
80 GtkWidget *pigeModeButton;
81 GtkWidget *WeekBackupButton;
82 GtkWidget *pigeMetaButton;
83 GtkWidget *quietModeButton;
84 GtkWidget *backgroundButton;
85 GtkWidget *useNumbersButton;
86 GtkObject *spinbutton2_adj;
87 GtkWidget *spinbutton2;
88 GtkWidget *NextTitleEntry;
89 GtkWidget *OnOffLabel;
90 GtkWidget *frame4;
91 GtkWidget *vbox3;
92 GtkWidget *hbox3;
93 GtkWidget *startButton;
94 GtkWidget *alignment10;
95 GtkWidget *hbox12;
96 GtkWidget *startButtonImage;
97 GtkWidget *startButtonLabel;
98 GtkWidget *table3;
99 GtkWidget *curSongLabel;
100 GtkWidget *nextSongLabel;
101 GtkWidget *titleEntry;
102 GtkWidget *nexttitleEntry;
103 GtkWidget *timeleftProgressBar;
104 GtkWidget *label6;
105 GtkWidget *log_table;
106 GtkWidget *log_entry;
107 GtkWidget *log_button;
108 GtkWidget *log_align;
109 GtkWidget *log_hbox;
110 GtkWidget *log_image;
111 GtkWidget *log_button_label;
112 GtkAccelGroup *accel_group;
113 GtkTooltips *tooltips;
114
115 tooltips = gtk_tooltips_new ();
116
117 accel_group = gtk_accel_group_new ();
118
119 mainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
120 gtk_widget_set_name (mainWindow, "mainWindow");
121 gtk_window_set_title (GTK_WINDOW (mainWindow), gettext("cPige Configurator by Laurent Coustet"));
122 gtk_window_set_icon_name (GTK_WINDOW (mainWindow), "gtk-media-record");
123
124 vbox1 = gtk_vbox_new (FALSE, 0);
125 gtk_widget_set_name (vbox1, "vbox1");
126 gtk_widget_show (vbox1);
127 gtk_container_add (GTK_CONTAINER (mainWindow), vbox1);
128
129 menubar1 = gtk_menu_bar_new ();
130 gtk_widget_set_name (menubar1, "menubar1");
131 gtk_widget_show (menubar1);
132 gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
133
134 menuitem13 = gtk_menu_item_new_with_mnemonic ("_Fichier");
135 gtk_widget_set_name (menuitem13, "menuitem13");
136 gtk_widget_show (menuitem13);
137 gtk_container_add (GTK_CONTAINER (menubar1), menuitem13);
138
139 menu13 = gtk_menu_new ();
140 gtk_widget_set_name (menu13, "menu13");
141 gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem13), menu13);
142
143 nouveau = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group);
144 gtk_widget_set_name (nouveau, "nouveau");
145 gtk_widget_show (nouveau);
146 gtk_container_add (GTK_CONTAINER (menu13), nouveau);
147
148 ouvrir = gtk_image_menu_item_new_from_stock ("gtk-open", accel_group);
149 gtk_widget_set_name (ouvrir, "ouvrir");
150 gtk_widget_show (ouvrir);
151 gtk_container_add (GTK_CONTAINER (menu13), ouvrir);
152
153 enregistrer = gtk_image_menu_item_new_from_stock ("gtk-save", accel_group);
154 gtk_widget_set_name (enregistrer, "enregistrer");
155 gtk_widget_show (enregistrer);
156 gtk_container_add (GTK_CONTAINER (menu13), enregistrer);
157
158 enregistrer_sous = gtk_image_menu_item_new_from_stock ("gtk-save-as", accel_group);
159 gtk_widget_set_name (enregistrer_sous, "enregistrer_sous");
160 gtk_widget_show (enregistrer_sous);
161 gtk_container_add (GTK_CONTAINER (menu13), enregistrer_sous);
162
163 separatormenuitem1 = gtk_separator_menu_item_new ();
164 gtk_widget_set_name (separatormenuitem1, "separatormenuitem1");
165 gtk_widget_show (separatormenuitem1);
166 gtk_container_add (GTK_CONTAINER (menu13), separatormenuitem1);
167 gtk_widget_set_sensitive (separatormenuitem1, FALSE);
168
169 quitter = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group);
170 gtk_widget_set_name (quitter, "quitter");
171 gtk_widget_show (quitter);
172 gtk_container_add (GTK_CONTAINER (menu13), quitter);
173
174 vbox2 = gtk_vbox_new (FALSE, 7);
175 gtk_widget_set_name (vbox2, "vbox2");
176 gtk_widget_show (vbox2);
177 gtk_box_pack_start (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0);
178 gtk_container_set_border_width (GTK_CONTAINER (vbox2), 10);
179
180 ParametersFrame = gtk_frame_new (NULL);
181 gtk_widget_set_name (ParametersFrame, "ParametersFrame");
182 gtk_widget_show (ParametersFrame);
183 gtk_box_pack_start (GTK_BOX (vbox2), ParametersFrame, TRUE, TRUE, 0);
184 gtk_frame_set_shadow_type (GTK_FRAME (ParametersFrame), GTK_SHADOW_IN);
185
186 vbox6 = gtk_vbox_new (FALSE, 6);
187 gtk_widget_set_name (vbox6, "vbox6");
188 gtk_widget_show (vbox6);
189 gtk_container_add (GTK_CONTAINER (ParametersFrame), vbox6);
190 gtk_container_set_border_width (GTK_CONTAINER (vbox6), 4);
191
192 hbox9 = gtk_hbox_new (FALSE, 5);
193 gtk_widget_set_name (hbox9, "hbox9");
194 gtk_widget_show (hbox9);
195 gtk_box_pack_start (GTK_BOX (vbox6), hbox9, TRUE, TRUE, 0);
196
197 scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
198 gtk_widget_set_name (scrolledwindow1, "scrolledwindow1");
199 gtk_widget_show (scrolledwindow1);
200 gtk_box_pack_start (GTK_BOX (hbox9), scrolledwindow1, TRUE, TRUE, 0);
201 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
202 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN);
203
204 URLTreeView = gtk_tree_view_new ();
205 gtk_widget_set_name (URLTreeView, "URLTreeView");
206 gtk_widget_show (URLTreeView);
207 gtk_container_add (GTK_CONTAINER (scrolledwindow1), URLTreeView);
208
209 vbox7 = gtk_vbox_new (FALSE, 4);
210 gtk_widget_set_name (vbox7, "vbox7");
211 gtk_widget_show (vbox7);
212 gtk_box_pack_start (GTK_BOX (hbox9), vbox7, FALSE, FALSE, 0);
213
214 alignment8 = gtk_alignment_new (0.5, 0.5, 1, 1);
215 gtk_widget_set_name (alignment8, "alignment8");
216 gtk_widget_show (alignment8);
217 gtk_box_pack_start (GTK_BOX (vbox7), alignment8, TRUE, TRUE, 0);
218
219 AddUrlBUtton = gtk_button_new ();
220 gtk_widget_set_name (AddUrlBUtton, "AddUrlBUtton");
221 gtk_widget_show (AddUrlBUtton);
222 gtk_box_pack_start (GTK_BOX (vbox7), AddUrlBUtton, FALSE, FALSE, 0);
223 gtk_tooltips_set_tip (tooltips, AddUrlBUtton, gettext("Add an URL to the pool."), NULL);
224 gtk_button_set_focus_on_click (GTK_BUTTON (AddUrlBUtton), FALSE);
225
226 alignment6 = gtk_alignment_new (0.5, 0.5, 0, 0);
227 gtk_widget_set_name (alignment6, "alignment6");
228 gtk_widget_show (alignment6);
229 gtk_container_add (GTK_CONTAINER (AddUrlBUtton), alignment6);
230
231 addhbox = gtk_hbox_new (FALSE, 2);
232 gtk_widget_set_name (addhbox, "addhbox");
233 gtk_widget_show (addhbox);
234 gtk_container_add (GTK_CONTAINER (alignment6), addhbox);
235
236 image4 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_BUTTON);
237 gtk_widget_set_name (image4, "image4");
238 gtk_widget_show (image4);
239 gtk_box_pack_start (GTK_BOX (addhbox), image4, FALSE, FALSE, 0);
240
241 label14 = gtk_label_new_with_mnemonic (gettext("Add"));
242 gtk_widget_set_name (label14, "label14");
243 gtk_widget_show (label14);
244 gtk_box_pack_start (GTK_BOX (addhbox), label14, FALSE, FALSE, 0);
245
246 DelURLButton = gtk_button_new ();
247 gtk_widget_set_name (DelURLButton, "DelURLButton");
248 gtk_widget_show (DelURLButton);
249 gtk_box_pack_start (GTK_BOX (vbox7), DelURLButton, FALSE, FALSE, 0);
250 gtk_tooltips_set_tip (tooltips, DelURLButton, gettext("Remove an URL from the pool."), NULL);
251 gtk_button_set_focus_on_click (GTK_BUTTON (DelURLButton), FALSE);
252
253 alignment7 = gtk_alignment_new (0.5, 0.5, 0, 0);
254 gtk_widget_set_name (alignment7, "alignment7");
255 gtk_widget_show (alignment7);
256 gtk_container_add (GTK_CONTAINER (DelURLButton), alignment7);
257
258 hbox10 = gtk_hbox_new (FALSE, 2);
259 gtk_widget_set_name (hbox10, "hbox10");
260 gtk_widget_show (hbox10);
261 gtk_container_add (GTK_CONTAINER (alignment7), hbox10);
262
263 image5 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_BUTTON);
264 gtk_widget_set_name (image5, "image5");
265 gtk_widget_show (image5);
266 gtk_box_pack_start (GTK_BOX (hbox10), image5, FALSE, FALSE, 0);
267
268 label15 = gtk_label_new_with_mnemonic (gettext("Del"));
269 gtk_widget_set_name (label15, "label15");
270 gtk_widget_show (label15);
271 gtk_box_pack_start (GTK_BOX (hbox10), label15, FALSE, FALSE, 0);
272
273 alignment9 = gtk_alignment_new (0.5, 0.5, 1, 1);
274 gtk_widget_set_name (alignment9, "alignment9");
275 gtk_widget_show (alignment9);
276 gtk_box_pack_start (GTK_BOX (vbox7), alignment9, TRUE, TRUE, 0);
277
278 table4 = gtk_table_new (2, 2, FALSE);
279 gtk_widget_set_name (table4, "table4");
280 gtk_widget_show (table4);
281 gtk_box_pack_start (GTK_BOX (vbox6), table4, FALSE, FALSE, 0);
282 gtk_table_set_row_spacings (GTK_TABLE (table4), 3);
283 gtk_table_set_col_spacings (GTK_TABLE (table4), 18);
284
285 SaveDirectoryLabel = gtk_label_new (gettext("Save directory"));
286 gtk_widget_set_name (SaveDirectoryLabel, "SaveDirectoryLabel");
287 gtk_widget_show (SaveDirectoryLabel);
288 gtk_table_attach (GTK_TABLE (table4), SaveDirectoryLabel, 0, 1, 0, 1,
289 (GtkAttachOptions) (GTK_FILL),
290 (GtkAttachOptions) (0), 0, 0);
291
292 FileChooserButton = gtk_file_chooser_button_new (gettext("File selection"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
293 gtk_widget_set_name (FileChooserButton, "FileChooserButton");
294 gtk_widget_show (FileChooserButton);
295 gtk_table_attach (GTK_TABLE (table4), FileChooserButton, 1, 2, 0, 1,
296 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
297 (GtkAttachOptions) (GTK_FILL), 0, 0);
298
299 LogfileCheckButton = gtk_check_button_new_with_mnemonic ("Logfile");
300 gtk_widget_set_name (LogfileCheckButton, "LogfileCheckButton");
301 gtk_widget_show (LogfileCheckButton);
302 gtk_table_attach (GTK_TABLE (table4), LogfileCheckButton, 0, 1, 1, 2,
303 (GtkAttachOptions) (GTK_FILL),
304 (GtkAttachOptions) (0), 0, 0);
305 gtk_tooltips_set_tip (tooltips, LogfileCheckButton, gettext("Do you want cPige to store his action in a logfile ?"), NULL);
306 gtk_button_set_focus_on_click (GTK_BUTTON (LogfileCheckButton), FALSE);
307 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (LogfileCheckButton), TRUE);
308
309 log_table = gtk_hbox_new (FALSE, 4);
310 gtk_widget_show (log_table);
311
312 log_entry = gtk_entry_new ();
313 gtk_widget_set_name(log_entry, "LogfileEntry");
314 gtk_widget_show (log_entry);
315 gtk_box_pack_start (GTK_BOX (log_table), log_entry, TRUE, TRUE, 0);
316
317 log_button = gtk_button_new ();
318 gtk_widget_show (log_button);
319 gtk_widget_set_name (log_button, "LogfileChooserButton");
320 gtk_box_pack_start (GTK_BOX (log_table), log_button, FALSE, FALSE, 0);
321
322 log_align = gtk_alignment_new (0.5, 0.5, 0, 0);
323 gtk_widget_show (log_align);
324 gtk_container_add (GTK_CONTAINER (log_button), log_align);
325
326 log_hbox = gtk_hbox_new (FALSE, 2);
327 gtk_widget_show (log_hbox);
328 gtk_container_add (GTK_CONTAINER (log_align), log_hbox);
329
330 log_image = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_SMALL_TOOLBAR);
331 gtk_widget_show (log_image);
332 gtk_box_pack_start (GTK_BOX (log_hbox), log_image, FALSE, FALSE, 0);
333
334 log_button_label = gtk_label_new_with_mnemonic (gettext("Open"));
335 gtk_widget_show (log_button_label);
336 gtk_box_pack_start (GTK_BOX (log_hbox), log_button_label, FALSE, FALSE, 0);
337
338 gtk_table_attach (GTK_TABLE (table4), log_table, 1, 2, 1, 2,
339 (GtkAttachOptions) (GTK_FILL),
340 (GtkAttachOptions) (GTK_FILL), 0, 0);
341
342 PigeModeFrame = gtk_frame_new (NULL);
343 gtk_widget_set_name (PigeModeFrame, "PigeModeFrame");
344 gtk_widget_show (PigeModeFrame);
345 gtk_box_pack_start (GTK_BOX (vbox6), PigeModeFrame, FALSE, TRUE, 0);
346 gtk_frame_set_shadow_type (GTK_FRAME (PigeModeFrame), GTK_SHADOW_IN);
347
348 hbox11 = gtk_hbox_new (FALSE, 8);
349 gtk_widget_set_name (hbox11, "hbox11");
350 gtk_widget_show (hbox11);
351 gtk_container_add (GTK_CONTAINER (PigeModeFrame), hbox11);
352 gtk_container_set_border_width (GTK_CONTAINER (hbox11), 3);
353
354 label17 = gtk_label_new (gettext("Split files every"));
355 gtk_widget_set_name (label17, "label17");
356 gtk_widget_show (label17);
357 gtk_box_pack_start (GTK_BOX (hbox11), label17, FALSE, FALSE, 0);
358
359 IntervalDelaySpinButton_adj = gtk_adjustment_new (10, 10, 30, 10, 10, 10);
360 IntervalDelaySpinButton = gtk_spin_button_new (GTK_ADJUSTMENT (IntervalDelaySpinButton_adj), 1, 0);
361 gtk_widget_set_name (IntervalDelaySpinButton, "IntervalDelaySpinButton");
362 gtk_widget_show (IntervalDelaySpinButton);
363 gtk_box_pack_start (GTK_BOX (hbox11), IntervalDelaySpinButton, FALSE, TRUE, 0);
364 gtk_tooltips_set_tip (tooltips, IntervalDelaySpinButton, gettext("Each n \"Hour\" or \"Minutes\", cPige will create a new file."), NULL);
365 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (IntervalDelaySpinButton), TRUE);
366
367 IntervalTypeComboBox = gtk_combo_box_new_text ();
368 gtk_widget_set_name (IntervalTypeComboBox, "IntervalTypeComboBox");
369 gtk_widget_show (IntervalTypeComboBox);
370 gtk_box_pack_start (GTK_BOX (hbox11), IntervalTypeComboBox, TRUE, TRUE, 0);
371 gtk_combo_box_append_text (GTK_COMBO_BOX (IntervalTypeComboBox), gettext("Hour(s)"));
372 gtk_combo_box_append_text (GTK_COMBO_BOX (IntervalTypeComboBox), gettext("Minutes"));
373
374 label16 = gtk_label_new (gettext("<b>Pige mode only</b>"));
375 gtk_widget_set_name (label16, "label16");
376 gtk_widget_show (label16);
377 gtk_frame_set_label_widget (GTK_FRAME (PigeModeFrame), label16);
378 gtk_label_set_use_markup (GTK_LABEL (label16), TRUE);
379
380 MandatoryParametersLabel = gtk_label_new (gettext("<b>Mandatory parameters</b>"));
381 gtk_widget_set_name (MandatoryParametersLabel, "MandatoryParametersLabel");
382 gtk_widget_show (MandatoryParametersLabel);
383 gtk_frame_set_label_widget (GTK_FRAME (ParametersFrame), MandatoryParametersLabel);
384 gtk_label_set_use_markup (GTK_LABEL (MandatoryParametersLabel), TRUE);
385
386 ExtraParametersFrame = gtk_frame_new (NULL);
387 gtk_widget_set_name (ExtraParametersFrame, "ExtraParametersFrame");
388 gtk_widget_show (ExtraParametersFrame);
389 gtk_box_pack_start (GTK_BOX (vbox2), ExtraParametersFrame, FALSE, TRUE, 0);
390 gtk_frame_set_shadow_type (GTK_FRAME (ExtraParametersFrame), GTK_SHADOW_IN);
391
392 alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
393 gtk_widget_set_name (alignment2, "alignment2");
394 gtk_widget_show (alignment2);
395 gtk_container_add (GTK_CONTAINER (ExtraParametersFrame), alignment2);
396
397 OnOffTable = gtk_table_new (2, 4, FALSE);
398 gtk_widget_set_name (OnOffTable, "OnOffTable");
399 gtk_widget_show (OnOffTable);
400 gtk_container_add (GTK_CONTAINER (alignment2), OnOffTable);
401 gtk_container_set_border_width (GTK_CONTAINER (OnOffTable), 6);
402 gtk_table_set_row_spacings (GTK_TABLE (OnOffTable), 3);
403 gtk_table_set_col_spacings (GTK_TABLE (OnOffTable), 6);
404
405 pigeModeButton = gtk_check_button_new_with_mnemonic (gettext("pige mode"));
406 gtk_widget_set_name (pigeModeButton, "pigeModeButton");
407 gtk_widget_show (pigeModeButton);
408 gtk_table_attach (GTK_TABLE (OnOffTable), pigeModeButton, 0, 1, 0, 1,
409 (GtkAttachOptions) (GTK_FILL),
410 (GtkAttachOptions) (0), 0, 0);
411 gtk_tooltips_set_tip (tooltips, pigeModeButton, gettext("Do you want cPige to archive the stream in Pige mode?\nIn pige mode, cPige will cut the stream using a time base."), NULL);
412 gtk_button_set_focus_on_click (GTK_BUTTON (pigeModeButton), FALSE);
413 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pigeModeButton), TRUE);
414
415 WeekBackupButton = gtk_check_button_new_with_mnemonic (gettext("week backup"));
416 gtk_widget_set_name (WeekBackupButton, "WeekBackupButton");
417 gtk_widget_show (WeekBackupButton);
418 gtk_table_attach (GTK_TABLE (OnOffTable), WeekBackupButton, 1, 2, 0, 1,
419 (GtkAttachOptions) (GTK_FILL),
420 (GtkAttachOptions) (0), 0, 0);
421 gtk_tooltips_set_tip (tooltips, WeekBackupButton, gettext("Do you want cPige to archive a complete week of streaming?"), NULL);
422 gtk_button_set_focus_on_click (GTK_BUTTON (WeekBackupButton), FALSE);
423
424 pigeMetaButton = gtk_check_button_new_with_mnemonic (gettext("pige meta"));
425 gtk_widget_set_name (pigeMetaButton, "pigeMetaButton");
426 gtk_widget_show (pigeMetaButton);
427 gtk_table_attach (GTK_TABLE (OnOffTable), pigeMetaButton, 0, 1, 1, 2,
428 (GtkAttachOptions) (GTK_FILL),
429 (GtkAttachOptions) (0), 0, 0);
430 gtk_tooltips_set_tip (tooltips, pigeMetaButton, gettext("Do you want cPige to add ID3 tags to your piged files (Only available using pige mode)"), NULL);
431 gtk_button_set_focus_on_click (GTK_BUTTON (pigeMetaButton), FALSE);
432
433 quietModeButton = gtk_check_button_new_with_mnemonic (gettext("quiet mode"));
434 gtk_widget_set_name (quietModeButton, "quietModeButton");
435 gtk_widget_show (quietModeButton);
436 gtk_table_attach (GTK_TABLE (OnOffTable), quietModeButton, 2, 3, 0, 1,
437 (GtkAttachOptions) (GTK_FILL),
438 (GtkAttachOptions) (0), 0, 0);
439 gtk_tooltips_set_tip (tooltips, quietModeButton, gettext("Do you want cPige to gives you the status of the stream grabbing ? Like the title of the song played, the time cPige is running, and so on.\n\nNote that this parameter is useless starting cPige with the GUI."), NULL);
440 gtk_button_set_relief (GTK_BUTTON (quietModeButton), GTK_RELIEF_NONE);
441 gtk_button_set_focus_on_click (GTK_BUTTON (quietModeButton), FALSE);
442
443 backgroundButton = gtk_check_button_new_with_mnemonic (gettext("background"));
444 gtk_widget_set_name (backgroundButton, "backgroundButton");
445 gtk_widget_show (backgroundButton);
446 gtk_table_attach (GTK_TABLE (OnOffTable), backgroundButton, 1, 2, 1, 2,
447 (GtkAttachOptions) (GTK_FILL),
448 (GtkAttachOptions) (0), 0, 0);
449 gtk_tooltips_set_tip (tooltips, backgroundButton, gettext("Do you want to run cPige in background mode. <b>This option is currently ONLY available under UNIX systems.</b>"), NULL);
450 gtk_button_set_focus_on_click (GTK_BUTTON (backgroundButton), FALSE);
451
452 useNumbersButton = gtk_check_button_new_with_mnemonic (gettext("use numbers"));
453 gtk_widget_set_name (useNumbersButton, "useNumbersButton");
454 gtk_widget_show (useNumbersButton);
455 gtk_table_attach (GTK_TABLE (OnOffTable), useNumbersButton, 2, 3, 1, 2,
456 (GtkAttachOptions) (GTK_FILL),
457 (GtkAttachOptions) (0), 0, 0);
458 gtk_widget_set_sensitive (useNumbersButton, FALSE);
459 gtk_tooltips_set_tip (tooltips, useNumbersButton, gettext("Should cPige prefix songs with a unique number ? (UNIX only, with pige mode Disabled)"), NULL);
460 gtk_button_set_focus_on_click (GTK_BUTTON (useNumbersButton), FALSE);
461
462 spinbutton2_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
463 spinbutton2 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton2_adj), 1, 0);
464 gtk_widget_set_name (spinbutton2, "skipSongsSpin");
465 gtk_widget_show (spinbutton2);
466 gtk_table_attach (GTK_TABLE (OnOffTable), spinbutton2, 3, 4, 1, 2,
467 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
468 (GtkAttachOptions) (0), 0, 0);
469 gtk_tooltips_set_tip (tooltips, spinbutton2, gettext("How many songs cPige should skip before starting recording"), NULL);
470 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton2), TRUE);
471
472 NextTitleEntry = gtk_entry_new ();
473 gtk_widget_set_name (NextTitleEntry, "NextTitleEntry");
474 gtk_widget_show (NextTitleEntry);
475 gtk_table_attach (GTK_TABLE (OnOffTable), NextTitleEntry, 3, 4, 0, 1,
476 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
477 (GtkAttachOptions) (0), 0, 0);
478 gtk_tooltips_set_tip (tooltips, NextTitleEntry, gettext("This entry is used by cPige to detect if the new title sent by the webradio is a \"next title\" information, or a real new title."), NULL);
479 gtk_entry_set_text (GTK_ENTRY (NextTitleEntry), "Next Title");
480
481 OnOffLabel = gtk_label_new (gettext("<b>Extra Parameters</b>"));
482 gtk_widget_set_name (OnOffLabel, "OnOffLabel");
483 gtk_widget_show (OnOffLabel);
484 gtk_frame_set_label_widget (GTK_FRAME (ExtraParametersFrame), OnOffLabel);
485 gtk_label_set_use_markup (GTK_LABEL (OnOffLabel), TRUE);
486
487 frame4 = gtk_frame_new (NULL);
488 gtk_widget_set_name (frame4, "frame4");
489 gtk_widget_show (frame4);
490 gtk_box_pack_start (GTK_BOX (vbox2), frame4, FALSE, TRUE, 0);
491 gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_IN);
492
493 vbox3 = gtk_vbox_new (FALSE, 6);
494 gtk_widget_set_name (vbox3, "vbox3");
495 gtk_widget_show (vbox3);
496 gtk_container_add (GTK_CONTAINER (frame4), vbox3);
497 gtk_container_set_border_width (GTK_CONTAINER (vbox3), 5);
498
499 hbox3 = gtk_hbox_new (FALSE, 6);
500 gtk_widget_set_name (hbox3, "hbox3");
501 gtk_widget_show (hbox3);
502 gtk_box_pack_start (GTK_BOX (vbox3), hbox3, FALSE, TRUE, 0);
503
504 startButton = gtk_toggle_button_new ();
505 gtk_widget_set_name (startButton, "startButton");
506 gtk_widget_show (startButton);
507 gtk_box_pack_start (GTK_BOX (hbox3), startButton, FALSE, FALSE, 0);
508 GTK_WIDGET_SET_FLAGS (startButton, GTK_CAN_DEFAULT);
509 gtk_tooltips_set_tip (tooltips, startButton, gettext("This button is used to start / stop cPige recording"), NULL);
510 gtk_button_set_focus_on_click (GTK_BUTTON (startButton), FALSE);
511 g_object_set_data(G_OBJECT(startButton), "savemode", FALSE);
512
513 alignment10 = gtk_alignment_new (0.5, 0.5, 0, 0);
514 gtk_widget_set_name (alignment10, "alignment10");
515 gtk_widget_show (alignment10);
516 gtk_container_add (GTK_CONTAINER (startButton), alignment10);
517
518 hbox12 = gtk_hbox_new (FALSE, 2);
519 gtk_widget_set_name (hbox12, "hbox12");
520 gtk_widget_show (hbox12);
521 gtk_container_add (GTK_CONTAINER (alignment10), hbox12);
522
523 startButtonImage = gtk_image_new_from_stock ("gtk-media-play", GTK_ICON_SIZE_BUTTON);
524 gtk_widget_set_name (startButtonImage, "startButtonImage");
525 gtk_widget_show (startButtonImage);
526 gtk_box_pack_start (GTK_BOX (hbox12), startButtonImage, FALSE, FALSE, 0);
527
528 startButtonLabel = gtk_label_new_with_mnemonic (gettext("Start"));
529 gtk_widget_set_name (startButtonLabel, "startButtonLabel");
530 gtk_widget_show (startButtonLabel);
531 gtk_box_pack_start (GTK_BOX (hbox12), startButtonLabel, FALSE, FALSE, 0);
532
533 table3 = gtk_table_new (2, 2, FALSE);
534 gtk_widget_set_name (table3, "table3");
535 gtk_widget_show (table3);
536 gtk_box_pack_start (GTK_BOX (hbox3), table3, TRUE, TRUE, 0);
537 gtk_table_set_row_spacings (GTK_TABLE (table3), 2);
538 gtk_table_set_col_spacings (GTK_TABLE (table3), 9);
539
540 curSongLabel = gtk_label_new (gettext("Current song"));
541 gtk_widget_set_name (curSongLabel, "curSongLabel");
542 gtk_widget_show (curSongLabel);
543 gtk_table_attach (GTK_TABLE (table3), curSongLabel, 0, 1, 0, 1,
544 (GtkAttachOptions) (GTK_FILL),
545 (GtkAttachOptions) (0), 0, 0);
546 gtk_misc_set_alignment (GTK_MISC (curSongLabel), 0, 0.5);
547
548 nextSongLabel = gtk_label_new (gettext("Next song"));
549 gtk_widget_set_name (nextSongLabel, "nextSongLabel");
550 gtk_widget_show (nextSongLabel);
551 gtk_table_attach (GTK_TABLE (table3), nextSongLabel, 0, 1, 1, 2,
552 (GtkAttachOptions) (GTK_FILL),
553 (GtkAttachOptions) (0), 0, 0);
554 gtk_misc_set_alignment (GTK_MISC (nextSongLabel), 0, 0.5);
555
556 titleEntry = gtk_entry_new ();
557 gtk_widget_set_name (titleEntry, "titleEntry");
558 gtk_widget_show (titleEntry);
559 gtk_table_attach (GTK_TABLE (table3), titleEntry, 1, 2, 0, 1,
560 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
561 (GtkAttachOptions) (0), 0, 0);
562 gtk_widget_set_sensitive (titleEntry, FALSE);
563 GTK_WIDGET_UNSET_FLAGS (titleEntry, GTK_CAN_FOCUS);
564 gtk_tooltips_set_tip (tooltips, titleEntry, gettext("This is the title of the song currently recording"), NULL);
565 gtk_editable_set_editable (GTK_EDITABLE (titleEntry), FALSE);
566
567 nexttitleEntry = gtk_entry_new ();
568 gtk_widget_set_name (nexttitleEntry, "nexttitleEntry");
569 gtk_widget_show (nexttitleEntry);
570 gtk_table_attach (GTK_TABLE (table3), nexttitleEntry, 1, 2, 1, 2,
571 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
572 (GtkAttachOptions) (0), 0, 0);
573 gtk_widget_set_sensitive (nexttitleEntry, FALSE);
574 GTK_WIDGET_UNSET_FLAGS (nexttitleEntry, GTK_CAN_FOCUS);
575 gtk_tooltips_set_tip (tooltips, nexttitleEntry, gettext("This is the title of the next song we are going to record."), NULL);
576 gtk_editable_set_editable (GTK_EDITABLE (nexttitleEntry), FALSE);
577
578 timeleftProgressBar = gtk_progress_bar_new ();
579 gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(timeleftProgressBar), 0.5);
580 gtk_widget_set_name (timeleftProgressBar, "timeleftProgressBar");
581 gtk_widget_show (timeleftProgressBar);
582 gtk_box_pack_start (GTK_BOX (vbox3), timeleftProgressBar, FALSE, FALSE, 0);
583 gtk_progress_bar_set_pulse_step (GTK_PROGRESS_BAR (timeleftProgressBar), 0.01);
584 gtk_progress_bar_set_text (GTK_PROGRESS_BAR (timeleftProgressBar), gettext("timeleft"));
585
586 label6 = gtk_label_new (gettext("<b>Stream status</b>"));
587 gtk_widget_set_name (label6, "label6");
588 gtk_widget_show (label6);
589 gtk_frame_set_label_widget (GTK_FRAME (frame4), label6);
590 gtk_label_set_use_markup (GTK_LABEL (label6), TRUE);
591
592 g_signal_connect ((gpointer) mainWindow, "destroy",
593 G_CALLBACK (on_quitter_activate),
594 NULL);
595 g_signal_connect ((gpointer) nouveau, "activate",
596 G_CALLBACK (on_nouveau_activate),
597 NULL);
598 g_signal_connect ((gpointer) ouvrir, "activate",
599 G_CALLBACK (on_ouvrir_activate),
600 NULL);
601 g_signal_connect ((gpointer) enregistrer, "activate",
602 G_CALLBACK (on_enregistrer_activate),
603 NULL);
604 g_signal_connect ((gpointer) enregistrer_sous, "activate",
605 G_CALLBACK (on_enregistrer_sous_activate),
606 NULL);
607 g_signal_connect ((gpointer) quitter, "activate",
608 G_CALLBACK (on_quitter_activate),
609 NULL);
610 g_signal_connect ((gpointer) AddUrlBUtton, "pressed",
611 G_CALLBACK (on_AddUrlBUtton_pressed),
612 NULL);
613 g_signal_connect ((gpointer) DelURLButton, "pressed",
614 G_CALLBACK (on_DelURLButton_pressed),
615 NULL);
616 g_signal_connect ((gpointer) LogfileCheckButton, "toggled",
617 G_CALLBACK (on_LogfileCheckButton_pressed),
618 NULL);
619 g_signal_connect ((gpointer) IntervalTypeComboBox, "changed",
620 G_CALLBACK (on_IntervalTypeComboBox_changed),
621 NULL);
622 g_signal_connect ((gpointer) pigeModeButton, "toggled",
623 G_CALLBACK (on_pigeModeButton_pressed),
624 NULL);
625 g_signal_connect ((gpointer) startButton, "clicked",
626 G_CALLBACK (on_startButton_clicked),
627 NULL);
628 g_signal_connect ((gpointer) log_button, "pressed",
629 G_CALLBACK (on_log_open_pressed),
630 NULL);
631 g_signal_connect ((gpointer) FileChooserButton, "selection-changed",
632 G_CALLBACK (something_changed),
633 NULL);
634
635 /* Connects each button to a function that will known
636 * if something has changed in the configuration,
637 * and if the configuration should be saved, or not
638 */
639 gpointer buttons[] = {
640 pigeModeButton, WeekBackupButton, /* Classic buttons */
641 pigeMetaButton, quietModeButton,
642 backgroundButton, useNumbersButton,
643 LogfileCheckButton,
644 NULL,
645 IntervalDelaySpinButton, spinbutton2, /* Spin buttons */
646 NULL,
647 IntervalTypeComboBox, /* combo & textbox */
648 NextTitleEntry,
649 log_entry,
650 NULL
651 };
652 gint iter = 0;
653
654 /* Traitement des boutons */
655 while (buttons[iter] != NULL)
656 g_signal_connect((gpointer) buttons[iter++], "pressed",
657 G_CALLBACK (something_changed),
658 NULL);
659 iter++;
660
661 /* Traitement des spin button */
662 while (buttons[iter] != NULL)
663 g_signal_connect ((gpointer) buttons[iter++] , "value_changed",
664 G_CALLBACK (something_changed),
665 NULL);
666
667 iter++;
668
669 /* Traitement des combo + champs texte */
670 while (buttons[iter] != NULL)
671 g_signal_connect ((gpointer) buttons[iter++] , "changed",
672 G_CALLBACK (something_changed),
673 NULL);
674
675
676 /* Store pointers to all widgets, for use by lookup_widget(). */
677 GLADE_HOOKUP_OBJECT_NO_REF (mainWindow, mainWindow, "mainWindow");
678 GLADE_HOOKUP_OBJECT (mainWindow, vbox1, "vbox1");
679 GLADE_HOOKUP_OBJECT (mainWindow, menubar1, "menubar1");
680 GLADE_HOOKUP_OBJECT (mainWindow, menuitem13, "menuitem13");
681 GLADE_HOOKUP_OBJECT (mainWindow, menu13, "menu13");
682 GLADE_HOOKUP_OBJECT (mainWindow, nouveau, "nouveau");
683 GLADE_HOOKUP_OBJECT (mainWindow, ouvrir, "ouvrir");
684 GLADE_HOOKUP_OBJECT (mainWindow, enregistrer, "enregistrer");
685 GLADE_HOOKUP_OBJECT (mainWindow, enregistrer_sous, "enregistrer_sous");
686 GLADE_HOOKUP_OBJECT (mainWindow, separatormenuitem1, "separatormenuitem1");
687 GLADE_HOOKUP_OBJECT (mainWindow, quitter, "quitter");
688 GLADE_HOOKUP_OBJECT (mainWindow, vbox2, "vbox2");
689 GLADE_HOOKUP_OBJECT (mainWindow, ParametersFrame, "ParametersFrame");
690 GLADE_HOOKUP_OBJECT (mainWindow, vbox6, "vbox6");
691 GLADE_HOOKUP_OBJECT (mainWindow, hbox9, "hbox9");
692 GLADE_HOOKUP_OBJECT (mainWindow, scrolledwindow1, "scrolledwindow1");
693 GLADE_HOOKUP_OBJECT (mainWindow, URLTreeView, "URLTreeView");
694 GLADE_HOOKUP_OBJECT (mainWindow, vbox7, "vbox7");
695 GLADE_HOOKUP_OBJECT (mainWindow, alignment8, "alignment8");
696 GLADE_HOOKUP_OBJECT (mainWindow, AddUrlBUtton, "AddUrlBUtton");
697 GLADE_HOOKUP_OBJECT (mainWindow, alignment6, "alignment6");
698 GLADE_HOOKUP_OBJECT (mainWindow, addhbox, "addhbox");
699 GLADE_HOOKUP_OBJECT (mainWindow, image4, "image4");
700 GLADE_HOOKUP_OBJECT (mainWindow, label14, "label14");
701 GLADE_HOOKUP_OBJECT (mainWindow, DelURLButton, "DelURLButton");
702 GLADE_HOOKUP_OBJECT (mainWindow, alignment7, "alignment7");
703 GLADE_HOOKUP_OBJECT (mainWindow, hbox10, "hbox10");
704 GLADE_HOOKUP_OBJECT (mainWindow, image5, "image5");
705 GLADE_HOOKUP_OBJECT (mainWindow, label15, "label15");
706 GLADE_HOOKUP_OBJECT (mainWindow, alignment9, "alignment9");
707 GLADE_HOOKUP_OBJECT (mainWindow, table4, "table4");
708 GLADE_HOOKUP_OBJECT (mainWindow, SaveDirectoryLabel, "SaveDirectoryLabel");
709 GLADE_HOOKUP_OBJECT (mainWindow, FileChooserButton, "FileChooserButton");
710 GLADE_HOOKUP_OBJECT (mainWindow, LogfileCheckButton, "LogfileCheckButton");
711 GLADE_HOOKUP_OBJECT (mainWindow, log_button, "LogfileChooserButton");
712 GLADE_HOOKUP_OBJECT (mainWindow, log_entry, "LogfileEntry");
713 GLADE_HOOKUP_OBJECT (mainWindow, PigeModeFrame, "PigeModeFrame");
714 GLADE_HOOKUP_OBJECT (mainWindow, hbox11, "hbox11");
715 GLADE_HOOKUP_OBJECT (mainWindow, label17, "label17");
716 GLADE_HOOKUP_OBJECT (mainWindow, IntervalDelaySpinButton, "IntervalDelaySpinButton");
717 GLADE_HOOKUP_OBJECT (mainWindow, IntervalTypeComboBox, "IntervalTypeComboBox");
718 GLADE_HOOKUP_OBJECT (mainWindow, label16, "label16");
719 GLADE_HOOKUP_OBJECT (mainWindow, MandatoryParametersLabel, "MandatoryParametersLabel");
720 GLADE_HOOKUP_OBJECT (mainWindow, ExtraParametersFrame, "ExtraParametersFrame");
721 GLADE_HOOKUP_OBJECT (mainWindow, alignment2, "alignment2");
722 GLADE_HOOKUP_OBJECT (mainWindow, OnOffTable, "OnOffTable");
723 GLADE_HOOKUP_OBJECT (mainWindow, pigeModeButton, "pigeModeButton");
724 GLADE_HOOKUP_OBJECT (mainWindow, WeekBackupButton, "WeekBackupButton");
725 GLADE_HOOKUP_OBJECT (mainWindow, pigeMetaButton, "pigeMetaButton");
726 GLADE_HOOKUP_OBJECT (mainWindow, quietModeButton, "quietModeButton");
727 GLADE_HOOKUP_OBJECT (mainWindow, backgroundButton, "backgroundButton");
728 GLADE_HOOKUP_OBJECT (mainWindow, useNumbersButton, "useNumbersButton");
729 GLADE_HOOKUP_OBJECT (mainWindow, spinbutton2, "skipSongsSpin");
730 GLADE_HOOKUP_OBJECT (mainWindow, NextTitleEntry, "NextTitleEntry");
731 GLADE_HOOKUP_OBJECT (mainWindow, OnOffLabel, "OnOffLabel");
732 GLADE_HOOKUP_OBJECT (mainWindow, frame4, "frame4");
733 GLADE_HOOKUP_OBJECT (mainWindow, vbox3, "vbox3");
734 GLADE_HOOKUP_OBJECT (mainWindow, hbox3, "hbox3");
735 GLADE_HOOKUP_OBJECT (mainWindow, startButton, "startButton");
736 GLADE_HOOKUP_OBJECT (mainWindow, alignment10, "alignment10");
737 GLADE_HOOKUP_OBJECT (mainWindow, hbox12, "hbox12");
738 GLADE_HOOKUP_OBJECT (mainWindow, startButtonImage, "startButtonImage");
739 GLADE_HOOKUP_OBJECT (mainWindow, startButtonLabel, "startButtonLabel");
740 GLADE_HOOKUP_OBJECT (mainWindow, table3, "table3");
741 GLADE_HOOKUP_OBJECT (mainWindow, curSongLabel, "curSongLabel");
742 GLADE_HOOKUP_OBJECT (mainWindow, nextSongLabel, "nextSongLabel");
743 GLADE_HOOKUP_OBJECT (mainWindow, titleEntry, "titleEntry");
744 GLADE_HOOKUP_OBJECT (mainWindow, nexttitleEntry, "nexttitleEntry");
745 GLADE_HOOKUP_OBJECT (mainWindow, timeleftProgressBar, "timeleftProgressBar");
746 GLADE_HOOKUP_OBJECT (mainWindow, label6, "label6");
747 GLADE_HOOKUP_OBJECT_NO_REF (mainWindow, tooltips, "tooltips");
748
749 gtk_widget_grab_default (startButton);
750 gtk_window_add_accel_group (GTK_WINDOW (mainWindow), accel_group);
751
752 return mainWindow;
753 }
754
755 GtkWidget*
create_URLAddDialog(void)756 create_URLAddDialog (void)
757 {
758 GtkWidget *URLAddDialog;
759 GtkWidget *dialog_vbox1;
760 GtkWidget *vbox8;
761 GtkWidget *urlLabel;
762 GtkWidget *URLAddEntry;
763 GtkWidget *dialog_action_area1;
764 GtkWidget *cancelbutton1;
765 GtkWidget *okbutton1;
766 GtkTooltips *tooltips;
767
768 tooltips = gtk_tooltips_new ();
769
770 URLAddDialog = gtk_dialog_new ();
771 gtk_widget_set_name (URLAddDialog, "URLAddDialog");
772 gtk_window_set_title (GTK_WINDOW (URLAddDialog), gettext("Add an URL"));
773 gtk_window_set_position (GTK_WINDOW (URLAddDialog), GTK_WIN_POS_CENTER);
774 gtk_window_set_modal (GTK_WINDOW (URLAddDialog), TRUE);
775 gtk_window_set_icon_name (GTK_WINDOW (URLAddDialog), "gtk-add");
776 gtk_window_set_type_hint (GTK_WINDOW (URLAddDialog), GDK_WINDOW_TYPE_HINT_DIALOG);
777
778 dialog_vbox1 = GTK_DIALOG (URLAddDialog)->vbox;
779 gtk_widget_set_name (dialog_vbox1, "dialog_vbox1");
780 gtk_widget_show (dialog_vbox1);
781
782 vbox8 = gtk_vbox_new (FALSE, 3);
783 gtk_widget_set_name (vbox8, "vbox8");
784 gtk_widget_show (vbox8);
785 gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox8, FALSE, TRUE, 0);
786 gtk_container_set_border_width (GTK_CONTAINER (vbox8), 6);
787
788 urlLabel = gtk_label_new ("URL:");
789 gtk_widget_set_name (urlLabel, "urlLabel");
790 gtk_widget_show (urlLabel);
791 gtk_box_pack_start (GTK_BOX (vbox8), urlLabel, FALSE, FALSE, 0);
792
793 URLAddEntry = gtk_entry_new ();
794 gtk_widget_set_name (URLAddEntry, "URLAddEntry");
795 gtk_widget_show (URLAddEntry);
796 gtk_box_pack_start (GTK_BOX (vbox8), URLAddEntry, TRUE, FALSE, 0);
797 gtk_widget_set_size_request (URLAddEntry, 280, -1);
798 gtk_tooltips_set_tip (tooltips, URLAddEntry, gettext("Type the URL of the stream."), NULL);
799 gtk_entry_set_text (GTK_ENTRY (URLAddEntry), "http://");
800
801 dialog_action_area1 = GTK_DIALOG (URLAddDialog)->action_area;
802 gtk_widget_set_name (dialog_action_area1, "dialog_action_area1");
803 gtk_widget_show (dialog_action_area1);
804 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
805
806 cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel");
807 gtk_widget_set_name (cancelbutton1, "cancelbutton1");
808 gtk_widget_show (cancelbutton1);
809 gtk_dialog_add_action_widget (GTK_DIALOG (URLAddDialog), cancelbutton1, GTK_RESPONSE_CANCEL);
810
811 okbutton1 = gtk_button_new_from_stock ("gtk-ok");
812 gtk_widget_set_name (okbutton1, "okbutton1");
813 gtk_widget_show (okbutton1);
814 gtk_dialog_add_action_widget (GTK_DIALOG (URLAddDialog), okbutton1, GTK_RESPONSE_OK);
815 GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT);
816
817 /* Store pointers to all widgets, for use by lookup_widget(). */
818 GLADE_HOOKUP_OBJECT_NO_REF (URLAddDialog, URLAddDialog, "URLAddDialog");
819 GLADE_HOOKUP_OBJECT_NO_REF (URLAddDialog, dialog_vbox1, "dialog_vbox1");
820 GLADE_HOOKUP_OBJECT (URLAddDialog, vbox8, "vbox8");
821 GLADE_HOOKUP_OBJECT (URLAddDialog, urlLabel, "urlLabel");
822 GLADE_HOOKUP_OBJECT (URLAddDialog, URLAddEntry, "URLAddEntry");
823 GLADE_HOOKUP_OBJECT_NO_REF (URLAddDialog, dialog_action_area1, "dialog_action_area1");
824 GLADE_HOOKUP_OBJECT (URLAddDialog, cancelbutton1, "cancelbutton1");
825 GLADE_HOOKUP_OBJECT (URLAddDialog, okbutton1, "okbutton1");
826 GLADE_HOOKUP_OBJECT_NO_REF (URLAddDialog, tooltips, "tooltips");
827
828 gtk_widget_grab_default (okbutton1);
829 return URLAddDialog;
830 }
831
832 GtkWidget*
create_FileSaveDialog(void)833 create_FileSaveDialog (void)
834 {
835 GtkWidget *FileSaveDialog;
836 GtkWidget *dialog_vbox2;
837 GtkWidget *dialog_action_area2;
838 GtkWidget *button1;
839 GtkWidget *button2;
840
841 FileSaveDialog = gtk_file_chooser_dialog_new (gettext("Select a logfile"), NULL, GTK_FILE_CHOOSER_ACTION_SAVE, NULL);
842 gtk_widget_set_name (FileSaveDialog, "FileSaveDialog");
843 gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (FileSaveDialog), TRUE);
844 /*
845 * g_object_set (FileSaveDialog,
846 * "confirm", TRUE,
847 * NULL);
848 */
849
850 gtk_window_set_modal (GTK_WINDOW (FileSaveDialog), TRUE);
851 gtk_window_set_type_hint (GTK_WINDOW (FileSaveDialog), GDK_WINDOW_TYPE_HINT_DIALOG);
852
853 dialog_vbox2 = GTK_DIALOG (FileSaveDialog)->vbox;
854 gtk_widget_set_name (dialog_vbox2, "dialog_vbox2");
855 gtk_widget_show (dialog_vbox2);
856
857 dialog_action_area2 = GTK_DIALOG (FileSaveDialog)->action_area;
858 gtk_widget_set_name (dialog_action_area2, "dialog_action_area2");
859 gtk_widget_show (dialog_action_area2);
860 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_END);
861
862 button1 = gtk_button_new_from_stock ("gtk-cancel");
863 gtk_widget_set_name (button1, "button1");
864 gtk_widget_show (button1);
865 gtk_dialog_add_action_widget (GTK_DIALOG (FileSaveDialog), button1, GTK_RESPONSE_CANCEL);
866 GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);
867
868 button2 = gtk_button_new_from_stock ("gtk-open");
869 gtk_widget_set_name (button2, "button2");
870 gtk_widget_show (button2);
871 gtk_dialog_add_action_widget (GTK_DIALOG (FileSaveDialog), button2, GTK_RESPONSE_OK);
872 GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);
873
874 /* Store pointers to all widgets, for use by lookup_widget(). */
875 GLADE_HOOKUP_OBJECT_NO_REF (FileSaveDialog, FileSaveDialog, "FileSaveDialog");
876 GLADE_HOOKUP_OBJECT_NO_REF (FileSaveDialog, dialog_vbox2, "dialog_vbox2");
877 GLADE_HOOKUP_OBJECT_NO_REF (FileSaveDialog, dialog_action_area2, "dialog_action_area2");
878 GLADE_HOOKUP_OBJECT (FileSaveDialog, button1, "button1");
879 GLADE_HOOKUP_OBJECT (FileSaveDialog, button2, "button2");
880
881 gtk_widget_grab_default (button2);
882 return FileSaveDialog;
883 }
884
885 GtkWidget*
create_newConfirmDialog(void)886 create_newConfirmDialog (void)
887 {
888 GtkWidget *newConfirmDialog;
889 GtkWidget *dialog_vbox3;
890 GtkWidget *label18;
891 GtkWidget *dialog_action_area3;
892 GtkWidget *cancelbutton2;
893 GtkWidget *okbutton2;
894
895 newConfirmDialog = gtk_dialog_new ();
896 gtk_widget_set_name (newConfirmDialog, "newConfirmDialog");
897 gtk_window_set_title (GTK_WINDOW (newConfirmDialog), gettext("Confirm"));
898 gtk_window_set_type_hint (GTK_WINDOW (newConfirmDialog), GDK_WINDOW_TYPE_HINT_DIALOG);
899
900 dialog_vbox3 = GTK_DIALOG (newConfirmDialog)->vbox;
901 gtk_widget_set_name (dialog_vbox3, "dialog_vbox3");
902 gtk_widget_show (dialog_vbox3);
903
904 label18 = gtk_label_new (gettext("Warning, using new will destroy all unsaved settings."));
905 gtk_widget_set_name (label18, "label18");
906 gtk_widget_show (label18);
907 gtk_box_pack_start (GTK_BOX (dialog_vbox3), label18, FALSE, FALSE, 0);
908 gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_CENTER);
909
910 dialog_action_area3 = GTK_DIALOG (newConfirmDialog)->action_area;
911 gtk_widget_set_name (dialog_action_area3, "dialog_action_area3");
912 gtk_widget_show (dialog_action_area3);
913 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area3), GTK_BUTTONBOX_END);
914
915 cancelbutton2 = gtk_button_new_from_stock ("gtk-cancel");
916 gtk_widget_set_name (cancelbutton2, "cancelbutton2");
917 gtk_widget_show (cancelbutton2);
918 gtk_dialog_add_action_widget (GTK_DIALOG (newConfirmDialog), cancelbutton2, GTK_RESPONSE_CANCEL);
919 GTK_WIDGET_SET_FLAGS (cancelbutton2, GTK_CAN_DEFAULT);
920
921 okbutton2 = gtk_button_new_from_stock ("gtk-ok");
922 gtk_widget_set_name (okbutton2, "okbutton2");
923 gtk_widget_show (okbutton2);
924 gtk_dialog_add_action_widget (GTK_DIALOG (newConfirmDialog), okbutton2, GTK_RESPONSE_OK);
925 GTK_WIDGET_SET_FLAGS (okbutton2, GTK_CAN_DEFAULT);
926
927 /* Store pointers to all widgets, for use by lookup_widget(). */
928 GLADE_HOOKUP_OBJECT_NO_REF (newConfirmDialog, newConfirmDialog, "newConfirmDialog");
929 GLADE_HOOKUP_OBJECT_NO_REF (newConfirmDialog, dialog_vbox3, "dialog_vbox3");
930 GLADE_HOOKUP_OBJECT (newConfirmDialog, label18, "label18");
931 GLADE_HOOKUP_OBJECT_NO_REF (newConfirmDialog, dialog_action_area3, "dialog_action_area3");
932 GLADE_HOOKUP_OBJECT (newConfirmDialog, cancelbutton2, "cancelbutton2");
933 GLADE_HOOKUP_OBJECT (newConfirmDialog, okbutton2, "okbutton2");
934
935 return newConfirmDialog;
936 }
937
cPigeGUIMessage(GtkWidget * mainWindow,gint type,gchar * message)938 void cPigeGUIMessage(GtkWidget *mainWindow, gint type, gchar *message)
939 {
940 GtkWidget *dialog;
941
942 dialog = gtk_message_dialog_new(
943 GTK_WINDOW(mainWindow),
944 GTK_DIALOG_DESTROY_WITH_PARENT,
945 type,
946 GTK_BUTTONS_CLOSE,
947 message
948 );
949
950 gtk_dialog_run(GTK_DIALOG(dialog));
951 gtk_widget_destroy(GTK_WIDGET(dialog));
952 }
953
InfoBox(GtkWidget * mainWindow,gchar * message)954 void InfoBox(GtkWidget *mainWindow, gchar *message)
955 {
956 cPigeGUIMessage(mainWindow, GTK_MESSAGE_INFO, message);
957 }
958
ErrorBox(GtkWidget * mainWindow,gchar * message)959 void ErrorBox(GtkWidget *mainWindow, gchar *message)
960 {
961 cPigeGUIMessage(mainWindow, GTK_MESSAGE_ERROR, message);
962 }
963
WarningBox(GtkWidget * mainWindow,gchar * message)964 void WarningBox(GtkWidget *mainWindow, gchar *message)
965 {
966 cPigeGUIMessage(mainWindow, GTK_MESSAGE_WARNING, message);
967 }
968