]> git.sesse.net Git - vlc/blob - plugins/gnome/gnome_interface.c
* Beginning of the built-in modules support.
[vlc] / plugins / gnome / gnome_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 <gnome.h>
15
16 #include "gnome_callbacks.h"
17 #include "gnome_interface.h"
18 #include "gnome_support.h"
19
20 static GnomeUIInfo menubar_file_menu_uiinfo[] =
21 {
22   {
23     GNOME_APP_UI_ITEM, N_("_Open File..."),
24     N_("Open a File"),
25     (gpointer) on_menubar_open_activate, NULL, NULL,
26     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
27     0, (GdkModifierType) 0, NULL
28   },
29   {
30     GNOME_APP_UI_ITEM, N_("Open _Disc..."),
31     N_("Open a DVD or VCD"),
32     (gpointer) on_menubar_disc_activate, NULL, NULL,
33     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
34     0, (GdkModifierType) 0, NULL
35   },
36   {
37     GNOME_APP_UI_ITEM, N_("_Network Stream..."),
38     N_("Select a Network Stream"),
39     (gpointer) on_menubar_network_activate, NULL, NULL,
40     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
41     0, (GdkModifierType) 0, NULL
42   },
43   GNOMEUIINFO_SEPARATOR,
44   GNOMEUIINFO_MENU_EXIT_ITEM (on_menubar_exit_activate, NULL),
45   GNOMEUIINFO_END
46 };
47
48 static GnomeUIInfo menubar_view_menu_uiinfo[] =
49 {
50   {
51     GNOME_APP_UI_ITEM, N_("_Title"),
52     NULL,
53     (gpointer) NULL, NULL, NULL,
54     GNOME_APP_PIXMAP_NONE, NULL,
55     0, (GdkModifierType) 0, NULL
56   },
57   {
58     GNOME_APP_UI_ITEM, N_("_Chapter"),
59     NULL,
60     (gpointer) NULL, NULL, NULL,
61     GNOME_APP_PIXMAP_NONE, NULL,
62     0, (GdkModifierType) 0, NULL
63   },
64   GNOMEUIINFO_SEPARATOR,
65   {
66     GNOME_APP_UI_ITEM, N_("_Playlist..."),
67     N_("Open the playlist window"),
68     (gpointer) on_menubar_playlist_activate, NULL, NULL,
69     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
70     0, (GdkModifierType) 0, NULL
71   },
72   {
73     GNOME_APP_UI_ITEM, N_("_Modules..."),
74     N_("Open the plugin manager"),
75     (gpointer) on_menubar_modules_activate, NULL, NULL,
76     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
77     0, (GdkModifierType) 0, NULL
78   },
79   GNOMEUIINFO_END
80 };
81
82 static GnomeUIInfo menubar_settings_menu_uiinfo[] =
83 {
84   {
85     GNOME_APP_UI_ITEM, N_("_Audio"),
86     N_("Select audio channel"),
87     (gpointer) NULL, NULL, NULL,
88     GNOME_APP_PIXMAP_NONE, NULL,
89     0, (GdkModifierType) 0, NULL
90   },
91   {
92     GNOME_APP_UI_ITEM, N_("_Subtitles"),
93     N_("Select subtitle unit"),
94     (gpointer) NULL, NULL, NULL,
95     GNOME_APP_PIXMAP_NONE, NULL,
96     0, (GdkModifierType) 0, NULL
97   },
98   GNOMEUIINFO_SEPARATOR,
99   GNOMEUIINFO_MENU_PREFERENCES_ITEM (on_menubar_preferences_activate, NULL),
100   GNOMEUIINFO_END
101 };
102
103 static GnomeUIInfo menubar_help_menu_uiinfo[] =
104 {
105   GNOMEUIINFO_MENU_ABOUT_ITEM (on_menubar_about_activate, NULL),
106   GNOMEUIINFO_END
107 };
108
109 static GnomeUIInfo menubar_uiinfo[] =
110 {
111   GNOMEUIINFO_MENU_FILE_TREE (menubar_file_menu_uiinfo),
112   GNOMEUIINFO_MENU_VIEW_TREE (menubar_view_menu_uiinfo),
113   GNOMEUIINFO_MENU_SETTINGS_TREE (menubar_settings_menu_uiinfo),
114   GNOMEUIINFO_MENU_HELP_TREE (menubar_help_menu_uiinfo),
115   GNOMEUIINFO_END
116 };
117
118 GtkWidget*
119 create_intf_window (void)
120 {
121   GtkWidget *intf_window;
122   GtkWidget *dockitem;
123   GtkWidget *toolbar;
124   GtkWidget *tmp_toolbar_icon;
125   GtkWidget *toolbar_file;
126   GtkWidget *toolbar_disc;
127   GtkWidget *toolbar_network;
128   GtkWidget *toolbar_back;
129   GtkWidget *toolbar_stop;
130   GtkWidget *toolbar_play;
131   GtkWidget *toolbar_pause;
132   GtkWidget *toolbar_slow;
133   GtkWidget *toolbar_fast;
134   GtkWidget *toolbar_playlist;
135   GtkWidget *toolbar_prev;
136   GtkWidget *toolbar_next;
137   GtkWidget *vbox2;
138   GtkWidget *hbox4;
139   GtkWidget *label_date;
140   GtkWidget *label_status;
141   GtkWidget *label_bar;
142   GtkWidget *slider;
143   GtkWidget *file_box;
144   GtkWidget *label_file;
145   GtkWidget *dvd_box;
146   GtkWidget *title_chapter_box;
147   GtkWidget *label19;
148   GtkWidget *label_title;
149   GtkWidget *button_title_prev;
150   GtkWidget *button_title_next;
151   GtkWidget *dvd_chapter_box;
152   GtkWidget *label20;
153   GtkWidget *label_chapter;
154   GtkWidget *button_chapter_prev;
155   GtkWidget *button_chapter_next;
156   GtkWidget *network_box;
157   GtkWidget *label_network;
158   GtkWidget *button_network_channel_1;
159   GtkWidget *button_network_channel_2;
160   GtkWidget *button_network_channel_3;
161   GtkWidget *button_network_channel_4;
162   GtkWidget *button_network_channel_5;
163   GtkWidget *button_network_channel_6;
164   GtkWidget *appbar;
165   GtkTooltips *tooltips;
166
167   tooltips = gtk_tooltips_new ();
168
169   intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client"));
170   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
171
172   dockitem = GNOME_APP (intf_window)->dock;
173   gtk_widget_ref (dockitem);
174   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem,
175                             (GtkDestroyNotify) gtk_widget_unref);
176   gtk_widget_show (dockitem);
177
178   gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo);
179
180   gtk_widget_ref (menubar_uiinfo[0].widget);
181   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file",
182                             menubar_uiinfo[0].widget,
183                             (GtkDestroyNotify) gtk_widget_unref);
184
185   gtk_widget_ref (menubar_file_menu_uiinfo[0].widget);
186   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open",
187                             menubar_file_menu_uiinfo[0].widget,
188                             (GtkDestroyNotify) gtk_widget_unref);
189
190   gtk_widget_ref (menubar_file_menu_uiinfo[1].widget);
191   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc",
192                             menubar_file_menu_uiinfo[1].widget,
193                             (GtkDestroyNotify) gtk_widget_unref);
194
195   gtk_widget_ref (menubar_file_menu_uiinfo[2].widget);
196   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network",
197                             menubar_file_menu_uiinfo[2].widget,
198                             (GtkDestroyNotify) gtk_widget_unref);
199
200   gtk_widget_ref (menubar_file_menu_uiinfo[3].widget);
201   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator1",
202                             menubar_file_menu_uiinfo[3].widget,
203                             (GtkDestroyNotify) gtk_widget_unref);
204
205   gtk_widget_ref (menubar_file_menu_uiinfo[4].widget);
206   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit",
207                             menubar_file_menu_uiinfo[4].widget,
208                             (GtkDestroyNotify) gtk_widget_unref);
209
210   gtk_widget_ref (menubar_uiinfo[1].widget);
211   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view",
212                             menubar_uiinfo[1].widget,
213                             (GtkDestroyNotify) gtk_widget_unref);
214
215   gtk_widget_ref (menubar_view_menu_uiinfo[0].widget);
216   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title",
217                             menubar_view_menu_uiinfo[0].widget,
218                             (GtkDestroyNotify) gtk_widget_unref);
219   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[0].widget, FALSE);
220
221   gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
222   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter",
223                             menubar_view_menu_uiinfo[1].widget,
224                             (GtkDestroyNotify) gtk_widget_unref);
225   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[1].widget, FALSE);
226
227   gtk_widget_ref (menubar_view_menu_uiinfo[2].widget);
228   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7",
229                             menubar_view_menu_uiinfo[2].widget,
230                             (GtkDestroyNotify) gtk_widget_unref);
231
232   gtk_widget_ref (menubar_view_menu_uiinfo[3].widget);
233   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
234                             menubar_view_menu_uiinfo[3].widget,
235                             (GtkDestroyNotify) gtk_widget_unref);
236   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[3].widget, FALSE);
237
238   gtk_widget_ref (menubar_view_menu_uiinfo[4].widget);
239   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
240                             menubar_view_menu_uiinfo[4].widget,
241                             (GtkDestroyNotify) gtk_widget_unref);
242   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[4].widget, FALSE);
243
244   gtk_widget_ref (menubar_uiinfo[2].widget);
245   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
246                             menubar_uiinfo[2].widget,
247                             (GtkDestroyNotify) gtk_widget_unref);
248
249   gtk_widget_ref (menubar_settings_menu_uiinfo[0].widget);
250   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio",
251                             menubar_settings_menu_uiinfo[0].widget,
252                             (GtkDestroyNotify) gtk_widget_unref);
253   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[0].widget, FALSE);
254
255   gtk_widget_ref (menubar_settings_menu_uiinfo[1].widget);
256   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subtitle",
257                             menubar_settings_menu_uiinfo[1].widget,
258                             (GtkDestroyNotify) gtk_widget_unref);
259   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[1].widget, FALSE);
260
261   gtk_widget_ref (menubar_settings_menu_uiinfo[2].widget);
262   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator5",
263                             menubar_settings_menu_uiinfo[2].widget,
264                             (GtkDestroyNotify) gtk_widget_unref);
265
266   gtk_widget_ref (menubar_settings_menu_uiinfo[3].widget);
267   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
268                             menubar_settings_menu_uiinfo[3].widget,
269                             (GtkDestroyNotify) gtk_widget_unref);
270   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[3].widget, FALSE);
271
272   gtk_widget_ref (menubar_uiinfo[3].widget);
273   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
274                             menubar_uiinfo[3].widget,
275                             (GtkDestroyNotify) gtk_widget_unref);
276
277   gtk_widget_ref (menubar_help_menu_uiinfo[0].widget);
278   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about",
279                             menubar_help_menu_uiinfo[0].widget,
280                             (GtkDestroyNotify) gtk_widget_unref);
281
282   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
283   gtk_widget_ref (toolbar);
284   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
285                             (GtkDestroyNotify) gtk_widget_unref);
286   gtk_widget_show (toolbar);
287   gnome_app_add_toolbar (GNOME_APP (intf_window), GTK_TOOLBAR (toolbar), "toolbar",
288                                 GNOME_DOCK_ITEM_BEH_EXCLUSIVE,
289                                 GNOME_DOCK_TOP, 1, 0, 2);
290   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
291   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
292   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
293
294   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_OPEN);
295   toolbar_file = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
296                                 GTK_TOOLBAR_CHILD_BUTTON,
297                                 NULL,
298                                 _("Open"),
299                                 _("Open a File"), NULL,
300                                 tmp_toolbar_icon, NULL, NULL);
301   gtk_widget_ref (toolbar_file);
302   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_file", toolbar_file,
303                             (GtkDestroyNotify) gtk_widget_unref);
304   gtk_widget_show (toolbar_file);
305
306   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_CDROM);
307   toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
308                                 GTK_TOOLBAR_CHILD_BUTTON,
309                                 NULL,
310                                 _("Disc"),
311                                 _("Open a DVD or VCD"), NULL,
312                                 tmp_toolbar_icon, NULL, NULL);
313   gtk_widget_ref (toolbar_disc);
314   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc,
315                             (GtkDestroyNotify) gtk_widget_unref);
316   gtk_widget_show (toolbar_disc);
317
318   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_REFRESH);
319   toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
320                                 GTK_TOOLBAR_CHILD_BUTTON,
321                                 NULL,
322                                 _("Net"),
323                                 _("Select a Network Stream"), NULL,
324                                 tmp_toolbar_icon, NULL, NULL);
325   gtk_widget_ref (toolbar_network);
326   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network,
327                             (GtkDestroyNotify) gtk_widget_unref);
328   gtk_widget_show (toolbar_network);
329
330   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
331
332   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BACK);
333   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
334                                 GTK_TOOLBAR_CHILD_BUTTON,
335                                 NULL,
336                                 _("Back"),
337                                 _("Go Backwards"), NULL,
338                                 tmp_toolbar_icon, NULL, NULL);
339   gtk_widget_ref (toolbar_back);
340   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
341                             (GtkDestroyNotify) gtk_widget_unref);
342   gtk_widget_show (toolbar_back);
343   gtk_widget_set_sensitive (toolbar_back, FALSE);
344
345   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP);
346   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
347                                 GTK_TOOLBAR_CHILD_BUTTON,
348                                 NULL,
349                                 _("Stop"),
350                                 _("Stop Stream"), NULL,
351                                 tmp_toolbar_icon, NULL, NULL);
352   gtk_widget_ref (toolbar_stop);
353   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
354                             (GtkDestroyNotify) gtk_widget_unref);
355   gtk_widget_show (toolbar_stop);
356   gtk_widget_set_sensitive (toolbar_stop, FALSE);
357
358   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD);
359   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
360                                 GTK_TOOLBAR_CHILD_BUTTON,
361                                 NULL,
362                                 _("Play"),
363                                 _("Play Stream"), NULL,
364                                 tmp_toolbar_icon, NULL, NULL);
365   gtk_widget_ref (toolbar_play);
366   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
367                             (GtkDestroyNotify) gtk_widget_unref);
368   gtk_widget_show (toolbar_play);
369
370   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM);
371   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
372                                 GTK_TOOLBAR_CHILD_BUTTON,
373                                 NULL,
374                                 _("Pause"),
375                                 _("Pause Stream"), NULL,
376                                 tmp_toolbar_icon, NULL, NULL);
377   gtk_widget_ref (toolbar_pause);
378   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
379                             (GtkDestroyNotify) gtk_widget_unref);
380   gtk_widget_show (toolbar_pause);
381
382   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP);
383   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
384                                 GTK_TOOLBAR_CHILD_BUTTON,
385                                 NULL,
386                                 _("Slow"),
387                                 _("Play Slower"), NULL,
388                                 tmp_toolbar_icon, NULL, NULL);
389   gtk_widget_ref (toolbar_slow);
390   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
391                             (GtkDestroyNotify) gtk_widget_unref);
392   gtk_widget_show (toolbar_slow);
393
394   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER);
395   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
396                                 GTK_TOOLBAR_CHILD_BUTTON,
397                                 NULL,
398                                 _("Fast"),
399                                 _("Play Faster"), NULL,
400                                 tmp_toolbar_icon, NULL, NULL);
401   gtk_widget_ref (toolbar_fast);
402   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
403                             (GtkDestroyNotify) gtk_widget_unref);
404   gtk_widget_show (toolbar_fast);
405
406   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
407
408   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_INDEX);
409   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
410                                 GTK_TOOLBAR_CHILD_BUTTON,
411                                 NULL,
412                                 _("Playlist"),
413                                 _("Open Playlist"), NULL,
414                                 tmp_toolbar_icon, NULL, NULL);
415   gtk_widget_ref (toolbar_playlist);
416   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
417                             (GtkDestroyNotify) gtk_widget_unref);
418   gtk_widget_show (toolbar_playlist);
419   gtk_widget_set_sensitive (toolbar_playlist, FALSE);
420
421   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
422   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
423                                 GTK_TOOLBAR_CHILD_BUTTON,
424                                 NULL,
425                                 _("Prev"),
426                                 _("Previous File"), NULL,
427                                 tmp_toolbar_icon, NULL, NULL);
428   gtk_widget_ref (toolbar_prev);
429   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
430                             (GtkDestroyNotify) gtk_widget_unref);
431   gtk_widget_show (toolbar_prev);
432
433   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_LAST);
434   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
435                                 GTK_TOOLBAR_CHILD_BUTTON,
436                                 NULL,
437                                 _("Next"),
438                                 _("Next File"), NULL,
439                                 tmp_toolbar_icon, NULL, NULL);
440   gtk_widget_ref (toolbar_next);
441   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
442                             (GtkDestroyNotify) gtk_widget_unref);
443   gtk_widget_show (toolbar_next);
444
445   vbox2 = gtk_vbox_new (FALSE, 0);
446   gtk_widget_ref (vbox2);
447   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox2", vbox2,
448                             (GtkDestroyNotify) gtk_widget_unref);
449   gtk_widget_show (vbox2);
450   gnome_app_set_contents (GNOME_APP (intf_window), vbox2);
451
452   hbox4 = gtk_hbox_new (TRUE, 0);
453   gtk_widget_ref (hbox4);
454   gtk_object_set_data_full (GTK_OBJECT (intf_window), "hbox4", hbox4,
455                             (GtkDestroyNotify) gtk_widget_unref);
456   gtk_widget_show (hbox4);
457   gtk_box_pack_start (GTK_BOX (vbox2), hbox4, TRUE, TRUE, 0);
458
459   label_date = gtk_label_new (_("-:--:--"));
460   gtk_widget_ref (label_date);
461   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_date", label_date,
462                             (GtkDestroyNotify) gtk_widget_unref);
463   gtk_widget_show (label_date);
464   gtk_box_pack_start (GTK_BOX (hbox4), label_date, FALSE, FALSE, 0);
465
466   label_status = gtk_label_new (_("Status: foo"));
467   gtk_widget_ref (label_status);
468   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
469                             (GtkDestroyNotify) gtk_widget_unref);
470   gtk_widget_show (label_status);
471   gtk_box_pack_start (GTK_BOX (hbox4), label_status, TRUE, TRUE, 0);
472
473   label_bar = gtk_label_new (_("Bar: baz"));
474   gtk_widget_ref (label_bar);
475   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_bar", label_bar,
476                             (GtkDestroyNotify) gtk_widget_unref);
477   gtk_widget_show (label_bar);
478   gtk_box_pack_start (GTK_BOX (hbox4), label_bar, FALSE, FALSE, 0);
479
480   slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
481   gtk_widget_ref (slider);
482   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
483                             (GtkDestroyNotify) gtk_widget_unref);
484   gtk_widget_show (slider);
485   gtk_box_pack_start (GTK_BOX (vbox2), slider, TRUE, TRUE, 0);
486   gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
487   gtk_scale_set_digits (GTK_SCALE (slider), 3);
488
489   file_box = gtk_hbox_new (FALSE, 0);
490   gtk_widget_ref (file_box);
491   gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box,
492                             (GtkDestroyNotify) gtk_widget_unref);
493   gtk_widget_show (file_box);
494   gtk_box_pack_start (GTK_BOX (vbox2), file_box, TRUE, TRUE, 0);
495
496   label_file = gtk_label_new (_("Vlc File Mode"));
497   gtk_widget_ref (label_file);
498   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_file", label_file,
499                             (GtkDestroyNotify) gtk_widget_unref);
500   gtk_widget_show (label_file);
501   gtk_box_pack_start (GTK_BOX (file_box), label_file, TRUE, TRUE, 0);
502   gtk_widget_set_usize (label_file, -2, 24);
503
504   dvd_box = gtk_hbox_new (FALSE, 0);
505   gtk_widget_ref (dvd_box);
506   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box,
507                             (GtkDestroyNotify) gtk_widget_unref);
508   gtk_box_pack_start (GTK_BOX (vbox2), dvd_box, TRUE, TRUE, 0);
509   gtk_widget_set_usize (dvd_box, -2, 24);
510
511   title_chapter_box = gtk_hbox_new (FALSE, 10);
512   gtk_widget_ref (title_chapter_box);
513   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_chapter_box", title_chapter_box,
514                             (GtkDestroyNotify) gtk_widget_unref);
515   gtk_widget_show (title_chapter_box);
516   gtk_box_pack_start (GTK_BOX (dvd_box), title_chapter_box, TRUE, FALSE, 0);
517
518   label19 = gtk_label_new (_("Title:"));
519   gtk_widget_ref (label19);
520   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label19", label19,
521                             (GtkDestroyNotify) gtk_widget_unref);
522   gtk_widget_show (label19);
523   gtk_box_pack_start (GTK_BOX (title_chapter_box), label19, FALSE, FALSE, 0);
524
525   label_title = gtk_label_new (_("--"));
526   gtk_widget_ref (label_title);
527   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_title", label_title,
528                             (GtkDestroyNotify) gtk_widget_unref);
529   gtk_widget_show (label_title);
530   gtk_box_pack_start (GTK_BOX (title_chapter_box), label_title, FALSE, FALSE, 0);
531
532   button_title_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV);
533   gtk_widget_ref (button_title_prev);
534   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_prev", button_title_prev,
535                             (GtkDestroyNotify) gtk_widget_unref);
536   gtk_widget_show (button_title_prev);
537   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0);
538   gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL);
539
540   button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
541   gtk_widget_ref (button_title_next);
542   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_next", button_title_next,
543                             (GtkDestroyNotify) gtk_widget_unref);
544   gtk_widget_show (button_title_next);
545   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0);
546
547   dvd_chapter_box = gtk_hbox_new (FALSE, 10);
548   gtk_widget_ref (dvd_chapter_box);
549   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_chapter_box", dvd_chapter_box,
550                             (GtkDestroyNotify) gtk_widget_unref);
551   gtk_widget_show (dvd_chapter_box);
552   gtk_box_pack_start (GTK_BOX (dvd_box), dvd_chapter_box, TRUE, FALSE, 0);
553
554   label20 = gtk_label_new (_("Chapter:"));
555   gtk_widget_ref (label20);
556   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label20", label20,
557                             (GtkDestroyNotify) gtk_widget_unref);
558   gtk_widget_show (label20);
559   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label20, FALSE, FALSE, 0);
560
561   label_chapter = gtk_label_new (_("--"));
562   gtk_widget_ref (label_chapter);
563   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_chapter", label_chapter,
564                             (GtkDestroyNotify) gtk_widget_unref);
565   gtk_widget_show (label_chapter);
566   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label_chapter, FALSE, FALSE, 0);
567
568   button_chapter_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV);
569   gtk_widget_ref (button_chapter_prev);
570   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_prev", button_chapter_prev,
571                             (GtkDestroyNotify) gtk_widget_unref);
572   gtk_widget_show (button_chapter_prev);
573   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0);
574   gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL);
575
576   button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
577   gtk_widget_ref (button_chapter_next);
578   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_next", button_chapter_next,
579                             (GtkDestroyNotify) gtk_widget_unref);
580   gtk_widget_show (button_chapter_next);
581   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0);
582   gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL);
583
584   network_box = gtk_hbox_new (FALSE, 0);
585   gtk_widget_ref (network_box);
586   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box,
587                             (GtkDestroyNotify) gtk_widget_unref);
588   gtk_box_pack_start (GTK_BOX (vbox2), network_box, TRUE, TRUE, 0);
589   gtk_widget_set_usize (network_box, -2, 24);
590
591   label_network = gtk_label_new (_("Network Channel:"));
592   gtk_widget_ref (label_network);
593   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_network", label_network,
594                             (GtkDestroyNotify) gtk_widget_unref);
595   gtk_widget_show (label_network);
596   gtk_box_pack_start (GTK_BOX (network_box), label_network, TRUE, FALSE, 0);
597
598   button_network_channel_1 = gtk_toggle_button_new_with_label (_("Channel 1"));
599   gtk_widget_ref (button_network_channel_1);
600   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_network_channel_1", button_network_channel_1,
601                             (GtkDestroyNotify) gtk_widget_unref);
602   gtk_widget_show (button_network_channel_1);
603   gtk_box_pack_start (GTK_BOX (network_box), button_network_channel_1, FALSE, TRUE, 2);
604   gtk_button_set_relief (GTK_BUTTON (button_network_channel_1), GTK_RELIEF_HALF);
605   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button_network_channel_1), TRUE);
606
607   button_network_channel_2 = gtk_toggle_button_new_with_label (_("Channel 2"));
608   gtk_widget_ref (button_network_channel_2);
609   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_network_channel_2", button_network_channel_2,
610                             (GtkDestroyNotify) gtk_widget_unref);
611   gtk_widget_show (button_network_channel_2);
612   gtk_box_pack_start (GTK_BOX (network_box), button_network_channel_2, FALSE, TRUE, 2);
613   gtk_widget_set_sensitive (button_network_channel_2, FALSE);
614   gtk_button_set_relief (GTK_BUTTON (button_network_channel_2), GTK_RELIEF_HALF);
615
616   button_network_channel_3 = gtk_toggle_button_new_with_label (_("Channel 3"));
617   gtk_widget_ref (button_network_channel_3);
618   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_network_channel_3", button_network_channel_3,
619                             (GtkDestroyNotify) gtk_widget_unref);
620   gtk_widget_show (button_network_channel_3);
621   gtk_box_pack_start (GTK_BOX (network_box), button_network_channel_3, FALSE, TRUE, 2);
622   gtk_widget_set_sensitive (button_network_channel_3, FALSE);
623   gtk_button_set_relief (GTK_BUTTON (button_network_channel_3), GTK_RELIEF_HALF);
624
625   button_network_channel_4 = gtk_toggle_button_new_with_label (_("Channel 4"));
626   gtk_widget_ref (button_network_channel_4);
627   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_network_channel_4", button_network_channel_4,
628                             (GtkDestroyNotify) gtk_widget_unref);
629   gtk_widget_show (button_network_channel_4);
630   gtk_box_pack_start (GTK_BOX (network_box), button_network_channel_4, FALSE, TRUE, 2);
631   gtk_widget_set_sensitive (button_network_channel_4, FALSE);
632   gtk_button_set_relief (GTK_BUTTON (button_network_channel_4), GTK_RELIEF_HALF);
633
634   button_network_channel_5 = gtk_toggle_button_new_with_label (_("Channel 5"));
635   gtk_widget_ref (button_network_channel_5);
636   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_network_channel_5", button_network_channel_5,
637                             (GtkDestroyNotify) gtk_widget_unref);
638   gtk_widget_show (button_network_channel_5);
639   gtk_box_pack_start (GTK_BOX (network_box), button_network_channel_5, FALSE, TRUE, 2);
640   gtk_widget_set_sensitive (button_network_channel_5, FALSE);
641   gtk_button_set_relief (GTK_BUTTON (button_network_channel_5), GTK_RELIEF_HALF);
642
643   button_network_channel_6 = gtk_toggle_button_new_with_label (_("Channel 6"));
644   gtk_widget_ref (button_network_channel_6);
645   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_network_channel_6", button_network_channel_6,
646                             (GtkDestroyNotify) gtk_widget_unref);
647   gtk_widget_show (button_network_channel_6);
648   gtk_box_pack_start (GTK_BOX (network_box), button_network_channel_6, FALSE, TRUE, 2);
649   gtk_widget_set_sensitive (button_network_channel_6, FALSE);
650   gtk_button_set_relief (GTK_BUTTON (button_network_channel_6), GTK_RELIEF_HALF);
651
652   appbar = gnome_appbar_new (TRUE, TRUE, GNOME_PREFERENCES_NEVER);
653   gtk_widget_ref (appbar);
654   gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar,
655                             (GtkDestroyNotify) gtk_widget_unref);
656   gtk_widget_show (appbar);
657   gnome_app_set_statusbar (GNOME_APP (intf_window), appbar);
658
659   gtk_signal_connect (GTK_OBJECT (intf_window), "destroy",
660                       GTK_SIGNAL_FUNC (on_intf_window_destroy),
661                       NULL);
662   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
663                       GTK_SIGNAL_FUNC (on_intf_window_drag_data_received),
664                       NULL);
665   gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
666   gtk_signal_connect (GTK_OBJECT (toolbar_file), "clicked",
667                       GTK_SIGNAL_FUNC (on_toolbar_open_clicked),
668                       NULL);
669   gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
670                       GTK_SIGNAL_FUNC (on_toolbar_disc_clicked),
671                       NULL);
672   gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked",
673                       GTK_SIGNAL_FUNC (on_toolbar_network_clicked),
674                       NULL);
675   gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
676                       GTK_SIGNAL_FUNC (on_toolbar_back_clicked),
677                       NULL);
678   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
679                       GTK_SIGNAL_FUNC (on_toolbar_stop_clicked),
680                       NULL);
681   gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
682                       GTK_SIGNAL_FUNC (on_toolbar_play_clicked),
683                       NULL);
684   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
685                       GTK_SIGNAL_FUNC (on_toolbar_pause_clicked),
686                       NULL);
687   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
688                       GTK_SIGNAL_FUNC (on_toolbar_slow_clicked),
689                       NULL);
690   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
691                       GTK_SIGNAL_FUNC (on_toolbar_fast_clicked),
692                       NULL);
693   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
694                       GTK_SIGNAL_FUNC (on_toolbar_playlist_clicked),
695                       NULL);
696   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
697                       GTK_SIGNAL_FUNC (on_toolbar_prev_clicked),
698                       NULL);
699   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
700                       GTK_SIGNAL_FUNC (on_toolbar_next_clicked),
701                       NULL);
702   gtk_signal_connect (GTK_OBJECT (slider), "button_press_event",
703                       GTK_SIGNAL_FUNC (on_slider_button_press_event),
704                       NULL);
705   gtk_signal_connect (GTK_OBJECT (slider), "button_release_event",
706                       GTK_SIGNAL_FUNC (on_slider_button_release_event),
707                       NULL);
708   gtk_signal_connect (GTK_OBJECT (button_title_prev), "clicked",
709                       GTK_SIGNAL_FUNC (on_button_title_prev_clicked),
710                       NULL);
711   gtk_signal_connect (GTK_OBJECT (button_title_next), "clicked",
712                       GTK_SIGNAL_FUNC (on_button_title_next_clicked),
713                       NULL);
714   gtk_signal_connect (GTK_OBJECT (button_chapter_prev), "clicked",
715                       GTK_SIGNAL_FUNC (on_button_chapter_prev_clicked),
716                       NULL);
717   gtk_signal_connect (GTK_OBJECT (button_chapter_next), "clicked",
718                       GTK_SIGNAL_FUNC (on_button_chapter_next_clicked),
719                       NULL);
720
721   gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips);
722
723   return intf_window;
724 }
725
726 static GnomeUIInfo popup_file_menu_uiinfo[] =
727 {
728   {
729     GNOME_APP_UI_ITEM, N_("_Open File..."),
730     N_("Open a File"),
731     (gpointer) on_popup_open_activate, NULL, NULL,
732     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
733     0, (GdkModifierType) 0, NULL
734   },
735   {
736     GNOME_APP_UI_ITEM, N_("Open _Disc..."),
737     N_("Open a DVD or VCD"),
738     (gpointer) on_popup_disc_activate, NULL, NULL,
739     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
740     0, (GdkModifierType) 0, NULL
741   },
742   {
743     GNOME_APP_UI_ITEM, N_("_Network Stream..."),
744     N_("Select a Network Stream"),
745     (gpointer) on_popup_network_activate, NULL, NULL,
746     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
747     0, (GdkModifierType) 0, NULL
748   },
749   GNOMEUIINFO_SEPARATOR,
750   GNOMEUIINFO_MENU_ABOUT_ITEM (on_popup_about_activate, NULL),
751   GNOMEUIINFO_END
752 };
753
754 static GnomeUIInfo intf_popup_uiinfo[] =
755 {
756   {
757     GNOME_APP_UI_ITEM, N_("_Play"),
758     NULL,
759     (gpointer) on_popup_play_activate, NULL, NULL,
760     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
761     0, (GdkModifierType) 0, NULL
762   },
763   {
764     GNOME_APP_UI_ITEM, N_("Pause"),
765     NULL,
766     (gpointer) on_popup_pause_activate, NULL, NULL,
767     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
768     0, (GdkModifierType) 0, NULL
769   },
770   {
771     GNOME_APP_UI_ITEM, N_("Slow"),
772     NULL,
773     (gpointer) on_popup_slow_activate, NULL, NULL,
774     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP,
775     0, (GdkModifierType) 0, NULL
776   },
777   {
778     GNOME_APP_UI_ITEM, N_("Fast"),
779     NULL,
780     (gpointer) on_popup_fast_activate, NULL, NULL,
781     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER,
782     0, (GdkModifierType) 0, NULL
783   },
784   GNOMEUIINFO_SEPARATOR,
785   {
786     GNOME_APP_UI_ITEM, N_("_Navigation"),
787     N_("Navigate through titles and chapters"),
788     (gpointer) NULL, NULL, NULL,
789     GNOME_APP_PIXMAP_NONE, NULL,
790     0, (GdkModifierType) 0, NULL
791   },
792   {
793     GNOME_APP_UI_ITEM, N_("_Audio"),
794     N_("Select audio channel"),
795     (gpointer) NULL, NULL, NULL,
796     GNOME_APP_PIXMAP_NONE, NULL,
797     0, (GdkModifierType) 0, NULL
798   },
799   {
800     GNOME_APP_UI_ITEM, N_("_Subtitles"),
801     N_("Select subtitle channel"),
802     (gpointer) NULL, NULL, NULL,
803     GNOME_APP_PIXMAP_NONE, NULL,
804     0, (GdkModifierType) 0, NULL
805   },
806   GNOMEUIINFO_MENU_FILE_TREE (popup_file_menu_uiinfo),
807   GNOMEUIINFO_SEPARATOR,
808   GNOMEUIINFO_MENU_EXIT_ITEM (on_popup_exit_activate, NULL),
809   GNOMEUIINFO_END
810 };
811
812 GtkWidget*
813 create_intf_popup (void)
814 {
815   GtkWidget *intf_popup;
816
817   intf_popup = gtk_menu_new ();
818   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
819   gnome_app_fill_menu (GTK_MENU_SHELL (intf_popup), intf_popup_uiinfo,
820                        NULL, FALSE, 0);
821
822   gtk_widget_ref (intf_popup_uiinfo[0].widget);
823   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play",
824                             intf_popup_uiinfo[0].widget,
825                             (GtkDestroyNotify) gtk_widget_unref);
826
827   gtk_widget_ref (intf_popup_uiinfo[1].widget);
828   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause",
829                             intf_popup_uiinfo[1].widget,
830                             (GtkDestroyNotify) gtk_widget_unref);
831
832   gtk_widget_ref (intf_popup_uiinfo[2].widget);
833   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
834                             intf_popup_uiinfo[2].widget,
835                             (GtkDestroyNotify) gtk_widget_unref);
836
837   gtk_widget_ref (intf_popup_uiinfo[3].widget);
838   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
839                             intf_popup_uiinfo[3].widget,
840                             (GtkDestroyNotify) gtk_widget_unref);
841
842   gtk_widget_ref (intf_popup_uiinfo[4].widget);
843   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
844                             intf_popup_uiinfo[4].widget,
845                             (GtkDestroyNotify) gtk_widget_unref);
846
847   gtk_widget_ref (intf_popup_uiinfo[5].widget);
848   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation",
849                             intf_popup_uiinfo[5].widget,
850                             (GtkDestroyNotify) gtk_widget_unref);
851   gtk_widget_set_sensitive (intf_popup_uiinfo[5].widget, FALSE);
852
853   gtk_widget_ref (intf_popup_uiinfo[6].widget);
854   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio",
855                             intf_popup_uiinfo[6].widget,
856                             (GtkDestroyNotify) gtk_widget_unref);
857   gtk_widget_set_sensitive (intf_popup_uiinfo[6].widget, FALSE);
858
859   gtk_widget_ref (intf_popup_uiinfo[7].widget);
860   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subtitle",
861                             intf_popup_uiinfo[7].widget,
862                             (GtkDestroyNotify) gtk_widget_unref);
863   gtk_widget_set_sensitive (intf_popup_uiinfo[7].widget, FALSE);
864
865   gtk_widget_ref (intf_popup_uiinfo[8].widget);
866   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file",
867                             intf_popup_uiinfo[8].widget,
868                             (GtkDestroyNotify) gtk_widget_unref);
869
870   gtk_widget_ref (popup_file_menu_uiinfo[0].widget);
871   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open",
872                             popup_file_menu_uiinfo[0].widget,
873                             (GtkDestroyNotify) gtk_widget_unref);
874
875   gtk_widget_ref (popup_file_menu_uiinfo[1].widget);
876   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc",
877                             popup_file_menu_uiinfo[1].widget,
878                             (GtkDestroyNotify) gtk_widget_unref);
879
880   gtk_widget_ref (popup_file_menu_uiinfo[2].widget);
881   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network",
882                             popup_file_menu_uiinfo[2].widget,
883                             (GtkDestroyNotify) gtk_widget_unref);
884
885   gtk_widget_ref (popup_file_menu_uiinfo[3].widget);
886   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator4",
887                             popup_file_menu_uiinfo[3].widget,
888                             (GtkDestroyNotify) gtk_widget_unref);
889
890   gtk_widget_ref (popup_file_menu_uiinfo[4].widget);
891   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about",
892                             popup_file_menu_uiinfo[4].widget,
893                             (GtkDestroyNotify) gtk_widget_unref);
894
895   gtk_widget_ref (intf_popup_uiinfo[9].widget);
896   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2",
897                             intf_popup_uiinfo[9].widget,
898                             (GtkDestroyNotify) gtk_widget_unref);
899
900   gtk_widget_ref (intf_popup_uiinfo[10].widget);
901   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit",
902                             intf_popup_uiinfo[10].widget,
903                             (GtkDestroyNotify) gtk_widget_unref);
904
905   return intf_popup;
906 }
907
908 GtkWidget*
909 create_intf_about (void)
910 {
911   const gchar *authors[] = {
912     "Régis Duchesne <regis@via.ecp.fr>",
913     "Michel Lespinasse <walken@zoy.org>",
914     "Olivier Pomel <pomel@via.ecp.fr>",
915     "Pierre Baillet <oct@zoy.org>",
916     "Jean-Philippe Grimaldi <jeanphi@via.ecp.fr>",
917     "Andres Krapf <dae@via.ecp.fr>",
918     "Christophe Massiot <massiot@via.ecp.fr>",
919     "Vincent Seguin <seguin@via.ecp.fr>",
920     "Benoit Steiner <benny@via.ecp.fr>",
921     "Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>",
922     "Jean-Marc Dressler <polux@via.ecp.fr>",
923     "Gaël Hendryckx <jimmy@via.ecp.fr>",
924     "Samuel Hocevar <sam@zoy.org>",
925     "Brieuc Jeunhomme <bbp@via.ecp.fr>",
926     "Michel Kaempf <maxx@via.ecp.fr>",
927     "Stéphane Borel <stef@via.ecp.fr>",
928     "Renaud Dartus <reno@via.ecp.fr>",
929     "Henri Fallon <henri@via.ecp.fr>",
930     NULL
931   };
932   GtkWidget *intf_about;
933
934   intf_about = gnome_about_new ("VideoLAN Client", VERSION,
935                         _("(C) 1996, 1997, 1998, 1999, 2000, 2001 - the VideoLAN Team"),
936                         authors,
937                         _("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."),
938                         NULL);
939   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
940
941   return intf_about;
942 }
943
944 GtkWidget*
945 create_intf_fileopen (void)
946 {
947   GtkWidget *intf_fileopen;
948   GtkWidget *fileopen_ok;
949   GtkWidget *fileopen_cancel;
950
951   intf_fileopen = gtk_file_selection_new (_("Open File"));
952   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "intf_fileopen", intf_fileopen);
953   gtk_container_set_border_width (GTK_CONTAINER (intf_fileopen), 10);
954   gtk_window_set_modal (GTK_WINDOW (intf_fileopen), TRUE);
955
956   fileopen_ok = GTK_FILE_SELECTION (intf_fileopen)->ok_button;
957   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_ok", fileopen_ok);
958   gtk_widget_show (fileopen_ok);
959   GTK_WIDGET_SET_FLAGS (fileopen_ok, GTK_CAN_DEFAULT);
960
961   fileopen_cancel = GTK_FILE_SELECTION (intf_fileopen)->cancel_button;
962   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_cancel", fileopen_cancel);
963   gtk_widget_show (fileopen_cancel);
964   GTK_WIDGET_SET_FLAGS (fileopen_cancel, GTK_CAN_DEFAULT);
965
966   gtk_signal_connect (GTK_OBJECT (intf_fileopen), "destroy",
967                       GTK_SIGNAL_FUNC (on_intf_fileopen_destroy),
968                       NULL);
969   gtk_signal_connect (GTK_OBJECT (fileopen_ok), "clicked",
970                       GTK_SIGNAL_FUNC (on_fileopen_ok_clicked),
971                       NULL);
972   gtk_signal_connect (GTK_OBJECT (fileopen_cancel), "clicked",
973                       GTK_SIGNAL_FUNC (on_fileopen_cancel_clicked),
974                       NULL);
975
976   return intf_fileopen;
977 }
978
979 GtkWidget*
980 create_intf_modules (void)
981 {
982   GtkWidget *intf_modules;
983   GtkWidget *dialog_vbox1;
984   GtkWidget *label12;
985   GtkWidget *dialog_action_area1;
986   GtkWidget *modules_ok;
987   GtkWidget *modules_apply;
988   GtkWidget *modules_cancel;
989
990   intf_modules = gnome_dialog_new (_("Modules"), NULL);
991   gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules);
992   gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE);
993
994   dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox;
995   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1);
996   gtk_widget_show (dialog_vbox1);
997
998   label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version."));
999   gtk_widget_ref (label12);
1000   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12,
1001                             (GtkDestroyNotify) gtk_widget_unref);
1002   gtk_widget_show (label12);
1003   gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0);
1004
1005   dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area;
1006   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1);
1007   gtk_widget_show (dialog_action_area1);
1008   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
1009   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
1010
1011   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK);
1012   modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1013   gtk_widget_ref (modules_ok);
1014   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok,
1015                             (GtkDestroyNotify) gtk_widget_unref);
1016   gtk_widget_show (modules_ok);
1017   GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT);
1018
1019   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY);
1020   modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1021   gtk_widget_ref (modules_apply);
1022   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply,
1023                             (GtkDestroyNotify) gtk_widget_unref);
1024   gtk_widget_show (modules_apply);
1025   GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT);
1026
1027   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL);
1028   modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1029   gtk_widget_ref (modules_cancel);
1030   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel,
1031                             (GtkDestroyNotify) gtk_widget_unref);
1032   gtk_widget_show (modules_cancel);
1033   GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT);
1034
1035   gtk_signal_connect (GTK_OBJECT (intf_modules), "destroy",
1036                       GTK_SIGNAL_FUNC (on_intf_modules_destroy),
1037                       NULL);
1038   gtk_signal_connect (GTK_OBJECT (modules_ok), "clicked",
1039                       GTK_SIGNAL_FUNC (on_modules_ok_clicked),
1040                       NULL);
1041   gtk_signal_connect (GTK_OBJECT (modules_apply), "clicked",
1042                       GTK_SIGNAL_FUNC (on_modules_apply_clicked),
1043                       NULL);
1044   gtk_signal_connect (GTK_OBJECT (modules_cancel), "clicked",
1045                       GTK_SIGNAL_FUNC (on_modules_cancel_clicked),
1046                       NULL);
1047
1048   return intf_modules;
1049 }
1050
1051 GtkWidget*
1052 create_intf_playlist (void)
1053 {
1054   GtkWidget *intf_playlist;
1055   GtkWidget *dialog_vbox2;
1056   GtkWidget *label11;
1057   GtkWidget *scrolledwindow3;
1058   GtkWidget *clist2;
1059   GtkWidget *label8;
1060   GtkWidget *label9;
1061   GtkWidget *label10;
1062   GtkWidget *dialog_action_area2;
1063   GtkWidget *playlist_ok;
1064
1065   intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
1066   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
1067
1068   dialog_vbox2 = GNOME_DIALOG (intf_playlist)->vbox;
1069   gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_vbox2", dialog_vbox2);
1070   gtk_widget_show (dialog_vbox2);
1071
1072   label11 = gtk_label_new (_("Sorry, the playlist isn't functional yet. Please retry in a later version."));
1073   gtk_widget_ref (label11);
1074   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label11", label11,
1075                             (GtkDestroyNotify) gtk_widget_unref);
1076   gtk_widget_show (label11);
1077   gtk_box_pack_start (GTK_BOX (dialog_vbox2), label11, FALSE, FALSE, 0);
1078
1079   scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
1080   gtk_widget_ref (scrolledwindow3);
1081   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow3", scrolledwindow3,
1082                             (GtkDestroyNotify) gtk_widget_unref);
1083   gtk_widget_show (scrolledwindow3);
1084   gtk_box_pack_start (GTK_BOX (dialog_vbox2), scrolledwindow3, TRUE, TRUE, 0);
1085
1086   clist2 = gtk_clist_new (3);
1087   gtk_widget_ref (clist2);
1088   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "clist2", clist2,
1089                             (GtkDestroyNotify) gtk_widget_unref);
1090   gtk_widget_show (clist2);
1091   gtk_container_add (GTK_CONTAINER (scrolledwindow3), clist2);
1092   gtk_clist_set_column_width (GTK_CLIST (clist2), 0, 211);
1093   gtk_clist_set_column_width (GTK_CLIST (clist2), 1, 49);
1094   gtk_clist_set_column_width (GTK_CLIST (clist2), 2, 35);
1095   gtk_clist_column_titles_hide (GTK_CLIST (clist2));
1096
1097   label8 = gtk_label_new (_("Name"));
1098   gtk_widget_ref (label8);
1099   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label8", label8,
1100                             (GtkDestroyNotify) gtk_widget_unref);
1101   gtk_widget_show (label8);
1102   gtk_clist_set_column_widget (GTK_CLIST (clist2), 0, label8);
1103
1104   label9 = gtk_label_new (_("Type"));
1105   gtk_widget_ref (label9);
1106   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label9", label9,
1107                             (GtkDestroyNotify) gtk_widget_unref);
1108   gtk_widget_show (label9);
1109   gtk_clist_set_column_widget (GTK_CLIST (clist2), 1, label9);
1110
1111   label10 = gtk_label_new (_("Length"));
1112   gtk_widget_ref (label10);
1113   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label10", label10,
1114                             (GtkDestroyNotify) gtk_widget_unref);
1115   gtk_widget_show (label10);
1116   gtk_clist_set_column_widget (GTK_CLIST (clist2), 2, label10);
1117
1118   dialog_action_area2 = GNOME_DIALOG (intf_playlist)->action_area;
1119   gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_action_area2", dialog_action_area2);
1120   gtk_widget_show (dialog_action_area2);
1121   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_END);
1122   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area2), 8);
1123
1124   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
1125   playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
1126   gtk_widget_ref (playlist_ok);
1127   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
1128                             (GtkDestroyNotify) gtk_widget_unref);
1129   gtk_widget_show (playlist_ok);
1130   GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
1131
1132   gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
1133                       GTK_SIGNAL_FUNC (on_intf_playlist_destroy),
1134                       NULL);
1135   gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
1136                       GTK_SIGNAL_FUNC (on_playlist_ok_clicked),
1137                       NULL);
1138
1139   return intf_playlist;
1140 }
1141
1142 GtkWidget*
1143 create_intf_disc (void)
1144 {
1145   GtkWidget *intf_disc;
1146   GtkWidget *dialog_vbox4;
1147   GtkWidget *hbox2;
1148   GtkWidget *frame1;
1149   GtkWidget *vbox4;
1150   GSList *disc_group = NULL;
1151   GtkWidget *disc_dvd;
1152   GtkWidget *disc_vcd;
1153   GtkWidget *frame2;
1154   GtkWidget *table1;
1155   GtkWidget *label15;
1156   GtkWidget *label16;
1157   GtkObject *disc_title_adj;
1158   GtkWidget *disc_title;
1159   GtkObject *disc_chapter_adj;
1160   GtkWidget *disc_chapter;
1161   GtkWidget *hbox1;
1162   GtkWidget *label14;
1163   GtkWidget *disc_name;
1164   GtkWidget *dialog_action_area4;
1165   GtkWidget *disc_ok;
1166   GtkWidget *disc_cancel;
1167
1168   intf_disc = gnome_dialog_new (_("Open Disc"), NULL);
1169   gtk_object_set_data (GTK_OBJECT (intf_disc), "intf_disc", intf_disc);
1170   gtk_window_set_modal (GTK_WINDOW (intf_disc), TRUE);
1171   gtk_window_set_policy (GTK_WINDOW (intf_disc), FALSE, FALSE, FALSE);
1172
1173   dialog_vbox4 = GNOME_DIALOG (intf_disc)->vbox;
1174   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_vbox4", dialog_vbox4);
1175   gtk_widget_show (dialog_vbox4);
1176
1177   hbox2 = gtk_hbox_new (FALSE, 5);
1178   gtk_widget_ref (hbox2);
1179   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox2", hbox2,
1180                             (GtkDestroyNotify) gtk_widget_unref);
1181   gtk_widget_show (hbox2);
1182   gtk_box_pack_start (GTK_BOX (dialog_vbox4), hbox2, TRUE, TRUE, 0);
1183
1184   frame1 = gtk_frame_new (_("Disc type"));
1185   gtk_widget_ref (frame1);
1186   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame1", frame1,
1187                             (GtkDestroyNotify) gtk_widget_unref);
1188   gtk_widget_show (frame1);
1189   gtk_box_pack_start (GTK_BOX (hbox2), frame1, TRUE, TRUE, 0);
1190
1191   vbox4 = gtk_vbox_new (FALSE, 0);
1192   gtk_widget_ref (vbox4);
1193   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "vbox4", vbox4,
1194                             (GtkDestroyNotify) gtk_widget_unref);
1195   gtk_widget_show (vbox4);
1196   gtk_container_add (GTK_CONTAINER (frame1), vbox4);
1197
1198   disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD"));
1199   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd));
1200   gtk_widget_ref (disc_dvd);
1201   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_dvd", disc_dvd,
1202                             (GtkDestroyNotify) gtk_widget_unref);
1203   gtk_widget_show (disc_dvd);
1204   gtk_box_pack_start (GTK_BOX (vbox4), disc_dvd, FALSE, FALSE, 0);
1205
1206   disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD"));
1207   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd));
1208   gtk_widget_ref (disc_vcd);
1209   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_vcd", disc_vcd,
1210                             (GtkDestroyNotify) gtk_widget_unref);
1211   gtk_widget_show (disc_vcd);
1212   gtk_box_pack_start (GTK_BOX (vbox4), disc_vcd, FALSE, FALSE, 0);
1213   gtk_widget_set_sensitive (disc_vcd, FALSE);
1214
1215   frame2 = gtk_frame_new (_("Starting position"));
1216   gtk_widget_ref (frame2);
1217   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame2", frame2,
1218                             (GtkDestroyNotify) gtk_widget_unref);
1219   gtk_widget_show (frame2);
1220   gtk_box_pack_start (GTK_BOX (hbox2), frame2, TRUE, TRUE, 0);
1221
1222   table1 = gtk_table_new (2, 2, FALSE);
1223   gtk_widget_ref (table1);
1224   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "table1", table1,
1225                             (GtkDestroyNotify) gtk_widget_unref);
1226   gtk_widget_show (table1);
1227   gtk_container_add (GTK_CONTAINER (frame2), table1);
1228   gtk_container_set_border_width (GTK_CONTAINER (table1), 5);
1229   gtk_table_set_row_spacings (GTK_TABLE (table1), 5);
1230   gtk_table_set_col_spacings (GTK_TABLE (table1), 5);
1231
1232   label15 = gtk_label_new (_("Title"));
1233   gtk_widget_ref (label15);
1234   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label15", label15,
1235                             (GtkDestroyNotify) gtk_widget_unref);
1236   gtk_widget_show (label15);
1237   gtk_table_attach (GTK_TABLE (table1), label15, 0, 1, 0, 1,
1238                     (GtkAttachOptions) (GTK_FILL),
1239                     (GtkAttachOptions) (0), 0, 0);
1240   gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5);
1241
1242   label16 = gtk_label_new (_("Chapter"));
1243   gtk_widget_ref (label16);
1244   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label16", label16,
1245                             (GtkDestroyNotify) gtk_widget_unref);
1246   gtk_widget_show (label16);
1247   gtk_table_attach (GTK_TABLE (table1), label16, 0, 1, 1, 2,
1248                     (GtkAttachOptions) (GTK_FILL),
1249                     (GtkAttachOptions) (0), 0, 0);
1250   gtk_misc_set_alignment (GTK_MISC (label16), 0, 0.5);
1251
1252   disc_title_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1253   disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0);
1254   gtk_widget_ref (disc_title);
1255   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_title", disc_title,
1256                             (GtkDestroyNotify) gtk_widget_unref);
1257   gtk_widget_show (disc_title);
1258   gtk_table_attach (GTK_TABLE (table1), disc_title, 1, 2, 0, 1,
1259                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1260                     (GtkAttachOptions) (0), 0, 0);
1261
1262   disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1263   disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0);
1264   gtk_widget_ref (disc_chapter);
1265   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_chapter", disc_chapter,
1266                             (GtkDestroyNotify) gtk_widget_unref);
1267   gtk_widget_show (disc_chapter);
1268   gtk_table_attach (GTK_TABLE (table1), disc_chapter, 1, 2, 1, 2,
1269                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1270                     (GtkAttachOptions) (0), 0, 0);
1271
1272   hbox1 = gtk_hbox_new (FALSE, 5);
1273   gtk_widget_ref (hbox1);
1274   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox1", hbox1,
1275                             (GtkDestroyNotify) gtk_widget_unref);
1276   gtk_widget_show (hbox1);
1277   gtk_box_pack_start (GTK_BOX (dialog_vbox4), hbox1, TRUE, TRUE, 0);
1278
1279   label14 = gtk_label_new (_("Device name:"));
1280   gtk_widget_ref (label14);
1281   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label14", label14,
1282                             (GtkDestroyNotify) gtk_widget_unref);
1283   gtk_widget_show (label14);
1284   gtk_box_pack_start (GTK_BOX (hbox1), label14, FALSE, FALSE, 0);
1285
1286   disc_name = gtk_entry_new ();
1287   gtk_widget_ref (disc_name);
1288   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_name", disc_name,
1289                             (GtkDestroyNotify) gtk_widget_unref);
1290   gtk_widget_show (disc_name);
1291   gtk_box_pack_start (GTK_BOX (hbox1), disc_name, TRUE, TRUE, 0);
1292   gtk_entry_set_text (GTK_ENTRY (disc_name), _("/dev/dvd"));
1293
1294   dialog_action_area4 = GNOME_DIALOG (intf_disc)->action_area;
1295   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_action_area4", dialog_action_area4);
1296   gtk_widget_show (dialog_action_area4);
1297   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area4), GTK_BUTTONBOX_END);
1298   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area4), 8);
1299
1300   gnome_dialog_append_button (GNOME_DIALOG (intf_disc), GNOME_STOCK_BUTTON_OK);
1301   disc_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_disc)->buttons)->data);
1302   gtk_widget_ref (disc_ok);
1303   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_ok", disc_ok,
1304                             (GtkDestroyNotify) gtk_widget_unref);
1305   gtk_widget_show (disc_ok);
1306   GTK_WIDGET_SET_FLAGS (disc_ok, GTK_CAN_DEFAULT);
1307
1308   gnome_dialog_append_button (GNOME_DIALOG (intf_disc), GNOME_STOCK_BUTTON_CANCEL);
1309   disc_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_disc)->buttons)->data);
1310   gtk_widget_ref (disc_cancel);
1311   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_cancel", disc_cancel,
1312                             (GtkDestroyNotify) gtk_widget_unref);
1313   gtk_widget_show (disc_cancel);
1314   GTK_WIDGET_SET_FLAGS (disc_cancel, GTK_CAN_DEFAULT);
1315
1316   gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled",
1317                       GTK_SIGNAL_FUNC (on_disc_dvd_toggled),
1318                       NULL);
1319   gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled",
1320                       GTK_SIGNAL_FUNC (on_disc_vcd_toggled),
1321                       NULL);
1322   gtk_signal_connect (GTK_OBJECT (disc_ok), "clicked",
1323                       GTK_SIGNAL_FUNC (on_disc_ok_clicked),
1324                       NULL);
1325   gtk_signal_connect (GTK_OBJECT (disc_cancel), "clicked",
1326                       GTK_SIGNAL_FUNC (on_disc_cancel_clicked),
1327                       NULL);
1328
1329   return intf_disc;
1330 }
1331
1332 GtkWidget*
1333 create_intf_network (void)
1334 {
1335   GtkWidget *intf_network;
1336   GtkWidget *vbox5;
1337   GtkWidget *hbox3;
1338   GtkWidget *frame3;
1339   GtkWidget *vbox6;
1340   GSList *network_group = NULL;
1341   GtkWidget *network_ts;
1342   GtkWidget *network_rtp;
1343   GtkWidget *network_http;
1344   GtkWidget *frame4;
1345   GtkWidget *table2;
1346   GtkWidget *label17;
1347   GtkWidget *label18;
1348   GtkObject *network_port_adj;
1349   GtkWidget *network_port;
1350   GtkWidget *network_server;
1351   GtkWidget *hbuttonbox1;
1352   GtkWidget *network_ok;
1353   GtkWidget *network_cancel;
1354
1355   intf_network = gnome_dialog_new (_("Network Stream"), NULL);
1356   gtk_object_set_data (GTK_OBJECT (intf_network), "intf_network", intf_network);
1357   gtk_window_set_modal (GTK_WINDOW (intf_network), TRUE);
1358   gtk_window_set_policy (GTK_WINDOW (intf_network), FALSE, FALSE, FALSE);
1359
1360   vbox5 = GNOME_DIALOG (intf_network)->vbox;
1361   gtk_object_set_data (GTK_OBJECT (intf_network), "vbox5", vbox5);
1362   gtk_widget_show (vbox5);
1363
1364   hbox3 = gtk_hbox_new (FALSE, 5);
1365   gtk_widget_ref (hbox3);
1366   gtk_object_set_data_full (GTK_OBJECT (intf_network), "hbox3", hbox3,
1367                             (GtkDestroyNotify) gtk_widget_unref);
1368   gtk_widget_show (hbox3);
1369   gtk_box_pack_start (GTK_BOX (vbox5), hbox3, TRUE, TRUE, 0);
1370
1371   frame3 = gtk_frame_new (_("Protocol"));
1372   gtk_widget_ref (frame3);
1373   gtk_object_set_data_full (GTK_OBJECT (intf_network), "frame3", frame3,
1374                             (GtkDestroyNotify) gtk_widget_unref);
1375   gtk_widget_show (frame3);
1376   gtk_box_pack_start (GTK_BOX (hbox3), frame3, TRUE, TRUE, 0);
1377
1378   vbox6 = gtk_vbox_new (FALSE, 0);
1379   gtk_widget_ref (vbox6);
1380   gtk_object_set_data_full (GTK_OBJECT (intf_network), "vbox6", vbox6,
1381                             (GtkDestroyNotify) gtk_widget_unref);
1382   gtk_widget_show (vbox6);
1383   gtk_container_add (GTK_CONTAINER (frame3), vbox6);
1384
1385   network_ts = gtk_radio_button_new_with_label (network_group, _("TS"));
1386   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_ts));
1387   gtk_widget_ref (network_ts);
1388   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_ts", network_ts,
1389                             (GtkDestroyNotify) gtk_widget_unref);
1390   gtk_widget_show (network_ts);
1391   gtk_box_pack_start (GTK_BOX (vbox6), network_ts, FALSE, FALSE, 0);
1392
1393   network_rtp = gtk_radio_button_new_with_label (network_group, _("RTP"));
1394   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_rtp));
1395   gtk_widget_ref (network_rtp);
1396   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_rtp", network_rtp,
1397                             (GtkDestroyNotify) gtk_widget_unref);
1398   gtk_widget_show (network_rtp);
1399   gtk_box_pack_start (GTK_BOX (vbox6), network_rtp, FALSE, FALSE, 0);
1400   gtk_widget_set_sensitive (network_rtp, FALSE);
1401
1402   network_http = gtk_radio_button_new_with_label (network_group, _("HTTP"));
1403   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http));
1404   gtk_widget_ref (network_http);
1405   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_http", network_http,
1406                             (GtkDestroyNotify) gtk_widget_unref);
1407   gtk_widget_show (network_http);
1408   gtk_box_pack_start (GTK_BOX (vbox6), network_http, FALSE, FALSE, 0);
1409   gtk_widget_set_sensitive (network_http, FALSE);
1410
1411   frame4 = gtk_frame_new (_("Server"));
1412   gtk_widget_ref (frame4);
1413   gtk_object_set_data_full (GTK_OBJECT (intf_network), "frame4", frame4,
1414                             (GtkDestroyNotify) gtk_widget_unref);
1415   gtk_widget_show (frame4);
1416   gtk_box_pack_start (GTK_BOX (hbox3), frame4, TRUE, TRUE, 0);
1417
1418   table2 = gtk_table_new (2, 2, FALSE);
1419   gtk_widget_ref (table2);
1420   gtk_object_set_data_full (GTK_OBJECT (intf_network), "table2", table2,
1421                             (GtkDestroyNotify) gtk_widget_unref);
1422   gtk_widget_show (table2);
1423   gtk_container_add (GTK_CONTAINER (frame4), table2);
1424   gtk_container_set_border_width (GTK_CONTAINER (table2), 5);
1425   gtk_table_set_row_spacings (GTK_TABLE (table2), 5);
1426   gtk_table_set_col_spacings (GTK_TABLE (table2), 5);
1427
1428   label17 = gtk_label_new (_("Address"));
1429   gtk_widget_ref (label17);
1430   gtk_object_set_data_full (GTK_OBJECT (intf_network), "label17", label17,
1431                             (GtkDestroyNotify) gtk_widget_unref);
1432   gtk_widget_show (label17);
1433   gtk_table_attach (GTK_TABLE (table2), label17, 0, 1, 0, 1,
1434                     (GtkAttachOptions) (GTK_FILL),
1435                     (GtkAttachOptions) (0), 0, 0);
1436   gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5);
1437
1438   label18 = gtk_label_new (_("Port"));
1439   gtk_widget_ref (label18);
1440   gtk_object_set_data_full (GTK_OBJECT (intf_network), "label18", label18,
1441                             (GtkDestroyNotify) gtk_widget_unref);
1442   gtk_widget_show (label18);
1443   gtk_table_attach (GTK_TABLE (table2), label18, 0, 1, 1, 2,
1444                     (GtkAttachOptions) (GTK_FILL),
1445                     (GtkAttachOptions) (0), 0, 0);
1446   gtk_misc_set_alignment (GTK_MISC (label18), 0, 0.5);
1447
1448   network_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1449   network_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_port_adj), 1, 0);
1450   gtk_widget_ref (network_port);
1451   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_port", network_port,
1452                             (GtkDestroyNotify) gtk_widget_unref);
1453   gtk_widget_show (network_port);
1454   gtk_table_attach (GTK_TABLE (table2), network_port, 1, 2, 1, 2,
1455                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1456                     (GtkAttachOptions) (0), 0, 0);
1457
1458   network_server = gtk_entry_new ();
1459   gtk_widget_ref (network_server);
1460   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server", network_server,
1461                             (GtkDestroyNotify) gtk_widget_unref);
1462   gtk_widget_show (network_server);
1463   gtk_table_attach (GTK_TABLE (table2), network_server, 1, 2, 0, 1,
1464                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1465                     (GtkAttachOptions) (0), 0, 0);
1466   gtk_entry_set_text (GTK_ENTRY (network_server), _("vls"));
1467
1468   hbuttonbox1 = GNOME_DIALOG (intf_network)->action_area;
1469   gtk_object_set_data (GTK_OBJECT (intf_network), "hbuttonbox1", hbuttonbox1);
1470   gtk_widget_show (hbuttonbox1);
1471   gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);
1472   gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox1), 8);
1473
1474   gnome_dialog_append_button (GNOME_DIALOG (intf_network), GNOME_STOCK_BUTTON_OK);
1475   network_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_network)->buttons)->data);
1476   gtk_widget_ref (network_ok);
1477   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_ok", network_ok,
1478                             (GtkDestroyNotify) gtk_widget_unref);
1479   gtk_widget_show (network_ok);
1480   GTK_WIDGET_SET_FLAGS (network_ok, GTK_CAN_DEFAULT);
1481
1482   gnome_dialog_append_button (GNOME_DIALOG (intf_network), GNOME_STOCK_BUTTON_CANCEL);
1483   network_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_network)->buttons)->data);
1484   gtk_widget_ref (network_cancel);
1485   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_cancel", network_cancel,
1486                             (GtkDestroyNotify) gtk_widget_unref);
1487   gtk_widget_show (network_cancel);
1488   GTK_WIDGET_SET_FLAGS (network_cancel, GTK_CAN_DEFAULT);
1489
1490   gtk_signal_connect (GTK_OBJECT (network_ok), "clicked",
1491                       GTK_SIGNAL_FUNC (on_network_ok_clicked),
1492                       NULL);
1493   gtk_signal_connect (GTK_OBJECT (network_cancel), "clicked",
1494                       GTK_SIGNAL_FUNC (on_network_cancel_clicked),
1495                       NULL);
1496
1497   return intf_network;
1498 }
1499