]> git.sesse.net Git - vlc/blob - plugins/gtk/gtk_interface.c
* Bug fixes and enhancements in the Gtk+/Gnome interfaces.
[vlc] / plugins / gtk / gtk_interface.c
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
14 #include <gdk/gdkkeysyms.h>
15 #include <gtk/gtk.h>
16
17 #include "gtk_callbacks.h"
18 #include "gtk_interface.h"
19 #include "gtk_support.h"
20
21 GtkWidget*
22 create_intf_window (void)
23 {
24   GtkWidget *intf_window;
25   GtkWidget *vbox2;
26   GtkWidget *handlebox2;
27   GtkWidget *menubar1;
28   guint tmp_key;
29   GtkWidget *menubar_file;
30   GtkWidget *menubar_file_menu;
31   GtkAccelGroup *menubar_file_menu_accels;
32   GtkWidget *menubar_open;
33   GtkWidget *menubar_disc;
34   GtkWidget *menubar_network;
35   GtkWidget *separator4;
36   GtkWidget *menubar_exit;
37   GtkWidget *menubar_view;
38   GtkWidget *menubar_view_menu;
39   GtkAccelGroup *menubar_view_menu_accels;
40   GtkWidget *menubar_title;
41   GtkWidget *menubar_chapter;
42   GtkWidget *separator11;
43   GtkWidget *menubar_playlist;
44   GtkWidget *menubar_modules;
45   GtkWidget *menubar_settings;
46   GtkWidget *menubar_settings_menu;
47   GtkAccelGroup *menubar_settings_menu_accels;
48   GtkWidget *separator7;
49   GtkWidget *menubar_audio;
50   GtkWidget *menubar_subpictures;
51   GtkWidget *separator8;
52   GtkWidget *menubar_preferences;
53   GtkWidget *menubar_help;
54   GtkWidget *menubar_help_menu;
55   GtkAccelGroup *menubar_help_menu_accels;
56   GtkWidget *menubar_about;
57   GtkWidget *handlebox1;
58   GtkWidget *toolbar;
59   GtkWidget *toolbar_open;
60   GtkWidget *toolbar_disc;
61   GtkWidget *toolbar_network;
62   GtkWidget *toolbar_back;
63   GtkWidget *toolbar_stop;
64   GtkWidget *toolbar_play;
65   GtkWidget *toolbar_pause;
66   GtkWidget *toolbar_slow;
67   GtkWidget *toolbar_fast;
68   GtkWidget *toolbar_playlist;
69   GtkWidget *toolbar_prev;
70   GtkWidget *toolbar_next;
71   GtkWidget *hbox7;
72   GtkWidget *label_date;
73   GtkWidget *label_status;
74   GtkWidget *label_bar;
75   GtkWidget *slider;
76   GtkWidget *intf_statusbar;
77   GtkAccelGroup *accel_group;
78   GtkTooltips *tooltips;
79
80   tooltips = gtk_tooltips_new ();
81
82   accel_group = gtk_accel_group_new ();
83
84   intf_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
85   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
86   gtk_window_set_title (GTK_WINDOW (intf_window), _("VideoLAN Client"));
87
88   vbox2 = gtk_vbox_new (FALSE, 0);
89   gtk_widget_ref (vbox2);
90   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox2", vbox2,
91                             (GtkDestroyNotify) gtk_widget_unref);
92   gtk_widget_show (vbox2);
93   gtk_container_add (GTK_CONTAINER (intf_window), vbox2);
94
95   handlebox2 = gtk_handle_box_new ();
96   gtk_widget_ref (handlebox2);
97   gtk_object_set_data_full (GTK_OBJECT (intf_window), "handlebox2", handlebox2,
98                             (GtkDestroyNotify) gtk_widget_unref);
99   gtk_widget_show (handlebox2);
100   gtk_box_pack_start (GTK_BOX (vbox2), handlebox2, FALSE, TRUE, 0);
101
102   menubar1 = gtk_menu_bar_new ();
103   gtk_widget_ref (menubar1);
104   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar1", menubar1,
105                             (GtkDestroyNotify) gtk_widget_unref);
106   gtk_widget_show (menubar1);
107   gtk_container_add (GTK_CONTAINER (handlebox2), menubar1);
108
109   menubar_file = gtk_menu_item_new_with_label ("");
110   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_file)->child),
111                                    _("_File"));
112   gtk_widget_add_accelerator (menubar_file, "activate_item", accel_group,
113                               tmp_key, GDK_MOD1_MASK, 0);
114   gtk_widget_ref (menubar_file);
115   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file", menubar_file,
116                             (GtkDestroyNotify) gtk_widget_unref);
117   gtk_widget_show (menubar_file);
118   gtk_container_add (GTK_CONTAINER (menubar1), menubar_file);
119
120   menubar_file_menu = gtk_menu_new ();
121   gtk_widget_ref (menubar_file_menu);
122   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file_menu", menubar_file_menu,
123                             (GtkDestroyNotify) gtk_widget_unref);
124   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_file), menubar_file_menu);
125   menubar_file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_file_menu));
126
127   menubar_open = gtk_menu_item_new_with_label ("");
128   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_open)->child),
129                                    _("_Open File..."));
130   gtk_widget_add_accelerator (menubar_open, "activate_item", menubar_file_menu_accels,
131                               tmp_key, 0, 0);
132   gtk_widget_ref (menubar_open);
133   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open", menubar_open,
134                             (GtkDestroyNotify) gtk_widget_unref);
135   gtk_widget_show (menubar_open);
136   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_open);
137   gtk_tooltips_set_tip (tooltips, menubar_open, _("Open a File"), NULL);
138   gtk_widget_add_accelerator (menubar_open, "activate", accel_group,
139                               GDK_F3, 0,
140                               GTK_ACCEL_VISIBLE);
141
142   menubar_disc = gtk_menu_item_new_with_label ("");
143   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_disc)->child),
144                                    _("Open _Disc..."));
145   gtk_widget_add_accelerator (menubar_disc, "activate_item", menubar_file_menu_accels,
146                               tmp_key, 0, 0);
147   gtk_widget_ref (menubar_disc);
148   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc", menubar_disc,
149                             (GtkDestroyNotify) gtk_widget_unref);
150   gtk_widget_show (menubar_disc);
151   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_disc);
152   gtk_tooltips_set_tip (tooltips, menubar_disc, _("Open a DVD or VCD"), NULL);
153   gtk_widget_add_accelerator (menubar_disc, "activate", accel_group,
154                               GDK_F4, 0,
155                               GTK_ACCEL_VISIBLE);
156
157   menubar_network = gtk_menu_item_new_with_label ("");
158   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_network)->child),
159                                    _("_Network Stream..."));
160   gtk_widget_add_accelerator (menubar_network, "activate_item", menubar_file_menu_accels,
161                               tmp_key, 0, 0);
162   gtk_widget_ref (menubar_network);
163   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network", menubar_network,
164                             (GtkDestroyNotify) gtk_widget_unref);
165   gtk_widget_show (menubar_network);
166   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_network);
167   gtk_tooltips_set_tip (tooltips, menubar_network, _("Select a Network Stream"), NULL);
168   gtk_widget_add_accelerator (menubar_network, "activate", accel_group,
169                               GDK_F5, 0,
170                               GTK_ACCEL_VISIBLE);
171
172   separator4 = gtk_menu_item_new ();
173   gtk_widget_ref (separator4);
174   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator4", separator4,
175                             (GtkDestroyNotify) gtk_widget_unref);
176   gtk_widget_show (separator4);
177   gtk_container_add (GTK_CONTAINER (menubar_file_menu), separator4);
178   gtk_widget_set_sensitive (separator4, FALSE);
179
180   menubar_exit = gtk_menu_item_new_with_label ("");
181   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_exit)->child),
182                                    _("E_xit"));
183   gtk_widget_add_accelerator (menubar_exit, "activate_item", menubar_file_menu_accels,
184                               tmp_key, 0, 0);
185   gtk_widget_ref (menubar_exit);
186   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit", menubar_exit,
187                             (GtkDestroyNotify) gtk_widget_unref);
188   gtk_widget_show (menubar_exit);
189   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_exit);
190   gtk_tooltips_set_tip (tooltips, menubar_exit, _("Exit the program"), NULL);
191   gtk_widget_add_accelerator (menubar_exit, "activate", accel_group,
192                               GDK_Q, GDK_CONTROL_MASK,
193                               GTK_ACCEL_VISIBLE);
194
195   menubar_view = gtk_menu_item_new_with_label ("");
196   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_view)->child),
197                                    _("_View"));
198   gtk_widget_add_accelerator (menubar_view, "activate_item", accel_group,
199                               tmp_key, GDK_MOD1_MASK, 0);
200   gtk_widget_ref (menubar_view);
201   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view", menubar_view,
202                             (GtkDestroyNotify) gtk_widget_unref);
203   gtk_widget_show (menubar_view);
204   gtk_container_add (GTK_CONTAINER (menubar1), menubar_view);
205
206   menubar_view_menu = gtk_menu_new ();
207   gtk_widget_ref (menubar_view_menu);
208   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view_menu", menubar_view_menu,
209                             (GtkDestroyNotify) gtk_widget_unref);
210   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_view), menubar_view_menu);
211   menubar_view_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_view_menu));
212
213   menubar_title = gtk_menu_item_new_with_label ("");
214   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_title)->child),
215                                    _("_Title"));
216   gtk_widget_add_accelerator (menubar_title, "activate_item", menubar_view_menu_accels,
217                               tmp_key, 0, 0);
218   gtk_widget_ref (menubar_title);
219   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title", menubar_title,
220                             (GtkDestroyNotify) gtk_widget_unref);
221   gtk_widget_show (menubar_title);
222   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_title);
223   gtk_widget_set_sensitive (menubar_title, FALSE);
224   gtk_tooltips_set_tip (tooltips, menubar_title, _("Navigate through the stream"), NULL);
225
226   menubar_chapter = gtk_menu_item_new_with_label ("");
227   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_chapter)->child),
228                                    _("_Chapter"));
229   gtk_widget_add_accelerator (menubar_chapter, "activate_item", menubar_view_menu_accels,
230                               tmp_key, 0, 0);
231   gtk_widget_ref (menubar_chapter);
232   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter", menubar_chapter,
233                             (GtkDestroyNotify) gtk_widget_unref);
234   gtk_widget_show (menubar_chapter);
235   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_chapter);
236   gtk_widget_set_sensitive (menubar_chapter, FALSE);
237
238   separator11 = gtk_menu_item_new ();
239   gtk_widget_ref (separator11);
240   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator11", separator11,
241                             (GtkDestroyNotify) gtk_widget_unref);
242   gtk_widget_show (separator11);
243   gtk_container_add (GTK_CONTAINER (menubar_view_menu), separator11);
244   gtk_widget_set_sensitive (separator11, FALSE);
245
246   menubar_playlist = gtk_menu_item_new_with_label ("");
247   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_playlist)->child),
248                                    _("_Playlist..."));
249   gtk_widget_add_accelerator (menubar_playlist, "activate_item", menubar_view_menu_accels,
250                               tmp_key, 0, 0);
251   gtk_widget_ref (menubar_playlist);
252   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist", menubar_playlist,
253                             (GtkDestroyNotify) gtk_widget_unref);
254   gtk_widget_show (menubar_playlist);
255   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_playlist);
256   gtk_tooltips_set_tip (tooltips, menubar_playlist, _("Open the playlist window"), NULL);
257
258   menubar_modules = gtk_menu_item_new_with_label ("");
259   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_modules)->child),
260                                    _("_Modules..."));
261   gtk_widget_add_accelerator (menubar_modules, "activate_item", menubar_view_menu_accels,
262                               tmp_key, 0, 0);
263   gtk_widget_ref (menubar_modules);
264   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules", menubar_modules,
265                             (GtkDestroyNotify) gtk_widget_unref);
266   gtk_widget_show (menubar_modules);
267   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_modules);
268   gtk_widget_set_sensitive (menubar_modules, FALSE);
269   gtk_tooltips_set_tip (tooltips, menubar_modules, _("Open the plugin manager"), NULL);
270
271   menubar_settings = gtk_menu_item_new_with_label ("");
272   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_settings)->child),
273                                    _("_Settings"));
274   gtk_widget_add_accelerator (menubar_settings, "activate_item", accel_group,
275                               tmp_key, GDK_MOD1_MASK, 0);
276   gtk_widget_ref (menubar_settings);
277   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings", menubar_settings,
278                             (GtkDestroyNotify) gtk_widget_unref);
279   gtk_widget_show (menubar_settings);
280   gtk_container_add (GTK_CONTAINER (menubar1), menubar_settings);
281
282   menubar_settings_menu = gtk_menu_new ();
283   gtk_widget_ref (menubar_settings_menu);
284   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings_menu", menubar_settings_menu,
285                             (GtkDestroyNotify) gtk_widget_unref);
286   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_settings), menubar_settings_menu);
287   menubar_settings_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_settings_menu));
288
289   separator7 = gtk_menu_item_new ();
290   gtk_widget_ref (separator7);
291   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7", separator7,
292                             (GtkDestroyNotify) gtk_widget_unref);
293   gtk_widget_show (separator7);
294   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), separator7);
295   gtk_widget_set_sensitive (separator7, FALSE);
296
297   menubar_audio = gtk_menu_item_new_with_label ("");
298   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_audio)->child),
299                                    _("A_udio"));
300   gtk_widget_add_accelerator (menubar_audio, "activate_item", menubar_settings_menu_accels,
301                               tmp_key, 0, 0);
302   gtk_widget_ref (menubar_audio);
303   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio", menubar_audio,
304                             (GtkDestroyNotify) gtk_widget_unref);
305   gtk_widget_show (menubar_audio);
306   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_audio);
307   gtk_widget_set_sensitive (menubar_audio, FALSE);
308   gtk_tooltips_set_tip (tooltips, menubar_audio, _("Select audio language"), NULL);
309
310   menubar_subpictures = gtk_menu_item_new_with_label ("");
311   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_subpictures)->child),
312                                    _("Sub _Pictures"));
313   gtk_widget_add_accelerator (menubar_subpictures, "activate_item", menubar_settings_menu_accels,
314                               tmp_key, 0, 0);
315   gtk_widget_ref (menubar_subpictures);
316   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures", menubar_subpictures,
317                             (GtkDestroyNotify) gtk_widget_unref);
318   gtk_widget_show (menubar_subpictures);
319   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_subpictures);
320   gtk_widget_set_sensitive (menubar_subpictures, FALSE);
321   gtk_tooltips_set_tip (tooltips, menubar_subpictures, _("Select sub-title"), NULL);
322
323   separator8 = gtk_menu_item_new ();
324   gtk_widget_ref (separator8);
325   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator8", separator8,
326                             (GtkDestroyNotify) gtk_widget_unref);
327   gtk_widget_show (separator8);
328   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), separator8);
329   gtk_widget_set_sensitive (separator8, FALSE);
330
331   menubar_preferences = gtk_menu_item_new_with_label ("");
332   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_preferences)->child),
333                                    _("_Preferences..."));
334   gtk_widget_add_accelerator (menubar_preferences, "activate_item", menubar_settings_menu_accels,
335                               tmp_key, 0, 0);
336   gtk_widget_ref (menubar_preferences);
337   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences", menubar_preferences,
338                             (GtkDestroyNotify) gtk_widget_unref);
339   gtk_widget_show (menubar_preferences);
340   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_preferences);
341   gtk_widget_set_sensitive (menubar_preferences, FALSE);
342   gtk_tooltips_set_tip (tooltips, menubar_preferences, _("Configure the application"), NULL);
343
344   menubar_help = gtk_menu_item_new_with_label ("");
345   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_help)->child),
346                                    _("_Help"));
347   gtk_widget_add_accelerator (menubar_help, "activate_item", accel_group,
348                               tmp_key, GDK_MOD1_MASK, 0);
349   gtk_widget_ref (menubar_help);
350   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help", menubar_help,
351                             (GtkDestroyNotify) gtk_widget_unref);
352   gtk_widget_show (menubar_help);
353   gtk_container_add (GTK_CONTAINER (menubar1), menubar_help);
354
355   menubar_help_menu = gtk_menu_new ();
356   gtk_widget_ref (menubar_help_menu);
357   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help_menu", menubar_help_menu,
358                             (GtkDestroyNotify) gtk_widget_unref);
359   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_help), menubar_help_menu);
360   menubar_help_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_help_menu));
361
362   menubar_about = gtk_menu_item_new_with_label ("");
363   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_about)->child),
364                                    _("_About..."));
365   gtk_widget_add_accelerator (menubar_about, "activate_item", menubar_help_menu_accels,
366                               tmp_key, 0, 0);
367   gtk_widget_ref (menubar_about);
368   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about", menubar_about,
369                             (GtkDestroyNotify) gtk_widget_unref);
370   gtk_widget_show (menubar_about);
371   gtk_container_add (GTK_CONTAINER (menubar_help_menu), menubar_about);
372   gtk_tooltips_set_tip (tooltips, menubar_about, _("About this application"), NULL);
373
374   handlebox1 = gtk_handle_box_new ();
375   gtk_widget_ref (handlebox1);
376   gtk_object_set_data_full (GTK_OBJECT (intf_window), "handlebox1", handlebox1,
377                             (GtkDestroyNotify) gtk_widget_unref);
378   gtk_widget_show (handlebox1);
379   gtk_box_pack_start (GTK_BOX (vbox2), handlebox1, FALSE, TRUE, 0);
380
381   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
382   gtk_widget_ref (toolbar);
383   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
384                             (GtkDestroyNotify) gtk_widget_unref);
385   gtk_widget_show (toolbar);
386   gtk_container_add (GTK_CONTAINER (handlebox1), toolbar);
387   gtk_container_set_border_width (GTK_CONTAINER (toolbar), 1);
388   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
389   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
390   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
391
392   toolbar_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
393                                 GTK_TOOLBAR_CHILD_BUTTON,
394                                 NULL,
395                                 _("Open"),
396                                 _("Open a File"), NULL,
397                                 NULL, NULL, NULL);
398   gtk_widget_ref (toolbar_open);
399   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_open", toolbar_open,
400                             (GtkDestroyNotify) gtk_widget_unref);
401   gtk_widget_show (toolbar_open);
402
403   toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
404                                 GTK_TOOLBAR_CHILD_BUTTON,
405                                 NULL,
406                                 _("Disc"),
407                                 _("Open a DVD or VCD"), NULL,
408                                 NULL, NULL, NULL);
409   gtk_widget_ref (toolbar_disc);
410   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc,
411                             (GtkDestroyNotify) gtk_widget_unref);
412   gtk_widget_show (toolbar_disc);
413
414   toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
415                                 GTK_TOOLBAR_CHILD_BUTTON,
416                                 NULL,
417                                 _("Net"),
418                                 _("Select a Network Stream"), NULL,
419                                 NULL, NULL, NULL);
420   gtk_widget_ref (toolbar_network);
421   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network,
422                             (GtkDestroyNotify) gtk_widget_unref);
423   gtk_widget_show (toolbar_network);
424
425   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
426
427   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
428                                 GTK_TOOLBAR_CHILD_BUTTON,
429                                 NULL,
430                                 _("Back"),
431                                 _("Go Backwards"), NULL,
432                                 NULL, NULL, NULL);
433   gtk_widget_ref (toolbar_back);
434   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
435                             (GtkDestroyNotify) gtk_widget_unref);
436   gtk_widget_show (toolbar_back);
437   gtk_widget_set_sensitive (toolbar_back, FALSE);
438
439   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
440                                 GTK_TOOLBAR_CHILD_BUTTON,
441                                 NULL,
442                                 _("Stop"),
443                                 _("Stop Stream"), NULL,
444                                 NULL, NULL, NULL);
445   gtk_widget_ref (toolbar_stop);
446   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
447                             (GtkDestroyNotify) gtk_widget_unref);
448   gtk_widget_show (toolbar_stop);
449   gtk_widget_set_sensitive (toolbar_stop, FALSE);
450
451   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
452                                 GTK_TOOLBAR_CHILD_BUTTON,
453                                 NULL,
454                                 _("Play"),
455                                 _("Play Stream"), NULL,
456                                 NULL, NULL, NULL);
457   gtk_widget_ref (toolbar_play);
458   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
459                             (GtkDestroyNotify) gtk_widget_unref);
460   gtk_widget_show (toolbar_play);
461
462   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
463                                 GTK_TOOLBAR_CHILD_BUTTON,
464                                 NULL,
465                                 _("Pause"),
466                                 _("Pause Stream"), NULL,
467                                 NULL, NULL, NULL);
468   gtk_widget_ref (toolbar_pause);
469   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
470                             (GtkDestroyNotify) gtk_widget_unref);
471   gtk_widget_show (toolbar_pause);
472
473   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
474                                 GTK_TOOLBAR_CHILD_BUTTON,
475                                 NULL,
476                                 _("Slow"),
477                                 _("Play Slower"), NULL,
478                                 NULL, NULL, NULL);
479   gtk_widget_ref (toolbar_slow);
480   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
481                             (GtkDestroyNotify) gtk_widget_unref);
482   gtk_widget_show (toolbar_slow);
483
484   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
485                                 GTK_TOOLBAR_CHILD_BUTTON,
486                                 NULL,
487                                 _("Fast"),
488                                 _("Play Faster"), NULL,
489                                 NULL, NULL, NULL);
490   gtk_widget_ref (toolbar_fast);
491   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
492                             (GtkDestroyNotify) gtk_widget_unref);
493   gtk_widget_show (toolbar_fast);
494
495   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
496
497   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
498                                 GTK_TOOLBAR_CHILD_BUTTON,
499                                 NULL,
500                                 _("Playlist"),
501                                 _("Open Playlist"), NULL,
502                                 NULL, NULL, NULL);
503   gtk_widget_ref (toolbar_playlist);
504   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
505                             (GtkDestroyNotify) gtk_widget_unref);
506   gtk_widget_show (toolbar_playlist);
507
508   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
509                                 GTK_TOOLBAR_CHILD_BUTTON,
510                                 NULL,
511                                 _("Prev"),
512                                 _("Previous File"), NULL,
513                                 NULL, NULL, NULL);
514   gtk_widget_ref (toolbar_prev);
515   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
516                             (GtkDestroyNotify) gtk_widget_unref);
517   gtk_widget_show (toolbar_prev);
518
519   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
520                                 GTK_TOOLBAR_CHILD_BUTTON,
521                                 NULL,
522                                 _("Next"),
523                                 _("Next File"), NULL,
524                                 NULL, NULL, NULL);
525   gtk_widget_ref (toolbar_next);
526   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
527                             (GtkDestroyNotify) gtk_widget_unref);
528   gtk_widget_show (toolbar_next);
529
530   hbox7 = gtk_hbox_new (TRUE, 0);
531   gtk_widget_ref (hbox7);
532   gtk_object_set_data_full (GTK_OBJECT (intf_window), "hbox7", hbox7,
533                             (GtkDestroyNotify) gtk_widget_unref);
534   gtk_widget_show (hbox7);
535   gtk_box_pack_start (GTK_BOX (vbox2), hbox7, TRUE, TRUE, 0);
536
537   label_date = gtk_label_new (_("-:--:--"));
538   gtk_widget_ref (label_date);
539   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_date", label_date,
540                             (GtkDestroyNotify) gtk_widget_unref);
541   gtk_widget_show (label_date);
542   gtk_box_pack_start (GTK_BOX (hbox7), label_date, FALSE, FALSE, 0);
543
544   label_status = gtk_label_new (_("Status: foo"));
545   gtk_widget_ref (label_status);
546   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
547                             (GtkDestroyNotify) gtk_widget_unref);
548   gtk_widget_show (label_status);
549   gtk_box_pack_start (GTK_BOX (hbox7), label_status, FALSE, FALSE, 0);
550
551   label_bar = gtk_label_new (_("Bar: baz"));
552   gtk_widget_ref (label_bar);
553   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_bar", label_bar,
554                             (GtkDestroyNotify) gtk_widget_unref);
555   gtk_widget_show (label_bar);
556   gtk_box_pack_start (GTK_BOX (hbox7), label_bar, FALSE, FALSE, 0);
557
558   slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
559   gtk_widget_ref (slider);
560   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
561                             (GtkDestroyNotify) gtk_widget_unref);
562   gtk_widget_show (slider);
563   gtk_box_pack_start (GTK_BOX (vbox2), slider, TRUE, TRUE, 0);
564   gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
565
566   intf_statusbar = gtk_statusbar_new ();
567   gtk_widget_ref (intf_statusbar);
568   gtk_object_set_data_full (GTK_OBJECT (intf_window), "intf_statusbar", intf_statusbar,
569                             (GtkDestroyNotify) gtk_widget_unref);
570   gtk_widget_show (intf_statusbar);
571   gtk_box_pack_start (GTK_BOX (vbox2), intf_statusbar, FALSE, FALSE, 0);
572
573   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
574                       GTK_SIGNAL_FUNC (on_intf_window_drag_data_received),
575                       NULL);
576   gtk_signal_connect (GTK_OBJECT (intf_window), "delete_event",
577                       GTK_SIGNAL_FUNC (on_intf_window_destroy),
578                       NULL);
579   gtk_signal_connect (GTK_OBJECT (menubar_open), "activate",
580                       GTK_SIGNAL_FUNC (on_menubar_open_activate),
581                       NULL);
582   gtk_signal_connect (GTK_OBJECT (menubar_disc), "activate",
583                       GTK_SIGNAL_FUNC (on_menubar_disc_activate),
584                       NULL);
585   gtk_signal_connect (GTK_OBJECT (menubar_network), "activate",
586                       GTK_SIGNAL_FUNC (on_menubar_network_activate),
587                       NULL);
588   gtk_signal_connect (GTK_OBJECT (menubar_exit), "activate",
589                       GTK_SIGNAL_FUNC (on_menubar_exit_activate),
590                       NULL);
591   gtk_signal_connect (GTK_OBJECT (menubar_playlist), "activate",
592                       GTK_SIGNAL_FUNC (on_menubar_playlist_activate),
593                       NULL);
594   gtk_signal_connect (GTK_OBJECT (menubar_modules), "activate",
595                       GTK_SIGNAL_FUNC (on_menubar_modules_activate),
596                       NULL);
597   gtk_signal_connect (GTK_OBJECT (menubar_preferences), "activate",
598                       GTK_SIGNAL_FUNC (on_menubar_preferences_activate),
599                       NULL);
600   gtk_signal_connect (GTK_OBJECT (menubar_about), "activate",
601                       GTK_SIGNAL_FUNC (on_menubar_about_activate),
602                       NULL);
603   gtk_signal_connect (GTK_OBJECT (toolbar_open), "clicked",
604                       GTK_SIGNAL_FUNC (on_toolbar_open_clicked),
605                       NULL);
606   gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
607                       GTK_SIGNAL_FUNC (on_toolbar_disc_clicked),
608                       NULL);
609   gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked",
610                       GTK_SIGNAL_FUNC (on_toolbar_network_clicked),
611                       NULL);
612   gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
613                       GTK_SIGNAL_FUNC (on_toolbar_back_clicked),
614                       NULL);
615   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
616                       GTK_SIGNAL_FUNC (on_toolbar_stop_clicked),
617                       NULL);
618   gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
619                       GTK_SIGNAL_FUNC (on_toolbar_play_clicked),
620                       NULL);
621   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
622                       GTK_SIGNAL_FUNC (on_toolbar_pause_clicked),
623                       NULL);
624   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
625                       GTK_SIGNAL_FUNC (on_toolbar_slow_clicked),
626                       NULL);
627   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
628                       GTK_SIGNAL_FUNC (on_toolbar_fast_clicked),
629                       NULL);
630   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
631                       GTK_SIGNAL_FUNC (on_toolbar_playlist_clicked),
632                       NULL);
633   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
634                       GTK_SIGNAL_FUNC (on_toolbar_prev_clicked),
635                       NULL);
636   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
637                       GTK_SIGNAL_FUNC (on_toolbar_next_clicked),
638                       NULL);
639   gtk_signal_connect (GTK_OBJECT (slider), "button_release_event",
640                       GTK_SIGNAL_FUNC (on_slider_button_release_event),
641                       NULL);
642   gtk_signal_connect (GTK_OBJECT (slider), "button_press_event",
643                       GTK_SIGNAL_FUNC (on_slider_button_press_event),
644                       NULL);
645
646   gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips);
647
648   gtk_window_add_accel_group (GTK_WINDOW (intf_window), accel_group);
649
650   return intf_window;
651 }
652
653 GtkWidget*
654 create_intf_popup (void)
655 {
656   GtkWidget *intf_popup;
657   GtkAccelGroup *intf_popup_accels;
658   guint tmp_key;
659   GtkWidget *popup_play;
660   GtkWidget *popup_pause;
661   GtkWidget *popup_slow;
662   GtkWidget *popup_fast;
663   GtkWidget *separator6;
664   GtkWidget *main_window_toggle;
665   GtkWidget *separator5;
666   GtkWidget *popup_navigation;
667   GtkWidget *popup_audio;
668   GtkWidget *popup_subpictures;
669   GtkWidget *popup_file;
670   GtkWidget *popup_file_menu;
671   GtkAccelGroup *popup_file_menu_accels;
672   GtkWidget *popup_open;
673   GtkWidget *popup_disc;
674   GtkWidget *popup_network;
675   GtkWidget *separator12;
676   GtkWidget *popup_about;
677   GtkWidget *separator9;
678   GtkWidget *popup_exit;
679   GtkTooltips *tooltips;
680
681   tooltips = gtk_tooltips_new ();
682
683   intf_popup = gtk_menu_new ();
684   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
685   intf_popup_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (intf_popup));
686
687   popup_play = gtk_menu_item_new_with_label ("");
688   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_play)->child),
689                                    _("_Play"));
690   gtk_widget_add_accelerator (popup_play, "activate_item", intf_popup_accels,
691                               tmp_key, 0, 0);
692   gtk_widget_ref (popup_play);
693   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play", popup_play,
694                             (GtkDestroyNotify) gtk_widget_unref);
695   gtk_widget_show (popup_play);
696   gtk_container_add (GTK_CONTAINER (intf_popup), popup_play);
697
698   popup_pause = gtk_menu_item_new_with_label (_("Pause"));
699   gtk_widget_ref (popup_pause);
700   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause", popup_pause,
701                             (GtkDestroyNotify) gtk_widget_unref);
702   gtk_widget_show (popup_pause);
703   gtk_container_add (GTK_CONTAINER (intf_popup), popup_pause);
704
705   popup_slow = gtk_menu_item_new_with_label (_("Slow"));
706   gtk_widget_ref (popup_slow);
707   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow", popup_slow,
708                             (GtkDestroyNotify) gtk_widget_unref);
709   gtk_widget_show (popup_slow);
710   gtk_container_add (GTK_CONTAINER (intf_popup), popup_slow);
711
712   popup_fast = gtk_menu_item_new_with_label (_("Fast"));
713   gtk_widget_ref (popup_fast);
714   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast", popup_fast,
715                             (GtkDestroyNotify) gtk_widget_unref);
716   gtk_widget_show (popup_fast);
717   gtk_container_add (GTK_CONTAINER (intf_popup), popup_fast);
718
719   separator6 = gtk_menu_item_new ();
720   gtk_widget_ref (separator6);
721   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator6", separator6,
722                             (GtkDestroyNotify) gtk_widget_unref);
723   gtk_widget_show (separator6);
724   gtk_container_add (GTK_CONTAINER (intf_popup), separator6);
725   gtk_widget_set_sensitive (separator6, FALSE);
726
727   main_window_toggle = gtk_menu_item_new_with_label ("");
728   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (main_window_toggle)->child),
729                                    _("Toggle _Interface"));
730   gtk_widget_add_accelerator (main_window_toggle, "activate_item", intf_popup_accels,
731                               tmp_key, 0, 0);
732   gtk_widget_ref (main_window_toggle);
733   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "main_window_toggle", main_window_toggle,
734                             (GtkDestroyNotify) gtk_widget_unref);
735   gtk_widget_show (main_window_toggle);
736   gtk_container_add (GTK_CONTAINER (intf_popup), main_window_toggle);
737
738   separator5 = gtk_menu_item_new ();
739   gtk_widget_ref (separator5);
740   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator5", separator5,
741                             (GtkDestroyNotify) gtk_widget_unref);
742   gtk_widget_show (separator5);
743   gtk_container_add (GTK_CONTAINER (intf_popup), separator5);
744   gtk_widget_set_sensitive (separator5, FALSE);
745
746   popup_navigation = gtk_menu_item_new_with_label ("");
747   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_navigation)->child),
748                                    _("_Navigation"));
749   gtk_widget_add_accelerator (popup_navigation, "activate_item", intf_popup_accels,
750                               tmp_key, 0, 0);
751   gtk_widget_ref (popup_navigation);
752   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation", popup_navigation,
753                             (GtkDestroyNotify) gtk_widget_unref);
754   gtk_widget_show (popup_navigation);
755   gtk_container_add (GTK_CONTAINER (intf_popup), popup_navigation);
756   gtk_widget_set_sensitive (popup_navigation, FALSE);
757
758   popup_audio = gtk_menu_item_new_with_label ("");
759   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_audio)->child),
760                                    _("_Audio"));
761   gtk_widget_add_accelerator (popup_audio, "activate_item", intf_popup_accels,
762                               tmp_key, 0, 0);
763   gtk_widget_ref (popup_audio);
764   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio", popup_audio,
765                             (GtkDestroyNotify) gtk_widget_unref);
766   gtk_widget_show (popup_audio);
767   gtk_container_add (GTK_CONTAINER (intf_popup), popup_audio);
768   gtk_widget_set_sensitive (popup_audio, FALSE);
769
770   popup_subpictures = gtk_menu_item_new_with_label ("");
771   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_subpictures)->child),
772                                    _("_Subpictures"));
773   gtk_widget_add_accelerator (popup_subpictures, "activate_item", intf_popup_accels,
774                               tmp_key, 0, 0);
775   gtk_widget_ref (popup_subpictures);
776   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures", popup_subpictures,
777                             (GtkDestroyNotify) gtk_widget_unref);
778   gtk_widget_show (popup_subpictures);
779   gtk_container_add (GTK_CONTAINER (intf_popup), popup_subpictures);
780   gtk_widget_set_sensitive (popup_subpictures, FALSE);
781
782   popup_file = gtk_menu_item_new_with_label ("");
783   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_file)->child),
784                                    _("_File"));
785   gtk_widget_add_accelerator (popup_file, "activate_item", intf_popup_accels,
786                               tmp_key, 0, 0);
787   gtk_widget_ref (popup_file);
788   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file", popup_file,
789                             (GtkDestroyNotify) gtk_widget_unref);
790   gtk_widget_show (popup_file);
791   gtk_container_add (GTK_CONTAINER (intf_popup), popup_file);
792
793   popup_file_menu = gtk_menu_new ();
794   gtk_widget_ref (popup_file_menu);
795   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file_menu", popup_file_menu,
796                             (GtkDestroyNotify) gtk_widget_unref);
797   gtk_menu_item_set_submenu (GTK_MENU_ITEM (popup_file), popup_file_menu);
798   popup_file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (popup_file_menu));
799
800   popup_open = gtk_menu_item_new_with_label ("");
801   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_open)->child),
802                                    _("_Open File..."));
803   gtk_widget_add_accelerator (popup_open, "activate_item", popup_file_menu_accels,
804                               tmp_key, 0, 0);
805   gtk_widget_ref (popup_open);
806   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open", popup_open,
807                             (GtkDestroyNotify) gtk_widget_unref);
808   gtk_widget_show (popup_open);
809   gtk_container_add (GTK_CONTAINER (popup_file_menu), popup_open);
810   gtk_tooltips_set_tip (tooltips, popup_open, _("Open a File"), NULL);
811
812   popup_disc = gtk_menu_item_new_with_label ("");
813   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_disc)->child),
814                                    _("Open _Disc..."));
815   gtk_widget_add_accelerator (popup_disc, "activate_item", popup_file_menu_accels,
816                               tmp_key, 0, 0);
817   gtk_widget_ref (popup_disc);
818   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc", popup_disc,
819                             (GtkDestroyNotify) gtk_widget_unref);
820   gtk_widget_show (popup_disc);
821   gtk_container_add (GTK_CONTAINER (popup_file_menu), popup_disc);
822   gtk_tooltips_set_tip (tooltips, popup_disc, _("Open a DVD or VCD"), NULL);
823
824   popup_network = gtk_menu_item_new_with_label ("");
825   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_network)->child),
826                                    _("_Network Stream..."));
827   gtk_widget_add_accelerator (popup_network, "activate_item", popup_file_menu_accels,
828                               tmp_key, 0, 0);
829   gtk_widget_ref (popup_network);
830   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network", popup_network,
831                             (GtkDestroyNotify) gtk_widget_unref);
832   gtk_widget_show (popup_network);
833   gtk_container_add (GTK_CONTAINER (popup_file_menu), popup_network);
834   gtk_tooltips_set_tip (tooltips, popup_network, _("Select a Network Stream"), NULL);
835
836   separator12 = gtk_menu_item_new ();
837   gtk_widget_ref (separator12);
838   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator12", separator12,
839                             (GtkDestroyNotify) gtk_widget_unref);
840   gtk_widget_show (separator12);
841   gtk_container_add (GTK_CONTAINER (popup_file_menu), separator12);
842   gtk_widget_set_sensitive (separator12, FALSE);
843
844   popup_about = gtk_menu_item_new_with_label ("");
845   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_about)->child),
846                                    _("_About..."));
847   gtk_widget_add_accelerator (popup_about, "activate_item", popup_file_menu_accels,
848                               tmp_key, 0, 0);
849   gtk_widget_ref (popup_about);
850   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about", popup_about,
851                             (GtkDestroyNotify) gtk_widget_unref);
852   gtk_widget_show (popup_about);
853   gtk_container_add (GTK_CONTAINER (popup_file_menu), popup_about);
854
855   separator9 = gtk_menu_item_new ();
856   gtk_widget_ref (separator9);
857   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator9", separator9,
858                             (GtkDestroyNotify) gtk_widget_unref);
859   gtk_widget_show (separator9);
860   gtk_container_add (GTK_CONTAINER (intf_popup), separator9);
861   gtk_widget_set_sensitive (separator9, FALSE);
862
863   popup_exit = gtk_menu_item_new_with_label ("");
864   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_exit)->child),
865                                    _("E_xit"));
866   gtk_widget_add_accelerator (popup_exit, "activate_item", intf_popup_accels,
867                               tmp_key, 0, 0);
868   gtk_widget_ref (popup_exit);
869   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit", popup_exit,
870                             (GtkDestroyNotify) gtk_widget_unref);
871   gtk_widget_show (popup_exit);
872   gtk_container_add (GTK_CONTAINER (intf_popup), popup_exit);
873
874   gtk_signal_connect (GTK_OBJECT (popup_play), "activate",
875                       GTK_SIGNAL_FUNC (on_popup_play_activate),
876                       NULL);
877   gtk_signal_connect (GTK_OBJECT (popup_pause), "activate",
878                       GTK_SIGNAL_FUNC (on_popup_pause_activate),
879                       NULL);
880   gtk_signal_connect (GTK_OBJECT (popup_slow), "activate",
881                       GTK_SIGNAL_FUNC (on_popup_slow_activate),
882                       NULL);
883   gtk_signal_connect (GTK_OBJECT (popup_fast), "activate",
884                       GTK_SIGNAL_FUNC (on_popup_fast_activate),
885                       NULL);
886   gtk_signal_connect (GTK_OBJECT (main_window_toggle), "activate",
887                       GTK_SIGNAL_FUNC (on_main_window_toggle),
888                       NULL);
889   gtk_signal_connect (GTK_OBJECT (popup_open), "activate",
890                       GTK_SIGNAL_FUNC (on_popup_open_activate),
891                       NULL);
892   gtk_signal_connect (GTK_OBJECT (popup_disc), "activate",
893                       GTK_SIGNAL_FUNC (on_popup_disc_activate),
894                       NULL);
895   gtk_signal_connect (GTK_OBJECT (popup_network), "activate",
896                       GTK_SIGNAL_FUNC (on_popup_network_activate),
897                       NULL);
898   gtk_signal_connect (GTK_OBJECT (popup_about), "activate",
899                       GTK_SIGNAL_FUNC (on_popup_about_activate),
900                       NULL);
901   gtk_signal_connect (GTK_OBJECT (popup_exit), "activate",
902                       GTK_SIGNAL_FUNC (on_popup_exit_activate),
903                       NULL);
904
905   gtk_object_set_data (GTK_OBJECT (intf_popup), "tooltips", tooltips);
906
907   return intf_popup;
908 }
909
910 GtkWidget*
911 create_intf_about (void)
912 {
913   GtkWidget *intf_about;
914   GtkWidget *dialog_vbox1;
915   GtkWidget *vbox3;
916   GtkWidget *label14;
917   GtkWidget *label18;
918   GtkWidget *frame1;
919   GtkWidget *label16;
920   GtkWidget *label17;
921   GtkWidget *dialog_action_area;
922   GtkWidget *about_ok;
923
924   intf_about = gtk_dialog_new ();
925   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
926   gtk_container_set_border_width (GTK_CONTAINER (intf_about), 5);
927   gtk_window_set_title (GTK_WINDOW (intf_about), _("About"));
928   gtk_window_set_position (GTK_WINDOW (intf_about), GTK_WIN_POS_CENTER);
929   gtk_window_set_policy (GTK_WINDOW (intf_about), FALSE, FALSE, FALSE);
930
931   dialog_vbox1 = GTK_DIALOG (intf_about)->vbox;
932   gtk_object_set_data (GTK_OBJECT (intf_about), "dialog_vbox1", dialog_vbox1);
933   gtk_widget_show (dialog_vbox1);
934
935   vbox3 = gtk_vbox_new (FALSE, 0);
936   gtk_widget_ref (vbox3);
937   gtk_object_set_data_full (GTK_OBJECT (intf_about), "vbox3", vbox3,
938                             (GtkDestroyNotify) gtk_widget_unref);
939   gtk_widget_show (vbox3);
940   gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox3, TRUE, TRUE, 0);
941
942   label14 = gtk_label_new (_("VideoLAN Client"));
943   gtk_widget_ref (label14);
944   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label14", label14,
945                             (GtkDestroyNotify) gtk_widget_unref);
946   gtk_widget_show (label14);
947   gtk_box_pack_start (GTK_BOX (vbox3), label14, TRUE, TRUE, 0);
948   gtk_misc_set_padding (GTK_MISC (label14), 0, 10);
949
950   label18 = gtk_label_new (_("(C) 1996, 1997, 1998, 1999, 2000, 2001 - the VideoLAN Team"));
951   gtk_widget_ref (label18);
952   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label18", label18,
953                             (GtkDestroyNotify) gtk_widget_unref);
954   gtk_widget_show (label18);
955   gtk_box_pack_start (GTK_BOX (vbox3), label18, FALSE, FALSE, 0);
956   gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_LEFT);
957   gtk_misc_set_padding (GTK_MISC (label18), 0, 5);
958
959   frame1 = gtk_frame_new (_("Authors"));
960   gtk_widget_ref (frame1);
961   gtk_object_set_data_full (GTK_OBJECT (intf_about), "frame1", frame1,
962                             (GtkDestroyNotify) gtk_widget_unref);
963   gtk_widget_show (frame1);
964   gtk_box_pack_start (GTK_BOX (vbox3), frame1, FALSE, FALSE, 0);
965
966   label16 = gtk_label_new (_("Régis Duchesne <regis@via.ecp.fr>\nMichel Lespinasse <walken@zoy.org>\nOlivier Pomel <pomel@via.ecp.fr>\nPierre Baillet <oct@zoy.org>\nJean-Philippe Grimaldi <jeanphi@via.ecp.fr>\nAndres Krapf <dae@via.ecp.fr>\nChristophe Massiot <massiot@via.ecp.fr>\nVincent Seguin <seguin@via.ecp.fr>\nBenoit Steiner <benny@via.ecp.fr>\nArnaud de Bossoreille de Ribou <bozo@via.ecp.fr>\nJean-Marc Dressler <polux@via.ecp.fr>\nGaël Hendryckx <jimmy@via.ecp.fr>\nSamuel Hocevar <sam@zoy.org>\nBrieuc Jeunhomme <bbp@via.ecp.fr>\nMichel Kaempf <maxx@via.ecp.fr>\nStéphane Borel <stef@via.ecp.fr>\nRenaud Dartus <reno@via.ecp.fr>\nHenri Fallon <henri@via.ecp.fr>"));
967   gtk_widget_ref (label16);
968   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label16", label16,
969                             (GtkDestroyNotify) gtk_widget_unref);
970   gtk_widget_show (label16);
971   gtk_container_add (GTK_CONTAINER (frame1), label16);
972   gtk_label_set_justify (GTK_LABEL (label16), GTK_JUSTIFY_LEFT);
973   gtk_misc_set_alignment (GTK_MISC (label16), 0.5, 0);
974   gtk_misc_set_padding (GTK_MISC (label16), 5, 5);
975
976   label17 = gtk_label_new (_("This is the VideoLAN client, a DVD and MPEG player. It can play MPEG and MPEG 2 files from a file or from a network source."));
977   gtk_widget_ref (label17);
978   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label17", label17,
979                             (GtkDestroyNotify) gtk_widget_unref);
980   gtk_widget_show (label17);
981   gtk_box_pack_start (GTK_BOX (vbox3), label17, FALSE, FALSE, 0);
982   gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_LEFT);
983   gtk_label_set_line_wrap (GTK_LABEL (label17), TRUE);
984   gtk_misc_set_padding (GTK_MISC (label17), 0, 5);
985
986   dialog_action_area = GTK_DIALOG (intf_about)->action_area;
987   gtk_object_set_data (GTK_OBJECT (intf_about), "dialog_action_area", dialog_action_area);
988   gtk_widget_show (dialog_action_area);
989   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area), 10);
990
991   about_ok = gtk_button_new_with_label (_("OK"));
992   gtk_widget_ref (about_ok);
993   gtk_object_set_data_full (GTK_OBJECT (intf_about), "about_ok", about_ok,
994                             (GtkDestroyNotify) gtk_widget_unref);
995   gtk_widget_show (about_ok);
996   gtk_box_pack_start (GTK_BOX (dialog_action_area), about_ok, FALSE, TRUE, 0);
997   GTK_WIDGET_SET_FLAGS (about_ok, GTK_CAN_DEFAULT);
998
999   gtk_signal_connect (GTK_OBJECT (about_ok), "clicked",
1000                       GTK_SIGNAL_FUNC (on_about_ok_clicked),
1001                       NULL);
1002
1003   gtk_widget_grab_default (about_ok);
1004   return intf_about;
1005 }
1006
1007 GtkWidget*
1008 create_intf_fileopen (void)
1009 {
1010   GtkWidget *intf_fileopen;
1011   GtkWidget *fileopen_ok;
1012   GtkWidget *fileopen_cancel;
1013
1014   intf_fileopen = gtk_file_selection_new (_("Select File"));
1015   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "intf_fileopen", intf_fileopen);
1016   gtk_container_set_border_width (GTK_CONTAINER (intf_fileopen), 10);
1017   gtk_window_set_modal (GTK_WINDOW (intf_fileopen), TRUE);
1018
1019   fileopen_ok = GTK_FILE_SELECTION (intf_fileopen)->ok_button;
1020   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_ok", fileopen_ok);
1021   gtk_widget_show (fileopen_ok);
1022   GTK_WIDGET_SET_FLAGS (fileopen_ok, GTK_CAN_DEFAULT);
1023
1024   fileopen_cancel = GTK_FILE_SELECTION (intf_fileopen)->cancel_button;
1025   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_cancel", fileopen_cancel);
1026   gtk_widget_show (fileopen_cancel);
1027   GTK_WIDGET_SET_FLAGS (fileopen_cancel, GTK_CAN_DEFAULT);
1028
1029   gtk_signal_connect (GTK_OBJECT (intf_fileopen), "destroy",
1030                       GTK_SIGNAL_FUNC (on_intf_fileopen_destroy),
1031                       NULL);
1032   gtk_signal_connect (GTK_OBJECT (fileopen_ok), "clicked",
1033                       GTK_SIGNAL_FUNC (on_fileopen_ok_clicked),
1034                       NULL);
1035   gtk_signal_connect (GTK_OBJECT (fileopen_cancel), "clicked",
1036                       GTK_SIGNAL_FUNC (on_fileopen_cancel_clicked),
1037                       NULL);
1038
1039   return intf_fileopen;
1040 }
1041
1042 GtkWidget*
1043 create_intf_disc (void)
1044 {
1045   GtkWidget *intf_disc;
1046   GtkWidget *dialog_vbox2;
1047   GtkWidget *vbox4;
1048   GtkWidget *hbox3;
1049   GtkWidget *frame2;
1050   GtkWidget *vbox5;
1051   GSList *disc_group = NULL;
1052   GtkWidget *disc_dvd;
1053   GtkWidget *disc_vcd;
1054   GtkWidget *frame3;
1055   GtkWidget *table1;
1056   GtkObject *disc_title_adj;
1057   GtkWidget *disc_title;
1058   GtkObject *disc_chapter_adj;
1059   GtkWidget *disc_chapter;
1060   GtkWidget *label20;
1061   GtkWidget *label21;
1062   GtkWidget *hbox2;
1063   GtkWidget *label19;
1064   GtkWidget *disc_name;
1065   GtkWidget *dialog_action_area1;
1066   GtkWidget *hbox1;
1067   GtkWidget *disc_ok;
1068   GtkWidget *disc_cancel;
1069
1070   intf_disc = gtk_dialog_new ();
1071   gtk_object_set_data (GTK_OBJECT (intf_disc), "intf_disc", intf_disc);
1072   gtk_window_set_title (GTK_WINDOW (intf_disc), _("Open Disc"));
1073   gtk_window_set_modal (GTK_WINDOW (intf_disc), TRUE);
1074   gtk_window_set_policy (GTK_WINDOW (intf_disc), FALSE, FALSE, FALSE);
1075
1076   dialog_vbox2 = GTK_DIALOG (intf_disc)->vbox;
1077   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_vbox2", dialog_vbox2);
1078   gtk_widget_show (dialog_vbox2);
1079   gtk_container_set_border_width (GTK_CONTAINER (dialog_vbox2), 5);
1080
1081   vbox4 = gtk_vbox_new (FALSE, 5);
1082   gtk_widget_ref (vbox4);
1083   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "vbox4", vbox4,
1084                             (GtkDestroyNotify) gtk_widget_unref);
1085   gtk_widget_show (vbox4);
1086   gtk_box_pack_start (GTK_BOX (dialog_vbox2), vbox4, TRUE, TRUE, 0);
1087   gtk_container_set_border_width (GTK_CONTAINER (vbox4), 5);
1088
1089   hbox3 = gtk_hbox_new (FALSE, 5);
1090   gtk_widget_ref (hbox3);
1091   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox3", hbox3,
1092                             (GtkDestroyNotify) gtk_widget_unref);
1093   gtk_widget_show (hbox3);
1094   gtk_box_pack_start (GTK_BOX (vbox4), hbox3, TRUE, TRUE, 0);
1095
1096   frame2 = gtk_frame_new (_("Disc type"));
1097   gtk_widget_ref (frame2);
1098   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame2", frame2,
1099                             (GtkDestroyNotify) gtk_widget_unref);
1100   gtk_widget_show (frame2);
1101   gtk_box_pack_start (GTK_BOX (hbox3), frame2, TRUE, TRUE, 0);
1102
1103   vbox5 = gtk_vbox_new (FALSE, 0);
1104   gtk_widget_ref (vbox5);
1105   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "vbox5", vbox5,
1106                             (GtkDestroyNotify) gtk_widget_unref);
1107   gtk_widget_show (vbox5);
1108   gtk_container_add (GTK_CONTAINER (frame2), vbox5);
1109
1110   disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD"));
1111   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd));
1112   gtk_widget_ref (disc_dvd);
1113   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_dvd", disc_dvd,
1114                             (GtkDestroyNotify) gtk_widget_unref);
1115   gtk_widget_show (disc_dvd);
1116   gtk_box_pack_start (GTK_BOX (vbox5), disc_dvd, FALSE, FALSE, 0);
1117
1118   disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD"));
1119   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd));
1120   gtk_widget_ref (disc_vcd);
1121   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_vcd", disc_vcd,
1122                             (GtkDestroyNotify) gtk_widget_unref);
1123   gtk_widget_show (disc_vcd);
1124   gtk_box_pack_start (GTK_BOX (vbox5), disc_vcd, FALSE, FALSE, 0);
1125   gtk_widget_set_sensitive (disc_vcd, FALSE);
1126
1127   frame3 = gtk_frame_new (_("Starting position"));
1128   gtk_widget_ref (frame3);
1129   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame3", frame3,
1130                             (GtkDestroyNotify) gtk_widget_unref);
1131   gtk_widget_show (frame3);
1132   gtk_box_pack_start (GTK_BOX (hbox3), frame3, TRUE, TRUE, 0);
1133
1134   table1 = gtk_table_new (2, 2, FALSE);
1135   gtk_widget_ref (table1);
1136   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "table1", table1,
1137                             (GtkDestroyNotify) gtk_widget_unref);
1138   gtk_widget_show (table1);
1139   gtk_container_add (GTK_CONTAINER (frame3), table1);
1140   gtk_container_set_border_width (GTK_CONTAINER (table1), 5);
1141   gtk_table_set_row_spacings (GTK_TABLE (table1), 5);
1142   gtk_table_set_col_spacings (GTK_TABLE (table1), 5);
1143
1144   disc_title_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1145   disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0);
1146   gtk_widget_ref (disc_title);
1147   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_title", disc_title,
1148                             (GtkDestroyNotify) gtk_widget_unref);
1149   gtk_widget_show (disc_title);
1150   gtk_table_attach (GTK_TABLE (table1), disc_title, 1, 2, 0, 1,
1151                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1152                     (GtkAttachOptions) (0), 0, 0);
1153
1154   disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1155   disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0);
1156   gtk_widget_ref (disc_chapter);
1157   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_chapter", disc_chapter,
1158                             (GtkDestroyNotify) gtk_widget_unref);
1159   gtk_widget_show (disc_chapter);
1160   gtk_table_attach (GTK_TABLE (table1), disc_chapter, 1, 2, 1, 2,
1161                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1162                     (GtkAttachOptions) (0), 0, 0);
1163
1164   label20 = gtk_label_new (_("Chapter"));
1165   gtk_widget_ref (label20);
1166   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label20", label20,
1167                             (GtkDestroyNotify) gtk_widget_unref);
1168   gtk_widget_show (label20);
1169   gtk_table_attach (GTK_TABLE (table1), label20, 0, 1, 1, 2,
1170                     (GtkAttachOptions) (GTK_FILL),
1171                     (GtkAttachOptions) (0), 0, 0);
1172   gtk_misc_set_alignment (GTK_MISC (label20), 0, 0.5);
1173
1174   label21 = gtk_label_new (_("Title"));
1175   gtk_widget_ref (label21);
1176   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label21", label21,
1177                             (GtkDestroyNotify) gtk_widget_unref);
1178   gtk_widget_show (label21);
1179   gtk_table_attach (GTK_TABLE (table1), label21, 0, 1, 0, 1,
1180                     (GtkAttachOptions) (GTK_FILL),
1181                     (GtkAttachOptions) (0), 0, 0);
1182   gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5);
1183
1184   hbox2 = gtk_hbox_new (FALSE, 5);
1185   gtk_widget_ref (hbox2);
1186   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox2", hbox2,
1187                             (GtkDestroyNotify) gtk_widget_unref);
1188   gtk_widget_show (hbox2);
1189   gtk_box_pack_start (GTK_BOX (vbox4), hbox2, TRUE, TRUE, 0);
1190
1191   label19 = gtk_label_new (_("Device name"));
1192   gtk_widget_ref (label19);
1193   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label19", label19,
1194                             (GtkDestroyNotify) gtk_widget_unref);
1195   gtk_widget_show (label19);
1196   gtk_box_pack_start (GTK_BOX (hbox2), label19, FALSE, FALSE, 0);
1197
1198   disc_name = gtk_entry_new ();
1199   gtk_widget_ref (disc_name);
1200   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_name", disc_name,
1201                             (GtkDestroyNotify) gtk_widget_unref);
1202   gtk_widget_show (disc_name);
1203   gtk_box_pack_start (GTK_BOX (hbox2), disc_name, TRUE, TRUE, 0);
1204   gtk_entry_set_text (GTK_ENTRY (disc_name), _("/dev/dvd"));
1205
1206   dialog_action_area1 = GTK_DIALOG (intf_disc)->action_area;
1207   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_action_area1", dialog_action_area1);
1208   gtk_widget_show (dialog_action_area1);
1209   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 5);
1210
1211   hbox1 = gtk_hbox_new (TRUE, 5);
1212   gtk_widget_ref (hbox1);
1213   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox1", hbox1,
1214                             (GtkDestroyNotify) gtk_widget_unref);
1215   gtk_widget_show (hbox1);
1216   gtk_box_pack_end (GTK_BOX (dialog_action_area1), hbox1, FALSE, TRUE, 0);
1217
1218   disc_ok = gtk_button_new_with_label (_("OK"));
1219   gtk_widget_ref (disc_ok);
1220   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_ok", disc_ok,
1221                             (GtkDestroyNotify) gtk_widget_unref);
1222   gtk_widget_show (disc_ok);
1223   gtk_box_pack_start (GTK_BOX (hbox1), disc_ok, FALSE, TRUE, 0);
1224
1225   disc_cancel = gtk_button_new_with_label (_("Cancel"));
1226   gtk_widget_ref (disc_cancel);
1227   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_cancel", disc_cancel,
1228                             (GtkDestroyNotify) gtk_widget_unref);
1229   gtk_widget_show (disc_cancel);
1230   gtk_box_pack_start (GTK_BOX (hbox1), disc_cancel, FALSE, TRUE, 0);
1231
1232   gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled",
1233                       GTK_SIGNAL_FUNC (on_disc_dvd_toggled),
1234                       NULL);
1235   gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled",
1236                       GTK_SIGNAL_FUNC (on_disc_vcd_toggled),
1237                       NULL);
1238   gtk_signal_connect (GTK_OBJECT (disc_ok), "clicked",
1239                       GTK_SIGNAL_FUNC (on_disc_ok_clicked),
1240                       NULL);
1241   gtk_signal_connect (GTK_OBJECT (disc_cancel), "clicked",
1242                       GTK_SIGNAL_FUNC (on_disc_cancel_clicked),
1243                       NULL);
1244
1245   return intf_disc;
1246 }
1247
1248 GtkWidget*
1249 create_intf_playlist (void)
1250 {
1251   GtkWidget *intf_playlist;
1252   GtkWidget *vbox6;
1253   GtkWidget *menubar2;
1254   GtkWidget *add1;
1255   GtkWidget *delete1;
1256   GtkWidget *delete1_menu;
1257   GtkAccelGroup *delete1_menu_accels;
1258   guint tmp_key;
1259   GtkWidget *crop1;
1260   GtkWidget *invert1;
1261   GtkWidget *selection;
1262   GtkWidget *selection1;
1263   GtkWidget *scrolledwindow1;
1264   GtkWidget *playlist_clist;
1265   GtkWidget *label22;
1266   GtkWidget *label23;
1267
1268   intf_playlist = gtk_window_new (GTK_WINDOW_TOPLEVEL);
1269   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
1270   gtk_window_set_title (GTK_WINDOW (intf_playlist), _("Playlist"));
1271   gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 386, 200);
1272
1273   vbox6 = gtk_vbox_new (FALSE, 0);
1274   gtk_widget_ref (vbox6);
1275   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "vbox6", vbox6,
1276                             (GtkDestroyNotify) gtk_widget_unref);
1277   gtk_widget_show (vbox6);
1278   gtk_container_add (GTK_CONTAINER (intf_playlist), vbox6);
1279
1280   menubar2 = gtk_menu_bar_new ();
1281   gtk_widget_ref (menubar2);
1282   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "menubar2", menubar2,
1283                             (GtkDestroyNotify) gtk_widget_unref);
1284   gtk_widget_show (menubar2);
1285   gtk_box_pack_start (GTK_BOX (vbox6), menubar2, FALSE, FALSE, 0);
1286
1287   add1 = gtk_menu_item_new_with_label (_("Add"));
1288   gtk_widget_ref (add1);
1289   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "add1", add1,
1290                             (GtkDestroyNotify) gtk_widget_unref);
1291   gtk_widget_show (add1);
1292   gtk_container_add (GTK_CONTAINER (menubar2), add1);
1293
1294   delete1 = gtk_menu_item_new_with_label (_("Delete"));
1295   gtk_widget_ref (delete1);
1296   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "delete1", delete1,
1297                             (GtkDestroyNotify) gtk_widget_unref);
1298   gtk_widget_show (delete1);
1299   gtk_container_add (GTK_CONTAINER (menubar2), delete1);
1300
1301   delete1_menu = gtk_menu_new ();
1302   gtk_widget_ref (delete1_menu);
1303   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "delete1_menu", delete1_menu,
1304                             (GtkDestroyNotify) gtk_widget_unref);
1305   gtk_menu_item_set_submenu (GTK_MENU_ITEM (delete1), delete1_menu);
1306   delete1_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (delete1_menu));
1307
1308   crop1 = gtk_menu_item_new_with_label ("");
1309   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (crop1)->child),
1310                                    _("_crop"));
1311   gtk_widget_add_accelerator (crop1, "activate_item", delete1_menu_accels,
1312                               tmp_key, 0, 0);
1313   gtk_widget_ref (crop1);
1314   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "crop1", crop1,
1315                             (GtkDestroyNotify) gtk_widget_unref);
1316   gtk_widget_show (crop1);
1317   gtk_container_add (GTK_CONTAINER (delete1_menu), crop1);
1318
1319   invert1 = gtk_menu_item_new_with_label ("");
1320   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (invert1)->child),
1321                                    _("_invert"));
1322   gtk_widget_add_accelerator (invert1, "activate_item", delete1_menu_accels,
1323                               tmp_key, 0, 0);
1324   gtk_widget_ref (invert1);
1325   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "invert1", invert1,
1326                             (GtkDestroyNotify) gtk_widget_unref);
1327   gtk_widget_show (invert1);
1328   gtk_container_add (GTK_CONTAINER (delete1_menu), invert1);
1329
1330   selection = gtk_menu_item_new_with_label ("");
1331   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (selection)->child),
1332                                    _("_selection"));
1333   gtk_widget_add_accelerator (selection, "activate_item", delete1_menu_accels,
1334                               tmp_key, 0, 0);
1335   gtk_widget_ref (selection);
1336   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "selection", selection,
1337                             (GtkDestroyNotify) gtk_widget_unref);
1338   gtk_widget_show (selection);
1339   gtk_container_add (GTK_CONTAINER (delete1_menu), selection);
1340
1341   selection1 = gtk_menu_item_new_with_label (_("Selection"));
1342   gtk_widget_ref (selection1);
1343   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "selection1", selection1,
1344                             (GtkDestroyNotify) gtk_widget_unref);
1345   gtk_widget_show (selection1);
1346   gtk_container_add (GTK_CONTAINER (menubar2), selection1);
1347
1348   scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
1349   gtk_widget_ref (scrolledwindow1);
1350   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow1", scrolledwindow1,
1351                             (GtkDestroyNotify) gtk_widget_unref);
1352   gtk_widget_show (scrolledwindow1);
1353   gtk_box_pack_start (GTK_BOX (vbox6), scrolledwindow1, TRUE, TRUE, 0);
1354   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1355
1356   playlist_clist = gtk_clist_new (2);
1357   gtk_widget_ref (playlist_clist);
1358   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist,
1359                             (GtkDestroyNotify) gtk_widget_unref);
1360   gtk_widget_show (playlist_clist);
1361   gtk_container_add (GTK_CONTAINER (scrolledwindow1), playlist_clist);
1362   gtk_container_set_border_width (GTK_CONTAINER (playlist_clist), 1);
1363   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 257);
1364   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 80);
1365   gtk_clist_set_selection_mode (GTK_CLIST (playlist_clist), GTK_SELECTION_EXTENDED);
1366   gtk_clist_column_titles_show (GTK_CLIST (playlist_clist));
1367   gtk_clist_set_shadow_type (GTK_CLIST (playlist_clist), GTK_SHADOW_OUT);
1368
1369   label22 = gtk_label_new (_("File"));
1370   gtk_widget_ref (label22);
1371   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label22", label22,
1372                             (GtkDestroyNotify) gtk_widget_unref);
1373   gtk_widget_show (label22);
1374   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, label22);
1375
1376   label23 = gtk_label_new (_("Duration"));
1377   gtk_widget_ref (label23);
1378   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label23", label23,
1379                             (GtkDestroyNotify) gtk_widget_unref);
1380   gtk_widget_show (label23);
1381   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, label23);
1382
1383   gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event",
1384                       GTK_SIGNAL_FUNC (on_intf_playlist_destroy_event),
1385                       NULL);
1386   gtk_signal_connect (GTK_OBJECT (crop1), "activate",
1387                       GTK_SIGNAL_FUNC (on_crop_activate),
1388                       NULL);
1389   gtk_signal_connect (GTK_OBJECT (invert1), "activate",
1390                       GTK_SIGNAL_FUNC (on_invertselection_clicked),
1391                       NULL);
1392   gtk_signal_connect (GTK_OBJECT (selection), "activate",
1393                       GTK_SIGNAL_FUNC (on_delete_clicked),
1394                       NULL);
1395   gtk_signal_connect (GTK_OBJECT (playlist_clist), "event",
1396                       GTK_SIGNAL_FUNC (on_playlist_clist_event),
1397                       NULL);
1398   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received",
1399                       GTK_SIGNAL_FUNC (on_intf_playlist_drag_data_received),
1400                       NULL);
1401   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion",
1402                       GTK_SIGNAL_FUNC (on_playlist_clist_drag_motion),
1403                       NULL);
1404
1405   return intf_playlist;
1406 }
1407
1408 GtkWidget*
1409 create_intf_network (void)
1410 {
1411   GtkWidget *intf_network;
1412   GtkWidget *vbox7;
1413   GtkWidget *vbox8;
1414   GtkWidget *hbox6;
1415   GtkWidget *frame4;
1416   GtkWidget *vbox9;
1417   GSList *network_group = NULL;
1418   GtkWidget *network_ts;
1419   GtkWidget *network_rtp;
1420   GtkWidget *network_http;
1421   GtkWidget *frame5;
1422   GtkWidget *table2;
1423   GtkObject *network_port_adj;
1424   GtkWidget *network_port;
1425   GtkWidget *label24;
1426   GtkWidget *label25;
1427   GtkWidget *network_server;
1428   GtkWidget *hbox4;
1429   GtkWidget *hbox5;
1430   GtkWidget *network_ok;
1431   GtkWidget *network_cancel;
1432
1433   intf_network = gtk_dialog_new ();
1434   gtk_object_set_data (GTK_OBJECT (intf_network), "intf_network", intf_network);
1435   gtk_window_set_title (GTK_WINDOW (intf_network), _("Open Disc"));
1436   gtk_window_set_modal (GTK_WINDOW (intf_network), TRUE);
1437   gtk_window_set_policy (GTK_WINDOW (intf_network), FALSE, FALSE, FALSE);
1438
1439   vbox7 = GTK_DIALOG (intf_network)->vbox;
1440   gtk_object_set_data (GTK_OBJECT (intf_network), "vbox7", vbox7);
1441   gtk_widget_show (vbox7);
1442   gtk_container_set_border_width (GTK_CONTAINER (vbox7), 5);
1443
1444   vbox8 = gtk_vbox_new (FALSE, 5);
1445   gtk_widget_ref (vbox8);
1446   gtk_object_set_data_full (GTK_OBJECT (intf_network), "vbox8", vbox8,
1447                             (GtkDestroyNotify) gtk_widget_unref);
1448   gtk_widget_show (vbox8);
1449   gtk_box_pack_start (GTK_BOX (vbox7), vbox8, TRUE, TRUE, 0);
1450   gtk_container_set_border_width (GTK_CONTAINER (vbox8), 5);
1451
1452   hbox6 = gtk_hbox_new (FALSE, 5);
1453   gtk_widget_ref (hbox6);
1454   gtk_object_set_data_full (GTK_OBJECT (intf_network), "hbox6", hbox6,
1455                             (GtkDestroyNotify) gtk_widget_unref);
1456   gtk_widget_show (hbox6);
1457   gtk_box_pack_start (GTK_BOX (vbox8), hbox6, TRUE, TRUE, 0);
1458
1459   frame4 = gtk_frame_new (_("Protocol"));
1460   gtk_widget_ref (frame4);
1461   gtk_object_set_data_full (GTK_OBJECT (intf_network), "frame4", frame4,
1462                             (GtkDestroyNotify) gtk_widget_unref);
1463   gtk_widget_show (frame4);
1464   gtk_box_pack_start (GTK_BOX (hbox6), frame4, TRUE, TRUE, 0);
1465
1466   vbox9 = gtk_vbox_new (FALSE, 0);
1467   gtk_widget_ref (vbox9);
1468   gtk_object_set_data_full (GTK_OBJECT (intf_network), "vbox9", vbox9,
1469                             (GtkDestroyNotify) gtk_widget_unref);
1470   gtk_widget_show (vbox9);
1471   gtk_container_add (GTK_CONTAINER (frame4), vbox9);
1472
1473   network_ts = gtk_radio_button_new_with_label (network_group, _("TS"));
1474   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_ts));
1475   gtk_widget_ref (network_ts);
1476   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_ts", network_ts,
1477                             (GtkDestroyNotify) gtk_widget_unref);
1478   gtk_widget_show (network_ts);
1479   gtk_box_pack_start (GTK_BOX (vbox9), network_ts, FALSE, FALSE, 0);
1480
1481   network_rtp = gtk_radio_button_new_with_label (network_group, _("RTP"));
1482   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_rtp));
1483   gtk_widget_ref (network_rtp);
1484   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_rtp", network_rtp,
1485                             (GtkDestroyNotify) gtk_widget_unref);
1486   gtk_widget_show (network_rtp);
1487   gtk_box_pack_start (GTK_BOX (vbox9), network_rtp, FALSE, FALSE, 0);
1488   gtk_widget_set_sensitive (network_rtp, FALSE);
1489
1490   network_http = gtk_radio_button_new_with_label (network_group, _("HTTP"));
1491   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http));
1492   gtk_widget_ref (network_http);
1493   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_http", network_http,
1494                             (GtkDestroyNotify) gtk_widget_unref);
1495   gtk_widget_show (network_http);
1496   gtk_box_pack_start (GTK_BOX (vbox9), network_http, FALSE, FALSE, 0);
1497   gtk_widget_set_sensitive (network_http, FALSE);
1498
1499   frame5 = gtk_frame_new (_("Server"));
1500   gtk_widget_ref (frame5);
1501   gtk_object_set_data_full (GTK_OBJECT (intf_network), "frame5", frame5,
1502                             (GtkDestroyNotify) gtk_widget_unref);
1503   gtk_widget_show (frame5);
1504   gtk_box_pack_start (GTK_BOX (hbox6), frame5, TRUE, TRUE, 0);
1505
1506   table2 = gtk_table_new (2, 2, FALSE);
1507   gtk_widget_ref (table2);
1508   gtk_object_set_data_full (GTK_OBJECT (intf_network), "table2", table2,
1509                             (GtkDestroyNotify) gtk_widget_unref);
1510   gtk_widget_show (table2);
1511   gtk_container_add (GTK_CONTAINER (frame5), table2);
1512   gtk_container_set_border_width (GTK_CONTAINER (table2), 5);
1513   gtk_table_set_row_spacings (GTK_TABLE (table2), 5);
1514   gtk_table_set_col_spacings (GTK_TABLE (table2), 5);
1515
1516   network_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1517   network_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_port_adj), 1, 0);
1518   gtk_widget_ref (network_port);
1519   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_port", network_port,
1520                             (GtkDestroyNotify) gtk_widget_unref);
1521   gtk_widget_show (network_port);
1522   gtk_table_attach (GTK_TABLE (table2), network_port, 1, 2, 1, 2,
1523                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1524                     (GtkAttachOptions) (0), 0, 0);
1525
1526   label24 = gtk_label_new (_("Port"));
1527   gtk_widget_ref (label24);
1528   gtk_object_set_data_full (GTK_OBJECT (intf_network), "label24", label24,
1529                             (GtkDestroyNotify) gtk_widget_unref);
1530   gtk_widget_show (label24);
1531   gtk_table_attach (GTK_TABLE (table2), label24, 0, 1, 1, 2,
1532                     (GtkAttachOptions) (GTK_FILL),
1533                     (GtkAttachOptions) (0), 0, 0);
1534   gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5);
1535
1536   label25 = gtk_label_new (_("Address"));
1537   gtk_widget_ref (label25);
1538   gtk_object_set_data_full (GTK_OBJECT (intf_network), "label25", label25,
1539                             (GtkDestroyNotify) gtk_widget_unref);
1540   gtk_widget_show (label25);
1541   gtk_table_attach (GTK_TABLE (table2), label25, 0, 1, 0, 1,
1542                     (GtkAttachOptions) (GTK_FILL),
1543                     (GtkAttachOptions) (0), 0, 0);
1544   gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5);
1545
1546   network_server = gtk_entry_new ();
1547   gtk_widget_ref (network_server);
1548   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server", network_server,
1549                             (GtkDestroyNotify) gtk_widget_unref);
1550   gtk_widget_show (network_server);
1551   gtk_table_attach (GTK_TABLE (table2), network_server, 1, 2, 0, 1,
1552                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1553                     (GtkAttachOptions) (0), 0, 0);
1554   gtk_entry_set_text (GTK_ENTRY (network_server), _("vls"));
1555
1556   hbox4 = GTK_DIALOG (intf_network)->action_area;
1557   gtk_object_set_data (GTK_OBJECT (intf_network), "hbox4", hbox4);
1558   gtk_widget_show (hbox4);
1559   gtk_container_set_border_width (GTK_CONTAINER (hbox4), 5);
1560
1561   hbox5 = gtk_hbox_new (TRUE, 5);
1562   gtk_widget_ref (hbox5);
1563   gtk_object_set_data_full (GTK_OBJECT (intf_network), "hbox5", hbox5,
1564                             (GtkDestroyNotify) gtk_widget_unref);
1565   gtk_widget_show (hbox5);
1566   gtk_box_pack_end (GTK_BOX (hbox4), hbox5, FALSE, TRUE, 0);
1567
1568   network_ok = gtk_button_new_with_label (_("OK"));
1569   gtk_widget_ref (network_ok);
1570   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_ok", network_ok,
1571                             (GtkDestroyNotify) gtk_widget_unref);
1572   gtk_widget_show (network_ok);
1573   gtk_box_pack_start (GTK_BOX (hbox5), network_ok, FALSE, TRUE, 0);
1574
1575   network_cancel = gtk_button_new_with_label (_("Cancel"));
1576   gtk_widget_ref (network_cancel);
1577   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_cancel", network_cancel,
1578                             (GtkDestroyNotify) gtk_widget_unref);
1579   gtk_widget_show (network_cancel);
1580   gtk_box_pack_start (GTK_BOX (hbox5), network_cancel, FALSE, TRUE, 0);
1581
1582   gtk_signal_connect (GTK_OBJECT (intf_network), "destroy",
1583                       GTK_SIGNAL_FUNC (on_intf_network_destroy),
1584                       NULL);
1585   gtk_signal_connect (GTK_OBJECT (network_ts), "toggled",
1586                       GTK_SIGNAL_FUNC (on_disc_dvd_toggled),
1587                       NULL);
1588   gtk_signal_connect (GTK_OBJECT (network_rtp), "toggled",
1589                       GTK_SIGNAL_FUNC (on_disc_vcd_toggled),
1590                       NULL);
1591   gtk_signal_connect (GTK_OBJECT (network_ok), "clicked",
1592                       GTK_SIGNAL_FUNC (on_network_ok_clicked),
1593                       NULL);
1594   gtk_signal_connect (GTK_OBJECT (network_cancel), "clicked",
1595                       GTK_SIGNAL_FUNC (on_network_cancel_clicked),
1596                       NULL);
1597
1598   return intf_network;
1599 }
1600