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