]> git.sesse.net Git - vlc/blob - plugins/gtk/gtk_interface.c
-Working menus for run-time audio/spu/title/chapter selection with gtk
[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 *separator4;
35   GtkWidget *menubar_exit;
36   GtkWidget *menubar_view;
37   GtkWidget *menubar_view_menu;
38   GtkAccelGroup *menubar_view_menu_accels;
39   GtkWidget *menubar_title;
40   GtkWidget *menubar_chapter;
41   GtkWidget *separator11;
42   GtkWidget *menubar_playlist;
43   GtkWidget *menubar_modules;
44   GtkWidget *menubar_settings;
45   GtkWidget *menubar_settings_menu;
46   GtkAccelGroup *menubar_settings_menu_accels;
47   GtkWidget *separator7;
48   GtkWidget *menubar_audio;
49   GtkWidget *menubar_subpictures;
50   GtkWidget *separator8;
51   GtkWidget *menubar_preferences;
52   GtkWidget *menubar_help;
53   GtkWidget *menubar_help_menu;
54   GtkAccelGroup *menubar_help_menu_accels;
55   GtkWidget *menubar_about;
56   GtkWidget *handlebox1;
57   GtkWidget *toolbar;
58   GtkWidget *toolbar_open;
59   GtkWidget *toolbar_disc;
60   GtkWidget *toolbar_back;
61   GtkWidget *toolbar_stop;
62   GtkWidget *toolbar_play;
63   GtkWidget *toolbar_pause;
64   GtkWidget *toolbar_slow;
65   GtkWidget *toolbar_fast;
66   GtkWidget *toolbar_playlist;
67   GtkWidget *toolbar_prev;
68   GtkWidget *toolbar_next;
69   GtkWidget *entry1;
70   GtkWidget *label6;
71   GtkWidget *hscale;
72   GtkWidget *label13;
73   GtkWidget *statusbar1;
74   GtkAccelGroup *accel_group;
75   GtkTooltips *tooltips;
76
77   tooltips = gtk_tooltips_new ();
78
79   accel_group = gtk_accel_group_new ();
80
81   intf_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
82   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
83   gtk_window_set_title (GTK_WINDOW (intf_window), _("VideoLAN Client"));
84
85   vbox2 = gtk_vbox_new (FALSE, 0);
86   gtk_widget_ref (vbox2);
87   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox2", vbox2,
88                             (GtkDestroyNotify) gtk_widget_unref);
89   gtk_widget_show (vbox2);
90   gtk_container_add (GTK_CONTAINER (intf_window), vbox2);
91
92   handlebox2 = gtk_handle_box_new ();
93   gtk_widget_ref (handlebox2);
94   gtk_object_set_data_full (GTK_OBJECT (intf_window), "handlebox2", handlebox2,
95                             (GtkDestroyNotify) gtk_widget_unref);
96   gtk_widget_show (handlebox2);
97   gtk_box_pack_start (GTK_BOX (vbox2), handlebox2, FALSE, TRUE, 0);
98
99   menubar1 = gtk_menu_bar_new ();
100   gtk_widget_ref (menubar1);
101   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar1", menubar1,
102                             (GtkDestroyNotify) gtk_widget_unref);
103   gtk_widget_show (menubar1);
104   gtk_container_add (GTK_CONTAINER (handlebox2), menubar1);
105
106   menubar_file = gtk_menu_item_new_with_label ("");
107   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_file)->child),
108                                    _("_File"));
109   gtk_widget_add_accelerator (menubar_file, "activate_item", accel_group,
110                               tmp_key, GDK_MOD1_MASK, 0);
111   gtk_widget_ref (menubar_file);
112   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file", menubar_file,
113                             (GtkDestroyNotify) gtk_widget_unref);
114   gtk_widget_show (menubar_file);
115   gtk_container_add (GTK_CONTAINER (menubar1), menubar_file);
116
117   menubar_file_menu = gtk_menu_new ();
118   gtk_widget_ref (menubar_file_menu);
119   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file_menu", menubar_file_menu,
120                             (GtkDestroyNotify) gtk_widget_unref);
121   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_file), menubar_file_menu);
122   menubar_file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_file_menu));
123
124   menubar_open = gtk_menu_item_new_with_label ("");
125   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_open)->child),
126                                    _("_Open File..."));
127   gtk_widget_add_accelerator (menubar_open, "activate_item", menubar_file_menu_accels,
128                               tmp_key, 0, 0);
129   gtk_widget_ref (menubar_open);
130   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open", menubar_open,
131                             (GtkDestroyNotify) gtk_widget_unref);
132   gtk_widget_show (menubar_open);
133   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_open);
134   gtk_tooltips_set_tip (tooltips, menubar_open, _("Open a File"), NULL);
135   gtk_widget_add_accelerator (menubar_open, "activate", accel_group,
136                               GDK_F3, 0,
137                               GTK_ACCEL_VISIBLE);
138
139   menubar_disc = gtk_menu_item_new_with_label ("");
140   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_disc)->child),
141                                    _("Open _Disc..."));
142   gtk_widget_add_accelerator (menubar_disc, "activate_item", menubar_file_menu_accels,
143                               tmp_key, 0, 0);
144   gtk_widget_ref (menubar_disc);
145   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc", menubar_disc,
146                             (GtkDestroyNotify) gtk_widget_unref);
147   gtk_widget_show (menubar_disc);
148   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_disc);
149   gtk_tooltips_set_tip (tooltips, menubar_disc, _("Open a DVD or VCD"), NULL);
150
151   separator4 = gtk_menu_item_new ();
152   gtk_widget_ref (separator4);
153   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator4", separator4,
154                             (GtkDestroyNotify) gtk_widget_unref);
155   gtk_widget_show (separator4);
156   gtk_container_add (GTK_CONTAINER (menubar_file_menu), separator4);
157   gtk_widget_set_sensitive (separator4, FALSE);
158
159   menubar_exit = gtk_menu_item_new_with_label ("");
160   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_exit)->child),
161                                    _("E_xit"));
162   gtk_widget_add_accelerator (menubar_exit, "activate_item", menubar_file_menu_accels,
163                               tmp_key, 0, 0);
164   gtk_widget_ref (menubar_exit);
165   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit", menubar_exit,
166                             (GtkDestroyNotify) gtk_widget_unref);
167   gtk_widget_show (menubar_exit);
168   gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_exit);
169   gtk_tooltips_set_tip (tooltips, menubar_exit, _("Exit the program"), NULL);
170   gtk_widget_add_accelerator (menubar_exit, "activate", accel_group,
171                               GDK_Q, GDK_CONTROL_MASK,
172                               GTK_ACCEL_VISIBLE);
173
174   menubar_view = gtk_menu_item_new_with_label ("");
175   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_view)->child),
176                                    _("_View"));
177   gtk_widget_add_accelerator (menubar_view, "activate_item", accel_group,
178                               tmp_key, GDK_MOD1_MASK, 0);
179   gtk_widget_ref (menubar_view);
180   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view", menubar_view,
181                             (GtkDestroyNotify) gtk_widget_unref);
182   gtk_widget_show (menubar_view);
183   gtk_container_add (GTK_CONTAINER (menubar1), menubar_view);
184
185   menubar_view_menu = gtk_menu_new ();
186   gtk_widget_ref (menubar_view_menu);
187   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view_menu", menubar_view_menu,
188                             (GtkDestroyNotify) gtk_widget_unref);
189   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_view), menubar_view_menu);
190   menubar_view_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_view_menu));
191
192   menubar_title = gtk_menu_item_new_with_label ("");
193   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_title)->child),
194                                    _("_Title"));
195   gtk_widget_add_accelerator (menubar_title, "activate_item", menubar_view_menu_accels,
196                               tmp_key, 0, 0);
197   gtk_widget_ref (menubar_title);
198   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title", menubar_title,
199                             (GtkDestroyNotify) gtk_widget_unref);
200   gtk_widget_show (menubar_title);
201   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_title);
202   gtk_widget_set_sensitive (menubar_title, FALSE);
203   gtk_tooltips_set_tip (tooltips, menubar_title, _("Navigate through the stream"), NULL);
204
205   menubar_chapter = gtk_menu_item_new_with_label ("");
206   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_chapter)->child),
207                                    _("_Chapter"));
208   gtk_widget_add_accelerator (menubar_chapter, "activate_item", menubar_view_menu_accels,
209                               tmp_key, 0, 0);
210   gtk_widget_ref (menubar_chapter);
211   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter", menubar_chapter,
212                             (GtkDestroyNotify) gtk_widget_unref);
213   gtk_widget_show (menubar_chapter);
214   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_chapter);
215   gtk_widget_set_sensitive (menubar_chapter, FALSE);
216
217   separator11 = gtk_menu_item_new ();
218   gtk_widget_ref (separator11);
219   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator11", separator11,
220                             (GtkDestroyNotify) gtk_widget_unref);
221   gtk_widget_show (separator11);
222   gtk_container_add (GTK_CONTAINER (menubar_view_menu), separator11);
223   gtk_widget_set_sensitive (separator11, FALSE);
224
225   menubar_playlist = gtk_menu_item_new_with_label ("");
226   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_playlist)->child),
227                                    _("_Playlist..."));
228   gtk_widget_add_accelerator (menubar_playlist, "activate_item", menubar_view_menu_accels,
229                               tmp_key, 0, 0);
230   gtk_widget_ref (menubar_playlist);
231   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist", menubar_playlist,
232                             (GtkDestroyNotify) gtk_widget_unref);
233   gtk_widget_show (menubar_playlist);
234   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_playlist);
235   gtk_widget_set_sensitive (menubar_playlist, FALSE);
236   gtk_tooltips_set_tip (tooltips, menubar_playlist, _("Open the playlist window"), NULL);
237
238   menubar_modules = gtk_menu_item_new_with_label ("");
239   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_modules)->child),
240                                    _("_Modules..."));
241   gtk_widget_add_accelerator (menubar_modules, "activate_item", menubar_view_menu_accels,
242                               tmp_key, 0, 0);
243   gtk_widget_ref (menubar_modules);
244   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules", menubar_modules,
245                             (GtkDestroyNotify) gtk_widget_unref);
246   gtk_widget_show (menubar_modules);
247   gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_modules);
248   gtk_widget_set_sensitive (menubar_modules, FALSE);
249   gtk_tooltips_set_tip (tooltips, menubar_modules, _("Open the plugin manager"), NULL);
250
251   menubar_settings = gtk_menu_item_new_with_label ("");
252   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_settings)->child),
253                                    _("_Settings"));
254   gtk_widget_add_accelerator (menubar_settings, "activate_item", accel_group,
255                               tmp_key, GDK_MOD1_MASK, 0);
256   gtk_widget_ref (menubar_settings);
257   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings", menubar_settings,
258                             (GtkDestroyNotify) gtk_widget_unref);
259   gtk_widget_show (menubar_settings);
260   gtk_container_add (GTK_CONTAINER (menubar1), menubar_settings);
261
262   menubar_settings_menu = gtk_menu_new ();
263   gtk_widget_ref (menubar_settings_menu);
264   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings_menu", menubar_settings_menu,
265                             (GtkDestroyNotify) gtk_widget_unref);
266   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_settings), menubar_settings_menu);
267   menubar_settings_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_settings_menu));
268
269   separator7 = gtk_menu_item_new ();
270   gtk_widget_ref (separator7);
271   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7", separator7,
272                             (GtkDestroyNotify) gtk_widget_unref);
273   gtk_widget_show (separator7);
274   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), separator7);
275   gtk_widget_set_sensitive (separator7, FALSE);
276
277   menubar_audio = gtk_menu_item_new_with_label ("");
278   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_audio)->child),
279                                    _("A_udio"));
280   gtk_widget_add_accelerator (menubar_audio, "activate_item", menubar_settings_menu_accels,
281                               tmp_key, 0, 0);
282   gtk_widget_ref (menubar_audio);
283   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio", menubar_audio,
284                             (GtkDestroyNotify) gtk_widget_unref);
285   gtk_widget_show (menubar_audio);
286   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_audio);
287   gtk_widget_set_sensitive (menubar_audio, FALSE);
288   gtk_tooltips_set_tip (tooltips, menubar_audio, _("Select audio language"), NULL);
289
290   menubar_subpictures = gtk_menu_item_new_with_label ("");
291   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_subpictures)->child),
292                                    _("Sub _Pictures"));
293   gtk_widget_add_accelerator (menubar_subpictures, "activate_item", menubar_settings_menu_accels,
294                               tmp_key, 0, 0);
295   gtk_widget_ref (menubar_subpictures);
296   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures", menubar_subpictures,
297                             (GtkDestroyNotify) gtk_widget_unref);
298   gtk_widget_show (menubar_subpictures);
299   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_subpictures);
300   gtk_widget_set_sensitive (menubar_subpictures, FALSE);
301   gtk_tooltips_set_tip (tooltips, menubar_subpictures, _("Select sub-title"), NULL);
302
303   separator8 = gtk_menu_item_new ();
304   gtk_widget_ref (separator8);
305   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator8", separator8,
306                             (GtkDestroyNotify) gtk_widget_unref);
307   gtk_widget_show (separator8);
308   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), separator8);
309   gtk_widget_set_sensitive (separator8, FALSE);
310
311   menubar_preferences = gtk_menu_item_new_with_label ("");
312   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_preferences)->child),
313                                    _("_Preferences..."));
314   gtk_widget_add_accelerator (menubar_preferences, "activate_item", menubar_settings_menu_accels,
315                               tmp_key, 0, 0);
316   gtk_widget_ref (menubar_preferences);
317   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences", menubar_preferences,
318                             (GtkDestroyNotify) gtk_widget_unref);
319   gtk_widget_show (menubar_preferences);
320   gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_preferences);
321   gtk_widget_set_sensitive (menubar_preferences, FALSE);
322   gtk_tooltips_set_tip (tooltips, menubar_preferences, _("Configure the application"), NULL);
323
324   menubar_help = gtk_menu_item_new_with_label ("");
325   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_help)->child),
326                                    _("_Help"));
327   gtk_widget_add_accelerator (menubar_help, "activate_item", accel_group,
328                               tmp_key, GDK_MOD1_MASK, 0);
329   gtk_widget_ref (menubar_help);
330   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help", menubar_help,
331                             (GtkDestroyNotify) gtk_widget_unref);
332   gtk_widget_show (menubar_help);
333   gtk_container_add (GTK_CONTAINER (menubar1), menubar_help);
334
335   menubar_help_menu = gtk_menu_new ();
336   gtk_widget_ref (menubar_help_menu);
337   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help_menu", menubar_help_menu,
338                             (GtkDestroyNotify) gtk_widget_unref);
339   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_help), menubar_help_menu);
340   menubar_help_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_help_menu));
341
342   menubar_about = gtk_menu_item_new_with_label ("");
343   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_about)->child),
344                                    _("_About..."));
345   gtk_widget_add_accelerator (menubar_about, "activate_item", menubar_help_menu_accels,
346                               tmp_key, 0, 0);
347   gtk_widget_ref (menubar_about);
348   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about", menubar_about,
349                             (GtkDestroyNotify) gtk_widget_unref);
350   gtk_widget_show (menubar_about);
351   gtk_container_add (GTK_CONTAINER (menubar_help_menu), menubar_about);
352   gtk_tooltips_set_tip (tooltips, menubar_about, _("About this application"), NULL);
353
354   handlebox1 = gtk_handle_box_new ();
355   gtk_widget_ref (handlebox1);
356   gtk_object_set_data_full (GTK_OBJECT (intf_window), "handlebox1", handlebox1,
357                             (GtkDestroyNotify) gtk_widget_unref);
358   gtk_widget_show (handlebox1);
359   gtk_box_pack_start (GTK_BOX (vbox2), handlebox1, FALSE, TRUE, 0);
360
361   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
362   gtk_widget_ref (toolbar);
363   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
364                             (GtkDestroyNotify) gtk_widget_unref);
365   gtk_widget_show (toolbar);
366   gtk_container_add (GTK_CONTAINER (handlebox1), toolbar);
367   gtk_container_set_border_width (GTK_CONTAINER (toolbar), 1);
368   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
369   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
370   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
371
372   toolbar_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
373                                 GTK_TOOLBAR_CHILD_BUTTON,
374                                 NULL,
375                                 _("Open"),
376                                 _("Open a File"), NULL,
377                                 NULL, NULL, NULL);
378   gtk_widget_ref (toolbar_open);
379   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_open", toolbar_open,
380                             (GtkDestroyNotify) gtk_widget_unref);
381   gtk_widget_show (toolbar_open);
382
383   toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
384                                 GTK_TOOLBAR_CHILD_BUTTON,
385                                 NULL,
386                                 _("Disc"),
387                                 _("Open a DVD or VCD"), NULL,
388                                 NULL, NULL, NULL);
389   gtk_widget_ref (toolbar_disc);
390   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc,
391                             (GtkDestroyNotify) gtk_widget_unref);
392   gtk_widget_show (toolbar_disc);
393
394   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
395
396   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
397                                 GTK_TOOLBAR_CHILD_BUTTON,
398                                 NULL,
399                                 _("Back"),
400                                 _("Go Backwards"), NULL,
401                                 NULL, NULL, NULL);
402   gtk_widget_ref (toolbar_back);
403   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
404                             (GtkDestroyNotify) gtk_widget_unref);
405   gtk_widget_show (toolbar_back);
406   gtk_widget_set_sensitive (toolbar_back, FALSE);
407
408   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
409                                 GTK_TOOLBAR_CHILD_BUTTON,
410                                 NULL,
411                                 _("Stop"),
412                                 _("Stop Stream"), NULL,
413                                 NULL, NULL, NULL);
414   gtk_widget_ref (toolbar_stop);
415   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
416                             (GtkDestroyNotify) gtk_widget_unref);
417   gtk_widget_show (toolbar_stop);
418   gtk_widget_set_sensitive (toolbar_stop, FALSE);
419
420   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
421                                 GTK_TOOLBAR_CHILD_BUTTON,
422                                 NULL,
423                                 _("Play"),
424                                 _("Play Stream"), NULL,
425                                 NULL, NULL, NULL);
426   gtk_widget_ref (toolbar_play);
427   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
428                             (GtkDestroyNotify) gtk_widget_unref);
429   gtk_widget_show (toolbar_play);
430
431   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
432                                 GTK_TOOLBAR_CHILD_BUTTON,
433                                 NULL,
434                                 _("Pause"),
435                                 _("Pause Stream"), NULL,
436                                 NULL, NULL, NULL);
437   gtk_widget_ref (toolbar_pause);
438   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
439                             (GtkDestroyNotify) gtk_widget_unref);
440   gtk_widget_show (toolbar_pause);
441
442   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
443                                 GTK_TOOLBAR_CHILD_BUTTON,
444                                 NULL,
445                                 _("Slow"),
446                                 _("Play Slower"), NULL,
447                                 NULL, NULL, NULL);
448   gtk_widget_ref (toolbar_slow);
449   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
450                             (GtkDestroyNotify) gtk_widget_unref);
451   gtk_widget_show (toolbar_slow);
452
453   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
454                                 GTK_TOOLBAR_CHILD_BUTTON,
455                                 NULL,
456                                 _("Fast"),
457                                 _("Play Faster"), NULL,
458                                 NULL, NULL, NULL);
459   gtk_widget_ref (toolbar_fast);
460   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
461                             (GtkDestroyNotify) gtk_widget_unref);
462   gtk_widget_show (toolbar_fast);
463
464   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
465
466   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
467                                 GTK_TOOLBAR_CHILD_BUTTON,
468                                 NULL,
469                                 _("Playlist"),
470                                 _("Open Playlist"), NULL,
471                                 NULL, NULL, NULL);
472   gtk_widget_ref (toolbar_playlist);
473   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
474                             (GtkDestroyNotify) gtk_widget_unref);
475   gtk_widget_show (toolbar_playlist);
476   gtk_widget_set_sensitive (toolbar_playlist, FALSE);
477
478   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
479                                 GTK_TOOLBAR_CHILD_BUTTON,
480                                 NULL,
481                                 _("Prev"),
482                                 _("Previous File"), NULL,
483                                 NULL, NULL, NULL);
484   gtk_widget_ref (toolbar_prev);
485   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
486                             (GtkDestroyNotify) gtk_widget_unref);
487   gtk_widget_show (toolbar_prev);
488
489   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
490                                 GTK_TOOLBAR_CHILD_BUTTON,
491                                 NULL,
492                                 _("Next"),
493                                 _("Next File"), NULL,
494                                 NULL, NULL, NULL);
495   gtk_widget_ref (toolbar_next);
496   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
497                             (GtkDestroyNotify) gtk_widget_unref);
498   gtk_widget_show (toolbar_next);
499
500   entry1 = gtk_entry_new ();
501   gtk_widget_ref (entry1);
502   gtk_object_set_data_full (GTK_OBJECT (intf_window), "entry1", entry1,
503                             (GtkDestroyNotify) gtk_widget_unref);
504   gtk_widget_show (entry1);
505   gtk_box_pack_start (GTK_BOX (vbox2), entry1, FALSE, TRUE, 0);
506   gtk_entry_set_text (GTK_ENTRY (entry1), _("Tired of boring stub messages ? Write your own exciting message here !!"));
507
508   label6 = gtk_label_new (_("This part of the interface doesn't work yet. You can drag the slider below, though:"));
509   gtk_widget_ref (label6);
510   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label6", label6,
511                             (GtkDestroyNotify) gtk_widget_unref);
512   gtk_widget_show (label6);
513   gtk_box_pack_start (GTK_BOX (vbox2), label6, FALSE, TRUE, 0);
514   gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
515   gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
516   gtk_misc_set_padding (GTK_MISC (label6), 5, 0);
517
518   hscale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
519   gtk_widget_ref (hscale);
520   gtk_object_set_data_full (GTK_OBJECT (intf_window), "hscale", hscale,
521                             (GtkDestroyNotify) gtk_widget_unref);
522   gtk_widget_show (hscale);
523   gtk_box_pack_start (GTK_BOX (vbox2), hscale, FALSE, TRUE, 0);
524   gtk_scale_set_value_pos (GTK_SCALE (hscale), GTK_POS_BOTTOM);
525   gtk_range_set_update_policy (GTK_RANGE (hscale), GTK_UPDATE_DELAYED);
526
527   label13 = gtk_label_new (_("HEY ! YOU CAN DROP A FILE ON VLC TOO :-)"));
528   gtk_widget_ref (label13);
529   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label13", label13,
530                             (GtkDestroyNotify) gtk_widget_unref);
531   gtk_widget_show (label13);
532   gtk_box_pack_start (GTK_BOX (vbox2), label13, FALSE, TRUE, 0);
533   gtk_misc_set_padding (GTK_MISC (label13), 0, 5);
534
535   statusbar1 = gtk_statusbar_new ();
536   gtk_widget_ref (statusbar1);
537   gtk_object_set_data_full (GTK_OBJECT (intf_window), "statusbar1", statusbar1,
538                             (GtkDestroyNotify) gtk_widget_unref);
539   gtk_widget_show (statusbar1);
540   gtk_box_pack_end (GTK_BOX (vbox2), statusbar1, FALSE, TRUE, 0);
541
542   gtk_signal_connect (GTK_OBJECT (intf_window), "destroy",
543                       GTK_SIGNAL_FUNC (on_intf_window_destroy),
544                       NULL);
545   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
546                       GTK_SIGNAL_FUNC (on_intf_window_drag_data_received),
547                       NULL);
548   gtk_signal_connect (GTK_OBJECT (menubar_open), "activate",
549                       GTK_SIGNAL_FUNC (on_menubar_open_activate),
550                       NULL);
551   gtk_signal_connect (GTK_OBJECT (menubar_disc), "activate",
552                       GTK_SIGNAL_FUNC (on_menubar_disc_activate),
553                       NULL);
554   gtk_signal_connect (GTK_OBJECT (menubar_exit), "activate",
555                       GTK_SIGNAL_FUNC (on_menubar_exit_activate),
556                       NULL);
557   gtk_signal_connect (GTK_OBJECT (menubar_playlist), "activate",
558                       GTK_SIGNAL_FUNC (on_menubar_playlist_activate),
559                       NULL);
560   gtk_signal_connect (GTK_OBJECT (menubar_modules), "activate",
561                       GTK_SIGNAL_FUNC (on_menubar_modules_activate),
562                       NULL);
563   gtk_signal_connect (GTK_OBJECT (menubar_preferences), "activate",
564                       GTK_SIGNAL_FUNC (on_menubar_preferences_activate),
565                       NULL);
566   gtk_signal_connect (GTK_OBJECT (menubar_about), "activate",
567                       GTK_SIGNAL_FUNC (on_menubar_about_activate),
568                       NULL);
569   gtk_signal_connect (GTK_OBJECT (toolbar_open), "clicked",
570                       GTK_SIGNAL_FUNC (on_toolbar_open_clicked),
571                       NULL);
572   gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
573                       GTK_SIGNAL_FUNC (on_toolbar_disc_clicked),
574                       NULL);
575   gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
576                       GTK_SIGNAL_FUNC (on_toolbar_back_clicked),
577                       NULL);
578   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
579                       GTK_SIGNAL_FUNC (on_toolbar_stop_clicked),
580                       NULL);
581   gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
582                       GTK_SIGNAL_FUNC (on_toolbar_play_clicked),
583                       NULL);
584   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
585                       GTK_SIGNAL_FUNC (on_toolbar_pause_clicked),
586                       NULL);
587   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
588                       GTK_SIGNAL_FUNC (on_toolbar_slow_clicked),
589                       NULL);
590   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
591                       GTK_SIGNAL_FUNC (on_toolbar_fast_clicked),
592                       NULL);
593   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
594                       GTK_SIGNAL_FUNC (on_toolbar_playlist_clicked),
595                       NULL);
596   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
597                       GTK_SIGNAL_FUNC (on_toolbar_prev_clicked),
598                       NULL);
599   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
600                       GTK_SIGNAL_FUNC (on_toolbar_next_clicked),
601                       NULL);
602   gtk_signal_connect (GTK_OBJECT (hscale), "button_release_event",
603                       GTK_SIGNAL_FUNC (on_hscale_button_release_event),
604                       NULL);
605   gtk_signal_connect (GTK_OBJECT (hscale), "button_press_event",
606                       GTK_SIGNAL_FUNC (on_hscale_button_press_event),
607                       NULL);
608
609   gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips);
610
611   gtk_window_add_accel_group (GTK_WINDOW (intf_window), accel_group);
612
613   return intf_window;
614 }
615
616 GtkWidget*
617 create_intf_popup (void)
618 {
619   GtkWidget *intf_popup;
620   GtkAccelGroup *intf_popup_accels;
621   guint tmp_key;
622   GtkWidget *popup_play;
623   GtkWidget *popup_pause;
624   GtkWidget *popup_slow;
625   GtkWidget *popup_fast;
626   GtkWidget *separator6;
627   GtkWidget *popup_open;
628   GtkWidget *popup_disc;
629   GtkWidget *separator5;
630   GtkWidget *popup_navigation;
631   GtkWidget *separator10;
632   GtkWidget *popup_audio;
633   GtkWidget *popup_subpictures;
634   GtkWidget *separator9;
635   GtkWidget *popup_about;
636   GtkWidget *popup_exit;
637   GtkTooltips *tooltips;
638
639   tooltips = gtk_tooltips_new ();
640
641   intf_popup = gtk_menu_new ();
642   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
643   intf_popup_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (intf_popup));
644
645   popup_play = gtk_menu_item_new_with_label ("");
646   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_play)->child),
647                                    _("_Play"));
648   gtk_widget_add_accelerator (popup_play, "activate_item", intf_popup_accels,
649                               tmp_key, 0, 0);
650   gtk_widget_ref (popup_play);
651   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play", popup_play,
652                             (GtkDestroyNotify) gtk_widget_unref);
653   gtk_widget_show (popup_play);
654   gtk_container_add (GTK_CONTAINER (intf_popup), popup_play);
655
656   popup_pause = gtk_menu_item_new_with_label (_("Pause"));
657   gtk_widget_ref (popup_pause);
658   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause", popup_pause,
659                             (GtkDestroyNotify) gtk_widget_unref);
660   gtk_widget_show (popup_pause);
661   gtk_container_add (GTK_CONTAINER (intf_popup), popup_pause);
662
663   popup_slow = gtk_menu_item_new_with_label (_("Slow"));
664   gtk_widget_ref (popup_slow);
665   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow", popup_slow,
666                             (GtkDestroyNotify) gtk_widget_unref);
667   gtk_widget_show (popup_slow);
668   gtk_container_add (GTK_CONTAINER (intf_popup), popup_slow);
669
670   popup_fast = gtk_menu_item_new_with_label (_("Fast"));
671   gtk_widget_ref (popup_fast);
672   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast", popup_fast,
673                             (GtkDestroyNotify) gtk_widget_unref);
674   gtk_widget_show (popup_fast);
675   gtk_container_add (GTK_CONTAINER (intf_popup), popup_fast);
676
677   separator6 = gtk_menu_item_new ();
678   gtk_widget_ref (separator6);
679   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator6", separator6,
680                             (GtkDestroyNotify) gtk_widget_unref);
681   gtk_widget_show (separator6);
682   gtk_container_add (GTK_CONTAINER (intf_popup), separator6);
683   gtk_widget_set_sensitive (separator6, FALSE);
684
685   popup_open = gtk_menu_item_new_with_label ("");
686   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_open)->child),
687                                    _("_Open File..."));
688   gtk_widget_add_accelerator (popup_open, "activate_item", intf_popup_accels,
689                               tmp_key, 0, 0);
690   gtk_widget_ref (popup_open);
691   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open", popup_open,
692                             (GtkDestroyNotify) gtk_widget_unref);
693   gtk_widget_show (popup_open);
694   gtk_container_add (GTK_CONTAINER (intf_popup), popup_open);
695   gtk_tooltips_set_tip (tooltips, popup_open, _("Open a File"), NULL);
696
697   popup_disc = gtk_menu_item_new_with_label ("");
698   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_disc)->child),
699                                    _("Open _Disc..."));
700   gtk_widget_add_accelerator (popup_disc, "activate_item", intf_popup_accels,
701                               tmp_key, 0, 0);
702   gtk_widget_ref (popup_disc);
703   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc", popup_disc,
704                             (GtkDestroyNotify) gtk_widget_unref);
705   gtk_widget_show (popup_disc);
706   gtk_container_add (GTK_CONTAINER (intf_popup), popup_disc);
707   gtk_tooltips_set_tip (tooltips, popup_disc, _("Open a DVD or VCD"), NULL);
708
709   separator5 = gtk_menu_item_new ();
710   gtk_widget_ref (separator5);
711   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator5", separator5,
712                             (GtkDestroyNotify) gtk_widget_unref);
713   gtk_widget_show (separator5);
714   gtk_container_add (GTK_CONTAINER (intf_popup), separator5);
715   gtk_widget_set_sensitive (separator5, FALSE);
716
717   popup_navigation = gtk_menu_item_new_with_label (_("Navigation"));
718   gtk_widget_ref (popup_navigation);
719   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation", popup_navigation,
720                             (GtkDestroyNotify) gtk_widget_unref);
721   gtk_widget_show (popup_navigation);
722   gtk_container_add (GTK_CONTAINER (intf_popup), popup_navigation);
723   gtk_widget_set_sensitive (popup_navigation, FALSE);
724
725   separator10 = gtk_menu_item_new ();
726   gtk_widget_ref (separator10);
727   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator10", separator10,
728                             (GtkDestroyNotify) gtk_widget_unref);
729   gtk_widget_show (separator10);
730   gtk_container_add (GTK_CONTAINER (intf_popup), separator10);
731   gtk_widget_set_sensitive (separator10, FALSE);
732
733   popup_audio = gtk_menu_item_new_with_label ("");
734   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_audio)->child),
735                                    _("A_udio"));
736   gtk_widget_add_accelerator (popup_audio, "activate_item", intf_popup_accels,
737                               tmp_key, 0, 0);
738   gtk_widget_ref (popup_audio);
739   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio", popup_audio,
740                             (GtkDestroyNotify) gtk_widget_unref);
741   gtk_widget_show (popup_audio);
742   gtk_container_add (GTK_CONTAINER (intf_popup), popup_audio);
743   gtk_widget_set_sensitive (popup_audio, FALSE);
744
745   popup_subpictures = gtk_menu_item_new_with_label ("");
746   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_subpictures)->child),
747                                    _("Sub _Pictures"));
748   gtk_widget_add_accelerator (popup_subpictures, "activate_item", intf_popup_accels,
749                               tmp_key, 0, 0);
750   gtk_widget_ref (popup_subpictures);
751   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures", popup_subpictures,
752                             (GtkDestroyNotify) gtk_widget_unref);
753   gtk_widget_show (popup_subpictures);
754   gtk_container_add (GTK_CONTAINER (intf_popup), popup_subpictures);
755   gtk_widget_set_sensitive (popup_subpictures, FALSE);
756
757   separator9 = gtk_menu_item_new ();
758   gtk_widget_ref (separator9);
759   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator9", separator9,
760                             (GtkDestroyNotify) gtk_widget_unref);
761   gtk_widget_show (separator9);
762   gtk_container_add (GTK_CONTAINER (intf_popup), separator9);
763   gtk_widget_set_sensitive (separator9, FALSE);
764
765   popup_about = gtk_menu_item_new_with_label ("");
766   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_about)->child),
767                                    _("_About..."));
768   gtk_widget_add_accelerator (popup_about, "activate_item", intf_popup_accels,
769                               tmp_key, 0, 0);
770   gtk_widget_ref (popup_about);
771   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about", popup_about,
772                             (GtkDestroyNotify) gtk_widget_unref);
773   gtk_widget_show (popup_about);
774   gtk_container_add (GTK_CONTAINER (intf_popup), popup_about);
775
776   popup_exit = gtk_menu_item_new_with_label ("");
777   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_exit)->child),
778                                    _("E_xit"));
779   gtk_widget_add_accelerator (popup_exit, "activate_item", intf_popup_accels,
780                               tmp_key, 0, 0);
781   gtk_widget_ref (popup_exit);
782   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit", popup_exit,
783                             (GtkDestroyNotify) gtk_widget_unref);
784   gtk_widget_show (popup_exit);
785   gtk_container_add (GTK_CONTAINER (intf_popup), popup_exit);
786
787   gtk_signal_connect (GTK_OBJECT (popup_play), "activate",
788                       GTK_SIGNAL_FUNC (on_popup_play_activate),
789                       NULL);
790   gtk_signal_connect (GTK_OBJECT (popup_pause), "activate",
791                       GTK_SIGNAL_FUNC (on_popup_pause_activate),
792                       NULL);
793   gtk_signal_connect (GTK_OBJECT (popup_slow), "activate",
794                       GTK_SIGNAL_FUNC (on_popup_slow_activate),
795                       NULL);
796   gtk_signal_connect (GTK_OBJECT (popup_fast), "activate",
797                       GTK_SIGNAL_FUNC (on_popup_fast_activate),
798                       NULL);
799   gtk_signal_connect (GTK_OBJECT (popup_open), "activate",
800                       GTK_SIGNAL_FUNC (on_popup_open_activate),
801                       NULL);
802   gtk_signal_connect (GTK_OBJECT (popup_disc), "activate",
803                       GTK_SIGNAL_FUNC (on_popup_disc_activate),
804                       NULL);
805   gtk_signal_connect (GTK_OBJECT (popup_about), "activate",
806                       GTK_SIGNAL_FUNC (on_popup_about_activate),
807                       NULL);
808   gtk_signal_connect (GTK_OBJECT (popup_exit), "activate",
809                       GTK_SIGNAL_FUNC (on_popup_exit_activate),
810                       NULL);
811
812   gtk_object_set_data (GTK_OBJECT (intf_popup), "tooltips", tooltips);
813
814   return intf_popup;
815 }
816
817 GtkWidget*
818 create_intf_about (void)
819 {
820   GtkWidget *intf_about;
821   GtkWidget *dialog_vbox1;
822   GtkWidget *vbox3;
823   GtkWidget *label14;
824   GtkWidget *label18;
825   GtkWidget *frame1;
826   GtkWidget *label16;
827   GtkWidget *label17;
828   GtkWidget *dialog_action_area;
829   GtkWidget *about_ok;
830
831   intf_about = gtk_dialog_new ();
832   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
833   gtk_container_set_border_width (GTK_CONTAINER (intf_about), 5);
834   gtk_window_set_title (GTK_WINDOW (intf_about), _("About"));
835   gtk_window_set_position (GTK_WINDOW (intf_about), GTK_WIN_POS_CENTER);
836   gtk_window_set_policy (GTK_WINDOW (intf_about), FALSE, FALSE, FALSE);
837
838   dialog_vbox1 = GTK_DIALOG (intf_about)->vbox;
839   gtk_object_set_data (GTK_OBJECT (intf_about), "dialog_vbox1", dialog_vbox1);
840   gtk_widget_show (dialog_vbox1);
841
842   vbox3 = gtk_vbox_new (FALSE, 0);
843   gtk_widget_ref (vbox3);
844   gtk_object_set_data_full (GTK_OBJECT (intf_about), "vbox3", vbox3,
845                             (GtkDestroyNotify) gtk_widget_unref);
846   gtk_widget_show (vbox3);
847   gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox3, TRUE, TRUE, 0);
848
849   label14 = gtk_label_new (_("VideoLAN Client"));
850   gtk_widget_ref (label14);
851   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label14", label14,
852                             (GtkDestroyNotify) gtk_widget_unref);
853   gtk_widget_show (label14);
854   gtk_box_pack_start (GTK_BOX (vbox3), label14, TRUE, TRUE, 0);
855   gtk_misc_set_padding (GTK_MISC (label14), 0, 10);
856
857   label18 = gtk_label_new (_("(C) 1996, 1997, 1998, 1999, 2000, 2001 - the VideoLAN Team"));
858   gtk_widget_ref (label18);
859   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label18", label18,
860                             (GtkDestroyNotify) gtk_widget_unref);
861   gtk_widget_show (label18);
862   gtk_box_pack_start (GTK_BOX (vbox3), label18, FALSE, FALSE, 0);
863   gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_LEFT);
864   gtk_misc_set_padding (GTK_MISC (label18), 0, 5);
865
866   frame1 = gtk_frame_new (_("Authors"));
867   gtk_widget_ref (frame1);
868   gtk_object_set_data_full (GTK_OBJECT (intf_about), "frame1", frame1,
869                             (GtkDestroyNotify) gtk_widget_unref);
870   gtk_widget_show (frame1);
871   gtk_box_pack_start (GTK_BOX (vbox3), frame1, FALSE, FALSE, 0);
872
873   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>"));
874   gtk_widget_ref (label16);
875   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label16", label16,
876                             (GtkDestroyNotify) gtk_widget_unref);
877   gtk_widget_show (label16);
878   gtk_container_add (GTK_CONTAINER (frame1), label16);
879   gtk_label_set_justify (GTK_LABEL (label16), GTK_JUSTIFY_LEFT);
880   gtk_misc_set_alignment (GTK_MISC (label16), 0.5, 0);
881   gtk_misc_set_padding (GTK_MISC (label16), 5, 5);
882
883   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."));
884   gtk_widget_ref (label17);
885   gtk_object_set_data_full (GTK_OBJECT (intf_about), "label17", label17,
886                             (GtkDestroyNotify) gtk_widget_unref);
887   gtk_widget_show (label17);
888   gtk_box_pack_start (GTK_BOX (vbox3), label17, FALSE, FALSE, 0);
889   gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_LEFT);
890   gtk_label_set_line_wrap (GTK_LABEL (label17), TRUE);
891   gtk_misc_set_padding (GTK_MISC (label17), 0, 5);
892
893   dialog_action_area = GTK_DIALOG (intf_about)->action_area;
894   gtk_object_set_data (GTK_OBJECT (intf_about), "dialog_action_area", dialog_action_area);
895   gtk_widget_show (dialog_action_area);
896   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area), 10);
897
898   about_ok = gtk_button_new_with_label (_("OK"));
899   gtk_widget_ref (about_ok);
900   gtk_object_set_data_full (GTK_OBJECT (intf_about), "about_ok", about_ok,
901                             (GtkDestroyNotify) gtk_widget_unref);
902   gtk_widget_show (about_ok);
903   gtk_box_pack_start (GTK_BOX (dialog_action_area), about_ok, FALSE, TRUE, 0);
904   GTK_WIDGET_SET_FLAGS (about_ok, GTK_CAN_DEFAULT);
905
906   gtk_signal_connect (GTK_OBJECT (about_ok), "clicked",
907                       GTK_SIGNAL_FUNC (on_about_ok_clicked),
908                       NULL);
909
910   gtk_widget_grab_default (about_ok);
911   return intf_about;
912 }
913
914 GtkWidget*
915 create_intf_fileopen (void)
916 {
917   GtkWidget *intf_fileopen;
918   GtkWidget *fileopen_ok;
919   GtkWidget *fileopen_cancel;
920
921   intf_fileopen = gtk_file_selection_new (_("Select File"));
922   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "intf_fileopen", intf_fileopen);
923   gtk_container_set_border_width (GTK_CONTAINER (intf_fileopen), 10);
924
925   fileopen_ok = GTK_FILE_SELECTION (intf_fileopen)->ok_button;
926   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_ok", fileopen_ok);
927   gtk_widget_show (fileopen_ok);
928   GTK_WIDGET_SET_FLAGS (fileopen_ok, GTK_CAN_DEFAULT);
929
930   fileopen_cancel = GTK_FILE_SELECTION (intf_fileopen)->cancel_button;
931   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_cancel", fileopen_cancel);
932   gtk_widget_show (fileopen_cancel);
933   GTK_WIDGET_SET_FLAGS (fileopen_cancel, GTK_CAN_DEFAULT);
934
935   gtk_signal_connect (GTK_OBJECT (intf_fileopen), "destroy",
936                       GTK_SIGNAL_FUNC (on_intf_fileopen_destroy),
937                       NULL);
938   gtk_signal_connect (GTK_OBJECT (fileopen_ok), "clicked",
939                       GTK_SIGNAL_FUNC (on_fileopen_ok_clicked),
940                       NULL);
941   gtk_signal_connect (GTK_OBJECT (fileopen_cancel), "clicked",
942                       GTK_SIGNAL_FUNC (on_fileopen_cancel_clicked),
943                       NULL);
944
945   return intf_fileopen;
946 }
947
948 GtkWidget*
949 create_intf_disc (void)
950 {
951   GtkWidget *intf_disc;
952   GtkWidget *dialog_vbox2;
953   GtkWidget *vbox4;
954   GtkWidget *hbox3;
955   GtkWidget *frame2;
956   GtkWidget *vbox5;
957   GSList *disc_group = NULL;
958   GtkWidget *disc_dvd;
959   GtkWidget *disc_vcd;
960   GtkWidget *frame3;
961   GtkWidget *table1;
962   GtkObject *disc_title_adj;
963   GtkWidget *disc_title;
964   GtkObject *disc_chapter_adj;
965   GtkWidget *disc_chapter;
966   GtkWidget *label20;
967   GtkWidget *label21;
968   GtkWidget *hbox2;
969   GtkWidget *label19;
970   GtkWidget *disc_name;
971   GtkWidget *dialog_action_area1;
972   GtkWidget *hbox1;
973   GtkWidget *disc_ok;
974   GtkWidget *disc_cancel;
975
976   intf_disc = gtk_dialog_new ();
977   gtk_object_set_data (GTK_OBJECT (intf_disc), "intf_disc", intf_disc);
978   gtk_window_set_title (GTK_WINDOW (intf_disc), _("Open Disc"));
979   gtk_window_set_policy (GTK_WINDOW (intf_disc), FALSE, FALSE, FALSE);
980
981   dialog_vbox2 = GTK_DIALOG (intf_disc)->vbox;
982   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_vbox2", dialog_vbox2);
983   gtk_widget_show (dialog_vbox2);
984   gtk_container_set_border_width (GTK_CONTAINER (dialog_vbox2), 5);
985
986   vbox4 = gtk_vbox_new (FALSE, 5);
987   gtk_widget_ref (vbox4);
988   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "vbox4", vbox4,
989                             (GtkDestroyNotify) gtk_widget_unref);
990   gtk_widget_show (vbox4);
991   gtk_box_pack_start (GTK_BOX (dialog_vbox2), vbox4, TRUE, TRUE, 0);
992   gtk_container_set_border_width (GTK_CONTAINER (vbox4), 5);
993
994   hbox3 = gtk_hbox_new (FALSE, 5);
995   gtk_widget_ref (hbox3);
996   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox3", hbox3,
997                             (GtkDestroyNotify) gtk_widget_unref);
998   gtk_widget_show (hbox3);
999   gtk_box_pack_start (GTK_BOX (vbox4), hbox3, TRUE, TRUE, 0);
1000
1001   frame2 = gtk_frame_new (_("Disc type"));
1002   gtk_widget_ref (frame2);
1003   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame2", frame2,
1004                             (GtkDestroyNotify) gtk_widget_unref);
1005   gtk_widget_show (frame2);
1006   gtk_box_pack_start (GTK_BOX (hbox3), frame2, TRUE, TRUE, 0);
1007
1008   vbox5 = gtk_vbox_new (FALSE, 0);
1009   gtk_widget_ref (vbox5);
1010   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "vbox5", vbox5,
1011                             (GtkDestroyNotify) gtk_widget_unref);
1012   gtk_widget_show (vbox5);
1013   gtk_container_add (GTK_CONTAINER (frame2), vbox5);
1014
1015   disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD"));
1016   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd));
1017   gtk_widget_ref (disc_dvd);
1018   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_dvd", disc_dvd,
1019                             (GtkDestroyNotify) gtk_widget_unref);
1020   gtk_widget_show (disc_dvd);
1021   gtk_box_pack_start (GTK_BOX (vbox5), disc_dvd, FALSE, FALSE, 0);
1022
1023   disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD"));
1024   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd));
1025   gtk_widget_ref (disc_vcd);
1026   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_vcd", disc_vcd,
1027                             (GtkDestroyNotify) gtk_widget_unref);
1028   gtk_widget_show (disc_vcd);
1029   gtk_box_pack_start (GTK_BOX (vbox5), disc_vcd, FALSE, FALSE, 0);
1030   gtk_widget_set_sensitive (disc_vcd, FALSE);
1031
1032   frame3 = gtk_frame_new (_("Starting position"));
1033   gtk_widget_ref (frame3);
1034   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame3", frame3,
1035                             (GtkDestroyNotify) gtk_widget_unref);
1036   gtk_widget_show (frame3);
1037   gtk_box_pack_start (GTK_BOX (hbox3), frame3, TRUE, TRUE, 0);
1038
1039   table1 = gtk_table_new (2, 2, FALSE);
1040   gtk_widget_ref (table1);
1041   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "table1", table1,
1042                             (GtkDestroyNotify) gtk_widget_unref);
1043   gtk_widget_show (table1);
1044   gtk_container_add (GTK_CONTAINER (frame3), table1);
1045   gtk_container_set_border_width (GTK_CONTAINER (table1), 5);
1046   gtk_table_set_row_spacings (GTK_TABLE (table1), 5);
1047   gtk_table_set_col_spacings (GTK_TABLE (table1), 5);
1048
1049   disc_title_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1050   disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0);
1051   gtk_widget_ref (disc_title);
1052   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_title", disc_title,
1053                             (GtkDestroyNotify) gtk_widget_unref);
1054   gtk_widget_show (disc_title);
1055   gtk_table_attach (GTK_TABLE (table1), disc_title, 1, 2, 0, 1,
1056                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1057                     (GtkAttachOptions) (0), 0, 0);
1058
1059   disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1060   disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0);
1061   gtk_widget_ref (disc_chapter);
1062   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_chapter", disc_chapter,
1063                             (GtkDestroyNotify) gtk_widget_unref);
1064   gtk_widget_show (disc_chapter);
1065   gtk_table_attach (GTK_TABLE (table1), disc_chapter, 1, 2, 1, 2,
1066                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1067                     (GtkAttachOptions) (0), 0, 0);
1068
1069   label20 = gtk_label_new (_("Chapter"));
1070   gtk_widget_ref (label20);
1071   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label20", label20,
1072                             (GtkDestroyNotify) gtk_widget_unref);
1073   gtk_widget_show (label20);
1074   gtk_table_attach (GTK_TABLE (table1), label20, 0, 1, 1, 2,
1075                     (GtkAttachOptions) (GTK_FILL),
1076                     (GtkAttachOptions) (0), 0, 0);
1077   gtk_misc_set_alignment (GTK_MISC (label20), 0, 0.5);
1078
1079   label21 = gtk_label_new (_("Title"));
1080   gtk_widget_ref (label21);
1081   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label21", label21,
1082                             (GtkDestroyNotify) gtk_widget_unref);
1083   gtk_widget_show (label21);
1084   gtk_table_attach (GTK_TABLE (table1), label21, 0, 1, 0, 1,
1085                     (GtkAttachOptions) (GTK_FILL),
1086                     (GtkAttachOptions) (0), 0, 0);
1087   gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5);
1088
1089   hbox2 = gtk_hbox_new (FALSE, 5);
1090   gtk_widget_ref (hbox2);
1091   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox2", hbox2,
1092                             (GtkDestroyNotify) gtk_widget_unref);
1093   gtk_widget_show (hbox2);
1094   gtk_box_pack_start (GTK_BOX (vbox4), hbox2, TRUE, TRUE, 0);
1095
1096   label19 = gtk_label_new (_("Device name"));
1097   gtk_widget_ref (label19);
1098   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label19", label19,
1099                             (GtkDestroyNotify) gtk_widget_unref);
1100   gtk_widget_show (label19);
1101   gtk_box_pack_start (GTK_BOX (hbox2), label19, FALSE, FALSE, 0);
1102
1103   disc_name = gtk_entry_new ();
1104   gtk_widget_ref (disc_name);
1105   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_name", disc_name,
1106                             (GtkDestroyNotify) gtk_widget_unref);
1107   gtk_widget_show (disc_name);
1108   gtk_box_pack_start (GTK_BOX (hbox2), disc_name, TRUE, TRUE, 0);
1109   gtk_entry_set_text (GTK_ENTRY (disc_name), _("/dev/dvd"));
1110
1111   dialog_action_area1 = GTK_DIALOG (intf_disc)->action_area;
1112   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_action_area1", dialog_action_area1);
1113   gtk_widget_show (dialog_action_area1);
1114   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 5);
1115
1116   hbox1 = gtk_hbox_new (TRUE, 5);
1117   gtk_widget_ref (hbox1);
1118   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox1", hbox1,
1119                             (GtkDestroyNotify) gtk_widget_unref);
1120   gtk_widget_show (hbox1);
1121   gtk_box_pack_end (GTK_BOX (dialog_action_area1), hbox1, FALSE, TRUE, 0);
1122
1123   disc_ok = gtk_button_new_with_label (_("OK"));
1124   gtk_widget_ref (disc_ok);
1125   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_ok", disc_ok,
1126                             (GtkDestroyNotify) gtk_widget_unref);
1127   gtk_widget_show (disc_ok);
1128   gtk_box_pack_start (GTK_BOX (hbox1), disc_ok, FALSE, TRUE, 0);
1129
1130   disc_cancel = gtk_button_new_with_label (_("Cancel"));
1131   gtk_widget_ref (disc_cancel);
1132   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_cancel", disc_cancel,
1133                             (GtkDestroyNotify) gtk_widget_unref);
1134   gtk_widget_show (disc_cancel);
1135   gtk_box_pack_start (GTK_BOX (hbox1), disc_cancel, FALSE, TRUE, 0);
1136
1137   gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled",
1138                       GTK_SIGNAL_FUNC (on_disc_dvd_toggled),
1139                       NULL);
1140   gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled",
1141                       GTK_SIGNAL_FUNC (on_disc_vcd_toggled),
1142                       NULL);
1143   gtk_signal_connect (GTK_OBJECT (disc_ok), "clicked",
1144                       GTK_SIGNAL_FUNC (on_disc_ok_clicked),
1145                       NULL);
1146   gtk_signal_connect (GTK_OBJECT (disc_cancel), "clicked",
1147                       GTK_SIGNAL_FUNC (on_disc_cancel_clicked),
1148                       NULL);
1149
1150   return intf_disc;
1151 }
1152