]> git.sesse.net Git - vlc/blob - plugins/gtk/gnome_interface.c
1e253634c47486c8ac4acffb3955fb0943e4af9c
[vlc] / plugins / gtk / 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) GnomeMenubarFileOpenActivate, 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) GnomeMenubarDiscOpenActivate, 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) GnomeMenbarNetworkOpenActivate, 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 (GnomeMenubarExitActivate, NULL),
45   GNOMEUIINFO_END
46 };
47
48 static GnomeUIInfo menubar_view_menu_uiinfo[] =
49 {
50   {
51     GNOME_APP_UI_ITEM, N_("_Hide interface"),
52     NULL,
53     (gpointer) GnomeMenubarWindowToggleActivate, NULL, NULL,
54     GNOME_APP_PIXMAP_NONE, NULL,
55     0, (GdkModifierType) 0, NULL
56   },
57   {
58     GNOME_APP_UI_ITEM, N_("_Fullscreen"),
59     NULL,
60     (gpointer) GnomeMenubarFullscreenActivate, NULL, NULL,
61     GNOME_APP_PIXMAP_NONE, NULL,
62     0, (GdkModifierType) 0, NULL
63   },
64   GNOMEUIINFO_SEPARATOR,
65   {
66     GNOME_APP_UI_ITEM, N_("_Title"),
67     N_("Choose title"),
68     (gpointer) NULL, NULL, NULL,
69     GNOME_APP_PIXMAP_NONE, NULL,
70     0, (GdkModifierType) 0, NULL
71   },
72   {
73     GNOME_APP_UI_ITEM, N_("_Chapter"),
74     N_("Choose chapter"),
75     (gpointer) NULL, NULL, NULL,
76     GNOME_APP_PIXMAP_NONE, NULL,
77     0, (GdkModifierType) 0, NULL
78   },
79   {
80     GNOME_APP_UI_ITEM, N_("An_gle"),
81     N_("Choose angle"),
82     (gpointer) NULL, NULL, NULL,
83     GNOME_APP_PIXMAP_NONE, NULL,
84     0, (GdkModifierType) 0, NULL
85   },
86   GNOMEUIINFO_SEPARATOR,
87   {
88     GNOME_APP_UI_ITEM, N_("_Playlist..."),
89     N_("Open the playlist window"),
90     (gpointer) GnomeMenubarPlaylistActivate, NULL, NULL,
91     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
92     0, (GdkModifierType) 0, NULL
93   },
94   {
95     GNOME_APP_UI_ITEM, N_("_Modules..."),
96     N_("Open the plugin manager"),
97     (gpointer) GnomeMenubarModulesActivate, NULL, NULL,
98     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
99     0, (GdkModifierType) 0, NULL
100   },
101   GNOMEUIINFO_END
102 };
103
104 static GnomeUIInfo menubar_settings_menu_uiinfo[] =
105 {
106   {
107     GNOME_APP_UI_ITEM, N_("_Audio"),
108     N_("Select audio channel"),
109     (gpointer) NULL, NULL, NULL,
110     GNOME_APP_PIXMAP_NONE, NULL,
111     0, (GdkModifierType) 0, NULL
112   },
113   {
114     GNOME_APP_UI_ITEM, N_("_Subtitles"),
115     N_("Select subtitle unit"),
116     (gpointer) NULL, NULL, NULL,
117     GNOME_APP_PIXMAP_NONE, NULL,
118     0, (GdkModifierType) 0, NULL
119   },
120   GNOMEUIINFO_SEPARATOR,
121   GNOMEUIINFO_MENU_PREFERENCES_ITEM (GnomeMenubarPreferencesActivate, NULL),
122   GNOMEUIINFO_END
123 };
124
125 static GnomeUIInfo menubar_help_menu_uiinfo[] =
126 {
127   GNOMEUIINFO_MENU_ABOUT_ITEM (GnomeMenubarAboutActivate, NULL),
128   GNOMEUIINFO_END
129 };
130
131 static GnomeUIInfo menubar_uiinfo[] =
132 {
133   GNOMEUIINFO_MENU_FILE_TREE (menubar_file_menu_uiinfo),
134   GNOMEUIINFO_MENU_VIEW_TREE (menubar_view_menu_uiinfo),
135   GNOMEUIINFO_MENU_SETTINGS_TREE (menubar_settings_menu_uiinfo),
136   GNOMEUIINFO_MENU_HELP_TREE (menubar_help_menu_uiinfo),
137   GNOMEUIINFO_END
138 };
139
140 GtkWidget*
141 create_intf_window (void)
142 {
143   GtkWidget *intf_window;
144   GtkWidget *dockitem;
145   GtkWidget *toolbar;
146   GtkWidget *tmp_toolbar_icon;
147   GtkWidget *toolbar_file;
148   GtkWidget *toolbar_disc;
149   GtkWidget *toolbar_network;
150   GtkWidget *toolbar_back;
151   GtkWidget *toolbar_stop;
152   GtkWidget *toolbar_play;
153   GtkWidget *toolbar_pause;
154   GtkWidget *toolbar_slow;
155   GtkWidget *toolbar_fast;
156   GtkWidget *toolbar_playlist;
157   GtkWidget *toolbar_prev;
158   GtkWidget *toolbar_next;
159   GtkWidget *vbox8;
160   GtkWidget *slider_frame;
161   GtkWidget *slider;
162   GtkWidget *file_box;
163   GtkWidget *label_status;
164   GtkWidget *dvd_box;
165   GtkWidget *label21;
166   GtkWidget *title_chapter_box;
167   GtkWidget *label19;
168   GtkWidget *title_label;
169   GtkWidget *button_title_prev;
170   GtkWidget *button_title_next;
171   GtkWidget *vseparator1;
172   GtkWidget *dvd_chapter_box;
173   GtkWidget *label20;
174   GtkWidget *chapter_label;
175   GtkWidget *button_chapter_prev;
176   GtkWidget *button_chapter_next;
177   GtkWidget *network_box;
178   GtkWidget *network_address_label;
179   GtkWidget *network_channel_box;
180   GtkWidget *label_network;
181   GtkObject *network_spinbutton_adj;
182   GtkWidget *network_spinbutton;
183   GtkWidget *appbar;
184   GtkTooltips *tooltips;
185
186   tooltips = gtk_tooltips_new ();
187
188   intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client"));
189   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
190   gtk_window_set_policy (GTK_WINDOW (intf_window), FALSE, TRUE, TRUE);
191
192   dockitem = GNOME_APP (intf_window)->dock;
193   gtk_widget_ref (dockitem);
194   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem,
195                             (GtkDestroyNotify) gtk_widget_unref);
196   gtk_widget_show (dockitem);
197
198   gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo);
199
200   gtk_widget_ref (menubar_uiinfo[0].widget);
201   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file",
202                             menubar_uiinfo[0].widget,
203                             (GtkDestroyNotify) gtk_widget_unref);
204
205   gtk_widget_ref (menubar_file_menu_uiinfo[0].widget);
206   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open",
207                             menubar_file_menu_uiinfo[0].widget,
208                             (GtkDestroyNotify) gtk_widget_unref);
209
210   gtk_widget_ref (menubar_file_menu_uiinfo[1].widget);
211   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc",
212                             menubar_file_menu_uiinfo[1].widget,
213                             (GtkDestroyNotify) gtk_widget_unref);
214
215   gtk_widget_ref (menubar_file_menu_uiinfo[2].widget);
216   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network",
217                             menubar_file_menu_uiinfo[2].widget,
218                             (GtkDestroyNotify) gtk_widget_unref);
219
220   gtk_widget_ref (menubar_file_menu_uiinfo[3].widget);
221   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator1",
222                             menubar_file_menu_uiinfo[3].widget,
223                             (GtkDestroyNotify) gtk_widget_unref);
224
225   gtk_widget_ref (menubar_file_menu_uiinfo[4].widget);
226   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit",
227                             menubar_file_menu_uiinfo[4].widget,
228                             (GtkDestroyNotify) gtk_widget_unref);
229
230   gtk_widget_ref (menubar_uiinfo[1].widget);
231   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view",
232                             menubar_uiinfo[1].widget,
233                             (GtkDestroyNotify) gtk_widget_unref);
234
235   gtk_widget_ref (menubar_view_menu_uiinfo[0].widget);
236   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_hide_interface",
237                             menubar_view_menu_uiinfo[0].widget,
238                             (GtkDestroyNotify) gtk_widget_unref);
239
240   gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
241   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen",
242                             menubar_view_menu_uiinfo[1].widget,
243                             (GtkDestroyNotify) gtk_widget_unref);
244
245   gtk_widget_ref (menubar_view_menu_uiinfo[2].widget);
246   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator9",
247                             menubar_view_menu_uiinfo[2].widget,
248                             (GtkDestroyNotify) gtk_widget_unref);
249
250   gtk_widget_ref (menubar_view_menu_uiinfo[3].widget);
251   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title",
252                             menubar_view_menu_uiinfo[3].widget,
253                             (GtkDestroyNotify) gtk_widget_unref);
254   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[3].widget, FALSE);
255
256   gtk_widget_ref (menubar_view_menu_uiinfo[4].widget);
257   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter",
258                             menubar_view_menu_uiinfo[4].widget,
259                             (GtkDestroyNotify) gtk_widget_unref);
260   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[4].widget, FALSE);
261
262   gtk_widget_ref (menubar_view_menu_uiinfo[5].widget);
263   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_angle",
264                             menubar_view_menu_uiinfo[5].widget,
265                             (GtkDestroyNotify) gtk_widget_unref);
266   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[5].widget, FALSE);
267
268   gtk_widget_ref (menubar_view_menu_uiinfo[6].widget);
269   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7",
270                             menubar_view_menu_uiinfo[6].widget,
271                             (GtkDestroyNotify) gtk_widget_unref);
272
273   gtk_widget_ref (menubar_view_menu_uiinfo[7].widget);
274   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
275                             menubar_view_menu_uiinfo[7].widget,
276                             (GtkDestroyNotify) gtk_widget_unref);
277
278   gtk_widget_ref (menubar_view_menu_uiinfo[8].widget);
279   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
280                             menubar_view_menu_uiinfo[8].widget,
281                             (GtkDestroyNotify) gtk_widget_unref);
282   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[8].widget, FALSE);
283
284   gtk_widget_ref (menubar_uiinfo[2].widget);
285   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
286                             menubar_uiinfo[2].widget,
287                             (GtkDestroyNotify) gtk_widget_unref);
288
289   gtk_widget_ref (menubar_settings_menu_uiinfo[0].widget);
290   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio",
291                             menubar_settings_menu_uiinfo[0].widget,
292                             (GtkDestroyNotify) gtk_widget_unref);
293   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[0].widget, FALSE);
294
295   gtk_widget_ref (menubar_settings_menu_uiinfo[1].widget);
296   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures",
297                             menubar_settings_menu_uiinfo[1].widget,
298                             (GtkDestroyNotify) gtk_widget_unref);
299   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[1].widget, FALSE);
300
301   gtk_widget_ref (menubar_settings_menu_uiinfo[2].widget);
302   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator5",
303                             menubar_settings_menu_uiinfo[2].widget,
304                             (GtkDestroyNotify) gtk_widget_unref);
305
306   gtk_widget_ref (menubar_settings_menu_uiinfo[3].widget);
307   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
308                             menubar_settings_menu_uiinfo[3].widget,
309                             (GtkDestroyNotify) gtk_widget_unref);
310
311   gtk_widget_ref (menubar_uiinfo[3].widget);
312   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
313                             menubar_uiinfo[3].widget,
314                             (GtkDestroyNotify) gtk_widget_unref);
315
316   gtk_widget_ref (menubar_help_menu_uiinfo[0].widget);
317   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about",
318                             menubar_help_menu_uiinfo[0].widget,
319                             (GtkDestroyNotify) gtk_widget_unref);
320
321   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
322   gtk_widget_ref (toolbar);
323   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
324                             (GtkDestroyNotify) gtk_widget_unref);
325   gtk_widget_show (toolbar);
326   gnome_app_add_toolbar (GNOME_APP (intf_window), GTK_TOOLBAR (toolbar), "toolbar",
327                                 GNOME_DOCK_ITEM_BEH_EXCLUSIVE,
328                                 GNOME_DOCK_TOP, 1, 0, 2);
329   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
330   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
331   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
332
333   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_OPEN);
334   toolbar_file = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
335                                 GTK_TOOLBAR_CHILD_BUTTON,
336                                 NULL,
337                                 _("File"),
338                                 _("Open a File"), NULL,
339                                 tmp_toolbar_icon, NULL, NULL);
340   gtk_widget_ref (toolbar_file);
341   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_file", toolbar_file,
342                             (GtkDestroyNotify) gtk_widget_unref);
343   gtk_widget_show (toolbar_file);
344
345   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_CDROM);
346   toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
347                                 GTK_TOOLBAR_CHILD_BUTTON,
348                                 NULL,
349                                 _("Disc"),
350                                 _("Open a DVD or VCD"), NULL,
351                                 tmp_toolbar_icon, NULL, NULL);
352   gtk_widget_ref (toolbar_disc);
353   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc,
354                             (GtkDestroyNotify) gtk_widget_unref);
355   gtk_widget_show (toolbar_disc);
356
357   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_REFRESH);
358   toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
359                                 GTK_TOOLBAR_CHILD_BUTTON,
360                                 NULL,
361                                 _("Net"),
362                                 _("Select a Network Stream"), NULL,
363                                 tmp_toolbar_icon, NULL, NULL);
364   gtk_widget_ref (toolbar_network);
365   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network,
366                             (GtkDestroyNotify) gtk_widget_unref);
367   gtk_widget_show (toolbar_network);
368
369   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
370
371   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BACK);
372   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
373                                 GTK_TOOLBAR_CHILD_BUTTON,
374                                 NULL,
375                                 _("Back"),
376                                 _("Go Backwards"), NULL,
377                                 tmp_toolbar_icon, NULL, NULL);
378   gtk_widget_ref (toolbar_back);
379   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
380                             (GtkDestroyNotify) gtk_widget_unref);
381   gtk_widget_show (toolbar_back);
382   gtk_widget_set_sensitive (toolbar_back, FALSE);
383
384   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP);
385   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
386                                 GTK_TOOLBAR_CHILD_BUTTON,
387                                 NULL,
388                                 _("Stop"),
389                                 _("Stop Stream"), NULL,
390                                 tmp_toolbar_icon, NULL, NULL);
391   gtk_widget_ref (toolbar_stop);
392   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
393                             (GtkDestroyNotify) gtk_widget_unref);
394   gtk_widget_show (toolbar_stop);
395   gtk_widget_set_sensitive (toolbar_stop, FALSE);
396
397   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD);
398   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
399                                 GTK_TOOLBAR_CHILD_BUTTON,
400                                 NULL,
401                                 _("Play"),
402                                 _("Play Stream"), NULL,
403                                 tmp_toolbar_icon, NULL, NULL);
404   gtk_widget_ref (toolbar_play);
405   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
406                             (GtkDestroyNotify) gtk_widget_unref);
407   gtk_widget_show (toolbar_play);
408
409   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM);
410   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
411                                 GTK_TOOLBAR_CHILD_BUTTON,
412                                 NULL,
413                                 _("Pause"),
414                                 _("Pause Stream"), NULL,
415                                 tmp_toolbar_icon, NULL, NULL);
416   gtk_widget_ref (toolbar_pause);
417   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
418                             (GtkDestroyNotify) gtk_widget_unref);
419   gtk_widget_show (toolbar_pause);
420   gtk_widget_set_sensitive (toolbar_pause, FALSE);
421
422   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP);
423   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
424                                 GTK_TOOLBAR_CHILD_BUTTON,
425                                 NULL,
426                                 _("Slow"),
427                                 _("Play Slower"), NULL,
428                                 tmp_toolbar_icon, NULL, NULL);
429   gtk_widget_ref (toolbar_slow);
430   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
431                             (GtkDestroyNotify) gtk_widget_unref);
432   gtk_widget_show (toolbar_slow);
433   gtk_widget_set_sensitive (toolbar_slow, FALSE);
434
435   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER);
436   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
437                                 GTK_TOOLBAR_CHILD_BUTTON,
438                                 NULL,
439                                 _("Fast"),
440                                 _("Play Faster"), NULL,
441                                 tmp_toolbar_icon, NULL, NULL);
442   gtk_widget_ref (toolbar_fast);
443   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
444                             (GtkDestroyNotify) gtk_widget_unref);
445   gtk_widget_show (toolbar_fast);
446   gtk_widget_set_sensitive (toolbar_fast, FALSE);
447
448   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
449
450   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_INDEX);
451   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
452                                 GTK_TOOLBAR_CHILD_BUTTON,
453                                 NULL,
454                                 _("Playlist"),
455                                 _("Open Playlist"), NULL,
456                                 tmp_toolbar_icon, NULL, NULL);
457   gtk_widget_ref (toolbar_playlist);
458   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
459                             (GtkDestroyNotify) gtk_widget_unref);
460   gtk_widget_show (toolbar_playlist);
461
462   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
463   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
464                                 GTK_TOOLBAR_CHILD_BUTTON,
465                                 NULL,
466                                 _("Prev"),
467                                 _("Previous File"), NULL,
468                                 tmp_toolbar_icon, NULL, NULL);
469   gtk_widget_ref (toolbar_prev);
470   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
471                             (GtkDestroyNotify) gtk_widget_unref);
472   gtk_widget_show (toolbar_prev);
473
474   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_LAST);
475   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
476                                 GTK_TOOLBAR_CHILD_BUTTON,
477                                 NULL,
478                                 _("Next"),
479                                 _("Next File"), NULL,
480                                 tmp_toolbar_icon, NULL, NULL);
481   gtk_widget_ref (toolbar_next);
482   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
483                             (GtkDestroyNotify) gtk_widget_unref);
484   gtk_widget_show (toolbar_next);
485
486   vbox8 = gtk_vbox_new (FALSE, 0);
487   gtk_widget_ref (vbox8);
488   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox8", vbox8,
489                             (GtkDestroyNotify) gtk_widget_unref);
490   gtk_widget_show (vbox8);
491   gnome_app_set_contents (GNOME_APP (intf_window), vbox8);
492
493   slider_frame = gtk_frame_new (_("-:--:--"));
494   gtk_widget_ref (slider_frame);
495   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame,
496                             (GtkDestroyNotify) gtk_widget_unref);
497   gtk_box_pack_start (GTK_BOX (vbox8), slider_frame, TRUE, TRUE, 0);
498   gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5);
499
500   slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
501   gtk_widget_ref (slider);
502   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
503                             (GtkDestroyNotify) gtk_widget_unref);
504   gtk_widget_show (slider);
505   gtk_container_add (GTK_CONTAINER (slider_frame), slider);
506   gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
507   gtk_scale_set_digits (GTK_SCALE (slider), 3);
508
509   file_box = gtk_hbox_new (FALSE, 0);
510   gtk_widget_ref (file_box);
511   gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box,
512                             (GtkDestroyNotify) gtk_widget_unref);
513   gtk_widget_show (file_box);
514   gtk_box_pack_start (GTK_BOX (vbox8), file_box, TRUE, TRUE, 0);
515
516   label_status = gtk_label_new ("");
517   gtk_widget_ref (label_status);
518   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
519                             (GtkDestroyNotify) gtk_widget_unref);
520   gtk_widget_show (label_status);
521   gtk_box_pack_start (GTK_BOX (file_box), label_status, TRUE, TRUE, 0);
522
523   dvd_box = gtk_hbox_new (FALSE, 0);
524   gtk_widget_ref (dvd_box);
525   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box,
526                             (GtkDestroyNotify) gtk_widget_unref);
527   gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0);
528
529   label21 = gtk_label_new (_("DVD  "));
530   gtk_widget_ref (label21);
531   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21,
532                             (GtkDestroyNotify) gtk_widget_unref);
533   gtk_widget_show (label21);
534   gtk_box_pack_start (GTK_BOX (dvd_box), label21, TRUE, FALSE, 0);
535
536   title_chapter_box = gtk_hbox_new (FALSE, 10);
537   gtk_widget_ref (title_chapter_box);
538   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_chapter_box", title_chapter_box,
539                             (GtkDestroyNotify) gtk_widget_unref);
540   gtk_widget_show (title_chapter_box);
541   gtk_box_pack_start (GTK_BOX (dvd_box), title_chapter_box, TRUE, FALSE, 0);
542
543   label19 = gtk_label_new (_("Title:"));
544   gtk_widget_ref (label19);
545   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label19", label19,
546                             (GtkDestroyNotify) gtk_widget_unref);
547   gtk_widget_show (label19);
548   gtk_box_pack_start (GTK_BOX (title_chapter_box), label19, FALSE, FALSE, 0);
549
550   title_label = gtk_label_new (_("--"));
551   gtk_widget_ref (title_label);
552   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_label", title_label,
553                             (GtkDestroyNotify) gtk_widget_unref);
554   gtk_widget_show (title_label);
555   gtk_box_pack_start (GTK_BOX (title_chapter_box), title_label, FALSE, FALSE, 0);
556
557   button_title_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV);
558   gtk_widget_ref (button_title_prev);
559   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_prev", button_title_prev,
560                             (GtkDestroyNotify) gtk_widget_unref);
561   gtk_widget_show (button_title_prev);
562   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0);
563   gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL);
564   gtk_button_set_relief (GTK_BUTTON (button_title_prev), GTK_RELIEF_NONE);
565
566   button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
567   gtk_widget_ref (button_title_next);
568   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_next", button_title_next,
569                             (GtkDestroyNotify) gtk_widget_unref);
570   gtk_widget_show (button_title_next);
571   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0);
572   gtk_button_set_relief (GTK_BUTTON (button_title_next), GTK_RELIEF_NONE);
573
574   vseparator1 = gtk_vseparator_new ();
575   gtk_widget_ref (vseparator1);
576   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vseparator1", vseparator1,
577                             (GtkDestroyNotify) gtk_widget_unref);
578   gtk_widget_show (vseparator1);
579   gtk_box_pack_start (GTK_BOX (dvd_box), vseparator1, FALSE, FALSE, 0);
580
581   dvd_chapter_box = gtk_hbox_new (FALSE, 10);
582   gtk_widget_ref (dvd_chapter_box);
583   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_chapter_box", dvd_chapter_box,
584                             (GtkDestroyNotify) gtk_widget_unref);
585   gtk_widget_show (dvd_chapter_box);
586   gtk_box_pack_start (GTK_BOX (dvd_box), dvd_chapter_box, TRUE, FALSE, 0);
587
588   label20 = gtk_label_new (_("Chapter:"));
589   gtk_widget_ref (label20);
590   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label20", label20,
591                             (GtkDestroyNotify) gtk_widget_unref);
592   gtk_widget_show (label20);
593   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label20, FALSE, FALSE, 0);
594
595   chapter_label = gtk_label_new (_("---"));
596   gtk_widget_ref (chapter_label);
597   gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_label", chapter_label,
598                             (GtkDestroyNotify) gtk_widget_unref);
599   gtk_widget_show (chapter_label);
600   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), chapter_label, FALSE, FALSE, 0);
601
602   button_chapter_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV);
603   gtk_widget_ref (button_chapter_prev);
604   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_prev", button_chapter_prev,
605                             (GtkDestroyNotify) gtk_widget_unref);
606   gtk_widget_show (button_chapter_prev);
607   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0);
608   gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL);
609   gtk_button_set_relief (GTK_BUTTON (button_chapter_prev), GTK_RELIEF_NONE);
610
611   button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
612   gtk_widget_ref (button_chapter_next);
613   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_next", button_chapter_next,
614                             (GtkDestroyNotify) gtk_widget_unref);
615   gtk_widget_show (button_chapter_next);
616   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0);
617   gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL);
618   gtk_button_set_relief (GTK_BUTTON (button_chapter_next), GTK_RELIEF_NONE);
619
620   network_box = gtk_hbox_new (TRUE, 0);
621   gtk_widget_ref (network_box);
622   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box,
623                             (GtkDestroyNotify) gtk_widget_unref);
624   gtk_box_pack_start (GTK_BOX (vbox8), network_box, FALSE, FALSE, 0);
625
626   network_address_label = gtk_label_new (_("No server"));
627   gtk_widget_ref (network_address_label);
628   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_address_label", network_address_label,
629                             (GtkDestroyNotify) gtk_widget_unref);
630   gtk_widget_show (network_address_label);
631   gtk_box_pack_start (GTK_BOX (network_box), network_address_label, FALSE, FALSE, 0);
632
633   network_channel_box = gtk_hbox_new (FALSE, 0);
634   gtk_widget_ref (network_channel_box);
635   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_box", network_channel_box,
636                             (GtkDestroyNotify) gtk_widget_unref);
637   gtk_box_pack_start (GTK_BOX (network_box), network_channel_box, FALSE, FALSE, 0);
638
639   label_network = gtk_label_new (_("Network Channel:"));
640   gtk_widget_ref (label_network);
641   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_network", label_network,
642                             (GtkDestroyNotify) gtk_widget_unref);
643   gtk_widget_show (label_network);
644   gtk_box_pack_start (GTK_BOX (network_channel_box), label_network, TRUE, FALSE, 5);
645
646   network_spinbutton_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);
647   network_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (network_spinbutton_adj), 1, 0);
648   gtk_widget_ref (network_spinbutton);
649   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_spinbutton", network_spinbutton,
650                             (GtkDestroyNotify) gtk_widget_unref);
651   gtk_widget_show (network_spinbutton);
652   gtk_box_pack_start (GTK_BOX (network_channel_box), network_spinbutton, FALSE, TRUE, 5);
653   gtk_widget_set_sensitive (network_spinbutton, FALSE);
654
655   appbar = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_NEVER);
656   gtk_widget_ref (appbar);
657   gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar,
658                             (GtkDestroyNotify) gtk_widget_unref);
659   gtk_widget_show (appbar);
660   gnome_app_set_statusbar (GNOME_APP (intf_window), appbar);
661   gtk_widget_set_usize (appbar, 500, -2);
662
663   gtk_signal_connect (GTK_OBJECT (intf_window), "delete_event",
664                       GTK_SIGNAL_FUNC (GtkWindowDelete),
665                       "intf_window");
666   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
667                       GTK_SIGNAL_FUNC (GtkWindowDrag),
668                       "intf_window");
669   gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
670   gtk_signal_connect (GTK_OBJECT (toolbar_file), "button_press_event",
671                       GTK_SIGNAL_FUNC (GtkFileOpenShow),
672                       "intf_window");
673   gtk_signal_connect (GTK_OBJECT (toolbar_disc), "button_press_event",
674                       GTK_SIGNAL_FUNC (GtkDiscOpenShow),
675                       "intf_window");
676   gtk_signal_connect (GTK_OBJECT (toolbar_network), "button_press_event",
677                       GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
678                       "intf_window");
679   gtk_signal_connect (GTK_OBJECT (toolbar_back), "button_press_event",
680                       GTK_SIGNAL_FUNC (GtkControlBack),
681                       "intf_window");
682   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "button_press_event",
683                       GTK_SIGNAL_FUNC (GtkControlStop),
684                       "intf_window");
685   gtk_signal_connect (GTK_OBJECT (toolbar_play), "button_press_event",
686                       GTK_SIGNAL_FUNC (GtkControlPlay),
687                       "intf_window");
688   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "button_press_event",
689                       GTK_SIGNAL_FUNC (GtkControlPause),
690                       "intf_window");
691   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "button_press_event",
692                       GTK_SIGNAL_FUNC (GtkControlSlow),
693                       "intf_window");
694   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "button_press_event",
695                       GTK_SIGNAL_FUNC (GtkControlFast),
696                       "intf_window");
697   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "button_press_event",
698                       GTK_SIGNAL_FUNC (GtkPlaylistShow),
699                       "intf_window");
700   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "button_press_event",
701                       GTK_SIGNAL_FUNC (GtkPlaylistPrev),
702                       "intf_window");
703   gtk_signal_connect (GTK_OBJECT (toolbar_next), "button_press_event",
704                       GTK_SIGNAL_FUNC (GtkPlaylistNext),
705                       "intf_window");
706   gtk_signal_connect (GTK_OBJECT (slider), "button_press_event",
707                       GTK_SIGNAL_FUNC (GtkSliderPress),
708                       "intf_window");
709   gtk_signal_connect (GTK_OBJECT (slider), "button_release_event",
710                       GTK_SIGNAL_FUNC (GtkSliderRelease),
711                       "intf_window");
712   gtk_signal_connect (GTK_OBJECT (button_title_prev), "clicked",
713                       GTK_SIGNAL_FUNC (GtkTitlePrev),
714                       "intf_window");
715   gtk_signal_connect (GTK_OBJECT (button_title_next), "clicked",
716                       GTK_SIGNAL_FUNC (GtkTitleNext),
717                       "intf_window");
718   gtk_signal_connect (GTK_OBJECT (button_chapter_prev), "clicked",
719                       GTK_SIGNAL_FUNC (GtkChapterPrev),
720                       "intf_window");
721   gtk_signal_connect (GTK_OBJECT (button_chapter_next), "clicked",
722                       GTK_SIGNAL_FUNC (GtkChapterNext),
723                       "intf_window");
724
725   gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips);
726
727   return intf_window;
728 }
729
730 static GnomeUIInfo popup_file_menu_uiinfo[] =
731 {
732   {
733     GNOME_APP_UI_ITEM, N_("_Open File..."),
734     N_("Open a File"),
735     (gpointer) GnomePopupFileOpenActivate, NULL, NULL,
736     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
737     0, (GdkModifierType) 0, NULL
738   },
739   {
740     GNOME_APP_UI_ITEM, N_("Open _Disc..."),
741     N_("Open a DVD or VCD"),
742     (gpointer) GnomePopupDiscOpenActivate, NULL, NULL,
743     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
744     0, (GdkModifierType) 0, NULL
745   },
746   {
747     GNOME_APP_UI_ITEM, N_("_Network Stream..."),
748     N_("Select a Network Stream"),
749     (gpointer) GnomePopupNetworkOpenActivate, NULL, NULL,
750     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
751     0, (GdkModifierType) 0, NULL
752   },
753   GNOMEUIINFO_SEPARATOR,
754   GNOMEUIINFO_MENU_ABOUT_ITEM (GnomePopupAboutActivate, NULL),
755   GNOMEUIINFO_END
756 };
757
758 static GnomeUIInfo intf_popup_uiinfo[] =
759 {
760   {
761     GNOME_APP_UI_ITEM, N_("Play"),
762     NULL,
763     (gpointer) GnomePopupPlayActivate, NULL, NULL,
764     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
765     0, (GdkModifierType) 0, NULL
766   },
767   {
768     GNOME_APP_UI_ITEM, N_("Pause"),
769     NULL,
770     (gpointer) GnomePopupPauseActivate, NULL, NULL,
771     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
772     0, (GdkModifierType) 0, NULL
773   },
774   {
775     GNOME_APP_UI_ITEM, N_("Stop"),
776     NULL,
777     (gpointer) GnomePopupStopActivate, NULL, NULL,
778     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_STOP,
779     0, (GdkModifierType) 0, NULL
780   },
781   {
782     GNOME_APP_UI_ITEM, N_("Back"),
783     NULL,
784     (gpointer) GnomePopupBackActivate, NULL, NULL,
785     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BACK,
786     0, (GdkModifierType) 0, NULL
787   },
788   {
789     GNOME_APP_UI_ITEM, N_("Slow"),
790     NULL,
791     (gpointer) GnomePopupSlowActivate, NULL, NULL,
792     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP,
793     0, (GdkModifierType) 0, NULL
794   },
795   {
796     GNOME_APP_UI_ITEM, N_("Fast"),
797     NULL,
798     (gpointer) GnomePopupFastActivate, NULL, NULL,
799     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER,
800     0, (GdkModifierType) 0, NULL
801   },
802   GNOMEUIINFO_SEPARATOR,
803   {
804     GNOME_APP_UI_ITEM, N_("Toggle _Interface"),
805     NULL,
806     (gpointer) GnomePopupWindowToggleActivate, NULL, NULL,
807     GNOME_APP_PIXMAP_NONE, NULL,
808     0, (GdkModifierType) 0, NULL
809   },
810   {
811     GNOME_APP_UI_ITEM, N_("_Fullscreen"),
812     N_("Toggle fullscreen mode"),
813     (gpointer) GnomePopupFullscreenActivate, NULL, NULL,
814     GNOME_APP_PIXMAP_NONE, NULL,
815     0, (GdkModifierType) 0, NULL
816   },
817   GNOMEUIINFO_SEPARATOR,
818   {
819     GNOME_APP_UI_ITEM, N_("Next"),
820     NULL,
821     (gpointer) GnomePopupNextActivate, NULL, NULL,
822     GNOME_APP_PIXMAP_NONE, NULL,
823     0, (GdkModifierType) 0, NULL
824   },
825   {
826     GNOME_APP_UI_ITEM, N_("Prev"),
827     NULL,
828     (gpointer) GnomePopupPrevActivate, NULL, NULL,
829     GNOME_APP_PIXMAP_NONE, NULL,
830     0, (GdkModifierType) 0, NULL
831   },
832   {
833     GNOME_APP_UI_ITEM, N_("_Jump..."),
834     N_("Got directly so specified point"),
835     (gpointer) GnomePopupJumpActivate, NULL, NULL,
836     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_JUMP_TO,
837     0, (GdkModifierType) 0, NULL
838   },
839   {
840     GNOME_APP_UI_ITEM, N_("_Navigation"),
841     N_("Navigate through titles and chapters"),
842     (gpointer) NULL, NULL, NULL,
843     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_SEARCH,
844     0, (GdkModifierType) 0, NULL
845   },
846   {
847     GNOME_APP_UI_ITEM, N_("An_gle"),
848     NULL,
849     (gpointer) NULL, NULL, NULL,
850     GNOME_APP_PIXMAP_NONE, NULL,
851     0, (GdkModifierType) 0, NULL
852   },
853   {
854     GNOME_APP_UI_ITEM, N_("_Audio"),
855     N_("Select audio channel"),
856     (gpointer) NULL, NULL, NULL,
857     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_VOLUME,
858     0, (GdkModifierType) 0, NULL
859   },
860   {
861     GNOME_APP_UI_ITEM, N_("_Subtitles"),
862     N_("Select subtitle channel"),
863     (gpointer) NULL, NULL, NULL,
864     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FONT,
865     0, (GdkModifierType) 0, NULL
866   },
867   GNOMEUIINFO_SEPARATOR,
868   GNOMEUIINFO_MENU_FILE_TREE (popup_file_menu_uiinfo),
869   {
870     GNOME_APP_UI_ITEM, N_("Playlist..."),
871     NULL,
872     (gpointer) GnomePopupPlaylistActivate, NULL, NULL,
873     GNOME_APP_PIXMAP_NONE, NULL,
874     0, (GdkModifierType) 0, NULL
875   },
876   GNOMEUIINFO_MENU_PREFERENCES_ITEM (GnomePopupPreferencesActivate, NULL),
877   GNOMEUIINFO_SEPARATOR,
878   GNOMEUIINFO_MENU_EXIT_ITEM (GnomePopupExitActivate, NULL),
879   GNOMEUIINFO_END
880 };
881
882 GtkWidget*
883 create_intf_popup (void)
884 {
885   GtkWidget *intf_popup;
886
887   intf_popup = gtk_menu_new ();
888   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
889   gnome_app_fill_menu (GTK_MENU_SHELL (intf_popup), intf_popup_uiinfo,
890                        NULL, FALSE, 0);
891
892   gtk_widget_ref (intf_popup_uiinfo[0].widget);
893   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play",
894                             intf_popup_uiinfo[0].widget,
895                             (GtkDestroyNotify) gtk_widget_unref);
896
897   gtk_widget_ref (intf_popup_uiinfo[1].widget);
898   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause",
899                             intf_popup_uiinfo[1].widget,
900                             (GtkDestroyNotify) gtk_widget_unref);
901
902   gtk_widget_ref (intf_popup_uiinfo[2].widget);
903   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_stop",
904                             intf_popup_uiinfo[2].widget,
905                             (GtkDestroyNotify) gtk_widget_unref);
906
907   gtk_widget_ref (intf_popup_uiinfo[3].widget);
908   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_back",
909                             intf_popup_uiinfo[3].widget,
910                             (GtkDestroyNotify) gtk_widget_unref);
911   gtk_widget_set_sensitive (intf_popup_uiinfo[3].widget, FALSE);
912
913   gtk_widget_ref (intf_popup_uiinfo[4].widget);
914   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
915                             intf_popup_uiinfo[4].widget,
916                             (GtkDestroyNotify) gtk_widget_unref);
917
918   gtk_widget_ref (intf_popup_uiinfo[5].widget);
919   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
920                             intf_popup_uiinfo[5].widget,
921                             (GtkDestroyNotify) gtk_widget_unref);
922
923   gtk_widget_ref (intf_popup_uiinfo[6].widget);
924   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
925                             intf_popup_uiinfo[6].widget,
926                             (GtkDestroyNotify) gtk_widget_unref);
927
928   gtk_widget_ref (intf_popup_uiinfo[7].widget);
929   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_interface_toggle",
930                             intf_popup_uiinfo[7].widget,
931                             (GtkDestroyNotify) gtk_widget_unref);
932
933   gtk_widget_ref (intf_popup_uiinfo[8].widget);
934   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fullscreen",
935                             intf_popup_uiinfo[8].widget,
936                             (GtkDestroyNotify) gtk_widget_unref);
937
938   gtk_widget_ref (intf_popup_uiinfo[9].widget);
939   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator8",
940                             intf_popup_uiinfo[9].widget,
941                             (GtkDestroyNotify) gtk_widget_unref);
942
943   gtk_widget_ref (intf_popup_uiinfo[10].widget);
944   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_next",
945                             intf_popup_uiinfo[10].widget,
946                             (GtkDestroyNotify) gtk_widget_unref);
947
948   gtk_widget_ref (intf_popup_uiinfo[11].widget);
949   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_prev",
950                             intf_popup_uiinfo[11].widget,
951                             (GtkDestroyNotify) gtk_widget_unref);
952
953   gtk_widget_ref (intf_popup_uiinfo[12].widget);
954   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_jump",
955                             intf_popup_uiinfo[12].widget,
956                             (GtkDestroyNotify) gtk_widget_unref);
957
958   gtk_widget_ref (intf_popup_uiinfo[13].widget);
959   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation",
960                             intf_popup_uiinfo[13].widget,
961                             (GtkDestroyNotify) gtk_widget_unref);
962   gtk_widget_set_sensitive (intf_popup_uiinfo[13].widget, FALSE);
963
964   gtk_widget_ref (intf_popup_uiinfo[14].widget);
965   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_angle",
966                             intf_popup_uiinfo[14].widget,
967                             (GtkDestroyNotify) gtk_widget_unref);
968   gtk_widget_set_sensitive (intf_popup_uiinfo[14].widget, FALSE);
969
970   gtk_widget_ref (intf_popup_uiinfo[15].widget);
971   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio",
972                             intf_popup_uiinfo[15].widget,
973                             (GtkDestroyNotify) gtk_widget_unref);
974   gtk_widget_set_sensitive (intf_popup_uiinfo[15].widget, FALSE);
975
976   gtk_widget_ref (intf_popup_uiinfo[16].widget);
977   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures",
978                             intf_popup_uiinfo[16].widget,
979                             (GtkDestroyNotify) gtk_widget_unref);
980   gtk_widget_set_sensitive (intf_popup_uiinfo[16].widget, FALSE);
981
982   gtk_widget_ref (intf_popup_uiinfo[17].widget);
983   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator13",
984                             intf_popup_uiinfo[17].widget,
985                             (GtkDestroyNotify) gtk_widget_unref);
986
987   gtk_widget_ref (intf_popup_uiinfo[18].widget);
988   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file",
989                             intf_popup_uiinfo[18].widget,
990                             (GtkDestroyNotify) gtk_widget_unref);
991
992   gtk_widget_ref (popup_file_menu_uiinfo[0].widget);
993   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open",
994                             popup_file_menu_uiinfo[0].widget,
995                             (GtkDestroyNotify) gtk_widget_unref);
996
997   gtk_widget_ref (popup_file_menu_uiinfo[1].widget);
998   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc",
999                             popup_file_menu_uiinfo[1].widget,
1000                             (GtkDestroyNotify) gtk_widget_unref);
1001
1002   gtk_widget_ref (popup_file_menu_uiinfo[2].widget);
1003   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network",
1004                             popup_file_menu_uiinfo[2].widget,
1005                             (GtkDestroyNotify) gtk_widget_unref);
1006
1007   gtk_widget_ref (popup_file_menu_uiinfo[3].widget);
1008   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator4",
1009                             popup_file_menu_uiinfo[3].widget,
1010                             (GtkDestroyNotify) gtk_widget_unref);
1011
1012   gtk_widget_ref (popup_file_menu_uiinfo[4].widget);
1013   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about",
1014                             popup_file_menu_uiinfo[4].widget,
1015                             (GtkDestroyNotify) gtk_widget_unref);
1016
1017   gtk_widget_ref (intf_popup_uiinfo[19].widget);
1018   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_playlist",
1019                             intf_popup_uiinfo[19].widget,
1020                             (GtkDestroyNotify) gtk_widget_unref);
1021
1022   gtk_widget_ref (intf_popup_uiinfo[20].widget);
1023   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_preferences",
1024                             intf_popup_uiinfo[20].widget,
1025                             (GtkDestroyNotify) gtk_widget_unref);
1026
1027   gtk_widget_ref (intf_popup_uiinfo[21].widget);
1028   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2",
1029                             intf_popup_uiinfo[21].widget,
1030                             (GtkDestroyNotify) gtk_widget_unref);
1031
1032   gtk_widget_ref (intf_popup_uiinfo[22].widget);
1033   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit",
1034                             intf_popup_uiinfo[22].widget,
1035                             (GtkDestroyNotify) gtk_widget_unref);
1036
1037   return intf_popup;
1038 }
1039
1040 GtkWidget*
1041 create_intf_about (void)
1042 {
1043   const gchar *authors[] = {
1044     "Régis Duchesne <regis@via.ecp.fr>",
1045     "Michel Lespinasse <walken@zoy.org>",
1046     "Olivier Pomel <pomel@via.ecp.fr>",
1047     "Pierre Baillet <oct@zoy.org>",
1048     "Jean-Philippe Grimaldi <jeanphi@via.ecp.fr>",
1049     "Andres Krapf <dae@via.ecp.fr>",
1050     "Christophe Massiot <massiot@via.ecp.fr>",
1051     "Vincent Seguin <seguin@via.ecp.fr>",
1052     "Benoit Steiner <benny@via.ecp.fr>",
1053     "Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>",
1054     "Jean-Marc Dressler <polux@via.ecp.fr>",
1055     "Gaël Hendryckx <jimmy@via.ecp.fr>",
1056     "Samuel Hocevar <sam@zoy.org>",
1057     "Brieuc Jeunhomme <bbp@via.ecp.fr>",
1058     "Michel Kaempf <maxx@via.ecp.fr>",
1059     "Stéphane Borel <stef@via.ecp.fr>",
1060     "Renaud Dartus <reno@via.ecp.fr>",
1061     "Henri Fallon <henri@via.ecp.fr>",
1062     NULL
1063   };
1064   GtkWidget *intf_about;
1065
1066   intf_about = gnome_about_new ("VideoLAN Client", VERSION,
1067                         _("(C) 1996, 1997, 1998, 1999, 2000, 2001 - the VideoLAN Team"),
1068                         authors,
1069                         _("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."),
1070                         NULL);
1071   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
1072
1073   return intf_about;
1074 }
1075
1076 GtkWidget*
1077 create_intf_fileopen (void)
1078 {
1079   GtkWidget *intf_fileopen;
1080   GtkWidget *fileopen_ok;
1081   GtkWidget *fileopen_cancel;
1082
1083   intf_fileopen = gtk_file_selection_new (_("Open File"));
1084   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "intf_fileopen", intf_fileopen);
1085   gtk_container_set_border_width (GTK_CONTAINER (intf_fileopen), 10);
1086   gtk_window_set_modal (GTK_WINDOW (intf_fileopen), TRUE);
1087   gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (intf_fileopen));
1088
1089   fileopen_ok = GTK_FILE_SELECTION (intf_fileopen)->ok_button;
1090   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_ok", fileopen_ok);
1091   gtk_widget_show (fileopen_ok);
1092   GTK_WIDGET_SET_FLAGS (fileopen_ok, GTK_CAN_DEFAULT);
1093
1094   fileopen_cancel = GTK_FILE_SELECTION (intf_fileopen)->cancel_button;
1095   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_cancel", fileopen_cancel);
1096   gtk_widget_show (fileopen_cancel);
1097   GTK_WIDGET_SET_FLAGS (fileopen_cancel, GTK_CAN_DEFAULT);
1098
1099   gtk_signal_connect (GTK_OBJECT (fileopen_ok), "clicked",
1100                       GTK_SIGNAL_FUNC (GtkFileOpenOk),
1101                       "intf_fileopen");
1102   gtk_signal_connect (GTK_OBJECT (fileopen_cancel), "clicked",
1103                       GTK_SIGNAL_FUNC (GtkFileOpenCancel),
1104                       "intf_fileopen");
1105
1106   return intf_fileopen;
1107 }
1108
1109 GtkWidget*
1110 create_intf_modules (void)
1111 {
1112   GtkWidget *intf_modules;
1113   GtkWidget *dialog_vbox1;
1114   GtkWidget *label12;
1115   GtkWidget *dialog_action_area1;
1116   GtkWidget *modules_ok;
1117   GtkWidget *modules_apply;
1118   GtkWidget *modules_cancel;
1119
1120   intf_modules = gnome_dialog_new (_("Modules"), NULL);
1121   gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules);
1122   gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE);
1123
1124   dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox;
1125   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1);
1126   gtk_widget_show (dialog_vbox1);
1127
1128   label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version."));
1129   gtk_widget_ref (label12);
1130   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12,
1131                             (GtkDestroyNotify) gtk_widget_unref);
1132   gtk_widget_show (label12);
1133   gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0);
1134
1135   dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area;
1136   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1);
1137   gtk_widget_show (dialog_action_area1);
1138   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
1139   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
1140
1141   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK);
1142   modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1143   gtk_widget_ref (modules_ok);
1144   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok,
1145                             (GtkDestroyNotify) gtk_widget_unref);
1146   gtk_widget_show (modules_ok);
1147   GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT);
1148
1149   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY);
1150   modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1151   gtk_widget_ref (modules_apply);
1152   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply,
1153                             (GtkDestroyNotify) gtk_widget_unref);
1154   gtk_widget_show (modules_apply);
1155   GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT);
1156
1157   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL);
1158   modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1159   gtk_widget_ref (modules_cancel);
1160   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel,
1161                             (GtkDestroyNotify) gtk_widget_unref);
1162   gtk_widget_show (modules_cancel);
1163   GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT);
1164
1165   return intf_modules;
1166 }
1167
1168 GtkWidget*
1169 create_intf_disc (void)
1170 {
1171   GtkWidget *intf_disc;
1172   GtkWidget *dialog_vbox4;
1173   GtkWidget *hbox2;
1174   GtkWidget *frame1;
1175   GtkWidget *vbox4;
1176   GSList *disc_group = NULL;
1177   GtkWidget *disc_dvd;
1178   GtkWidget *disc_vcd;
1179   GtkWidget *frame2;
1180   GtkWidget *table1;
1181   GtkWidget *label15;
1182   GtkWidget *label16;
1183   GtkObject *disc_title_adj;
1184   GtkWidget *disc_title;
1185   GtkObject *disc_chapter_adj;
1186   GtkWidget *disc_chapter;
1187   GtkWidget *hbox1;
1188   GtkWidget *label14;
1189   GtkWidget *disc_name;
1190   GtkWidget *dialog_action_area4;
1191   GtkWidget *disc_ok;
1192   GtkWidget *disc_cancel;
1193
1194   intf_disc = gnome_dialog_new (_("Open Disc"), NULL);
1195   gtk_object_set_data (GTK_OBJECT (intf_disc), "intf_disc", intf_disc);
1196   gtk_window_set_modal (GTK_WINDOW (intf_disc), TRUE);
1197   gtk_window_set_policy (GTK_WINDOW (intf_disc), FALSE, FALSE, FALSE);
1198
1199   dialog_vbox4 = GNOME_DIALOG (intf_disc)->vbox;
1200   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_vbox4", dialog_vbox4);
1201   gtk_widget_show (dialog_vbox4);
1202
1203   hbox2 = gtk_hbox_new (FALSE, 5);
1204   gtk_widget_ref (hbox2);
1205   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox2", hbox2,
1206                             (GtkDestroyNotify) gtk_widget_unref);
1207   gtk_widget_show (hbox2);
1208   gtk_box_pack_start (GTK_BOX (dialog_vbox4), hbox2, TRUE, TRUE, 0);
1209
1210   frame1 = gtk_frame_new (_("Disc type"));
1211   gtk_widget_ref (frame1);
1212   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame1", frame1,
1213                             (GtkDestroyNotify) gtk_widget_unref);
1214   gtk_widget_show (frame1);
1215   gtk_box_pack_start (GTK_BOX (hbox2), frame1, TRUE, TRUE, 0);
1216
1217   vbox4 = gtk_vbox_new (FALSE, 0);
1218   gtk_widget_ref (vbox4);
1219   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "vbox4", vbox4,
1220                             (GtkDestroyNotify) gtk_widget_unref);
1221   gtk_widget_show (vbox4);
1222   gtk_container_add (GTK_CONTAINER (frame1), vbox4);
1223
1224   disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD"));
1225   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd));
1226   gtk_widget_ref (disc_dvd);
1227   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_dvd", disc_dvd,
1228                             (GtkDestroyNotify) gtk_widget_unref);
1229   gtk_widget_show (disc_dvd);
1230   gtk_box_pack_start (GTK_BOX (vbox4), disc_dvd, FALSE, FALSE, 0);
1231
1232   disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD"));
1233   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd));
1234   gtk_widget_ref (disc_vcd);
1235   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_vcd", disc_vcd,
1236                             (GtkDestroyNotify) gtk_widget_unref);
1237   gtk_widget_show (disc_vcd);
1238   gtk_box_pack_start (GTK_BOX (vbox4), disc_vcd, FALSE, FALSE, 0);
1239   gtk_widget_set_sensitive (disc_vcd, FALSE);
1240
1241   frame2 = gtk_frame_new (_("Starting position"));
1242   gtk_widget_ref (frame2);
1243   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "frame2", frame2,
1244                             (GtkDestroyNotify) gtk_widget_unref);
1245   gtk_widget_show (frame2);
1246   gtk_box_pack_start (GTK_BOX (hbox2), frame2, TRUE, TRUE, 0);
1247
1248   table1 = gtk_table_new (2, 2, FALSE);
1249   gtk_widget_ref (table1);
1250   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "table1", table1,
1251                             (GtkDestroyNotify) gtk_widget_unref);
1252   gtk_widget_show (table1);
1253   gtk_container_add (GTK_CONTAINER (frame2), table1);
1254   gtk_container_set_border_width (GTK_CONTAINER (table1), 5);
1255   gtk_table_set_row_spacings (GTK_TABLE (table1), 5);
1256   gtk_table_set_col_spacings (GTK_TABLE (table1), 5);
1257
1258   label15 = gtk_label_new (_("Title"));
1259   gtk_widget_ref (label15);
1260   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label15", label15,
1261                             (GtkDestroyNotify) gtk_widget_unref);
1262   gtk_widget_show (label15);
1263   gtk_table_attach (GTK_TABLE (table1), label15, 0, 1, 0, 1,
1264                     (GtkAttachOptions) (GTK_FILL),
1265                     (GtkAttachOptions) (0), 0, 0);
1266   gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5);
1267
1268   label16 = gtk_label_new (_("Chapter"));
1269   gtk_widget_ref (label16);
1270   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label16", label16,
1271                             (GtkDestroyNotify) gtk_widget_unref);
1272   gtk_widget_show (label16);
1273   gtk_table_attach (GTK_TABLE (table1), label16, 0, 1, 1, 2,
1274                     (GtkAttachOptions) (GTK_FILL),
1275                     (GtkAttachOptions) (0), 0, 0);
1276   gtk_misc_set_alignment (GTK_MISC (label16), 0, 0.5);
1277
1278   disc_title_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1279   disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0);
1280   gtk_widget_ref (disc_title);
1281   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_title", disc_title,
1282                             (GtkDestroyNotify) gtk_widget_unref);
1283   gtk_widget_show (disc_title);
1284   gtk_table_attach (GTK_TABLE (table1), disc_title, 1, 2, 0, 1,
1285                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1286                     (GtkAttachOptions) (0), 0, 0);
1287
1288   disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1289   disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0);
1290   gtk_widget_ref (disc_chapter);
1291   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_chapter", disc_chapter,
1292                             (GtkDestroyNotify) gtk_widget_unref);
1293   gtk_widget_show (disc_chapter);
1294   gtk_table_attach (GTK_TABLE (table1), disc_chapter, 1, 2, 1, 2,
1295                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1296                     (GtkAttachOptions) (0), 0, 0);
1297
1298   hbox1 = gtk_hbox_new (FALSE, 5);
1299   gtk_widget_ref (hbox1);
1300   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "hbox1", hbox1,
1301                             (GtkDestroyNotify) gtk_widget_unref);
1302   gtk_widget_show (hbox1);
1303   gtk_box_pack_start (GTK_BOX (dialog_vbox4), hbox1, TRUE, TRUE, 0);
1304
1305   label14 = gtk_label_new (_("Device name:"));
1306   gtk_widget_ref (label14);
1307   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "label14", label14,
1308                             (GtkDestroyNotify) gtk_widget_unref);
1309   gtk_widget_show (label14);
1310   gtk_box_pack_start (GTK_BOX (hbox1), label14, FALSE, FALSE, 0);
1311
1312   disc_name = gtk_entry_new ();
1313   gtk_widget_ref (disc_name);
1314   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_name", disc_name,
1315                             (GtkDestroyNotify) gtk_widget_unref);
1316   gtk_widget_show (disc_name);
1317   gtk_box_pack_start (GTK_BOX (hbox1), disc_name, TRUE, TRUE, 0);
1318   gtk_entry_set_text (GTK_ENTRY (disc_name), _("/dev/dvd"));
1319
1320   dialog_action_area4 = GNOME_DIALOG (intf_disc)->action_area;
1321   gtk_object_set_data (GTK_OBJECT (intf_disc), "dialog_action_area4", dialog_action_area4);
1322   gtk_widget_show (dialog_action_area4);
1323   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area4), GTK_BUTTONBOX_END);
1324   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area4), 8);
1325
1326   gnome_dialog_append_button (GNOME_DIALOG (intf_disc), GNOME_STOCK_BUTTON_OK);
1327   disc_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_disc)->buttons)->data);
1328   gtk_widget_ref (disc_ok);
1329   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_ok", disc_ok,
1330                             (GtkDestroyNotify) gtk_widget_unref);
1331   gtk_widget_show (disc_ok);
1332   GTK_WIDGET_SET_FLAGS (disc_ok, GTK_CAN_DEFAULT);
1333
1334   gnome_dialog_append_button (GNOME_DIALOG (intf_disc), GNOME_STOCK_BUTTON_CANCEL);
1335   disc_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_disc)->buttons)->data);
1336   gtk_widget_ref (disc_cancel);
1337   gtk_object_set_data_full (GTK_OBJECT (intf_disc), "disc_cancel", disc_cancel,
1338                             (GtkDestroyNotify) gtk_widget_unref);
1339   gtk_widget_show (disc_cancel);
1340   GTK_WIDGET_SET_FLAGS (disc_cancel, GTK_CAN_DEFAULT);
1341
1342   gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled",
1343                       GTK_SIGNAL_FUNC (GtkDiscOpenDvd),
1344                       "intf_disc");
1345   gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled",
1346                       GTK_SIGNAL_FUNC (GtkDiscOpenVcd),
1347                       "intf_disc");
1348   gtk_signal_connect (GTK_OBJECT (disc_ok), "clicked",
1349                       GTK_SIGNAL_FUNC (GtkDiscOpenOk),
1350                       "intf_disc");
1351   gtk_signal_connect (GTK_OBJECT (disc_cancel), "clicked",
1352                       GTK_SIGNAL_FUNC (GtkDiscOpenCancel),
1353                       "intf_disc");
1354
1355   return intf_disc;
1356 }
1357
1358 GtkWidget*
1359 create_intf_network (void)
1360 {
1361   GtkWidget *intf_network;
1362   GtkWidget *vbox5;
1363   GtkWidget *hbox3;
1364   GtkWidget *frame3;
1365   GtkWidget *vbox6;
1366   GSList *network_group = NULL;
1367   GtkWidget *network_ts;
1368   GtkWidget *network_rtp;
1369   GtkWidget *network_http;
1370   GtkWidget *frame4;
1371   GtkWidget *table2;
1372   GtkWidget *label17;
1373   GtkWidget *label18;
1374   GtkObject *network_port_adj;
1375   GtkWidget *network_port;
1376   GtkWidget *broadcast_check;
1377   GtkWidget *network_broadcast_combo;
1378   GtkWidget *network_broadcast;
1379   GtkWidget *network_server_combo;
1380   GtkWidget *network_server;
1381   GtkWidget *hbuttonbox1;
1382   GtkWidget *network_ok;
1383   GtkWidget *network_cancel;
1384   GtkTooltips *tooltips;
1385
1386   tooltips = gtk_tooltips_new ();
1387
1388   intf_network = gnome_dialog_new (_("Network Stream"), NULL);
1389   gtk_object_set_data (GTK_OBJECT (intf_network), "intf_network", intf_network);
1390   gtk_window_set_modal (GTK_WINDOW (intf_network), TRUE);
1391   gtk_window_set_policy (GTK_WINDOW (intf_network), FALSE, FALSE, FALSE);
1392
1393   vbox5 = GNOME_DIALOG (intf_network)->vbox;
1394   gtk_object_set_data (GTK_OBJECT (intf_network), "vbox5", vbox5);
1395   gtk_widget_show (vbox5);
1396
1397   hbox3 = gtk_hbox_new (FALSE, 5);
1398   gtk_widget_ref (hbox3);
1399   gtk_object_set_data_full (GTK_OBJECT (intf_network), "hbox3", hbox3,
1400                             (GtkDestroyNotify) gtk_widget_unref);
1401   gtk_widget_show (hbox3);
1402   gtk_box_pack_start (GTK_BOX (vbox5), hbox3, TRUE, TRUE, 0);
1403
1404   frame3 = gtk_frame_new (_("Protocol"));
1405   gtk_widget_ref (frame3);
1406   gtk_object_set_data_full (GTK_OBJECT (intf_network), "frame3", frame3,
1407                             (GtkDestroyNotify) gtk_widget_unref);
1408   gtk_widget_show (frame3);
1409   gtk_box_pack_start (GTK_BOX (hbox3), frame3, TRUE, TRUE, 0);
1410
1411   vbox6 = gtk_vbox_new (FALSE, 0);
1412   gtk_widget_ref (vbox6);
1413   gtk_object_set_data_full (GTK_OBJECT (intf_network), "vbox6", vbox6,
1414                             (GtkDestroyNotify) gtk_widget_unref);
1415   gtk_widget_show (vbox6);
1416   gtk_container_add (GTK_CONTAINER (frame3), vbox6);
1417
1418   network_ts = gtk_radio_button_new_with_label (network_group, _("TS"));
1419   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_ts));
1420   gtk_widget_ref (network_ts);
1421   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_ts", network_ts,
1422                             (GtkDestroyNotify) gtk_widget_unref);
1423   gtk_widget_show (network_ts);
1424   gtk_box_pack_start (GTK_BOX (vbox6), network_ts, FALSE, FALSE, 0);
1425
1426   network_rtp = gtk_radio_button_new_with_label (network_group, _("RTP"));
1427   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_rtp));
1428   gtk_widget_ref (network_rtp);
1429   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_rtp", network_rtp,
1430                             (GtkDestroyNotify) gtk_widget_unref);
1431   gtk_widget_show (network_rtp);
1432   gtk_box_pack_start (GTK_BOX (vbox6), network_rtp, FALSE, FALSE, 0);
1433   gtk_widget_set_sensitive (network_rtp, FALSE);
1434
1435   network_http = gtk_radio_button_new_with_label (network_group, _("HTTP"));
1436   network_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http));
1437   gtk_widget_ref (network_http);
1438   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_http", network_http,
1439                             (GtkDestroyNotify) gtk_widget_unref);
1440   gtk_widget_show (network_http);
1441   gtk_box_pack_start (GTK_BOX (vbox6), network_http, FALSE, FALSE, 0);
1442   gtk_widget_set_sensitive (network_http, FALSE);
1443
1444   frame4 = gtk_frame_new (_("Server"));
1445   gtk_widget_ref (frame4);
1446   gtk_object_set_data_full (GTK_OBJECT (intf_network), "frame4", frame4,
1447                             (GtkDestroyNotify) gtk_widget_unref);
1448   gtk_widget_show (frame4);
1449   gtk_box_pack_start (GTK_BOX (hbox3), frame4, TRUE, TRUE, 0);
1450
1451   table2 = gtk_table_new (3, 2, FALSE);
1452   gtk_widget_ref (table2);
1453   gtk_object_set_data_full (GTK_OBJECT (intf_network), "table2", table2,
1454                             (GtkDestroyNotify) gtk_widget_unref);
1455   gtk_widget_show (table2);
1456   gtk_container_add (GTK_CONTAINER (frame4), table2);
1457   gtk_container_set_border_width (GTK_CONTAINER (table2), 5);
1458   gtk_table_set_row_spacings (GTK_TABLE (table2), 5);
1459   gtk_table_set_col_spacings (GTK_TABLE (table2), 5);
1460
1461   label17 = gtk_label_new (_("Address"));
1462   gtk_widget_ref (label17);
1463   gtk_object_set_data_full (GTK_OBJECT (intf_network), "label17", label17,
1464                             (GtkDestroyNotify) gtk_widget_unref);
1465   gtk_widget_show (label17);
1466   gtk_table_attach (GTK_TABLE (table2), label17, 0, 1, 0, 1,
1467                     (GtkAttachOptions) (GTK_FILL),
1468                     (GtkAttachOptions) (0), 0, 0);
1469   gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5);
1470
1471   label18 = gtk_label_new (_("Port"));
1472   gtk_widget_ref (label18);
1473   gtk_object_set_data_full (GTK_OBJECT (intf_network), "label18", label18,
1474                             (GtkDestroyNotify) gtk_widget_unref);
1475   gtk_widget_show (label18);
1476   gtk_table_attach (GTK_TABLE (table2), label18, 0, 1, 1, 2,
1477                     (GtkAttachOptions) (GTK_FILL),
1478                     (GtkAttachOptions) (0), 0, 0);
1479   gtk_misc_set_alignment (GTK_MISC (label18), 0, 0.5);
1480
1481   network_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1482   network_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_port_adj), 1, 0);
1483   gtk_widget_ref (network_port);
1484   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_port", network_port,
1485                             (GtkDestroyNotify) gtk_widget_unref);
1486   gtk_widget_show (network_port);
1487   gtk_table_attach (GTK_TABLE (table2), network_port, 1, 2, 1, 2,
1488                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1489                     (GtkAttachOptions) (0), 0, 0);
1490   gtk_tooltips_set_tip (tooltips, network_port, _("Port of the stream server"), NULL);
1491
1492   broadcast_check = gtk_check_button_new_with_label (_("Broadcast"));
1493   gtk_widget_ref (broadcast_check);
1494   gtk_object_set_data_full (GTK_OBJECT (intf_network), "broadcast_check", broadcast_check,
1495                             (GtkDestroyNotify) gtk_widget_unref);
1496   gtk_widget_show (broadcast_check);
1497   gtk_table_attach (GTK_TABLE (table2), broadcast_check, 0, 1, 2, 3,
1498                     (GtkAttachOptions) (GTK_FILL),
1499                     (GtkAttachOptions) (0), 0, 0);
1500
1501   network_broadcast_combo = gnome_entry_new (NULL);
1502   gtk_widget_ref (network_broadcast_combo);
1503   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_broadcast_combo", network_broadcast_combo,
1504                             (GtkDestroyNotify) gtk_widget_unref);
1505   gtk_widget_show (network_broadcast_combo);
1506   gtk_table_attach (GTK_TABLE (table2), network_broadcast_combo, 1, 2, 2, 3,
1507                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1508                     (GtkAttachOptions) (0), 0, 0);
1509
1510   network_broadcast = gnome_entry_gtk_entry (GNOME_ENTRY (network_broadcast_combo));
1511   gtk_widget_ref (network_broadcast);
1512   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_broadcast", network_broadcast,
1513                             (GtkDestroyNotify) gtk_widget_unref);
1514   gtk_widget_show (network_broadcast);
1515   gtk_widget_set_sensitive (network_broadcast, FALSE);
1516
1517   network_server_combo = gnome_entry_new (NULL);
1518   gtk_widget_ref (network_server_combo);
1519   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server_combo", network_server_combo,
1520                             (GtkDestroyNotify) gtk_widget_unref);
1521   gtk_widget_show (network_server_combo);
1522   gtk_table_attach (GTK_TABLE (table2), network_server_combo, 1, 2, 0, 1,
1523                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1524                     (GtkAttachOptions) (0), 0, 0);
1525
1526   network_server = gnome_entry_gtk_entry (GNOME_ENTRY (network_server_combo));
1527   gtk_widget_ref (network_server);
1528   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server", network_server,
1529                             (GtkDestroyNotify) gtk_widget_unref);
1530   gtk_widget_show (network_server);
1531   gtk_entry_set_text (GTK_ENTRY (network_server), _("vls"));
1532
1533   hbuttonbox1 = GNOME_DIALOG (intf_network)->action_area;
1534   gtk_object_set_data (GTK_OBJECT (intf_network), "hbuttonbox1", hbuttonbox1);
1535   gtk_widget_show (hbuttonbox1);
1536   gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);
1537   gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox1), 8);
1538
1539   gnome_dialog_append_button (GNOME_DIALOG (intf_network), GNOME_STOCK_BUTTON_OK);
1540   network_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_network)->buttons)->data);
1541   gtk_widget_ref (network_ok);
1542   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_ok", network_ok,
1543                             (GtkDestroyNotify) gtk_widget_unref);
1544   gtk_widget_show (network_ok);
1545   GTK_WIDGET_SET_FLAGS (network_ok, GTK_CAN_DEFAULT);
1546
1547   gnome_dialog_append_button (GNOME_DIALOG (intf_network), GNOME_STOCK_BUTTON_CANCEL);
1548   network_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_network)->buttons)->data);
1549   gtk_widget_ref (network_cancel);
1550   gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_cancel", network_cancel,
1551                             (GtkDestroyNotify) gtk_widget_unref);
1552   gtk_widget_show (network_cancel);
1553   GTK_WIDGET_SET_FLAGS (network_cancel, GTK_CAN_DEFAULT);
1554
1555   gtk_signal_connect (GTK_OBJECT (broadcast_check), "toggled",
1556                       GTK_SIGNAL_FUNC (GtkNetworkOpenBroadcast),
1557                       NULL);
1558   gtk_signal_connect (GTK_OBJECT (network_ok), "clicked",
1559                       GTK_SIGNAL_FUNC (GtkNetworkOpenOk),
1560                       "intf_network");
1561   gtk_signal_connect (GTK_OBJECT (network_cancel), "clicked",
1562                       GTK_SIGNAL_FUNC (GtkNetworkOpenCancel),
1563                       "intf_network");
1564
1565   gtk_object_set_data (GTK_OBJECT (intf_network), "tooltips", tooltips);
1566
1567   return intf_network;
1568 }
1569
1570 static GnomeUIInfo playlist_add_menu_uiinfo[] =
1571 {
1572   {
1573     GNOME_APP_UI_ITEM, N_("Disc"),
1574     NULL,
1575     (gpointer) GnomePlaylistDiscOpenActivate, NULL, NULL,
1576     GNOME_APP_PIXMAP_NONE, NULL,
1577     0, (GdkModifierType) 0, NULL
1578   },
1579   {
1580     GNOME_APP_UI_ITEM, N_("File"),
1581     NULL,
1582     (gpointer) GnomePlaylistFileOpenActivate, NULL, NULL,
1583     GNOME_APP_PIXMAP_NONE, NULL,
1584     0, (GdkModifierType) 0, NULL
1585   },
1586   {
1587     GNOME_APP_UI_ITEM, N_("Network"),
1588     NULL,
1589     (gpointer) GnomePlaylistNetworkOpenActivate, NULL, NULL,
1590     GNOME_APP_PIXMAP_NONE, NULL,
1591     0, (GdkModifierType) 0, NULL
1592   },
1593   {
1594     GNOME_APP_UI_ITEM, N_("Url"),
1595     NULL,
1596     (gpointer) GtkPlaylistAddUrl, NULL, NULL,
1597     GNOME_APP_PIXMAP_NONE, NULL,
1598     0, (GdkModifierType) 0, NULL
1599   },
1600   GNOMEUIINFO_END
1601 };
1602
1603 static GnomeUIInfo playlist_delete_menu_uiinfo[] =
1604 {
1605   {
1606     GNOME_APP_UI_ITEM, N_("All"),
1607     NULL,
1608     (gpointer) GtkPlaylistDeleteAll, NULL, NULL,
1609     GNOME_APP_PIXMAP_NONE, NULL,
1610     0, (GdkModifierType) 0, NULL
1611   },
1612   {
1613     GNOME_APP_UI_ITEM, N_("Item"),
1614     NULL,
1615     (gpointer) GtkPlaylistDeleteSelected, NULL, NULL,
1616     GNOME_APP_PIXMAP_NONE, NULL,
1617     0, (GdkModifierType) 0, NULL
1618   },
1619   GNOMEUIINFO_END
1620 };
1621
1622 static GnomeUIInfo playlist_selection_menu_uiinfo[] =
1623 {
1624   {
1625     GNOME_APP_UI_ITEM, N_("Crop"),
1626     NULL,
1627     (gpointer) GtkPlaylistCrop, NULL, NULL,
1628     GNOME_APP_PIXMAP_NONE, NULL,
1629     0, (GdkModifierType) 0, NULL
1630   },
1631   {
1632     GNOME_APP_UI_ITEM, N_("Invert"),
1633     NULL,
1634     (gpointer) GtkPlaylistInvert, NULL, NULL,
1635     GNOME_APP_PIXMAP_NONE, NULL,
1636     0, (GdkModifierType) 0, NULL
1637   },
1638   {
1639     GNOME_APP_UI_ITEM, N_("Select"),
1640     NULL,
1641     (gpointer) GtkPlaylistSelect, NULL, NULL,
1642     GNOME_APP_PIXMAP_NONE, NULL,
1643     0, (GdkModifierType) 0, NULL
1644   },
1645   GNOMEUIINFO_END
1646 };
1647
1648 static GnomeUIInfo playlist_menubar_uiinfo[] =
1649 {
1650   {
1651     GNOME_APP_UI_SUBTREE, N_("Add"),
1652     NULL,
1653     playlist_add_menu_uiinfo, NULL, NULL,
1654     GNOME_APP_PIXMAP_NONE, NULL,
1655     0, (GdkModifierType) 0, NULL
1656   },
1657   {
1658     GNOME_APP_UI_SUBTREE, N_("Delete"),
1659     NULL,
1660     playlist_delete_menu_uiinfo, NULL, NULL,
1661     GNOME_APP_PIXMAP_NONE, NULL,
1662     0, (GdkModifierType) 0, NULL
1663   },
1664   {
1665     GNOME_APP_UI_SUBTREE, N_("Selection"),
1666     NULL,
1667     playlist_selection_menu_uiinfo, NULL, NULL,
1668     GNOME_APP_PIXMAP_NONE, NULL,
1669     0, (GdkModifierType) 0, NULL
1670   },
1671   GNOMEUIINFO_END
1672 };
1673
1674 GtkWidget*
1675 create_intf_playlist (void)
1676 {
1677   GtkWidget *intf_playlist;
1678   GtkWidget *playlist_vbox;
1679   GtkWidget *playlist_scrolledwindow;
1680   GtkWidget *playlist_viewport;
1681   GtkWidget *playlist_frame;
1682   GtkWidget *playlist_clist;
1683   GtkWidget *playlist_label_url;
1684   GtkWidget *playlist_label_duration;
1685   GtkWidget *playlist_menubar;
1686   GtkWidget *playlist_action;
1687   GtkWidget *playlist_ok;
1688   GtkWidget *playlist_cancel;
1689
1690   intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
1691   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
1692   gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 400, 300);
1693   gtk_window_set_policy (GTK_WINDOW (intf_playlist), TRUE, TRUE, FALSE);
1694
1695   playlist_vbox = GNOME_DIALOG (intf_playlist)->vbox;
1696   gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_vbox", playlist_vbox);
1697   gtk_widget_show (playlist_vbox);
1698
1699   playlist_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
1700   gtk_widget_ref (playlist_scrolledwindow);
1701   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_scrolledwindow", playlist_scrolledwindow,
1702                             (GtkDestroyNotify) gtk_widget_unref);
1703   gtk_widget_show (playlist_scrolledwindow);
1704   gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_scrolledwindow, TRUE, TRUE, 0);
1705   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (playlist_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1706
1707   playlist_viewport = gtk_viewport_new (NULL, NULL);
1708   gtk_widget_ref (playlist_viewport);
1709   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_viewport", playlist_viewport,
1710                             (GtkDestroyNotify) gtk_widget_unref);
1711   gtk_widget_show (playlist_viewport);
1712   gtk_container_add (GTK_CONTAINER (playlist_scrolledwindow), playlist_viewport);
1713
1714   playlist_frame = gtk_frame_new (_("Playlist"));
1715   gtk_widget_ref (playlist_frame);
1716   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_frame", playlist_frame,
1717                             (GtkDestroyNotify) gtk_widget_unref);
1718   gtk_widget_show (playlist_frame);
1719   gtk_container_add (GTK_CONTAINER (playlist_viewport), playlist_frame);
1720   gtk_container_set_border_width (GTK_CONTAINER (playlist_frame), 4);
1721   gtk_frame_set_label_align (GTK_FRAME (playlist_frame), 0.05, 0.5);
1722
1723   playlist_clist = gtk_clist_new (2);
1724   gtk_widget_ref (playlist_clist);
1725   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist,
1726                             (GtkDestroyNotify) gtk_widget_unref);
1727   gtk_widget_show (playlist_clist);
1728   gtk_container_add (GTK_CONTAINER (playlist_frame), playlist_clist);
1729   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 287);
1730   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 70);
1731   gtk_clist_column_titles_show (GTK_CLIST (playlist_clist));
1732
1733   playlist_label_url = gtk_label_new (_("Url"));
1734   gtk_widget_ref (playlist_label_url);
1735   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_url", playlist_label_url,
1736                             (GtkDestroyNotify) gtk_widget_unref);
1737   gtk_widget_show (playlist_label_url);
1738   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, playlist_label_url);
1739
1740   playlist_label_duration = gtk_label_new (_("Duration"));
1741   gtk_widget_ref (playlist_label_duration);
1742   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_duration", playlist_label_duration,
1743                             (GtkDestroyNotify) gtk_widget_unref);
1744   gtk_widget_show (playlist_label_duration);
1745   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, playlist_label_duration);
1746
1747   playlist_menubar = gtk_menu_bar_new ();
1748   gtk_widget_ref (playlist_menubar);
1749   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_menubar", playlist_menubar,
1750                             (GtkDestroyNotify) gtk_widget_unref);
1751   gtk_widget_show (playlist_menubar);
1752   gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_menubar, FALSE, FALSE, 0);
1753   gnome_app_fill_menu (GTK_MENU_SHELL (playlist_menubar), playlist_menubar_uiinfo,
1754                        NULL, FALSE, 0);
1755
1756   gtk_widget_ref (playlist_menubar_uiinfo[0].widget);
1757   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add",
1758                             playlist_menubar_uiinfo[0].widget,
1759                             (GtkDestroyNotify) gtk_widget_unref);
1760
1761   gtk_widget_ref (playlist_add_menu_uiinfo[0].widget);
1762   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_disc",
1763                             playlist_add_menu_uiinfo[0].widget,
1764                             (GtkDestroyNotify) gtk_widget_unref);
1765
1766   gtk_widget_ref (playlist_add_menu_uiinfo[1].widget);
1767   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_file",
1768                             playlist_add_menu_uiinfo[1].widget,
1769                             (GtkDestroyNotify) gtk_widget_unref);
1770
1771   gtk_widget_ref (playlist_add_menu_uiinfo[2].widget);
1772   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_network",
1773                             playlist_add_menu_uiinfo[2].widget,
1774                             (GtkDestroyNotify) gtk_widget_unref);
1775
1776   gtk_widget_ref (playlist_add_menu_uiinfo[3].widget);
1777   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_url",
1778                             playlist_add_menu_uiinfo[3].widget,
1779                             (GtkDestroyNotify) gtk_widget_unref);
1780
1781   gtk_widget_ref (playlist_menubar_uiinfo[1].widget);
1782   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete",
1783                             playlist_menubar_uiinfo[1].widget,
1784                             (GtkDestroyNotify) gtk_widget_unref);
1785
1786   gtk_widget_ref (playlist_delete_menu_uiinfo[0].widget);
1787   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_all",
1788                             playlist_delete_menu_uiinfo[0].widget,
1789                             (GtkDestroyNotify) gtk_widget_unref);
1790
1791   gtk_widget_ref (playlist_delete_menu_uiinfo[1].widget);
1792   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playmist_delete_item",
1793                             playlist_delete_menu_uiinfo[1].widget,
1794                             (GtkDestroyNotify) gtk_widget_unref);
1795
1796   gtk_widget_ref (playlist_menubar_uiinfo[2].widget);
1797   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection",
1798                             playlist_menubar_uiinfo[2].widget,
1799                             (GtkDestroyNotify) gtk_widget_unref);
1800
1801   gtk_widget_ref (playlist_selection_menu_uiinfo[0].widget);
1802   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_crop",
1803                             playlist_selection_menu_uiinfo[0].widget,
1804                             (GtkDestroyNotify) gtk_widget_unref);
1805
1806   gtk_widget_ref (playlist_selection_menu_uiinfo[1].widget);
1807   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_invert",
1808                             playlist_selection_menu_uiinfo[1].widget,
1809                             (GtkDestroyNotify) gtk_widget_unref);
1810
1811   gtk_widget_ref (playlist_selection_menu_uiinfo[2].widget);
1812   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_select",
1813                             playlist_selection_menu_uiinfo[2].widget,
1814                             (GtkDestroyNotify) gtk_widget_unref);
1815
1816   playlist_action = GNOME_DIALOG (intf_playlist)->action_area;
1817   gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_action", playlist_action);
1818   gtk_widget_show (playlist_action);
1819   gtk_button_box_set_layout (GTK_BUTTON_BOX (playlist_action), GTK_BUTTONBOX_END);
1820   gtk_button_box_set_spacing (GTK_BUTTON_BOX (playlist_action), 8);
1821   gtk_button_box_set_child_size (GTK_BUTTON_BOX (playlist_action), 100, 38);
1822
1823   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
1824   playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
1825   gtk_widget_ref (playlist_ok);
1826   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
1827                             (GtkDestroyNotify) gtk_widget_unref);
1828   gtk_widget_show (playlist_ok);
1829   GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
1830
1831   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_CANCEL);
1832   playlist_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
1833   gtk_widget_ref (playlist_cancel);
1834   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_cancel", playlist_cancel,
1835                             (GtkDestroyNotify) gtk_widget_unref);
1836   gtk_widget_show (playlist_cancel);
1837   GTK_WIDGET_SET_FLAGS (playlist_cancel, GTK_CAN_DEFAULT);
1838
1839   gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
1840                       GTK_SIGNAL_FUNC (gtk_widget_hide),
1841                       "intf_playlist");
1842   gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event",
1843                       GTK_SIGNAL_FUNC (gtk_widget_hide),
1844                       "intf_playlist");
1845   gtk_signal_connect (GTK_OBJECT (playlist_clist), "event",
1846                       GTK_SIGNAL_FUNC (GtkPlaylistEvent),
1847                       "intf_playlist");
1848   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received",
1849                       GTK_SIGNAL_FUNC (GtkPlaylistDragData),
1850                       "intf_playlist");
1851   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion",
1852                       GTK_SIGNAL_FUNC (GtkPlaylistDragMotion),
1853                       "intf_playlist");
1854   gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
1855                       GTK_SIGNAL_FUNC (GtkPlaylistOk),
1856                       "intf_playlist");
1857   gtk_signal_connect (GTK_OBJECT (playlist_cancel), "clicked",
1858                       GTK_SIGNAL_FUNC (GtkPlaylistCancel),
1859                       "intf_playlist");
1860
1861   return intf_playlist;
1862 }
1863
1864 GtkWidget*
1865 create_intf_jump (void)
1866 {
1867   GtkWidget *intf_jump;
1868   GtkWidget *jump_vbox;
1869   GtkWidget *jump_frame;
1870   GtkWidget *jump_box;
1871   GtkWidget *jump_label3;
1872   GtkObject *jump_second_spinbutton_adj;
1873   GtkWidget *jump_second_spinbutton;
1874   GtkWidget *jump_label1;
1875   GtkObject *jump_minute_spinbutton_adj;
1876   GtkWidget *jump_minute_spinbutton;
1877   GtkWidget *jump_label2;
1878   GtkObject *jump_hour_spinbutton_adj;
1879   GtkWidget *jump_hour_spinbutton;
1880   GtkWidget *jump_action;
1881   GtkWidget *jump_ok;
1882   GtkWidget *jump_cancel;
1883
1884   intf_jump = gnome_dialog_new (NULL, NULL);
1885   gtk_object_set_data (GTK_OBJECT (intf_jump), "intf_jump", intf_jump);
1886   gtk_window_set_policy (GTK_WINDOW (intf_jump), FALSE, FALSE, FALSE);
1887
1888   jump_vbox = GNOME_DIALOG (intf_jump)->vbox;
1889   gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_vbox", jump_vbox);
1890   gtk_widget_show (jump_vbox);
1891
1892   jump_frame = gtk_frame_new (_("Jump to: "));
1893   gtk_widget_ref (jump_frame);
1894   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_frame", jump_frame,
1895                             (GtkDestroyNotify) gtk_widget_unref);
1896   gtk_widget_show (jump_frame);
1897   gtk_box_pack_start (GTK_BOX (jump_vbox), jump_frame, FALSE, FALSE, 0);
1898   gtk_container_set_border_width (GTK_CONTAINER (jump_frame), 5);
1899   gtk_frame_set_label_align (GTK_FRAME (jump_frame), 0.05, 0.5);
1900
1901   jump_box = gtk_hbox_new (FALSE, 0);
1902   gtk_widget_ref (jump_box);
1903   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_box", jump_box,
1904                             (GtkDestroyNotify) gtk_widget_unref);
1905   gtk_widget_show (jump_box);
1906   gtk_container_add (GTK_CONTAINER (jump_frame), jump_box);
1907   gtk_container_set_border_width (GTK_CONTAINER (jump_box), 5);
1908
1909   jump_label3 = gtk_label_new (_("s."));
1910   gtk_widget_ref (jump_label3);
1911   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label3", jump_label3,
1912                             (GtkDestroyNotify) gtk_widget_unref);
1913   gtk_widget_show (jump_label3);
1914   gtk_box_pack_end (GTK_BOX (jump_box), jump_label3, FALSE, FALSE, 0);
1915
1916   jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
1917   jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0);
1918   gtk_widget_ref (jump_second_spinbutton);
1919   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton,
1920                             (GtkDestroyNotify) gtk_widget_unref);
1921   gtk_widget_show (jump_second_spinbutton);
1922   gtk_box_pack_end (GTK_BOX (jump_box), jump_second_spinbutton, FALSE, FALSE, 5);
1923
1924   jump_label1 = gtk_label_new (_("m:"));
1925   gtk_widget_ref (jump_label1);
1926   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label1", jump_label1,
1927                             (GtkDestroyNotify) gtk_widget_unref);
1928   gtk_widget_show (jump_label1);
1929   gtk_box_pack_end (GTK_BOX (jump_box), jump_label1, FALSE, FALSE, 5);
1930
1931   jump_minute_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 10);
1932   jump_minute_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_minute_spinbutton_adj), 1, 0);
1933   gtk_widget_ref (jump_minute_spinbutton);
1934   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_spinbutton", jump_minute_spinbutton,
1935                             (GtkDestroyNotify) gtk_widget_unref);
1936   gtk_widget_show (jump_minute_spinbutton);
1937   gtk_box_pack_end (GTK_BOX (jump_box), jump_minute_spinbutton, FALSE, FALSE, 5);
1938
1939   jump_label2 = gtk_label_new (_("h:"));
1940   gtk_widget_ref (jump_label2);
1941   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label2", jump_label2,
1942                             (GtkDestroyNotify) gtk_widget_unref);
1943   gtk_widget_show (jump_label2);
1944   gtk_box_pack_end (GTK_BOX (jump_box), jump_label2, FALSE, FALSE, 5);
1945
1946   jump_hour_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 10, 10);
1947   jump_hour_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_hour_spinbutton_adj), 1, 0);
1948   gtk_widget_ref (jump_hour_spinbutton);
1949   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_spinbutton", jump_hour_spinbutton,
1950                             (GtkDestroyNotify) gtk_widget_unref);
1951   gtk_widget_show (jump_hour_spinbutton);
1952   gtk_box_pack_end (GTK_BOX (jump_box), jump_hour_spinbutton, FALSE, FALSE, 5);
1953
1954   jump_action = GNOME_DIALOG (intf_jump)->action_area;
1955   gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_action", jump_action);
1956   gtk_widget_show (jump_action);
1957   gtk_button_box_set_layout (GTK_BUTTON_BOX (jump_action), GTK_BUTTONBOX_END);
1958   gtk_button_box_set_spacing (GTK_BUTTON_BOX (jump_action), 8);
1959
1960   gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_OK);
1961   jump_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
1962   gtk_widget_ref (jump_ok);
1963   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_ok", jump_ok,
1964                             (GtkDestroyNotify) gtk_widget_unref);
1965   gtk_widget_show (jump_ok);
1966   GTK_WIDGET_SET_FLAGS (jump_ok, GTK_CAN_DEFAULT);
1967
1968   gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_CANCEL);
1969   jump_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
1970   gtk_widget_ref (jump_cancel);
1971   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_cancel", jump_cancel,
1972                             (GtkDestroyNotify) gtk_widget_unref);
1973   gtk_widget_show (jump_cancel);
1974   GTK_WIDGET_SET_FLAGS (jump_cancel, GTK_CAN_DEFAULT);
1975
1976   gtk_signal_connect (GTK_OBJECT (jump_ok), "clicked",
1977                       GTK_SIGNAL_FUNC (GtkJumpOk),
1978                       "intf_jump");
1979   gtk_signal_connect (GTK_OBJECT (jump_cancel), "clicked",
1980                       GTK_SIGNAL_FUNC (GtkJumpCancel),
1981                       "intf_jump");
1982
1983   return intf_jump;
1984 }
1985
1986 GtkWidget*
1987 create_intf_preferences (void)
1988 {
1989   GtkWidget *intf_preferences;
1990   GtkWidget *preferences_vbox;
1991   GtkWidget *preferences_frame;
1992   GtkWidget *preferences_notebook;
1993   GtkWidget *preferences_file_table;
1994   GtkWidget *preferences_file_combo;
1995   GtkWidget *preferences_file_path_entry;
1996   GtkWidget *preferences_file_path_label;
1997   GtkWidget *preferences_file;
1998   GtkWidget *preferences_disc_table;
1999   GtkWidget *preferences_disc_dvd_combo;
2000   GtkWidget *preferences_disc_dvd_entry;
2001   GtkWidget *preferences_file_vcd_combo;
2002   GtkWidget *preferences_disc_vcd_entry;
2003   GtkWidget *preferences_disc_dvd_label;
2004   GtkWidget *preferences_disc_vcd_label;
2005   GtkWidget *preferences_disc;
2006   GtkWidget *preferences_network_table;
2007   GtkWidget *preferences_network_server_label;
2008   GtkObject *preferences_network_port_spinbutton_adj;
2009   GtkWidget *preferences_network_port_spinbutton;
2010   GtkWidget *preferences_network_broadcast_label;
2011   GtkWidget *preferences_network_port_label;
2012   GtkWidget *preferences_network_server_combo;
2013   GtkWidget *preferences_network_server_entry;
2014   GtkWidget *preferences_network_broadcast_combo;
2015   GtkWidget *preferences_network_broadcast_entry;
2016   GtkWidget *preferences_network_broadcast_checkbutton;
2017   GSList *preferences_network_protocol_group_group = NULL;
2018   GtkWidget *preferences_network_ts_radiobutton;
2019   GtkWidget *preferences_network_rtp_radiobutton;
2020   GtkWidget *preferences_network_http_radiobutton;
2021   GtkWidget *preferences_network_protocol_label;
2022   GtkWidget *preferences_network;
2023   GtkWidget *preferences_network_interface_table;
2024   GtkWidget *preferences_interface_label;
2025   GtkWidget *preferences_interface_combo;
2026   GtkWidget *preferences_interface_entry;
2027   GtkWidget *preferences_interface;
2028   GtkWidget *preferences_video_table;
2029   GtkWidget *preferences_video_output_label;
2030   GtkWidget *preferences_video_height;
2031   GtkObject *preferences_video_height_spinbutton_adj;
2032   GtkWidget *preferences_video_height_spinbutton;
2033   GtkObject *preferences_video_width_spinbutton_adj;
2034   GtkWidget *preferences_video_width_spinbutton;
2035   GtkWidget *preferences_video_width_label;
2036   GtkWidget *preferences_video_output_combo;
2037   GtkWidget *preferences_video_output_entry;
2038   GtkWidget *preferences_video_depth;
2039   GtkWidget *preferences_video_depth_optionmenu;
2040   GtkWidget *preferences_video_depth_optionmenu_menu;
2041   GtkWidget *glade_menuitem;
2042   GtkWidget *preferences_video_fullscreen_depth;
2043   GtkWidget *preferences_video_fullscreen_depth_optionmenu;
2044   GtkWidget *preferences_video_fullscreen_depth_optionmenu_menu;
2045   GtkWidget *preferences_video_fullscreen_checkbutton;
2046   GtkWidget *preferences_video_grayscale_checkbutton;
2047   GtkWidget *preferences_video_gamma_label;
2048   GtkObject *spinbutton4_adj;
2049   GtkWidget *spinbutton4;
2050   GtkWidget *preferences_video;
2051   GtkWidget *preference_audio_table;
2052   GtkWidget *preferences_audio_spdif_checkbutton;
2053   GtkWidget *preferences_audio_output_label;
2054   GtkWidget *preferences_audio_output_combo;
2055   GtkWidget *preferences_audio_output_entry;
2056   GtkWidget *preferences_audio_frequency_label;
2057   GtkWidget *preferences_audio_frequency_optionmenu;
2058   GtkWidget *preferences_audio_frequency_optionmenu_menu;
2059   GtkWidget *preferences_audio_quality_label;
2060   GtkWidget *preferences_audio_quality_optionmenu;
2061   GtkWidget *preferences_audio_quality_optionmenu_menu;
2062   GtkWidget *preferences_audio_channels_label;
2063   GtkWidget *preferences_audio_channels_optionmenu;
2064   GtkWidget *preferences_audio_channels_optionmenu_menu;
2065   GtkWidget *preferences_audio_device_label;
2066   GtkWidget *preferences_audio_device_combo;
2067   GtkWidget *preferences_audio_device_entry;
2068   GtkWidget *preferences_audio;
2069   GtkWidget *preference_playlist_table;
2070   GtkWidget *preferences_playlist_startup_checkbutton;
2071   GtkWidget *preferences_playlist_loop_checkbutton;
2072   GtkWidget *preferences_playlist_enqueue_checkbutton;
2073   GtkWidget *preferences_playlist;
2074   GtkWidget *preferences_misc_table;
2075   GtkWidget *preferences_misc_associated_files_frame;
2076   GtkWidget *preferences_misc_associated_table;
2077   GtkWidget *preferences_misc_ts_checkbutton;
2078   GtkWidget *preferences_misc_vob_checkbutton;
2079   GtkWidget *preferences_misc_mp2_checkbutton;
2080   GtkWidget *preferences_misc_mpeg_checkbutton;
2081   GtkWidget *preferences_misc_message_frame;
2082   GtkWidget *preferences_misc_message_table;
2083   GtkWidget *preferences_misc_messages_label;
2084   GtkObject *preferences_misc_messages_spinbutton_adj;
2085   GtkWidget *preferences_misc_messages_spinbutton;
2086   GtkWidget *preferences_misc;
2087   GtkWidget *preferences_dialog;
2088   GtkWidget *preferences_ok;
2089   GtkWidget *preferences_apply;
2090   GtkWidget *preferences_cancel;
2091
2092   intf_preferences = gnome_dialog_new (_("Preferences"), NULL);
2093   gtk_object_set_data (GTK_OBJECT (intf_preferences), "intf_preferences", intf_preferences);
2094   gtk_window_set_default_size (GTK_WINDOW (intf_preferences), 450, 350);
2095   gtk_window_set_policy (GTK_WINDOW (intf_preferences), TRUE, TRUE, FALSE);
2096
2097   preferences_vbox = GNOME_DIALOG (intf_preferences)->vbox;
2098   gtk_object_set_data (GTK_OBJECT (intf_preferences), "preferences_vbox", preferences_vbox);
2099   gtk_widget_show (preferences_vbox);
2100   gtk_container_set_border_width (GTK_CONTAINER (preferences_vbox), 5);
2101
2102   preferences_frame = gtk_frame_new (_("Preferences"));
2103   gtk_widget_ref (preferences_frame);
2104   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_frame", preferences_frame,
2105                             (GtkDestroyNotify) gtk_widget_unref);
2106   gtk_widget_show (preferences_frame);
2107   gtk_box_pack_start (GTK_BOX (preferences_vbox), preferences_frame, TRUE, TRUE, 0);
2108   gtk_frame_set_label_align (GTK_FRAME (preferences_frame), 0.05, 0.5);
2109
2110   preferences_notebook = gtk_notebook_new ();
2111   gtk_widget_ref (preferences_notebook);
2112   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_notebook", preferences_notebook,
2113                             (GtkDestroyNotify) gtk_widget_unref);
2114   gtk_widget_show (preferences_notebook);
2115   gtk_container_add (GTK_CONTAINER (preferences_frame), preferences_notebook);
2116
2117   preferences_file_table = gtk_table_new (1, 2, FALSE);
2118   gtk_widget_ref (preferences_file_table);
2119   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_table", preferences_file_table,
2120                             (GtkDestroyNotify) gtk_widget_unref);
2121   gtk_widget_show (preferences_file_table);
2122   gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_file_table);
2123   gtk_container_set_border_width (GTK_CONTAINER (preferences_file_table), 5);
2124   gtk_table_set_row_spacings (GTK_TABLE (preferences_file_table), 5);
2125   gtk_table_set_col_spacings (GTK_TABLE (preferences_file_table), 5);
2126
2127   preferences_file_combo = gnome_file_entry_new (NULL, NULL);
2128   gtk_widget_ref (preferences_file_combo);
2129   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_combo", preferences_file_combo,
2130                             (GtkDestroyNotify) gtk_widget_unref);
2131   gtk_widget_show (preferences_file_combo);
2132   gtk_table_attach (GTK_TABLE (preferences_file_table), preferences_file_combo, 1, 2, 0, 1,
2133                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2134                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2135
2136   preferences_file_path_entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (preferences_file_combo));
2137   gtk_widget_ref (preferences_file_path_entry);
2138   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_path_entry", preferences_file_path_entry,
2139                             (GtkDestroyNotify) gtk_widget_unref);
2140   gtk_widget_show (preferences_file_path_entry);
2141
2142   preferences_file_path_label = gtk_label_new (_("Default path: "));
2143   gtk_widget_ref (preferences_file_path_label);
2144   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_path_label", preferences_file_path_label,
2145                             (GtkDestroyNotify) gtk_widget_unref);
2146   gtk_widget_show (preferences_file_path_label);
2147   gtk_table_attach (GTK_TABLE (preferences_file_table), preferences_file_path_label, 0, 1, 0, 1,
2148                     (GtkAttachOptions) (GTK_EXPAND),
2149                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2150   gtk_misc_set_alignment (GTK_MISC (preferences_file_path_label), 0, 0.5);
2151
2152   preferences_file = gtk_label_new (_("File"));
2153   gtk_widget_ref (preferences_file);
2154   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file", preferences_file,
2155                             (GtkDestroyNotify) gtk_widget_unref);
2156   gtk_widget_show (preferences_file);
2157   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 0), preferences_file);
2158
2159   preferences_disc_table = gtk_table_new (2, 2, FALSE);
2160   gtk_widget_ref (preferences_disc_table);
2161   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_table", preferences_disc_table,
2162                             (GtkDestroyNotify) gtk_widget_unref);
2163   gtk_widget_show (preferences_disc_table);
2164   gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_disc_table);
2165   gtk_container_set_border_width (GTK_CONTAINER (preferences_disc_table), 5);
2166   gtk_table_set_row_spacings (GTK_TABLE (preferences_disc_table), 5);
2167   gtk_table_set_col_spacings (GTK_TABLE (preferences_disc_table), 5);
2168
2169   preferences_disc_dvd_combo = gnome_file_entry_new (NULL, NULL);
2170   gtk_widget_ref (preferences_disc_dvd_combo);
2171   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_dvd_combo", preferences_disc_dvd_combo,
2172                             (GtkDestroyNotify) gtk_widget_unref);
2173   gtk_widget_show (preferences_disc_dvd_combo);
2174   gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_disc_dvd_combo, 1, 2, 0, 1,
2175                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2176                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2177
2178   preferences_disc_dvd_entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (preferences_disc_dvd_combo));
2179   gtk_widget_ref (preferences_disc_dvd_entry);
2180   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_dvd_entry", preferences_disc_dvd_entry,
2181                             (GtkDestroyNotify) gtk_widget_unref);
2182   gtk_widget_show (preferences_disc_dvd_entry);
2183
2184   preferences_file_vcd_combo = gnome_file_entry_new (NULL, NULL);
2185   gtk_widget_ref (preferences_file_vcd_combo);
2186   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_vcd_combo", preferences_file_vcd_combo,
2187                             (GtkDestroyNotify) gtk_widget_unref);
2188   gtk_widget_show (preferences_file_vcd_combo);
2189   gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_file_vcd_combo, 1, 2, 1, 2,
2190                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2191                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2192
2193   preferences_disc_vcd_entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (preferences_file_vcd_combo));
2194   gtk_widget_ref (preferences_disc_vcd_entry);
2195   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_vcd_entry", preferences_disc_vcd_entry,
2196                             (GtkDestroyNotify) gtk_widget_unref);
2197   gtk_widget_show (preferences_disc_vcd_entry);
2198
2199   preferences_disc_dvd_label = gtk_label_new (_("Default DVD path: "));
2200   gtk_widget_ref (preferences_disc_dvd_label);
2201   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_dvd_label", preferences_disc_dvd_label,
2202                             (GtkDestroyNotify) gtk_widget_unref);
2203   gtk_widget_show (preferences_disc_dvd_label);
2204   gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_disc_dvd_label, 0, 1, 0, 1,
2205                     (GtkAttachOptions) (GTK_EXPAND),
2206                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2207   gtk_misc_set_alignment (GTK_MISC (preferences_disc_dvd_label), 0, 0.5);
2208
2209   preferences_disc_vcd_label = gtk_label_new (_("Default VCD path: "));
2210   gtk_widget_ref (preferences_disc_vcd_label);
2211   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_vcd_label", preferences_disc_vcd_label,
2212                             (GtkDestroyNotify) gtk_widget_unref);
2213   gtk_widget_show (preferences_disc_vcd_label);
2214   gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_disc_vcd_label, 0, 1, 1, 2,
2215                     (GtkAttachOptions) (GTK_EXPAND),
2216                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2217   gtk_misc_set_alignment (GTK_MISC (preferences_disc_vcd_label), 0, 0.5);
2218
2219   preferences_disc = gtk_label_new (_("Disc"));
2220   gtk_widget_ref (preferences_disc);
2221   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc", preferences_disc,
2222                             (GtkDestroyNotify) gtk_widget_unref);
2223   gtk_widget_show (preferences_disc);
2224   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 1), preferences_disc);
2225
2226   preferences_network_table = gtk_table_new (7, 2, FALSE);
2227   gtk_widget_ref (preferences_network_table);
2228   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_table", preferences_network_table,
2229                             (GtkDestroyNotify) gtk_widget_unref);
2230   gtk_widget_show (preferences_network_table);
2231   gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_network_table);
2232   gtk_container_set_border_width (GTK_CONTAINER (preferences_network_table), 5);
2233   gtk_table_set_row_spacings (GTK_TABLE (preferences_network_table), 5);
2234   gtk_table_set_col_spacings (GTK_TABLE (preferences_network_table), 5);
2235
2236   preferences_network_server_label = gtk_label_new (_("Default server: "));
2237   gtk_widget_ref (preferences_network_server_label);
2238   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_server_label", preferences_network_server_label,
2239                             (GtkDestroyNotify) gtk_widget_unref);
2240   gtk_widget_show (preferences_network_server_label);
2241   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_server_label, 0, 1, 0, 1,
2242                     (GtkAttachOptions) (GTK_EXPAND),
2243                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2244   gtk_misc_set_alignment (GTK_MISC (preferences_network_server_label), 0, 0.5);
2245
2246   preferences_network_port_spinbutton_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
2247   preferences_network_port_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_network_port_spinbutton_adj), 1, 0);
2248   gtk_widget_ref (preferences_network_port_spinbutton);
2249   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_port_spinbutton", preferences_network_port_spinbutton,
2250                             (GtkDestroyNotify) gtk_widget_unref);
2251   gtk_widget_show (preferences_network_port_spinbutton);
2252   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_port_spinbutton, 1, 2, 1, 2,
2253                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2254                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2255
2256   preferences_network_broadcast_label = gtk_label_new (_("Broadcast address: "));
2257   gtk_widget_ref (preferences_network_broadcast_label);
2258   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_label", preferences_network_broadcast_label,
2259                             (GtkDestroyNotify) gtk_widget_unref);
2260   gtk_widget_show (preferences_network_broadcast_label);
2261   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_broadcast_label, 0, 1, 2, 3,
2262                     (GtkAttachOptions) (GTK_EXPAND),
2263                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2264   gtk_misc_set_alignment (GTK_MISC (preferences_network_broadcast_label), 0, 0.5);
2265
2266   preferences_network_port_label = gtk_label_new (_("Default port: "));
2267   gtk_widget_ref (preferences_network_port_label);
2268   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_port_label", preferences_network_port_label,
2269                             (GtkDestroyNotify) gtk_widget_unref);
2270   gtk_widget_show (preferences_network_port_label);
2271   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_port_label, 0, 1, 1, 2,
2272                     (GtkAttachOptions) (GTK_EXPAND),
2273                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2274   gtk_misc_set_alignment (GTK_MISC (preferences_network_port_label), 0, 0.5);
2275
2276   preferences_network_server_combo = gnome_entry_new (NULL);
2277   gtk_widget_ref (preferences_network_server_combo);
2278   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_server_combo", preferences_network_server_combo,
2279                             (GtkDestroyNotify) gtk_widget_unref);
2280   gtk_widget_show (preferences_network_server_combo);
2281   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_server_combo, 1, 2, 0, 1,
2282                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2283                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2284
2285   preferences_network_server_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_network_server_combo));
2286   gtk_widget_ref (preferences_network_server_entry);
2287   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_server_entry", preferences_network_server_entry,
2288                             (GtkDestroyNotify) gtk_widget_unref);
2289   gtk_widget_show (preferences_network_server_entry);
2290   gtk_entry_set_text (GTK_ENTRY (preferences_network_server_entry), _("vls"));
2291
2292   preferences_network_broadcast_combo = gnome_entry_new (NULL);
2293   gtk_widget_ref (preferences_network_broadcast_combo);
2294   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_combo", preferences_network_broadcast_combo,
2295                             (GtkDestroyNotify) gtk_widget_unref);
2296   gtk_widget_show (preferences_network_broadcast_combo);
2297   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_broadcast_combo, 1, 2, 2, 3,
2298                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2299                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2300
2301   preferences_network_broadcast_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_network_broadcast_combo));
2302   gtk_widget_ref (preferences_network_broadcast_entry);
2303   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_entry", preferences_network_broadcast_entry,
2304                             (GtkDestroyNotify) gtk_widget_unref);
2305   gtk_widget_show (preferences_network_broadcast_entry);
2306
2307   preferences_network_broadcast_checkbutton = gtk_check_button_new_with_label (_("Broadcast mode"));
2308   gtk_widget_ref (preferences_network_broadcast_checkbutton);
2309   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_checkbutton", preferences_network_broadcast_checkbutton,
2310                             (GtkDestroyNotify) gtk_widget_unref);
2311   gtk_widget_show (preferences_network_broadcast_checkbutton);
2312   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_broadcast_checkbutton, 0, 1, 3, 4,
2313                     (GtkAttachOptions) (GTK_EXPAND),
2314                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2315
2316   preferences_network_ts_radiobutton = gtk_radio_button_new_with_label (preferences_network_protocol_group_group, _("TS"));
2317   preferences_network_protocol_group_group = gtk_radio_button_group (GTK_RADIO_BUTTON (preferences_network_ts_radiobutton));
2318   gtk_widget_ref (preferences_network_ts_radiobutton);
2319   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_ts_radiobutton", preferences_network_ts_radiobutton,
2320                             (GtkDestroyNotify) gtk_widget_unref);
2321   gtk_widget_show (preferences_network_ts_radiobutton);
2322   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_ts_radiobutton, 1, 2, 4, 5,
2323                     (GtkAttachOptions) (GTK_FILL),
2324                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
2325
2326   preferences_network_rtp_radiobutton = gtk_radio_button_new_with_label (preferences_network_protocol_group_group, _("RTP"));
2327   preferences_network_protocol_group_group = gtk_radio_button_group (GTK_RADIO_BUTTON (preferences_network_rtp_radiobutton));
2328   gtk_widget_ref (preferences_network_rtp_radiobutton);
2329   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_rtp_radiobutton", preferences_network_rtp_radiobutton,
2330                             (GtkDestroyNotify) gtk_widget_unref);
2331   gtk_widget_show (preferences_network_rtp_radiobutton);
2332   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_rtp_radiobutton, 1, 2, 5, 6,
2333                     (GtkAttachOptions) (GTK_FILL),
2334                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
2335
2336   preferences_network_http_radiobutton = gtk_radio_button_new_with_label (preferences_network_protocol_group_group, _("HTTP"));
2337   preferences_network_protocol_group_group = gtk_radio_button_group (GTK_RADIO_BUTTON (preferences_network_http_radiobutton));
2338   gtk_widget_ref (preferences_network_http_radiobutton);
2339   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_http_radiobutton", preferences_network_http_radiobutton,
2340                             (GtkDestroyNotify) gtk_widget_unref);
2341   gtk_widget_show (preferences_network_http_radiobutton);
2342   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_http_radiobutton, 1, 2, 6, 7,
2343                     (GtkAttachOptions) (GTK_FILL),
2344                     (GtkAttachOptions) (GTK_SHRINK), 0, 0);
2345
2346   preferences_network_protocol_label = gtk_label_new (_("Default protocol: "));
2347   gtk_widget_ref (preferences_network_protocol_label);
2348   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_protocol_label", preferences_network_protocol_label,
2349                             (GtkDestroyNotify) gtk_widget_unref);
2350   gtk_widget_show (preferences_network_protocol_label);
2351   gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_protocol_label, 0, 1, 4, 7,
2352                     (GtkAttachOptions) (GTK_EXPAND),
2353                     (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), 0, 0);
2354   gtk_misc_set_alignment (GTK_MISC (preferences_network_protocol_label), 0, 0.5);
2355
2356   preferences_network = gtk_label_new (_("Network"));
2357   gtk_widget_ref (preferences_network);
2358   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network", preferences_network,
2359                             (GtkDestroyNotify) gtk_widget_unref);
2360   gtk_widget_show (preferences_network);
2361   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 2), preferences_network);
2362
2363   preferences_network_interface_table = gtk_table_new (1, 2, FALSE);
2364   gtk_widget_ref (preferences_network_interface_table);
2365   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_interface_table", preferences_network_interface_table,
2366                             (GtkDestroyNotify) gtk_widget_unref);
2367   gtk_widget_show (preferences_network_interface_table);
2368   gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_network_interface_table);
2369   gtk_container_set_border_width (GTK_CONTAINER (preferences_network_interface_table), 5);
2370   gtk_table_set_row_spacings (GTK_TABLE (preferences_network_interface_table), 5);
2371   gtk_table_set_col_spacings (GTK_TABLE (preferences_network_interface_table), 5);
2372
2373   preferences_interface_label = gtk_label_new (_("Default interface: "));
2374   gtk_widget_ref (preferences_interface_label);
2375   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_interface_label", preferences_interface_label,
2376                             (GtkDestroyNotify) gtk_widget_unref);
2377   gtk_widget_show (preferences_interface_label);
2378   gtk_table_attach (GTK_TABLE (preferences_network_interface_table), preferences_interface_label, 0, 1, 0, 1,
2379                     (GtkAttachOptions) (GTK_EXPAND),
2380                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2381   gtk_misc_set_alignment (GTK_MISC (preferences_interface_label), 0, 0.5);
2382
2383   preferences_interface_combo = gnome_entry_new (NULL);
2384   gtk_widget_ref (preferences_interface_combo);
2385   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_interface_combo", preferences_interface_combo,
2386                             (GtkDestroyNotify) gtk_widget_unref);
2387   gtk_widget_show (preferences_interface_combo);
2388   gtk_table_attach (GTK_TABLE (preferences_network_interface_table), preferences_interface_combo, 1, 2, 0, 1,
2389                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2390                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2391
2392   preferences_interface_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_interface_combo));
2393   gtk_widget_ref (preferences_interface_entry);
2394   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_interface_entry", preferences_interface_entry,
2395                             (GtkDestroyNotify) gtk_widget_unref);
2396   gtk_widget_show (preferences_interface_entry);
2397
2398   preferences_interface = gtk_label_new (_("Interface"));
2399   gtk_widget_ref (preferences_interface);
2400   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_interface", preferences_interface,
2401                             (GtkDestroyNotify) gtk_widget_unref);
2402   gtk_widget_show (preferences_interface);
2403   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 3), preferences_interface);
2404
2405   preferences_video_table = gtk_table_new (7, 2, FALSE);
2406   gtk_widget_ref (preferences_video_table);
2407   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_table", preferences_video_table,
2408                             (GtkDestroyNotify) gtk_widget_unref);
2409   gtk_widget_show (preferences_video_table);
2410   gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_video_table);
2411   gtk_container_set_border_width (GTK_CONTAINER (preferences_video_table), 5);
2412   gtk_table_set_row_spacings (GTK_TABLE (preferences_video_table), 5);
2413   gtk_table_set_col_spacings (GTK_TABLE (preferences_video_table), 5);
2414
2415   preferences_video_output_label = gtk_label_new (_("Default output: "));
2416   gtk_widget_ref (preferences_video_output_label);
2417   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_output_label", preferences_video_output_label,
2418                             (GtkDestroyNotify) gtk_widget_unref);
2419   gtk_widget_show (preferences_video_output_label);
2420   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_output_label, 0, 1, 0, 1,
2421                     (GtkAttachOptions) (GTK_EXPAND),
2422                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2423   gtk_misc_set_alignment (GTK_MISC (preferences_video_output_label), 0, 0.5);
2424
2425   preferences_video_height = gtk_label_new (_("Default height: "));
2426   gtk_widget_ref (preferences_video_height);
2427   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_height", preferences_video_height,
2428                             (GtkDestroyNotify) gtk_widget_unref);
2429   gtk_widget_show (preferences_video_height);
2430   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_height, 0, 1, 2, 3,
2431                     (GtkAttachOptions) (GTK_EXPAND),
2432                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2433   gtk_misc_set_alignment (GTK_MISC (preferences_video_height), 0, 0.5);
2434
2435   preferences_video_height_spinbutton_adj = gtk_adjustment_new (576, 0, 1600, 1, 10, 10);
2436   preferences_video_height_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_video_height_spinbutton_adj), 1, 0);
2437   gtk_widget_ref (preferences_video_height_spinbutton);
2438   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_height_spinbutton", preferences_video_height_spinbutton,
2439                             (GtkDestroyNotify) gtk_widget_unref);
2440   gtk_widget_show (preferences_video_height_spinbutton);
2441   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_height_spinbutton, 1, 2, 2, 3,
2442                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2443                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2444
2445   preferences_video_width_spinbutton_adj = gtk_adjustment_new (720, 100, 1600, 1, 10, 10);
2446   preferences_video_width_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_video_width_spinbutton_adj), 1, 0);
2447   gtk_widget_ref (preferences_video_width_spinbutton);
2448   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_width_spinbutton", preferences_video_width_spinbutton,
2449                             (GtkDestroyNotify) gtk_widget_unref);
2450   gtk_widget_show (preferences_video_width_spinbutton);
2451   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_width_spinbutton, 1, 2, 1, 2,
2452                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2453                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2454
2455   preferences_video_width_label = gtk_label_new (_("Default width: "));
2456   gtk_widget_ref (preferences_video_width_label);
2457   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_width_label", preferences_video_width_label,
2458                             (GtkDestroyNotify) gtk_widget_unref);
2459   gtk_widget_show (preferences_video_width_label);
2460   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_width_label, 0, 1, 1, 2,
2461                     (GtkAttachOptions) (GTK_EXPAND),
2462                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2463   gtk_misc_set_alignment (GTK_MISC (preferences_video_width_label), 0, 0.5);
2464
2465   preferences_video_output_combo = gnome_entry_new (NULL);
2466   gtk_widget_ref (preferences_video_output_combo);
2467   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_output_combo", preferences_video_output_combo,
2468                             (GtkDestroyNotify) gtk_widget_unref);
2469   gtk_widget_show (preferences_video_output_combo);
2470   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_output_combo, 1, 2, 0, 1,
2471                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2472                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2473
2474   preferences_video_output_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_video_output_combo));
2475   gtk_widget_ref (preferences_video_output_entry);
2476   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_output_entry", preferences_video_output_entry,
2477                             (GtkDestroyNotify) gtk_widget_unref);
2478   gtk_widget_show (preferences_video_output_entry);
2479
2480   preferences_video_depth = gtk_label_new (_("Default depth:"));
2481   gtk_widget_ref (preferences_video_depth);
2482   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_depth", preferences_video_depth,
2483                             (GtkDestroyNotify) gtk_widget_unref);
2484   gtk_widget_show (preferences_video_depth);
2485   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_depth, 0, 1, 3, 4,
2486                     (GtkAttachOptions) (GTK_EXPAND),
2487                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2488   gtk_misc_set_alignment (GTK_MISC (preferences_video_depth), 0, 0.5);
2489
2490   preferences_video_depth_optionmenu = gtk_option_menu_new ();
2491   gtk_widget_ref (preferences_video_depth_optionmenu);
2492   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_depth_optionmenu", preferences_video_depth_optionmenu,
2493                             (GtkDestroyNotify) gtk_widget_unref);
2494   gtk_widget_show (preferences_video_depth_optionmenu);
2495   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_depth_optionmenu, 1, 2, 3, 4,
2496                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2497                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2498   preferences_video_depth_optionmenu_menu = gtk_menu_new ();
2499   glade_menuitem = gtk_menu_item_new_with_label (_("15 bits"));
2500   gtk_widget_show (glade_menuitem);
2501   gtk_menu_append (GTK_MENU (preferences_video_depth_optionmenu_menu), glade_menuitem);
2502   glade_menuitem = gtk_menu_item_new_with_label (_("16 bits"));
2503   gtk_widget_show (glade_menuitem);
2504   gtk_menu_append (GTK_MENU (preferences_video_depth_optionmenu_menu), glade_menuitem);
2505   glade_menuitem = gtk_menu_item_new_with_label (_("32 bits"));
2506   gtk_widget_show (glade_menuitem);
2507   gtk_menu_append (GTK_MENU (preferences_video_depth_optionmenu_menu), glade_menuitem);
2508   gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_video_depth_optionmenu), preferences_video_depth_optionmenu_menu);
2509   gtk_option_menu_set_history (GTK_OPTION_MENU (preferences_video_depth_optionmenu), 1);
2510
2511   preferences_video_fullscreen_depth = gtk_label_new (_("Fullscreen depth:"));
2512   gtk_widget_ref (preferences_video_fullscreen_depth);
2513   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_fullscreen_depth", preferences_video_fullscreen_depth,
2514                             (GtkDestroyNotify) gtk_widget_unref);
2515   gtk_widget_show (preferences_video_fullscreen_depth);
2516   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_fullscreen_depth, 0, 1, 4, 5,
2517                     (GtkAttachOptions) (GTK_EXPAND),
2518                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2519   gtk_misc_set_alignment (GTK_MISC (preferences_video_fullscreen_depth), 0, 0.5);
2520
2521   preferences_video_fullscreen_depth_optionmenu = gtk_option_menu_new ();
2522   gtk_widget_ref (preferences_video_fullscreen_depth_optionmenu);
2523   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_fullscreen_depth_optionmenu", preferences_video_fullscreen_depth_optionmenu,
2524                             (GtkDestroyNotify) gtk_widget_unref);
2525   gtk_widget_show (preferences_video_fullscreen_depth_optionmenu);
2526   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_fullscreen_depth_optionmenu, 1, 2, 4, 5,
2527                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2528                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
2529   preferences_video_fullscreen_depth_optionmenu_menu = gtk_menu_new ();
2530   glade_menuitem = gtk_menu_item_new_with_label (_("15 bits"));
2531   gtk_widget_show (glade_menuitem);
2532   gtk_menu_append (GTK_MENU (preferences_video_fullscreen_depth_optionmenu_menu), glade_menuitem);
2533   glade_menuitem = gtk_menu_item_new_with_label (_("16 bits"));
2534   gtk_widget_show (glade_menuitem);
2535   gtk_menu_append (GTK_MENU (preferences_video_fullscreen_depth_optionmenu_menu), glade_menuitem);
2536   glade_menuitem = gtk_menu_item_new_with_label (_("32 bits"));
2537   gtk_widget_show (glade_menuitem);
2538   gtk_menu_append (GTK_MENU (preferences_video_fullscreen_depth_optionmenu_menu), glade_menuitem);
2539   gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_video_fullscreen_depth_optionmenu), preferences_video_fullscreen_depth_optionmenu_menu);
2540   gtk_option_menu_set_history (GTK_OPTION_MENU (preferences_video_fullscreen_depth_optionmenu), 2);
2541
2542   preferences_video_fullscreen_checkbutton = gtk_check_button_new_with_label (_("Fullscreen on play"));
2543   gtk_widget_ref (preferences_video_fullscreen_checkbutton);
2544   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_fullscreen_checkbutton", preferences_video_fullscreen_checkbutton,
2545                             (GtkDestroyNotify) gtk_widget_unref);
2546   gtk_widget_show (preferences_video_fullscreen_checkbutton);
2547   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_fullscreen_checkbutton, 0, 1, 6, 7,
2548                     (GtkAttachOptions) (GTK_EXPAND),
2549                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2550
2551   preferences_video_grayscale_checkbutton = gtk_check_button_new_with_label (_("Grayscale"));
2552   gtk_widget_ref (preferences_video_grayscale_checkbutton);
2553   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_grayscale_checkbutton", preferences_video_grayscale_checkbutton,
2554                             (GtkDestroyNotify) gtk_widget_unref);
2555   gtk_widget_show (preferences_video_grayscale_checkbutton);
2556   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_grayscale_checkbutton, 1, 2, 6, 7,
2557                     (GtkAttachOptions) (GTK_EXPAND),
2558                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2559
2560   preferences_video_gamma_label = gtk_label_new (_("Gamma:"));
2561   gtk_widget_ref (preferences_video_gamma_label);
2562   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_gamma_label", preferences_video_gamma_label,
2563                             (GtkDestroyNotify) gtk_widget_unref);
2564   gtk_widget_show (preferences_video_gamma_label);
2565   gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_gamma_label, 0, 1, 5, 6,
2566                     (GtkAttachOptions) (GTK_EXPAND),
2567                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2568   gtk_misc_set_alignment (GTK_MISC (preferences_video_gamma_label), 0, 0.5);
2569
2570   spinbutton4_adj = gtk_adjustment_new (0, 0, 5, 0.1, 10, 10);
2571   spinbutton4 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton4_adj), 1, 1);
2572   gtk_widget_ref (spinbutton4);
2573   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "spinbutton4", spinbutton4,
2574                             (GtkDestroyNotify) gtk_widget_unref);
2575   gtk_widget_show (spinbutton4);
2576   gtk_table_attach (GTK_TABLE (preferences_video_table), spinbutton4, 1, 2, 5, 6,
2577                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2578                     (GtkAttachOptions) (0), 0, 0);
2579
2580   preferences_video = gtk_label_new (_("Video"));
2581   gtk_widget_ref (preferences_video);
2582   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video", preferences_video,
2583                             (GtkDestroyNotify) gtk_widget_unref);
2584   gtk_widget_show (preferences_video);
2585   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 4), preferences_video);
2586
2587   preference_audio_table = gtk_table_new (6, 2, FALSE);
2588   gtk_widget_ref (preference_audio_table);
2589   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preference_audio_table", preference_audio_table,
2590                             (GtkDestroyNotify) gtk_widget_unref);
2591   gtk_widget_show (preference_audio_table);
2592   gtk_container_add (GTK_CONTAINER (preferences_notebook), preference_audio_table);
2593   gtk_container_set_border_width (GTK_CONTAINER (preference_audio_table), 5);
2594   gtk_table_set_row_spacings (GTK_TABLE (preference_audio_table), 5);
2595   gtk_table_set_col_spacings (GTK_TABLE (preference_audio_table), 5);
2596
2597   preferences_audio_spdif_checkbutton = gtk_check_button_new_with_label (_("Spdif output"));
2598   gtk_widget_ref (preferences_audio_spdif_checkbutton);
2599   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_spdif_checkbutton", preferences_audio_spdif_checkbutton,
2600                             (GtkDestroyNotify) gtk_widget_unref);
2601   gtk_widget_show (preferences_audio_spdif_checkbutton);
2602   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_spdif_checkbutton, 0, 2, 5, 6,
2603                     (GtkAttachOptions) (GTK_EXPAND),
2604                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2605
2606   preferences_audio_output_label = gtk_label_new (_("Default output: "));
2607   gtk_widget_ref (preferences_audio_output_label);
2608   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_output_label", preferences_audio_output_label,
2609                             (GtkDestroyNotify) gtk_widget_unref);
2610   gtk_widget_show (preferences_audio_output_label);
2611   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_output_label, 0, 1, 0, 1,
2612                     (GtkAttachOptions) (GTK_EXPAND),
2613                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2614   gtk_misc_set_alignment (GTK_MISC (preferences_audio_output_label), 0, 0.5);
2615
2616   preferences_audio_output_combo = gnome_entry_new (NULL);
2617   gtk_widget_ref (preferences_audio_output_combo);
2618   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_output_combo", preferences_audio_output_combo,
2619                             (GtkDestroyNotify) gtk_widget_unref);
2620   gtk_widget_show (preferences_audio_output_combo);
2621   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_output_combo, 1, 2, 0, 1,
2622                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2623                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2624
2625   preferences_audio_output_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_audio_output_combo));
2626   gtk_widget_ref (preferences_audio_output_entry);
2627   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_output_entry", preferences_audio_output_entry,
2628                             (GtkDestroyNotify) gtk_widget_unref);
2629   gtk_widget_show (preferences_audio_output_entry);
2630
2631   preferences_audio_frequency_label = gtk_label_new (_("Frequency: "));
2632   gtk_widget_ref (preferences_audio_frequency_label);
2633   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_frequency_label", preferences_audio_frequency_label,
2634                             (GtkDestroyNotify) gtk_widget_unref);
2635   gtk_widget_show (preferences_audio_frequency_label);
2636   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_frequency_label, 0, 1, 2, 3,
2637                     (GtkAttachOptions) (GTK_EXPAND),
2638                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2639   gtk_misc_set_alignment (GTK_MISC (preferences_audio_frequency_label), 0, 0.5);
2640
2641   preferences_audio_frequency_optionmenu = gtk_option_menu_new ();
2642   gtk_widget_ref (preferences_audio_frequency_optionmenu);
2643   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_frequency_optionmenu", preferences_audio_frequency_optionmenu,
2644                             (GtkDestroyNotify) gtk_widget_unref);
2645   gtk_widget_show (preferences_audio_frequency_optionmenu);
2646   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_frequency_optionmenu, 1, 2, 2, 3,
2647                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2648                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2649   preferences_audio_frequency_optionmenu_menu = gtk_menu_new ();
2650   glade_menuitem = gtk_menu_item_new_with_label (_("48000 Hz"));
2651   gtk_widget_show (glade_menuitem);
2652   gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
2653   glade_menuitem = gtk_menu_item_new_with_label (_("44100 Hz"));
2654   gtk_widget_show (glade_menuitem);
2655   gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
2656   glade_menuitem = gtk_menu_item_new_with_label (_("32000 Hz"));
2657   gtk_widget_show (glade_menuitem);
2658   gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
2659   glade_menuitem = gtk_menu_item_new_with_label (_("22050 Hz"));
2660   gtk_widget_show (glade_menuitem);
2661   gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
2662   gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_audio_frequency_optionmenu), preferences_audio_frequency_optionmenu_menu);
2663
2664   preferences_audio_quality_label = gtk_label_new (_("Quality: "));
2665   gtk_widget_ref (preferences_audio_quality_label);
2666   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_quality_label", preferences_audio_quality_label,
2667                             (GtkDestroyNotify) gtk_widget_unref);
2668   gtk_widget_show (preferences_audio_quality_label);
2669   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_quality_label, 0, 1, 3, 4,
2670                     (GtkAttachOptions) (GTK_EXPAND),
2671                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2672   gtk_misc_set_alignment (GTK_MISC (preferences_audio_quality_label), 0, 0.5);
2673
2674   preferences_audio_quality_optionmenu = gtk_option_menu_new ();
2675   gtk_widget_ref (preferences_audio_quality_optionmenu);
2676   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_quality_optionmenu", preferences_audio_quality_optionmenu,
2677                             (GtkDestroyNotify) gtk_widget_unref);
2678   gtk_widget_show (preferences_audio_quality_optionmenu);
2679   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_quality_optionmenu, 1, 2, 3, 4,
2680                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2681                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2682   preferences_audio_quality_optionmenu_menu = gtk_menu_new ();
2683   glade_menuitem = gtk_menu_item_new_with_label (_("16 bits"));
2684   gtk_widget_show (glade_menuitem);
2685   gtk_menu_append (GTK_MENU (preferences_audio_quality_optionmenu_menu), glade_menuitem);
2686   glade_menuitem = gtk_menu_item_new_with_label (_("8 bits"));
2687   gtk_widget_show (glade_menuitem);
2688   gtk_menu_append (GTK_MENU (preferences_audio_quality_optionmenu_menu), glade_menuitem);
2689   gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_audio_quality_optionmenu), preferences_audio_quality_optionmenu_menu);
2690
2691   preferences_audio_channels_label = gtk_label_new (_("Channels: "));
2692   gtk_widget_ref (preferences_audio_channels_label);
2693   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_channels_label", preferences_audio_channels_label,
2694                             (GtkDestroyNotify) gtk_widget_unref);
2695   gtk_widget_show (preferences_audio_channels_label);
2696   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_channels_label, 0, 1, 4, 5,
2697                     (GtkAttachOptions) (GTK_EXPAND),
2698                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2699   gtk_misc_set_alignment (GTK_MISC (preferences_audio_channels_label), 0, 0.5);
2700
2701   preferences_audio_channels_optionmenu = gtk_option_menu_new ();
2702   gtk_widget_ref (preferences_audio_channels_optionmenu);
2703   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_channels_optionmenu", preferences_audio_channels_optionmenu,
2704                             (GtkDestroyNotify) gtk_widget_unref);
2705   gtk_widget_show (preferences_audio_channels_optionmenu);
2706   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_channels_optionmenu, 1, 2, 4, 5,
2707                     (GtkAttachOptions) (GTK_FILL),
2708                     (GtkAttachOptions) (0), 0, 0);
2709   preferences_audio_channels_optionmenu_menu = gtk_menu_new ();
2710   glade_menuitem = gtk_menu_item_new_with_label (_("Mono"));
2711   gtk_widget_show (glade_menuitem);
2712   gtk_menu_append (GTK_MENU (preferences_audio_channels_optionmenu_menu), glade_menuitem);
2713   glade_menuitem = gtk_menu_item_new_with_label (_("Stereo"));
2714   gtk_widget_show (glade_menuitem);
2715   gtk_menu_append (GTK_MENU (preferences_audio_channels_optionmenu_menu), glade_menuitem);
2716   gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_audio_channels_optionmenu), preferences_audio_channels_optionmenu_menu);
2717   gtk_option_menu_set_history (GTK_OPTION_MENU (preferences_audio_channels_optionmenu), 1);
2718
2719   preferences_audio_device_label = gtk_label_new (_("Default device:"));
2720   gtk_widget_ref (preferences_audio_device_label);
2721   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_device_label", preferences_audio_device_label,
2722                             (GtkDestroyNotify) gtk_widget_unref);
2723   gtk_widget_show (preferences_audio_device_label);
2724   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_device_label, 0, 1, 1, 2,
2725                     (GtkAttachOptions) (GTK_EXPAND),
2726                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2727   gtk_misc_set_alignment (GTK_MISC (preferences_audio_device_label), 0, 0.5);
2728
2729   preferences_audio_device_combo = gnome_entry_new (NULL);
2730   gtk_widget_ref (preferences_audio_device_combo);
2731   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_device_combo", preferences_audio_device_combo,
2732                             (GtkDestroyNotify) gtk_widget_unref);
2733   gtk_widget_show (preferences_audio_device_combo);
2734   gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_device_combo, 1, 2, 1, 2,
2735                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2736                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2737
2738   preferences_audio_device_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_audio_device_combo));
2739   gtk_widget_ref (preferences_audio_device_entry);
2740   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_device_entry", preferences_audio_device_entry,
2741                             (GtkDestroyNotify) gtk_widget_unref);
2742   gtk_widget_show (preferences_audio_device_entry);
2743
2744   preferences_audio = gtk_label_new (_("Audio"));
2745   gtk_widget_ref (preferences_audio);
2746   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio", preferences_audio,
2747                             (GtkDestroyNotify) gtk_widget_unref);
2748   gtk_widget_show (preferences_audio);
2749   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 5), preferences_audio);
2750
2751   preference_playlist_table = gtk_table_new (3, 1, FALSE);
2752   gtk_widget_ref (preference_playlist_table);
2753   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preference_playlist_table", preference_playlist_table,
2754                             (GtkDestroyNotify) gtk_widget_unref);
2755   gtk_widget_show (preference_playlist_table);
2756   gtk_container_add (GTK_CONTAINER (preferences_notebook), preference_playlist_table);
2757   gtk_container_set_border_width (GTK_CONTAINER (preference_playlist_table), 5);
2758   gtk_table_set_row_spacings (GTK_TABLE (preference_playlist_table), 5);
2759   gtk_table_set_col_spacings (GTK_TABLE (preference_playlist_table), 5);
2760
2761   preferences_playlist_startup_checkbutton = gtk_check_button_new_with_label (_("Launch on startup"));
2762   gtk_widget_ref (preferences_playlist_startup_checkbutton);
2763   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist_startup_checkbutton", preferences_playlist_startup_checkbutton,
2764                             (GtkDestroyNotify) gtk_widget_unref);
2765   gtk_widget_show (preferences_playlist_startup_checkbutton);
2766   gtk_table_attach (GTK_TABLE (preference_playlist_table), preferences_playlist_startup_checkbutton, 0, 1, 0, 1,
2767                     (GtkAttachOptions) (GTK_EXPAND),
2768                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2769
2770   preferences_playlist_loop_checkbutton = gtk_check_button_new_with_label (_("Loop on playlist end"));
2771   gtk_widget_ref (preferences_playlist_loop_checkbutton);
2772   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist_loop_checkbutton", preferences_playlist_loop_checkbutton,
2773                             (GtkDestroyNotify) gtk_widget_unref);
2774   gtk_widget_show (preferences_playlist_loop_checkbutton);
2775   gtk_table_attach (GTK_TABLE (preference_playlist_table), preferences_playlist_loop_checkbutton, 0, 1, 2, 3,
2776                     (GtkAttachOptions) (GTK_EXPAND),
2777                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2778
2779   preferences_playlist_enqueue_checkbutton = gtk_check_button_new_with_label (_("Enqueue as default"));
2780   gtk_widget_ref (preferences_playlist_enqueue_checkbutton);
2781   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist_enqueue_checkbutton", preferences_playlist_enqueue_checkbutton,
2782                             (GtkDestroyNotify) gtk_widget_unref);
2783   gtk_widget_show (preferences_playlist_enqueue_checkbutton);
2784   gtk_table_attach (GTK_TABLE (preference_playlist_table), preferences_playlist_enqueue_checkbutton, 0, 1, 1, 2,
2785                     (GtkAttachOptions) (GTK_EXPAND),
2786                     (GtkAttachOptions) (GTK_EXPAND), 0, 0);
2787
2788   preferences_playlist = gtk_label_new (_("Playlist"));
2789   gtk_widget_ref (preferences_playlist);
2790   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist", preferences_playlist,
2791                             (GtkDestroyNotify) gtk_widget_unref);
2792   gtk_widget_show (preferences_playlist);
2793   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 6), preferences_playlist);
2794
2795   preferences_misc_table = gtk_table_new (1, 2, FALSE);
2796   gtk_widget_ref (preferences_misc_table);
2797   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_table", preferences_misc_table,
2798                             (GtkDestroyNotify) gtk_widget_unref);
2799   gtk_widget_show (preferences_misc_table);
2800   gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_misc_table);
2801   gtk_container_set_border_width (GTK_CONTAINER (preferences_misc_table), 5);
2802   gtk_table_set_row_spacings (GTK_TABLE (preferences_misc_table), 5);
2803   gtk_table_set_col_spacings (GTK_TABLE (preferences_misc_table), 5);
2804
2805   preferences_misc_associated_files_frame = gtk_frame_new (_("Files associated with vlc"));
2806   gtk_widget_ref (preferences_misc_associated_files_frame);
2807   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_associated_files_frame", preferences_misc_associated_files_frame,
2808                             (GtkDestroyNotify) gtk_widget_unref);
2809   gtk_widget_show (preferences_misc_associated_files_frame);
2810   gtk_table_attach (GTK_TABLE (preferences_misc_table), preferences_misc_associated_files_frame, 0, 1, 0, 1,
2811                     (GtkAttachOptions) (GTK_EXPAND),
2812                     (GtkAttachOptions) (GTK_FILL), 0, 0);
2813   gtk_widget_set_sensitive (preferences_misc_associated_files_frame, FALSE);
2814   gtk_frame_set_label_align (GTK_FRAME (preferences_misc_associated_files_frame), 0.05, 0.5);
2815
2816   preferences_misc_associated_table = gtk_table_new (4, 1, FALSE);
2817   gtk_widget_ref (preferences_misc_associated_table);
2818   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_associated_table", preferences_misc_associated_table,
2819                             (GtkDestroyNotify) gtk_widget_unref);
2820   gtk_widget_show (preferences_misc_associated_table);
2821   gtk_container_add (GTK_CONTAINER (preferences_misc_associated_files_frame), preferences_misc_associated_table);
2822
2823   preferences_misc_ts_checkbutton = gtk_check_button_new_with_label (_("ts"));
2824   gtk_widget_ref (preferences_misc_ts_checkbutton);
2825   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_ts_checkbutton", preferences_misc_ts_checkbutton,
2826                             (GtkDestroyNotify) gtk_widget_unref);
2827   gtk_widget_show (preferences_misc_ts_checkbutton);
2828   gtk_table_attach (GTK_TABLE (preferences_misc_associated_table), preferences_misc_ts_checkbutton, 0, 1, 3, 4,
2829                     (GtkAttachOptions) (GTK_FILL),
2830                     (GtkAttachOptions) (0), 0, 0);
2831
2832   preferences_misc_vob_checkbutton = gtk_check_button_new_with_label (_("vob"));
2833   gtk_widget_ref (preferences_misc_vob_checkbutton);
2834   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_vob_checkbutton", preferences_misc_vob_checkbutton,
2835                             (GtkDestroyNotify) gtk_widget_unref);
2836   gtk_widget_show (preferences_misc_vob_checkbutton);
2837   gtk_table_attach (GTK_TABLE (preferences_misc_associated_table), preferences_misc_vob_checkbutton, 0, 1, 2, 3,
2838                     (GtkAttachOptions) (GTK_FILL),
2839                     (GtkAttachOptions) (0), 0, 0);
2840
2841   preferences_misc_mp2_checkbutton = gtk_check_button_new_with_label (_("mp2"));
2842   gtk_widget_ref (preferences_misc_mp2_checkbutton);
2843   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_mp2_checkbutton", preferences_misc_mp2_checkbutton,
2844                             (GtkDestroyNotify) gtk_widget_unref);
2845   gtk_widget_show (preferences_misc_mp2_checkbutton);
2846   gtk_table_attach (GTK_TABLE (preferences_misc_associated_table), preferences_misc_mp2_checkbutton, 0, 1, 1, 2,
2847                     (GtkAttachOptions) (GTK_FILL),
2848                     (GtkAttachOptions) (0), 0, 0);
2849
2850   preferences_misc_mpeg_checkbutton = gtk_check_button_new_with_label (_("mpeg"));
2851   gtk_widget_ref (preferences_misc_mpeg_checkbutton);
2852   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_mpeg_checkbutton", preferences_misc_mpeg_checkbutton,
2853                             (GtkDestroyNotify) gtk_widget_unref);
2854   gtk_widget_show (preferences_misc_mpeg_checkbutton);
2855   gtk_table_attach (GTK_TABLE (preferences_misc_associated_table), preferences_misc_mpeg_checkbutton, 0, 1, 0, 1,
2856                     (GtkAttachOptions) (GTK_FILL),
2857                     (GtkAttachOptions) (0), 0, 0);
2858
2859   preferences_misc_message_frame = gtk_frame_new (_("Messages"));
2860   gtk_widget_ref (preferences_misc_message_frame);
2861   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_message_frame", preferences_misc_message_frame,
2862                             (GtkDestroyNotify) gtk_widget_unref);
2863   gtk_widget_show (preferences_misc_message_frame);
2864   gtk_table_attach (GTK_TABLE (preferences_misc_table), preferences_misc_message_frame, 1, 2, 0, 1,
2865                     (GtkAttachOptions) (GTK_EXPAND),
2866                     (GtkAttachOptions) (GTK_FILL), 0, 0);
2867   gtk_frame_set_label_align (GTK_FRAME (preferences_misc_message_frame), 0.05, 0.5);
2868
2869   preferences_misc_message_table = gtk_table_new (1, 2, FALSE);
2870   gtk_widget_ref (preferences_misc_message_table);
2871   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_message_table", preferences_misc_message_table,
2872                             (GtkDestroyNotify) gtk_widget_unref);
2873   gtk_widget_show (preferences_misc_message_table);
2874   gtk_container_add (GTK_CONTAINER (preferences_misc_message_frame), preferences_misc_message_table);
2875
2876   preferences_misc_messages_label = gtk_label_new (_("Warning level: "));
2877   gtk_widget_ref (preferences_misc_messages_label);
2878   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_messages_label", preferences_misc_messages_label,
2879                             (GtkDestroyNotify) gtk_widget_unref);
2880   gtk_widget_show (preferences_misc_messages_label);
2881   gtk_table_attach (GTK_TABLE (preferences_misc_message_table), preferences_misc_messages_label, 0, 1, 0, 1,
2882                     (GtkAttachOptions) (GTK_FILL),
2883                     (GtkAttachOptions) (0), 0, 0);
2884
2885   preferences_misc_messages_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
2886   preferences_misc_messages_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_misc_messages_spinbutton_adj), 1, 0);
2887   gtk_widget_ref (preferences_misc_messages_spinbutton);
2888   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_messages_spinbutton", preferences_misc_messages_spinbutton,
2889                             (GtkDestroyNotify) gtk_widget_unref);
2890   gtk_widget_show (preferences_misc_messages_spinbutton);
2891   gtk_table_attach (GTK_TABLE (preferences_misc_message_table), preferences_misc_messages_spinbutton, 1, 2, 0, 1,
2892                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
2893                     (GtkAttachOptions) (0), 0, 0);
2894
2895   preferences_misc = gtk_label_new (_("Misc"));
2896   gtk_widget_ref (preferences_misc);
2897   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc", preferences_misc,
2898                             (GtkDestroyNotify) gtk_widget_unref);
2899   gtk_widget_show (preferences_misc);
2900   gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 7), preferences_misc);
2901
2902   preferences_dialog = GNOME_DIALOG (intf_preferences)->action_area;
2903   gtk_object_set_data (GTK_OBJECT (intf_preferences), "preferences_dialog", preferences_dialog);
2904   gtk_widget_show (preferences_dialog);
2905   gtk_button_box_set_layout (GTK_BUTTON_BOX (preferences_dialog), GTK_BUTTONBOX_END);
2906   gtk_button_box_set_spacing (GTK_BUTTON_BOX (preferences_dialog), 8);
2907
2908   gnome_dialog_append_button (GNOME_DIALOG (intf_preferences), GNOME_STOCK_BUTTON_OK);
2909   preferences_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_preferences)->buttons)->data);
2910   gtk_widget_ref (preferences_ok);
2911   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_ok", preferences_ok,
2912                             (GtkDestroyNotify) gtk_widget_unref);
2913   gtk_widget_show (preferences_ok);
2914   GTK_WIDGET_SET_FLAGS (preferences_ok, GTK_CAN_DEFAULT);
2915
2916   gnome_dialog_append_button (GNOME_DIALOG (intf_preferences), GNOME_STOCK_BUTTON_APPLY);
2917   preferences_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_preferences)->buttons)->data);
2918   gtk_widget_ref (preferences_apply);
2919   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_apply", preferences_apply,
2920                             (GtkDestroyNotify) gtk_widget_unref);
2921   gtk_widget_show (preferences_apply);
2922   GTK_WIDGET_SET_FLAGS (preferences_apply, GTK_CAN_DEFAULT);
2923
2924   gnome_dialog_append_button (GNOME_DIALOG (intf_preferences), GNOME_STOCK_BUTTON_CANCEL);
2925   preferences_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_preferences)->buttons)->data);
2926   gtk_widget_ref (preferences_cancel);
2927   gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_cancel", preferences_cancel,
2928                             (GtkDestroyNotify) gtk_widget_unref);
2929   gtk_widget_show (preferences_cancel);
2930   GTK_WIDGET_SET_FLAGS (preferences_cancel, GTK_CAN_DEFAULT);
2931
2932   gtk_signal_connect (GTK_OBJECT (preferences_ok), "clicked",
2933                       GTK_SIGNAL_FUNC (GtkPreferencesOk),
2934                       "intf_preferences");
2935   gtk_signal_connect (GTK_OBJECT (preferences_apply), "clicked",
2936                       GTK_SIGNAL_FUNC (GtkPreferencesApply),
2937                       "intf_preferences");
2938   gtk_signal_connect (GTK_OBJECT (preferences_cancel), "clicked",
2939                       GTK_SIGNAL_FUNC (GtkPreferencesCancel),
2940                       "intf_preferences");
2941
2942   return intf_preferences;
2943 }
2944