eb6182e748855d956a5aec6a8f0a1ec444f54eda
[vlc.git] / plugins / gtk / gnome_interface.c
1 /* This file was created automatically by glade and fixed by bootstrap.sh */
2
3 #include <vlc/vlc.h>
4
5 #include <sys/types.h>
6 #include <sys/stat.h>
7 #include <unistd.h>
8 #include <string.h>
9
10 #include <gnome.h>
11
12 #include "gnome_callbacks.h"
13 #include "gnome_interface.h"
14 #include "gnome_support.h"
15
16 static GnomeUIInfo menubar_file_menu_uiinfo[] =
17 {
18   {
19     GNOME_APP_UI_ITEM, N_("_Open File..."),
20     N_("Open a File"),
21     (gpointer) GtkFileOpenShow, NULL, NULL,
22     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
23     0, (GdkModifierType) 0, NULL
24   },
25   {
26     GNOME_APP_UI_ITEM, N_("Open _Disc..."),
27     N_("Open a DVD or VCD"),
28     (gpointer) GtkDiscOpenShow, NULL, NULL,
29     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
30     0, (GdkModifierType) 0, NULL
31   },
32   {
33     GNOME_APP_UI_ITEM, N_("_Network Stream..."),
34     N_("Select a Network Stream"),
35     (gpointer) GtkNetworkOpenShow, NULL, NULL,
36     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
37     0, (GdkModifierType) 0, NULL
38   },
39   GNOMEUIINFO_SEPARATOR,
40   {
41     GNOME_APP_UI_ITEM, N_("_Eject Disc"),
42     N_("Eject disc"),
43     (gpointer) GtkDiscEject, NULL, NULL,
44     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TOP,
45     0, (GdkModifierType) 0, NULL
46   },
47   GNOMEUIINFO_SEPARATOR,
48   GNOMEUIINFO_MENU_CLOSE_ITEM (GtkClose, NULL),
49   GNOMEUIINFO_MENU_EXIT_ITEM (GtkExit, NULL),
50   GNOMEUIINFO_END
51 };
52
53 static GnomeUIInfo menubar_view_menu_uiinfo[] =
54 {
55   {
56     GNOME_APP_UI_ITEM, N_("_Hide interface"),
57     NULL,
58     (gpointer) GtkWindowToggle, NULL, NULL,
59     GNOME_APP_PIXMAP_NONE, NULL,
60     0, (GdkModifierType) 0, NULL
61   },
62   {
63     GNOME_APP_UI_ITEM, N_("_Fullscreen"),
64     NULL,
65     (gpointer) GtkFullscreen, NULL, NULL,
66     GNOME_APP_PIXMAP_NONE, NULL,
67     0, (GdkModifierType) 0, NULL
68   },
69   GNOMEUIINFO_SEPARATOR,
70   {
71     GNOME_APP_UI_ITEM, N_("Progr_am"),
72     N_("Choose the program"),
73     (gpointer) NULL, NULL, NULL,
74     GNOME_APP_PIXMAP_NONE, NULL,
75     0, (GdkModifierType) 0, NULL
76   },
77   {
78     GNOME_APP_UI_ITEM, N_("_Title"),
79     N_("Choose title"),
80     (gpointer) NULL, NULL, NULL,
81     GNOME_APP_PIXMAP_NONE, NULL,
82     0, (GdkModifierType) 0, NULL
83   },
84   {
85     GNOME_APP_UI_ITEM, N_("_Chapter"),
86     N_("Choose chapter"),
87     (gpointer) NULL, NULL, NULL,
88     GNOME_APP_PIXMAP_NONE, NULL,
89     0, (GdkModifierType) 0, NULL
90   },
91   GNOMEUIINFO_SEPARATOR,
92   {
93     GNOME_APP_UI_ITEM, N_("_Playlist..."),
94     N_("Open the playlist window"),
95     (gpointer) GtkPlaylistShow, NULL, NULL,
96     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
97     0, (GdkModifierType) 0, NULL
98   },
99   {
100     GNOME_APP_UI_ITEM, N_("_Modules..."),
101     N_("Open the module manager"),
102     (gpointer) GtkModulesShow, NULL, NULL,
103     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
104     0, (GdkModifierType) 0, NULL
105   },
106   {
107     GNOME_APP_UI_ITEM, N_("Messages..."),
108     N_("Open the messages window"),
109     (gpointer) GtkMessagesShow, NULL, NULL,
110     GNOME_APP_PIXMAP_NONE, NULL,
111     0, (GdkModifierType) 0, NULL
112   },
113   GNOMEUIINFO_END
114 };
115
116 static GnomeUIInfo menubar_settings_menu_uiinfo[] =
117 {
118   {
119     GNOME_APP_UI_ITEM, N_("_Audio"),
120     N_("Select audio channel"),
121     (gpointer) NULL, NULL, NULL,
122     GNOME_APP_PIXMAP_NONE, NULL,
123     0, (GdkModifierType) 0, NULL
124   },
125   {
126     GNOME_APP_UI_ITEM, N_("_Subtitles"),
127     N_("Select subtitles channel"),
128     (gpointer) NULL, NULL, NULL,
129     GNOME_APP_PIXMAP_NONE, NULL,
130     0, (GdkModifierType) 0, NULL
131   },
132   GNOMEUIINFO_SEPARATOR,
133   GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, NULL),
134   GNOMEUIINFO_END
135 };
136
137 static GnomeUIInfo menubar_help_menu_uiinfo[] =
138 {
139   GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, NULL),
140   GNOMEUIINFO_END
141 };
142
143 static GnomeUIInfo menubar_uiinfo[] =
144 {
145   GNOMEUIINFO_MENU_FILE_TREE (menubar_file_menu_uiinfo),
146   GNOMEUIINFO_MENU_VIEW_TREE (menubar_view_menu_uiinfo),
147   GNOMEUIINFO_MENU_SETTINGS_TREE (menubar_settings_menu_uiinfo),
148   GNOMEUIINFO_MENU_HELP_TREE (menubar_help_menu_uiinfo),
149   GNOMEUIINFO_END
150 };
151
152 GtkWidget*
153 create_intf_window (void)
154 {
155   GtkWidget *intf_window;
156   GtkWidget *dockitem;
157   GtkWidget *toolbar;
158   GtkWidget *tmp_toolbar_icon;
159   GtkWidget *toolbar_file;
160   GtkWidget *toolbar_disc;
161   GtkWidget *toolbar_network;
162   GtkWidget *toolbar_sat;
163   GtkWidget *toolbar_back;
164   GtkWidget *toolbar_stop;
165   GtkWidget *toolbar_eject;
166   GtkWidget *toolbar_play;
167   GtkWidget *toolbar_pause;
168   GtkWidget *toolbar_slow;
169   GtkWidget *toolbar_fast;
170   GtkWidget *toolbar_playlist;
171   GtkWidget *toolbar_prev;
172   GtkWidget *toolbar_next;
173   GtkWidget *vbox8;
174   GtkWidget *slider_frame;
175   GtkWidget *slider;
176   GtkWidget *file_box;
177   GtkWidget *label_status;
178   GtkWidget *dvd_box;
179   GtkWidget *label21;
180   GtkWidget *title_chapter_box;
181   GtkWidget *label19;
182   GtkWidget *title_label;
183   GtkWidget *button_title_prev;
184   GtkWidget *button_title_next;
185   GtkWidget *vseparator1;
186   GtkWidget *dvd_chapter_box;
187   GtkWidget *label20;
188   GtkWidget *chapter_label;
189   GtkWidget *button_chapter_prev;
190   GtkWidget *button_chapter_next;
191   GtkWidget *network_box;
192   GtkWidget *network_address_label;
193   GtkWidget *network_channel_box;
194   GtkWidget *label_network;
195   GtkObject *network_channel_spinbutton_adj;
196   GtkWidget *network_channel_spinbutton;
197   GtkWidget *network_channel_go_button;
198   GtkWidget *appbar;
199   GtkTooltips *tooltips;
200
201   tooltips = gtk_tooltips_new ();
202
203   intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client"));
204   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
205   gtk_window_set_policy (GTK_WINDOW (intf_window), FALSE, TRUE, TRUE);
206
207   dockitem = GNOME_APP (intf_window)->dock;
208   gtk_widget_ref (dockitem);
209   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem,
210                             (GtkDestroyNotify) gtk_widget_unref);
211   gtk_widget_show (dockitem);
212
213   gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo);
214
215   gtk_widget_ref (menubar_uiinfo[0].widget);
216   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file",
217                             menubar_uiinfo[0].widget,
218                             (GtkDestroyNotify) gtk_widget_unref);
219
220   gtk_widget_ref (menubar_file_menu_uiinfo[0].widget);
221   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open",
222                             menubar_file_menu_uiinfo[0].widget,
223                             (GtkDestroyNotify) gtk_widget_unref);
224
225   gtk_widget_ref (menubar_file_menu_uiinfo[1].widget);
226   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc",
227                             menubar_file_menu_uiinfo[1].widget,
228                             (GtkDestroyNotify) gtk_widget_unref);
229
230   gtk_widget_ref (menubar_file_menu_uiinfo[2].widget);
231   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network",
232                             menubar_file_menu_uiinfo[2].widget,
233                             (GtkDestroyNotify) gtk_widget_unref);
234
235   gtk_widget_ref (menubar_file_menu_uiinfo[3].widget);
236   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator1",
237                             menubar_file_menu_uiinfo[3].widget,
238                             (GtkDestroyNotify) gtk_widget_unref);
239
240   gtk_widget_ref (menubar_file_menu_uiinfo[4].widget);
241   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_eject",
242                             menubar_file_menu_uiinfo[4].widget,
243                             (GtkDestroyNotify) gtk_widget_unref);
244
245   gtk_widget_ref (menubar_file_menu_uiinfo[5].widget);
246   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator15",
247                             menubar_file_menu_uiinfo[5].widget,
248                             (GtkDestroyNotify) gtk_widget_unref);
249
250   gtk_widget_ref (menubar_file_menu_uiinfo[6].widget);
251   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_close",
252                             menubar_file_menu_uiinfo[6].widget,
253                             (GtkDestroyNotify) gtk_widget_unref);
254
255   gtk_widget_ref (menubar_file_menu_uiinfo[7].widget);
256   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit",
257                             menubar_file_menu_uiinfo[7].widget,
258                             (GtkDestroyNotify) gtk_widget_unref);
259
260   gtk_widget_ref (menubar_uiinfo[1].widget);
261   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view",
262                             menubar_uiinfo[1].widget,
263                             (GtkDestroyNotify) gtk_widget_unref);
264
265   gtk_widget_ref (menubar_view_menu_uiinfo[0].widget);
266   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_hide_interface",
267                             menubar_view_menu_uiinfo[0].widget,
268                             (GtkDestroyNotify) gtk_widget_unref);
269
270   gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
271   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen",
272                             menubar_view_menu_uiinfo[1].widget,
273                             (GtkDestroyNotify) gtk_widget_unref);
274
275   gtk_widget_ref (menubar_view_menu_uiinfo[2].widget);
276   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator9",
277                             menubar_view_menu_uiinfo[2].widget,
278                             (GtkDestroyNotify) gtk_widget_unref);
279
280   gtk_widget_ref (menubar_view_menu_uiinfo[3].widget);
281   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_program",
282                             menubar_view_menu_uiinfo[3].widget,
283                             (GtkDestroyNotify) gtk_widget_unref);
284   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[3].widget, FALSE);
285
286   gtk_widget_ref (menubar_view_menu_uiinfo[4].widget);
287   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title",
288                             menubar_view_menu_uiinfo[4].widget,
289                             (GtkDestroyNotify) gtk_widget_unref);
290   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[4].widget, FALSE);
291
292   gtk_widget_ref (menubar_view_menu_uiinfo[5].widget);
293   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter",
294                             menubar_view_menu_uiinfo[5].widget,
295                             (GtkDestroyNotify) gtk_widget_unref);
296   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[5].widget, FALSE);
297
298   gtk_widget_ref (menubar_view_menu_uiinfo[6].widget);
299   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7",
300                             menubar_view_menu_uiinfo[6].widget,
301                             (GtkDestroyNotify) gtk_widget_unref);
302
303   gtk_widget_ref (menubar_view_menu_uiinfo[7].widget);
304   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
305                             menubar_view_menu_uiinfo[7].widget,
306                             (GtkDestroyNotify) gtk_widget_unref);
307
308   gtk_widget_ref (menubar_view_menu_uiinfo[8].widget);
309   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
310                             menubar_view_menu_uiinfo[8].widget,
311                             (GtkDestroyNotify) gtk_widget_unref);
312   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[8].widget, FALSE);
313
314   gtk_widget_ref (menubar_view_menu_uiinfo[9].widget);
315   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_messages",
316                             menubar_view_menu_uiinfo[9].widget,
317                             (GtkDestroyNotify) gtk_widget_unref);
318
319   gtk_widget_ref (menubar_uiinfo[2].widget);
320   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
321                             menubar_uiinfo[2].widget,
322                             (GtkDestroyNotify) gtk_widget_unref);
323
324   gtk_widget_ref (menubar_settings_menu_uiinfo[0].widget);
325   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio",
326                             menubar_settings_menu_uiinfo[0].widget,
327                             (GtkDestroyNotify) gtk_widget_unref);
328   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[0].widget, FALSE);
329
330   gtk_widget_ref (menubar_settings_menu_uiinfo[1].widget);
331   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures",
332                             menubar_settings_menu_uiinfo[1].widget,
333                             (GtkDestroyNotify) gtk_widget_unref);
334   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[1].widget, FALSE);
335
336   gtk_widget_ref (menubar_settings_menu_uiinfo[2].widget);
337   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator5",
338                             menubar_settings_menu_uiinfo[2].widget,
339                             (GtkDestroyNotify) gtk_widget_unref);
340
341   gtk_widget_ref (menubar_settings_menu_uiinfo[3].widget);
342   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
343                             menubar_settings_menu_uiinfo[3].widget,
344                             (GtkDestroyNotify) gtk_widget_unref);
345
346   gtk_widget_ref (menubar_uiinfo[3].widget);
347   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
348                             menubar_uiinfo[3].widget,
349                             (GtkDestroyNotify) gtk_widget_unref);
350
351   gtk_widget_ref (menubar_help_menu_uiinfo[0].widget);
352   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about",
353                             menubar_help_menu_uiinfo[0].widget,
354                             (GtkDestroyNotify) gtk_widget_unref);
355
356   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
357   gtk_widget_ref (toolbar);
358   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
359                             (GtkDestroyNotify) gtk_widget_unref);
360   gtk_widget_show (toolbar);
361   gnome_app_add_toolbar (GNOME_APP (intf_window), GTK_TOOLBAR (toolbar), "toolbar",
362                                 GNOME_DOCK_ITEM_BEH_EXCLUSIVE,
363                                 GNOME_DOCK_TOP, 1, 0, 2);
364   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
365   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
366   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
367
368   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_OPEN);
369   toolbar_file = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
370                                 GTK_TOOLBAR_CHILD_BUTTON,
371                                 NULL,
372                                 _("File"),
373                                 _("Open a File"), NULL,
374                                 tmp_toolbar_icon, NULL, NULL);
375   gtk_widget_ref (toolbar_file);
376   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_file", toolbar_file,
377                             (GtkDestroyNotify) gtk_widget_unref);
378   gtk_widget_show (toolbar_file);
379
380   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_CDROM);
381   toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
382                                 GTK_TOOLBAR_CHILD_BUTTON,
383                                 NULL,
384                                 _("Disc"),
385                                 _("Open a DVD or VCD"), NULL,
386                                 tmp_toolbar_icon, NULL, NULL);
387   gtk_widget_ref (toolbar_disc);
388   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc,
389                             (GtkDestroyNotify) gtk_widget_unref);
390   gtk_widget_show (toolbar_disc);
391
392   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_REFRESH);
393   toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
394                                 GTK_TOOLBAR_CHILD_BUTTON,
395                                 NULL,
396                                 _("Net"),
397                                 _("Select a Network Stream"), NULL,
398                                 tmp_toolbar_icon, NULL, NULL);
399   gtk_widget_ref (toolbar_network);
400   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network,
401                             (GtkDestroyNotify) gtk_widget_unref);
402   gtk_widget_show (toolbar_network);
403
404   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_MIC);
405   toolbar_sat = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
406                                 GTK_TOOLBAR_CHILD_BUTTON,
407                                 NULL,
408                                 _("Sat"),
409                                 _("Open a Satellite Card"), NULL,
410                                 tmp_toolbar_icon, NULL, NULL);
411   gtk_widget_ref (toolbar_sat);
412   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_sat", toolbar_sat,
413                             (GtkDestroyNotify) gtk_widget_unref);
414   gtk_widget_show (toolbar_sat);
415
416   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
417
418   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BACK);
419   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
420                                 GTK_TOOLBAR_CHILD_BUTTON,
421                                 NULL,
422                                 _("Back"),
423                                 _("Go Backward"), NULL,
424                                 tmp_toolbar_icon, NULL, NULL);
425   gtk_widget_ref (toolbar_back);
426   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
427                             (GtkDestroyNotify) gtk_widget_unref);
428   gtk_widget_show (toolbar_back);
429   gtk_widget_set_sensitive (toolbar_back, FALSE);
430
431   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP);
432   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
433                                 GTK_TOOLBAR_CHILD_BUTTON,
434                                 NULL,
435                                 _("Stop"),
436                                 _("Stop Stream"), NULL,
437                                 tmp_toolbar_icon, NULL, NULL);
438   gtk_widget_ref (toolbar_stop);
439   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
440                             (GtkDestroyNotify) gtk_widget_unref);
441   gtk_widget_show (toolbar_stop);
442
443   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TOP);
444   toolbar_eject = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
445                                 GTK_TOOLBAR_CHILD_BUTTON,
446                                 NULL,
447                                 _("Eject"),
448                                 _("Eject disc"), NULL,
449                                 tmp_toolbar_icon, NULL, NULL);
450   gtk_widget_ref (toolbar_eject);
451   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_eject", toolbar_eject,
452                             (GtkDestroyNotify) gtk_widget_unref);
453   gtk_widget_show (toolbar_eject);
454
455   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD);
456   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
457                                 GTK_TOOLBAR_CHILD_BUTTON,
458                                 NULL,
459                                 _("Play"),
460                                 _("Play Stream"), NULL,
461                                 tmp_toolbar_icon, NULL, NULL);
462   gtk_widget_ref (toolbar_play);
463   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
464                             (GtkDestroyNotify) gtk_widget_unref);
465   gtk_widget_show (toolbar_play);
466
467   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM);
468   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
469                                 GTK_TOOLBAR_CHILD_BUTTON,
470                                 NULL,
471                                 _("Pause"),
472                                 _("Pause Stream"), NULL,
473                                 tmp_toolbar_icon, NULL, NULL);
474   gtk_widget_ref (toolbar_pause);
475   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
476                             (GtkDestroyNotify) gtk_widget_unref);
477   gtk_widget_show (toolbar_pause);
478   gtk_widget_set_sensitive (toolbar_pause, FALSE);
479
480   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
481
482   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP);
483   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
484                                 GTK_TOOLBAR_CHILD_BUTTON,
485                                 NULL,
486                                 _("Slow"),
487                                 _("Play Slower"), NULL,
488                                 tmp_toolbar_icon, NULL, NULL);
489   gtk_widget_ref (toolbar_slow);
490   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
491                             (GtkDestroyNotify) gtk_widget_unref);
492   gtk_widget_show (toolbar_slow);
493   gtk_widget_set_sensitive (toolbar_slow, FALSE);
494
495   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER);
496   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
497                                 GTK_TOOLBAR_CHILD_BUTTON,
498                                 NULL,
499                                 _("Fast"),
500                                 _("Play Faster"), NULL,
501                                 tmp_toolbar_icon, NULL, NULL);
502   gtk_widget_ref (toolbar_fast);
503   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
504                             (GtkDestroyNotify) gtk_widget_unref);
505   gtk_widget_show (toolbar_fast);
506   gtk_widget_set_sensitive (toolbar_fast, FALSE);
507
508   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_INDEX);
509   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
510                                 GTK_TOOLBAR_CHILD_BUTTON,
511                                 NULL,
512                                 _("Playlist"),
513                                 _("Open Playlist"), NULL,
514                                 tmp_toolbar_icon, NULL, NULL);
515   gtk_widget_ref (toolbar_playlist);
516   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
517                             (GtkDestroyNotify) gtk_widget_unref);
518   gtk_widget_show (toolbar_playlist);
519
520   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
521   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
522                                 GTK_TOOLBAR_CHILD_BUTTON,
523                                 NULL,
524                                 _("Prev"),
525                                 _("Previous File"), NULL,
526                                 tmp_toolbar_icon, NULL, NULL);
527   gtk_widget_ref (toolbar_prev);
528   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
529                             (GtkDestroyNotify) gtk_widget_unref);
530   gtk_widget_show (toolbar_prev);
531
532   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_LAST);
533   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
534                                 GTK_TOOLBAR_CHILD_BUTTON,
535                                 NULL,
536                                 _("Next"),
537                                 _("Next File"), NULL,
538                                 tmp_toolbar_icon, NULL, NULL);
539   gtk_widget_ref (toolbar_next);
540   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
541                             (GtkDestroyNotify) gtk_widget_unref);
542   gtk_widget_show (toolbar_next);
543
544   vbox8 = gtk_vbox_new (FALSE, 0);
545   gtk_widget_ref (vbox8);
546   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox8", vbox8,
547                             (GtkDestroyNotify) gtk_widget_unref);
548   gtk_widget_show (vbox8);
549   gnome_app_set_contents (GNOME_APP (intf_window), vbox8);
550
551   slider_frame = gtk_frame_new ("-:--:--");
552   gtk_widget_ref (slider_frame);
553   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame,
554                             (GtkDestroyNotify) gtk_widget_unref);
555   gtk_box_pack_start (GTK_BOX (vbox8), slider_frame, TRUE, TRUE, 0);
556   gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5);
557
558   slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
559   gtk_widget_ref (slider);
560   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
561                             (GtkDestroyNotify) gtk_widget_unref);
562   gtk_widget_show (slider);
563   gtk_container_add (GTK_CONTAINER (slider_frame), slider);
564   gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
565   gtk_scale_set_digits (GTK_SCALE (slider), 3);
566
567   file_box = gtk_hbox_new (FALSE, 0);
568   gtk_widget_ref (file_box);
569   gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box,
570                             (GtkDestroyNotify) gtk_widget_unref);
571   gtk_widget_show (file_box);
572   gtk_box_pack_start (GTK_BOX (vbox8), file_box, TRUE, TRUE, 0);
573
574   label_status = gtk_label_new ("");
575   gtk_widget_ref (label_status);
576   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
577                             (GtkDestroyNotify) gtk_widget_unref);
578   gtk_widget_show (label_status);
579   gtk_box_pack_start (GTK_BOX (file_box), label_status, TRUE, TRUE, 0);
580
581   dvd_box = gtk_hbox_new (FALSE, 0);
582   gtk_widget_ref (dvd_box);
583   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box,
584                             (GtkDestroyNotify) gtk_widget_unref);
585   gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0);
586
587   label21 = gtk_label_new (_("Disc"));
588   gtk_widget_ref (label21);
589   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21,
590                             (GtkDestroyNotify) gtk_widget_unref);
591   gtk_widget_show (label21);
592   gtk_box_pack_start (GTK_BOX (dvd_box), label21, TRUE, FALSE, 0);
593
594   title_chapter_box = gtk_hbox_new (FALSE, 10);
595   gtk_widget_ref (title_chapter_box);
596   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_chapter_box", title_chapter_box,
597                             (GtkDestroyNotify) gtk_widget_unref);
598   gtk_widget_show (title_chapter_box);
599   gtk_box_pack_start (GTK_BOX (dvd_box), title_chapter_box, TRUE, FALSE, 0);
600
601   label19 = gtk_label_new (_("Title:"));
602   gtk_widget_ref (label19);
603   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label19", label19,
604                             (GtkDestroyNotify) gtk_widget_unref);
605   gtk_widget_show (label19);
606   gtk_box_pack_start (GTK_BOX (title_chapter_box), label19, FALSE, FALSE, 0);
607
608   title_label = gtk_label_new ("--");
609   gtk_widget_ref (title_label);
610   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_label", title_label,
611                             (GtkDestroyNotify) gtk_widget_unref);
612   gtk_widget_show (title_label);
613   gtk_box_pack_start (GTK_BOX (title_chapter_box), title_label, FALSE, FALSE, 0);
614
615   button_title_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV);
616   gtk_widget_ref (button_title_prev);
617   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_prev", button_title_prev,
618                             (GtkDestroyNotify) gtk_widget_unref);
619   gtk_widget_show (button_title_prev);
620   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0);
621   gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL);
622
623   button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
624   gtk_widget_ref (button_title_next);
625   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_next", button_title_next,
626                             (GtkDestroyNotify) gtk_widget_unref);
627   gtk_widget_show (button_title_next);
628   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0);
629
630   vseparator1 = gtk_vseparator_new ();
631   gtk_widget_ref (vseparator1);
632   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vseparator1", vseparator1,
633                             (GtkDestroyNotify) gtk_widget_unref);
634   gtk_widget_show (vseparator1);
635   gtk_box_pack_start (GTK_BOX (dvd_box), vseparator1, FALSE, FALSE, 0);
636
637   dvd_chapter_box = gtk_hbox_new (FALSE, 10);
638   gtk_widget_ref (dvd_chapter_box);
639   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_chapter_box", dvd_chapter_box,
640                             (GtkDestroyNotify) gtk_widget_unref);
641   gtk_widget_show (dvd_chapter_box);
642   gtk_box_pack_start (GTK_BOX (dvd_box), dvd_chapter_box, TRUE, FALSE, 0);
643
644   label20 = gtk_label_new (_("Chapter:"));
645   gtk_widget_ref (label20);
646   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label20", label20,
647                             (GtkDestroyNotify) gtk_widget_unref);
648   gtk_widget_show (label20);
649   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label20, FALSE, FALSE, 0);
650
651   chapter_label = gtk_label_new ("---");
652   gtk_widget_ref (chapter_label);
653   gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_label", chapter_label,
654                             (GtkDestroyNotify) gtk_widget_unref);
655   gtk_widget_show (chapter_label);
656   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), chapter_label, FALSE, FALSE, 0);
657
658   button_chapter_prev = gnome_stock_button (GNOME_STOCK_BUTTON_DOWN);
659   gtk_widget_ref (button_chapter_prev);
660   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_prev", button_chapter_prev,
661                             (GtkDestroyNotify) gtk_widget_unref);
662   gtk_widget_show (button_chapter_prev);
663   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0);
664   gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL);
665
666   button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_UP);
667   gtk_widget_ref (button_chapter_next);
668   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_next", button_chapter_next,
669                             (GtkDestroyNotify) gtk_widget_unref);
670   gtk_widget_show (button_chapter_next);
671   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0);
672   gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL);
673
674   network_box = gtk_hbox_new (TRUE, 0);
675   gtk_widget_ref (network_box);
676   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box,
677                             (GtkDestroyNotify) gtk_widget_unref);
678   gtk_box_pack_start (GTK_BOX (vbox8), network_box, FALSE, FALSE, 0);
679
680   network_address_label = gtk_label_new (_("No server"));
681   gtk_widget_ref (network_address_label);
682   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_address_label", network_address_label,
683                             (GtkDestroyNotify) gtk_widget_unref);
684   gtk_widget_show (network_address_label);
685   gtk_box_pack_start (GTK_BOX (network_box), network_address_label, FALSE, FALSE, 0);
686
687   network_channel_box = gtk_hbox_new (FALSE, 0);
688   gtk_widget_ref (network_channel_box);
689   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_box", network_channel_box,
690                             (GtkDestroyNotify) gtk_widget_unref);
691   gtk_widget_show (network_channel_box);
692   gtk_box_pack_start (GTK_BOX (network_box), network_channel_box, FALSE, FALSE, 0);
693
694   label_network = gtk_label_new (_("Network Channel:"));
695   gtk_widget_ref (label_network);
696   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_network", label_network,
697                             (GtkDestroyNotify) gtk_widget_unref);
698   gtk_widget_show (label_network);
699   gtk_box_pack_start (GTK_BOX (network_channel_box), label_network, TRUE, FALSE, 5);
700
701   network_channel_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
702   network_channel_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_spinbutton_adj), 1, 0);
703   gtk_widget_ref (network_channel_spinbutton);
704   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_spinbutton", network_channel_spinbutton,
705                             (GtkDestroyNotify) gtk_widget_unref);
706   gtk_widget_show (network_channel_spinbutton);
707   gtk_box_pack_start (GTK_BOX (network_channel_box), network_channel_spinbutton, FALSE, TRUE, 5);
708
709   network_channel_go_button = gtk_button_new_with_label (_("Go!"));
710   gtk_widget_ref (network_channel_go_button);
711   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_go_button", network_channel_go_button,
712                             (GtkDestroyNotify) gtk_widget_unref);
713   gtk_widget_show (network_channel_go_button);
714   gtk_box_pack_start (GTK_BOX (network_channel_box), network_channel_go_button, FALSE, FALSE, 0);
715   gtk_button_set_relief (GTK_BUTTON (network_channel_go_button), GTK_RELIEF_NONE);
716
717   appbar = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_NEVER);
718   gtk_widget_ref (appbar);
719   gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar,
720                             (GtkDestroyNotify) gtk_widget_unref);
721   gtk_widget_show (appbar);
722   gnome_app_set_statusbar (GNOME_APP (intf_window), appbar);
723
724   gtk_signal_connect (GTK_OBJECT (intf_window), "delete_event",
725                       GTK_SIGNAL_FUNC (GtkWindowDelete),
726                       NULL);
727   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
728                       GTK_SIGNAL_FUNC (GtkWindowDrag),
729                       NULL);
730   gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
731   gtk_signal_connect (GTK_OBJECT (toolbar_file), "clicked",
732                       GTK_SIGNAL_FUNC (GtkFileOpenShow),
733                       NULL);
734   gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
735                       GTK_SIGNAL_FUNC (GtkDiscOpenShow),
736                       NULL);
737   gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked",
738                       GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
739                       NULL);
740   gtk_signal_connect (GTK_OBJECT (toolbar_sat), "clicked",
741                       GTK_SIGNAL_FUNC (GtkSatOpenShow),
742                       NULL);
743   gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
744                       GTK_SIGNAL_FUNC (GtkControlBack),
745                       NULL);
746   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
747                       GTK_SIGNAL_FUNC (GtkControlStop),
748                       NULL);
749   gtk_signal_connect (GTK_OBJECT (toolbar_eject), "clicked",
750                       GTK_SIGNAL_FUNC (GtkDiscEject),
751                       NULL);
752   gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
753                       GTK_SIGNAL_FUNC (GtkControlPlay),
754                       NULL);
755   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
756                       GTK_SIGNAL_FUNC (GtkControlPause),
757                       NULL);
758   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
759                       GTK_SIGNAL_FUNC (GtkControlSlow),
760                       NULL);
761   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
762                       GTK_SIGNAL_FUNC (GtkControlFast),
763                       NULL);
764   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
765                       GTK_SIGNAL_FUNC (GtkPlaylistShow),
766                       NULL);
767   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
768                       GTK_SIGNAL_FUNC (GtkPlaylistPrev),
769                       NULL);
770   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
771                       GTK_SIGNAL_FUNC (GtkPlaylistNext),
772                       NULL);
773   gtk_signal_connect (GTK_OBJECT (slider), "button_press_event",
774                       GTK_SIGNAL_FUNC (GtkSliderPress),
775                       NULL);
776   gtk_signal_connect (GTK_OBJECT (slider), "button_release_event",
777                       GTK_SIGNAL_FUNC (GtkSliderRelease),
778                       NULL);
779   gtk_signal_connect (GTK_OBJECT (button_title_prev), "clicked",
780                       GTK_SIGNAL_FUNC (GtkTitlePrev),
781                       NULL);
782   gtk_signal_connect (GTK_OBJECT (button_title_next), "clicked",
783                       GTK_SIGNAL_FUNC (GtkTitleNext),
784                       NULL);
785   gtk_signal_connect (GTK_OBJECT (button_chapter_prev), "clicked",
786                       GTK_SIGNAL_FUNC (GtkChapterPrev),
787                       NULL);
788   gtk_signal_connect (GTK_OBJECT (button_chapter_next), "clicked",
789                       GTK_SIGNAL_FUNC (GtkChapterNext),
790                       NULL);
791   gtk_signal_connect (GTK_OBJECT (network_channel_spinbutton), "activate",
792                       GTK_SIGNAL_FUNC (GtkNetworkJoin),
793                       NULL);
794   gtk_signal_connect (GTK_OBJECT (network_channel_go_button), "clicked",
795                       GTK_SIGNAL_FUNC (GtkChannelGo),
796                       NULL);
797
798   gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips);
799
800   return intf_window;
801 }
802
803 static GnomeUIInfo popup_file_menu_uiinfo[] =
804 {
805   {
806     GNOME_APP_UI_ITEM, N_("_Open File..."),
807     N_("Open a File"),
808     (gpointer) GtkFileOpenShow, NULL, NULL,
809     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
810     0, (GdkModifierType) 0, NULL
811   },
812   {
813     GNOME_APP_UI_ITEM, N_("Open _Disc..."),
814     N_("Open a DVD or VCD"),
815     (gpointer) GtkDiscOpenShow, NULL, NULL,
816     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
817     0, (GdkModifierType) 0, NULL
818   },
819   {
820     GNOME_APP_UI_ITEM, N_("_Network Stream..."),
821     N_("Select a Network Stream"),
822     (gpointer) GtkNetworkOpenShow, NULL, NULL,
823     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
824     0, (GdkModifierType) 0, NULL
825   },
826   GNOMEUIINFO_SEPARATOR,
827   GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, NULL),
828   GNOMEUIINFO_END
829 };
830
831 static GnomeUIInfo intf_popup_uiinfo[] =
832 {
833   {
834     GNOME_APP_UI_ITEM, N_("Play"),
835     NULL,
836     (gpointer) GtkControlPlay, NULL, NULL,
837     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
838     0, (GdkModifierType) 0, NULL
839   },
840   {
841     GNOME_APP_UI_ITEM, N_("Pause"),
842     NULL,
843     (gpointer) GtkControlPause, NULL, NULL,
844     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
845     0, (GdkModifierType) 0, NULL
846   },
847   {
848     GNOME_APP_UI_ITEM, N_("Stop"),
849     NULL,
850     (gpointer) GtkControlStop, NULL, NULL,
851     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_STOP,
852     0, (GdkModifierType) 0, NULL
853   },
854   {
855     GNOME_APP_UI_ITEM, N_("Back"),
856     NULL,
857     (gpointer) GtkControlBack, NULL, NULL,
858     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BACK,
859     0, (GdkModifierType) 0, NULL
860   },
861   {
862     GNOME_APP_UI_ITEM, N_("Slow"),
863     NULL,
864     (gpointer) GtkControlSlow, NULL, NULL,
865     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP,
866     0, (GdkModifierType) 0, NULL
867   },
868   {
869     GNOME_APP_UI_ITEM, N_("Fast"),
870     NULL,
871     (gpointer) GtkControlFast, NULL, NULL,
872     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER,
873     0, (GdkModifierType) 0, NULL
874   },
875   GNOMEUIINFO_SEPARATOR,
876   {
877     GNOME_APP_UI_ITEM, N_("Toggle _Interface"),
878     NULL,
879     (gpointer) GtkWindowToggle, NULL, NULL,
880     GNOME_APP_PIXMAP_NONE, NULL,
881     0, (GdkModifierType) 0, NULL
882   },
883   {
884     GNOME_APP_UI_ITEM, N_("_Fullscreen"),
885     N_("Toggle fullscreen mode"),
886     (gpointer) GtkFullscreen, NULL, NULL,
887     GNOME_APP_PIXMAP_NONE, NULL,
888     0, (GdkModifierType) 0, NULL
889   },
890   GNOMEUIINFO_SEPARATOR,
891   {
892     GNOME_APP_UI_ITEM, N_("Next"),
893     NULL,
894     (gpointer) GtkPlaylistNext, NULL, NULL,
895     GNOME_APP_PIXMAP_NONE, NULL,
896     0, (GdkModifierType) 0, NULL
897   },
898   {
899     GNOME_APP_UI_ITEM, N_("Prev"),
900     NULL,
901     (gpointer) GtkPlaylistPrev, NULL, NULL,
902     GNOME_APP_PIXMAP_NONE, NULL,
903     0, (GdkModifierType) 0, NULL
904   },
905   {
906     GNOME_APP_UI_ITEM, N_("_Jump..."),
907     N_("Got directly so specified point"),
908     (gpointer) GtkJumpShow, NULL, NULL,
909     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_JUMP_TO,
910     0, (GdkModifierType) 0, NULL
911   },
912   {
913     GNOME_APP_UI_ITEM, N_("Program"),
914     N_("Switch program"),
915     (gpointer) NULL, NULL, NULL,
916     GNOME_APP_PIXMAP_NONE, NULL,
917     0, (GdkModifierType) 0, NULL
918   },
919   {
920     GNOME_APP_UI_ITEM, N_("_Navigation"),
921     N_("Navigate through titles and chapters"),
922     (gpointer) NULL, NULL, NULL,
923     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_SEARCH,
924     0, (GdkModifierType) 0, NULL
925   },
926   {
927     GNOME_APP_UI_ITEM, N_("_Audio"),
928     N_("Select audio channel"),
929     (gpointer) NULL, NULL, NULL,
930     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_VOLUME,
931     0, (GdkModifierType) 0, NULL
932   },
933   {
934     GNOME_APP_UI_ITEM, N_("_Subtitles"),
935     N_("Select subtitles channel"),
936     (gpointer) NULL, NULL, NULL,
937     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FONT,
938     0, (GdkModifierType) 0, NULL
939   },
940   GNOMEUIINFO_SEPARATOR,
941   GNOMEUIINFO_MENU_FILE_TREE (popup_file_menu_uiinfo),
942   {
943     GNOME_APP_UI_ITEM, N_("Playlist..."),
944     NULL,
945     (gpointer) GtkPlaylistShow, NULL, NULL,
946     GNOME_APP_PIXMAP_NONE, NULL,
947     0, (GdkModifierType) 0, NULL
948   },
949   GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, NULL),
950   GNOMEUIINFO_SEPARATOR,
951   GNOMEUIINFO_MENU_EXIT_ITEM (GtkExit, NULL),
952   GNOMEUIINFO_END
953 };
954
955 GtkWidget*
956 create_intf_popup (void)
957 {
958   GtkWidget *intf_popup;
959
960   intf_popup = gtk_menu_new ();
961   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
962   gnome_app_fill_menu (GTK_MENU_SHELL (intf_popup), intf_popup_uiinfo,
963                        NULL, FALSE, 0);
964
965   gtk_widget_ref (intf_popup_uiinfo[0].widget);
966   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play",
967                             intf_popup_uiinfo[0].widget,
968                             (GtkDestroyNotify) gtk_widget_unref);
969
970   gtk_widget_ref (intf_popup_uiinfo[1].widget);
971   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause",
972                             intf_popup_uiinfo[1].widget,
973                             (GtkDestroyNotify) gtk_widget_unref);
974
975   gtk_widget_ref (intf_popup_uiinfo[2].widget);
976   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_stop",
977                             intf_popup_uiinfo[2].widget,
978                             (GtkDestroyNotify) gtk_widget_unref);
979
980   gtk_widget_ref (intf_popup_uiinfo[3].widget);
981   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_back",
982                             intf_popup_uiinfo[3].widget,
983                             (GtkDestroyNotify) gtk_widget_unref);
984   gtk_widget_set_sensitive (intf_popup_uiinfo[3].widget, FALSE);
985
986   gtk_widget_ref (intf_popup_uiinfo[4].widget);
987   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
988                             intf_popup_uiinfo[4].widget,
989                             (GtkDestroyNotify) gtk_widget_unref);
990
991   gtk_widget_ref (intf_popup_uiinfo[5].widget);
992   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
993                             intf_popup_uiinfo[5].widget,
994                             (GtkDestroyNotify) gtk_widget_unref);
995
996   gtk_widget_ref (intf_popup_uiinfo[6].widget);
997   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
998                             intf_popup_uiinfo[6].widget,
999                             (GtkDestroyNotify) gtk_widget_unref);
1000
1001   gtk_widget_ref (intf_popup_uiinfo[7].widget);
1002   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_interface_toggle",
1003                             intf_popup_uiinfo[7].widget,
1004                             (GtkDestroyNotify) gtk_widget_unref);
1005
1006   gtk_widget_ref (intf_popup_uiinfo[8].widget);
1007   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fullscreen",
1008                             intf_popup_uiinfo[8].widget,
1009                             (GtkDestroyNotify) gtk_widget_unref);
1010
1011   gtk_widget_ref (intf_popup_uiinfo[9].widget);
1012   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator8",
1013                             intf_popup_uiinfo[9].widget,
1014                             (GtkDestroyNotify) gtk_widget_unref);
1015
1016   gtk_widget_ref (intf_popup_uiinfo[10].widget);
1017   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_next",
1018                             intf_popup_uiinfo[10].widget,
1019                             (GtkDestroyNotify) gtk_widget_unref);
1020
1021   gtk_widget_ref (intf_popup_uiinfo[11].widget);
1022   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_prev",
1023                             intf_popup_uiinfo[11].widget,
1024                             (GtkDestroyNotify) gtk_widget_unref);
1025
1026   gtk_widget_ref (intf_popup_uiinfo[12].widget);
1027   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_jump",
1028                             intf_popup_uiinfo[12].widget,
1029                             (GtkDestroyNotify) gtk_widget_unref);
1030
1031   gtk_widget_ref (intf_popup_uiinfo[13].widget);
1032   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_program",
1033                             intf_popup_uiinfo[13].widget,
1034                             (GtkDestroyNotify) gtk_widget_unref);
1035   gtk_widget_set_sensitive (intf_popup_uiinfo[13].widget, FALSE);
1036
1037   gtk_widget_ref (intf_popup_uiinfo[14].widget);
1038   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation",
1039                             intf_popup_uiinfo[14].widget,
1040                             (GtkDestroyNotify) gtk_widget_unref);
1041   gtk_widget_set_sensitive (intf_popup_uiinfo[14].widget, FALSE);
1042
1043   gtk_widget_ref (intf_popup_uiinfo[15].widget);
1044   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio",
1045                             intf_popup_uiinfo[15].widget,
1046                             (GtkDestroyNotify) gtk_widget_unref);
1047   gtk_widget_set_sensitive (intf_popup_uiinfo[15].widget, FALSE);
1048
1049   gtk_widget_ref (intf_popup_uiinfo[16].widget);
1050   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures",
1051                             intf_popup_uiinfo[16].widget,
1052                             (GtkDestroyNotify) gtk_widget_unref);
1053   gtk_widget_set_sensitive (intf_popup_uiinfo[16].widget, FALSE);
1054
1055   gtk_widget_ref (intf_popup_uiinfo[17].widget);
1056   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator13",
1057                             intf_popup_uiinfo[17].widget,
1058                             (GtkDestroyNotify) gtk_widget_unref);
1059
1060   gtk_widget_ref (intf_popup_uiinfo[18].widget);
1061   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file",
1062                             intf_popup_uiinfo[18].widget,
1063                             (GtkDestroyNotify) gtk_widget_unref);
1064
1065   gtk_widget_ref (popup_file_menu_uiinfo[0].widget);
1066   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open",
1067                             popup_file_menu_uiinfo[0].widget,
1068                             (GtkDestroyNotify) gtk_widget_unref);
1069
1070   gtk_widget_ref (popup_file_menu_uiinfo[1].widget);
1071   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc",
1072                             popup_file_menu_uiinfo[1].widget,
1073                             (GtkDestroyNotify) gtk_widget_unref);
1074
1075   gtk_widget_ref (popup_file_menu_uiinfo[2].widget);
1076   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network",
1077                             popup_file_menu_uiinfo[2].widget,
1078                             (GtkDestroyNotify) gtk_widget_unref);
1079
1080   gtk_widget_ref (popup_file_menu_uiinfo[3].widget);
1081   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator4",
1082                             popup_file_menu_uiinfo[3].widget,
1083                             (GtkDestroyNotify) gtk_widget_unref);
1084
1085   gtk_widget_ref (popup_file_menu_uiinfo[4].widget);
1086   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about",
1087                             popup_file_menu_uiinfo[4].widget,
1088                             (GtkDestroyNotify) gtk_widget_unref);
1089
1090   gtk_widget_ref (intf_popup_uiinfo[19].widget);
1091   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_playlist",
1092                             intf_popup_uiinfo[19].widget,
1093                             (GtkDestroyNotify) gtk_widget_unref);
1094
1095   gtk_widget_ref (intf_popup_uiinfo[20].widget);
1096   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_preferences",
1097                             intf_popup_uiinfo[20].widget,
1098                             (GtkDestroyNotify) gtk_widget_unref);
1099
1100   gtk_widget_ref (intf_popup_uiinfo[21].widget);
1101   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2",
1102                             intf_popup_uiinfo[21].widget,
1103                             (GtkDestroyNotify) gtk_widget_unref);
1104
1105   gtk_widget_ref (intf_popup_uiinfo[22].widget);
1106   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit",
1107                             intf_popup_uiinfo[22].widget,
1108                             (GtkDestroyNotify) gtk_widget_unref);
1109
1110   return intf_popup;
1111 }
1112
1113 GtkWidget*
1114 create_intf_about (void)
1115 {
1116   const gchar *authors[] = {
1117     "the VideoLAN team <videolan@videolan.org>",
1118     "http://www.videolan.org/",
1119     NULL
1120   };
1121   GtkWidget *intf_about;
1122
1123   intf_about = gnome_about_new ("VideoLAN Client", VERSION,
1124                         _("(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"),
1125                         authors,
1126                         _("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."),
1127                         NULL);
1128   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
1129
1130   return intf_about;
1131 }
1132
1133 GtkWidget*
1134 create_intf_open (void)
1135 {
1136   GtkWidget *intf_open;
1137   GtkWidget *dialog_vbox5;
1138   GtkWidget *open_vbox;
1139   GtkWidget *frame10;
1140   GtkWidget *hbox21;
1141   GtkWidget *hbox22;
1142   GtkWidget *label34;
1143   GtkWidget *combo2;
1144   GtkWidget *entry_open;
1145   GtkWidget *label36;
1146   GtkWidget *open_notebook;
1147   GtkWidget *hbox20;
1148   GtkWidget *combo1;
1149   GtkWidget *entry_file;
1150   GtkWidget *vbox13;
1151   GtkWidget *open_browse;
1152   GtkWidget *open_file;
1153   GtkWidget *table5;
1154   GtkWidget *label21;
1155   GtkWidget *label20;
1156   GtkObject *disc_chapter_adj;
1157   GtkWidget *disc_chapter;
1158   GtkWidget *label35;
1159   GtkWidget *hbox24;
1160   GSList *disc_group = NULL;
1161   GtkWidget *disc_dvd;
1162   GtkWidget *disc_vcd;
1163   GtkWidget *label19;
1164   GtkObject *disc_title_adj;
1165   GtkWidget *disc_title;
1166   GtkWidget *disc_name;
1167   GtkWidget *open_disc;
1168   GtkWidget *table4;
1169   GSList *table4_group = NULL;
1170   GtkWidget *network_udp;
1171   GtkWidget *network_multicast;
1172   GtkWidget *network_channel;
1173   GtkWidget *network_http;
1174   GtkWidget *network_udp_port_label;
1175   GtkWidget *network_multicast_address_label;
1176   GtkWidget *network_channel_address_label;
1177   GtkWidget *network_http_url_label;
1178   GtkWidget *network_multicast_address_combo;
1179   GtkWidget *network_multicast_address;
1180   GtkWidget *network_channel_address_combo;
1181   GtkWidget *network_channel_address;
1182   GtkWidget *network_multicast_port_label;
1183   GtkWidget *network_channel_port_label;
1184   GtkObject *network_multicast_port_adj;
1185   GtkWidget *network_multicast_port;
1186   GtkObject *network_channel_port_adj;
1187   GtkWidget *network_channel_port;
1188   GtkWidget *network_http_url;
1189   GtkObject *network_udp_port_adj;
1190   GtkWidget *network_udp_port;
1191   GtkWidget *open_net;
1192   GtkWidget *table3;
1193   GtkWidget *label24;
1194   GtkWidget *label25;
1195   GtkWidget *label26;
1196   GtkObject *sat_freq_adj;
1197   GtkWidget *sat_freq;
1198   GtkWidget *label27;
1199   GtkWidget *hbox23;
1200   GSList *pol_group = NULL;
1201   GtkWidget *sat_pol_vert;
1202   GtkWidget *sat_pol_hor;
1203   GtkObject *sat_srate_adj;
1204   GtkWidget *sat_srate;
1205   GtkWidget *sat_fec;
1206   GList *sat_fec_items = NULL;
1207   GtkWidget *combo_entry1;
1208   GtkWidget *open_sat;
1209   GtkWidget *dialog_action_area5;
1210   GtkWidget *button1;
1211   GtkWidget *button3;
1212
1213   intf_open = gnome_dialog_new (_("Open Stream"), NULL);
1214   gtk_object_set_data (GTK_OBJECT (intf_open), "intf_open", intf_open);
1215   gtk_window_set_modal (GTK_WINDOW (intf_open), TRUE);
1216   gtk_window_set_policy (GTK_WINDOW (intf_open), FALSE, FALSE, FALSE);
1217   gnome_dialog_close_hides (GNOME_DIALOG (intf_open), TRUE);
1218
1219   dialog_vbox5 = GNOME_DIALOG (intf_open)->vbox;
1220   gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_vbox5", dialog_vbox5);
1221   gtk_widget_show (dialog_vbox5);
1222
1223   open_vbox = gtk_vbox_new (FALSE, 5);
1224   gtk_widget_ref (open_vbox);
1225   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_vbox", open_vbox,
1226                             (GtkDestroyNotify) gtk_widget_unref);
1227   gtk_widget_show (open_vbox);
1228   gtk_box_pack_start (GTK_BOX (dialog_vbox5), open_vbox, TRUE, TRUE, 0);
1229
1230   frame10 = gtk_frame_new (_("Media Resource Locator (MRL)"));
1231   gtk_widget_ref (frame10);
1232   gtk_object_set_data_full (GTK_OBJECT (intf_open), "frame10", frame10,
1233                             (GtkDestroyNotify) gtk_widget_unref);
1234   gtk_widget_show (frame10);
1235   gtk_box_pack_start (GTK_BOX (open_vbox), frame10, FALSE, TRUE, 0);
1236
1237   hbox21 = gtk_hbox_new (FALSE, 5);
1238   gtk_widget_ref (hbox21);
1239   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox21", hbox21,
1240                             (GtkDestroyNotify) gtk_widget_unref);
1241   gtk_widget_show (hbox21);
1242   gtk_container_add (GTK_CONTAINER (frame10), hbox21);
1243   gtk_container_set_border_width (GTK_CONTAINER (hbox21), 5);
1244
1245   hbox22 = gtk_hbox_new (FALSE, 0);
1246   gtk_widget_ref (hbox22);
1247   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox22", hbox22,
1248                             (GtkDestroyNotify) gtk_widget_unref);
1249   gtk_widget_show (hbox22);
1250   gtk_box_pack_start (GTK_BOX (hbox21), hbox22, FALSE, TRUE, 0);
1251
1252   label34 = gtk_label_new (_("Open Target:"));
1253   gtk_widget_ref (label34);
1254   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label34", label34,
1255                             (GtkDestroyNotify) gtk_widget_unref);
1256   gtk_widget_show (label34);
1257   gtk_box_pack_start (GTK_BOX (hbox22), label34, FALSE, FALSE, 0);
1258
1259   combo2 = gtk_combo_new ();
1260   gtk_widget_ref (combo2);
1261   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo2", combo2,
1262                             (GtkDestroyNotify) gtk_widget_unref);
1263   gtk_widget_show (combo2);
1264   gtk_box_pack_start (GTK_BOX (hbox21), combo2, TRUE, TRUE, 0);
1265
1266   entry_open = GTK_COMBO (combo2)->entry;
1267   gtk_widget_ref (entry_open);
1268   gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_open", entry_open,
1269                             (GtkDestroyNotify) gtk_widget_unref);
1270   gtk_widget_show (entry_open);
1271
1272   label36 = gtk_label_new (_("Alternatively, you can build an MRL using one of the following predefined targets:"));
1273   gtk_widget_ref (label36);
1274   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label36", label36,
1275                             (GtkDestroyNotify) gtk_widget_unref);
1276   gtk_widget_show (label36);
1277   gtk_box_pack_start (GTK_BOX (open_vbox), label36, TRUE, TRUE, 0);
1278   gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT);
1279   gtk_misc_set_alignment (GTK_MISC (label36), 0, 1);
1280
1281   open_notebook = gtk_notebook_new ();
1282   gtk_widget_ref (open_notebook);
1283   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_notebook", open_notebook,
1284                             (GtkDestroyNotify) gtk_widget_unref);
1285   gtk_widget_show (open_notebook);
1286   gtk_box_pack_start (GTK_BOX (open_vbox), open_notebook, TRUE, TRUE, 0);
1287
1288   hbox20 = gtk_hbox_new (FALSE, 5);
1289   gtk_widget_ref (hbox20);
1290   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox20", hbox20,
1291                             (GtkDestroyNotify) gtk_widget_unref);
1292   gtk_widget_show (hbox20);
1293   gtk_container_add (GTK_CONTAINER (open_notebook), hbox20);
1294   gtk_container_set_border_width (GTK_CONTAINER (hbox20), 5);
1295
1296   combo1 = gtk_combo_new ();
1297   gtk_widget_ref (combo1);
1298   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo1", combo1,
1299                             (GtkDestroyNotify) gtk_widget_unref);
1300   gtk_widget_show (combo1);
1301   gtk_box_pack_start (GTK_BOX (hbox20), combo1, FALSE, TRUE, 0);
1302
1303   entry_file = GTK_COMBO (combo1)->entry;
1304   gtk_widget_ref (entry_file);
1305   gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_file", entry_file,
1306                             (GtkDestroyNotify) gtk_widget_unref);
1307   gtk_widget_show (entry_file);
1308
1309   vbox13 = gtk_vbox_new (TRUE, 0);
1310   gtk_widget_ref (vbox13);
1311   gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox13", vbox13,
1312                             (GtkDestroyNotify) gtk_widget_unref);
1313   gtk_widget_show (vbox13);
1314   gtk_box_pack_start (GTK_BOX (hbox20), vbox13, FALSE, FALSE, 0);
1315
1316   open_browse = gtk_button_new_with_label (_("Browse..."));
1317   gtk_widget_ref (open_browse);
1318   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_browse", open_browse,
1319                             (GtkDestroyNotify) gtk_widget_unref);
1320   gtk_widget_show (open_browse);
1321   gtk_box_pack_start (GTK_BOX (vbox13), open_browse, FALSE, FALSE, 0);
1322
1323   open_file = gtk_label_new (_("File"));
1324   gtk_widget_ref (open_file);
1325   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_file", open_file,
1326                             (GtkDestroyNotify) gtk_widget_unref);
1327   gtk_widget_show (open_file);
1328   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 0), open_file);
1329
1330   table5 = gtk_table_new (4, 2, FALSE);
1331   gtk_widget_ref (table5);
1332   gtk_object_set_data_full (GTK_OBJECT (intf_open), "table5", table5,
1333                             (GtkDestroyNotify) gtk_widget_unref);
1334   gtk_widget_show (table5);
1335   gtk_container_add (GTK_CONTAINER (open_notebook), table5);
1336   gtk_container_set_border_width (GTK_CONTAINER (table5), 5);
1337   gtk_table_set_row_spacings (GTK_TABLE (table5), 5);
1338   gtk_table_set_col_spacings (GTK_TABLE (table5), 5);
1339
1340   label21 = gtk_label_new (_("Title"));
1341   gtk_widget_ref (label21);
1342   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label21", label21,
1343                             (GtkDestroyNotify) gtk_widget_unref);
1344   gtk_widget_show (label21);
1345   gtk_table_attach (GTK_TABLE (table5), label21, 0, 1, 2, 3,
1346                     (GtkAttachOptions) (GTK_FILL),
1347                     (GtkAttachOptions) (0), 0, 0);
1348   gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5);
1349
1350   label20 = gtk_label_new (_("Chapter"));
1351   gtk_widget_ref (label20);
1352   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label20", label20,
1353                             (GtkDestroyNotify) gtk_widget_unref);
1354   gtk_widget_show (label20);
1355   gtk_table_attach (GTK_TABLE (table5), label20, 0, 1, 3, 4,
1356                     (GtkAttachOptions) (GTK_FILL),
1357                     (GtkAttachOptions) (0), 0, 0);
1358   gtk_misc_set_alignment (GTK_MISC (label20), 0, 0.5);
1359
1360   disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1361   disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0);
1362   gtk_widget_ref (disc_chapter);
1363   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter", disc_chapter,
1364                             (GtkDestroyNotify) gtk_widget_unref);
1365   gtk_widget_show (disc_chapter);
1366   gtk_table_attach (GTK_TABLE (table5), disc_chapter, 1, 2, 3, 4,
1367                     (GtkAttachOptions) (GTK_FILL),
1368                     (GtkAttachOptions) (0), 0, 0);
1369
1370   label35 = gtk_label_new (_("Disc type"));
1371   gtk_widget_ref (label35);
1372   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label35", label35,
1373                             (GtkDestroyNotify) gtk_widget_unref);
1374   gtk_widget_show (label35);
1375   gtk_table_attach (GTK_TABLE (table5), label35, 0, 1, 0, 1,
1376                     (GtkAttachOptions) (GTK_FILL),
1377                     (GtkAttachOptions) (0), 0, 0);
1378   gtk_misc_set_alignment (GTK_MISC (label35), 0, 0.5);
1379
1380   hbox24 = gtk_hbox_new (FALSE, 0);
1381   gtk_widget_ref (hbox24);
1382   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox24", hbox24,
1383                             (GtkDestroyNotify) gtk_widget_unref);
1384   gtk_widget_show (hbox24);
1385   gtk_table_attach (GTK_TABLE (table5), hbox24, 1, 2, 0, 1,
1386                     (GtkAttachOptions) (GTK_FILL),
1387                     (GtkAttachOptions) (GTK_FILL), 0, 0);
1388
1389   disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD"));
1390   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd));
1391   gtk_widget_ref (disc_dvd);
1392   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd", disc_dvd,
1393                             (GtkDestroyNotify) gtk_widget_unref);
1394   gtk_widget_show (disc_dvd);
1395   gtk_box_pack_start (GTK_BOX (hbox24), disc_dvd, FALSE, FALSE, 0);
1396
1397   disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD"));
1398   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd));
1399   gtk_widget_ref (disc_vcd);
1400   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_vcd", disc_vcd,
1401                             (GtkDestroyNotify) gtk_widget_unref);
1402   gtk_widget_show (disc_vcd);
1403   gtk_box_pack_start (GTK_BOX (hbox24), disc_vcd, FALSE, FALSE, 0);
1404
1405   label19 = gtk_label_new (_("Device name"));
1406   gtk_widget_ref (label19);
1407   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label19", label19,
1408                             (GtkDestroyNotify) gtk_widget_unref);
1409   gtk_widget_show (label19);
1410   gtk_table_attach (GTK_TABLE (table5), label19, 0, 1, 1, 2,
1411                     (GtkAttachOptions) (GTK_FILL),
1412                     (GtkAttachOptions) (0), 0, 0);
1413
1414   disc_title_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1415   disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0);
1416   gtk_widget_ref (disc_title);
1417   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title", disc_title,
1418                             (GtkDestroyNotify) gtk_widget_unref);
1419   gtk_widget_show (disc_title);
1420   gtk_table_attach (GTK_TABLE (table5), disc_title, 1, 2, 2, 3,
1421                     (GtkAttachOptions) (GTK_FILL),
1422                     (GtkAttachOptions) (0), 0, 0);
1423
1424   disc_name = gtk_entry_new ();
1425   gtk_widget_ref (disc_name);
1426   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_name", disc_name,
1427                             (GtkDestroyNotify) gtk_widget_unref);
1428   gtk_widget_show (disc_name);
1429   gtk_table_attach (GTK_TABLE (table5), disc_name, 1, 2, 1, 2,
1430                     (GtkAttachOptions) (GTK_FILL),
1431                     (GtkAttachOptions) (0), 0, 0);
1432   gtk_entry_set_text (GTK_ENTRY (disc_name), "/dev/dvd");
1433
1434   open_disc = gtk_label_new (_("Disc"));
1435   gtk_widget_ref (open_disc);
1436   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_disc", open_disc,
1437                             (GtkDestroyNotify) gtk_widget_unref);
1438   gtk_widget_show (open_disc);
1439   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 1), open_disc);
1440
1441   table4 = gtk_table_new (4, 6, FALSE);
1442   gtk_widget_ref (table4);
1443   gtk_object_set_data_full (GTK_OBJECT (intf_open), "table4", table4,
1444                             (GtkDestroyNotify) gtk_widget_unref);
1445   gtk_widget_show (table4);
1446   gtk_container_add (GTK_CONTAINER (open_notebook), table4);
1447   gtk_container_set_border_width (GTK_CONTAINER (table4), 5);
1448   gtk_table_set_row_spacings (GTK_TABLE (table4), 5);
1449   gtk_table_set_col_spacings (GTK_TABLE (table4), 5);
1450
1451   network_udp = gtk_radio_button_new_with_label (table4_group, _("UDP"));
1452   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_udp));
1453   gtk_widget_ref (network_udp);
1454   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp", network_udp,
1455                             (GtkDestroyNotify) gtk_widget_unref);
1456   gtk_widget_show (network_udp);
1457   gtk_table_attach (GTK_TABLE (table4), network_udp, 0, 1, 0, 1,
1458                     (GtkAttachOptions) (GTK_FILL),
1459                     (GtkAttachOptions) (0), 0, 0);
1460
1461   network_multicast = gtk_radio_button_new_with_label (table4_group, _("UDP Multicast"));
1462   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_multicast));
1463   gtk_widget_ref (network_multicast);
1464   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast", network_multicast,
1465                             (GtkDestroyNotify) gtk_widget_unref);
1466   gtk_widget_show (network_multicast);
1467   gtk_table_attach (GTK_TABLE (table4), network_multicast, 0, 1, 1, 2,
1468                     (GtkAttachOptions) (GTK_FILL),
1469                     (GtkAttachOptions) (0), 0, 0);
1470
1471   network_channel = gtk_radio_button_new_with_label (table4_group, _("Channel server "));
1472   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_channel));
1473   gtk_widget_ref (network_channel);
1474   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel", network_channel,
1475                             (GtkDestroyNotify) gtk_widget_unref);
1476   gtk_widget_show (network_channel);
1477   gtk_table_attach (GTK_TABLE (table4), network_channel, 0, 1, 2, 3,
1478                     (GtkAttachOptions) (GTK_FILL),
1479                     (GtkAttachOptions) (0), 0, 0);
1480
1481   network_http = gtk_radio_button_new_with_label (table4_group, _("HTTP"));
1482   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http));
1483   gtk_widget_ref (network_http);
1484   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http", network_http,
1485                             (GtkDestroyNotify) gtk_widget_unref);
1486   gtk_widget_show (network_http);
1487   gtk_table_attach (GTK_TABLE (table4), network_http, 0, 1, 3, 4,
1488                     (GtkAttachOptions) (GTK_FILL),
1489                     (GtkAttachOptions) (0), 0, 0);
1490
1491   network_udp_port_label = gtk_label_new (_("Port"));
1492   gtk_widget_ref (network_udp_port_label);
1493   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port_label", network_udp_port_label,
1494                             (GtkDestroyNotify) gtk_widget_unref);
1495   gtk_widget_show (network_udp_port_label);
1496   gtk_table_attach (GTK_TABLE (table4), network_udp_port_label, 1, 2, 0, 1,
1497                     (GtkAttachOptions) (GTK_FILL),
1498                     (GtkAttachOptions) (0), 0, 0);
1499   gtk_misc_set_alignment (GTK_MISC (network_udp_port_label), 1, 0.5);
1500
1501   network_multicast_address_label = gtk_label_new (_("Address"));
1502   gtk_widget_ref (network_multicast_address_label);
1503   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_label", network_multicast_address_label,
1504                             (GtkDestroyNotify) gtk_widget_unref);
1505   gtk_widget_show (network_multicast_address_label);
1506   gtk_table_attach (GTK_TABLE (table4), network_multicast_address_label, 1, 2, 1, 2,
1507                     (GtkAttachOptions) (GTK_FILL),
1508                     (GtkAttachOptions) (0), 0, 0);
1509   gtk_widget_set_sensitive (network_multicast_address_label, FALSE);
1510   gtk_label_set_justify (GTK_LABEL (network_multicast_address_label), GTK_JUSTIFY_RIGHT);
1511   gtk_misc_set_alignment (GTK_MISC (network_multicast_address_label), 1, 0.5);
1512
1513   network_channel_address_label = gtk_label_new (_("Address"));
1514   gtk_widget_ref (network_channel_address_label);
1515   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_address_label", network_channel_address_label,
1516                             (GtkDestroyNotify) gtk_widget_unref);
1517   gtk_widget_show (network_channel_address_label);
1518   gtk_table_attach (GTK_TABLE (table4), network_channel_address_label, 1, 2, 2, 3,
1519                     (GtkAttachOptions) (GTK_FILL),
1520                     (GtkAttachOptions) (0), 0, 0);
1521   gtk_widget_set_sensitive (network_channel_address_label, FALSE);
1522
1523   network_http_url_label = gtk_label_new (_("URL"));
1524   gtk_widget_ref (network_http_url_label);
1525   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url_label", network_http_url_label,
1526                             (GtkDestroyNotify) gtk_widget_unref);
1527   gtk_widget_show (network_http_url_label);
1528   gtk_table_attach (GTK_TABLE (table4), network_http_url_label, 1, 2, 3, 4,
1529                     (GtkAttachOptions) (GTK_FILL),
1530                     (GtkAttachOptions) (0), 0, 0);
1531   gtk_widget_set_sensitive (network_http_url_label, FALSE);
1532   gtk_misc_set_alignment (GTK_MISC (network_http_url_label), 1, 0.5);
1533
1534   network_multicast_address_combo = gtk_combo_new ();
1535   gtk_widget_ref (network_multicast_address_combo);
1536   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_combo", network_multicast_address_combo,
1537                             (GtkDestroyNotify) gtk_widget_unref);
1538   gtk_widget_show (network_multicast_address_combo);
1539   gtk_table_attach (GTK_TABLE (table4), network_multicast_address_combo, 2, 4, 1, 2,
1540                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1541                     (GtkAttachOptions) (0), 0, 0);
1542   gtk_widget_set_sensitive (network_multicast_address_combo, FALSE);
1543
1544   network_multicast_address = GTK_COMBO (network_multicast_address_combo)->entry;
1545   gtk_widget_ref (network_multicast_address);
1546   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address", network_multicast_address,
1547                             (GtkDestroyNotify) gtk_widget_unref);
1548   gtk_widget_show (network_multicast_address);
1549
1550   network_channel_address_combo = gtk_combo_new ();
1551   gtk_widget_ref (network_channel_address_combo);
1552   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_address_combo", network_channel_address_combo,
1553                             (GtkDestroyNotify) gtk_widget_unref);
1554   gtk_widget_show (network_channel_address_combo);
1555   gtk_table_attach (GTK_TABLE (table4), network_channel_address_combo, 2, 4, 2, 3,
1556                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1557                     (GtkAttachOptions) (0), 0, 0);
1558   gtk_widget_set_sensitive (network_channel_address_combo, FALSE);
1559
1560   network_channel_address = GTK_COMBO (network_channel_address_combo)->entry;
1561   gtk_widget_ref (network_channel_address);
1562   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_address", network_channel_address,
1563                             (GtkDestroyNotify) gtk_widget_unref);
1564   gtk_widget_show (network_channel_address);
1565
1566   network_multicast_port_label = gtk_label_new (_("Port"));
1567   gtk_widget_ref (network_multicast_port_label);
1568   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port_label", network_multicast_port_label,
1569                             (GtkDestroyNotify) gtk_widget_unref);
1570   gtk_widget_show (network_multicast_port_label);
1571   gtk_table_attach (GTK_TABLE (table4), network_multicast_port_label, 4, 5, 1, 2,
1572                     (GtkAttachOptions) (GTK_FILL),
1573                     (GtkAttachOptions) (0), 0, 0);
1574   gtk_widget_set_sensitive (network_multicast_port_label, FALSE);
1575   gtk_misc_set_alignment (GTK_MISC (network_multicast_port_label), 1, 0.5);
1576
1577   network_channel_port_label = gtk_label_new (_("Port"));
1578   gtk_widget_ref (network_channel_port_label);
1579   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_port_label", network_channel_port_label,
1580                             (GtkDestroyNotify) gtk_widget_unref);
1581   gtk_widget_show (network_channel_port_label);
1582   gtk_table_attach (GTK_TABLE (table4), network_channel_port_label, 4, 5, 2, 3,
1583                     (GtkAttachOptions) (GTK_FILL),
1584                     (GtkAttachOptions) (0), 0, 0);
1585   gtk_widget_set_sensitive (network_channel_port_label, FALSE);
1586   gtk_misc_set_alignment (GTK_MISC (network_channel_port_label), 1, 0.5);
1587
1588   network_multicast_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1589   network_multicast_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_multicast_port_adj), 1, 0);
1590   gtk_widget_ref (network_multicast_port);
1591   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port", network_multicast_port,
1592                             (GtkDestroyNotify) gtk_widget_unref);
1593   gtk_widget_show (network_multicast_port);
1594   gtk_table_attach (GTK_TABLE (table4), network_multicast_port, 5, 6, 1, 2,
1595                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1596                     (GtkAttachOptions) (0), 0, 0);
1597   gtk_widget_set_usize (network_multicast_port, 75, -2);
1598   gtk_widget_set_sensitive (network_multicast_port, FALSE);
1599
1600   network_channel_port_adj = gtk_adjustment_new (6010, 0, 65535, 1, 10, 10);
1601   network_channel_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_port_adj), 1, 0);
1602   gtk_widget_ref (network_channel_port);
1603   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_port", network_channel_port,
1604                             (GtkDestroyNotify) gtk_widget_unref);
1605   gtk_widget_show (network_channel_port);
1606   gtk_table_attach (GTK_TABLE (table4), network_channel_port, 5, 6, 2, 3,
1607                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1608                     (GtkAttachOptions) (0), 0, 0);
1609   gtk_widget_set_usize (network_channel_port, 75, -2);
1610   gtk_widget_set_sensitive (network_channel_port, FALSE);
1611
1612   network_http_url = gtk_entry_new ();
1613   gtk_widget_ref (network_http_url);
1614   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url", network_http_url,
1615                             (GtkDestroyNotify) gtk_widget_unref);
1616   gtk_widget_show (network_http_url);
1617   gtk_table_attach (GTK_TABLE (table4), network_http_url, 2, 6, 3, 4,
1618                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1619                     (GtkAttachOptions) (0), 0, 0);
1620   gtk_widget_set_sensitive (network_http_url, FALSE);
1621
1622   network_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1623   network_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_udp_port_adj), 1, 0);
1624   gtk_widget_ref (network_udp_port);
1625   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port", network_udp_port,
1626                             (GtkDestroyNotify) gtk_widget_unref);
1627   gtk_widget_show (network_udp_port);
1628   gtk_table_attach (GTK_TABLE (table4), network_udp_port, 2, 3, 0, 1,
1629                     (GtkAttachOptions) (GTK_FILL),
1630                     (GtkAttachOptions) (0), 0, 0);
1631   gtk_widget_set_usize (network_udp_port, 1, -2);
1632
1633   open_net = gtk_label_new (_("Network"));
1634   gtk_widget_ref (open_net);
1635   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_net", open_net,
1636                             (GtkDestroyNotify) gtk_widget_unref);
1637   gtk_widget_show (open_net);
1638   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 2), open_net);
1639
1640   table3 = gtk_table_new (4, 2, FALSE);
1641   gtk_widget_ref (table3);
1642   gtk_object_set_data_full (GTK_OBJECT (intf_open), "table3", table3,
1643                             (GtkDestroyNotify) gtk_widget_unref);
1644   gtk_widget_show (table3);
1645   gtk_container_add (GTK_CONTAINER (open_notebook), table3);
1646   gtk_container_set_border_width (GTK_CONTAINER (table3), 5);
1647   gtk_table_set_row_spacings (GTK_TABLE (table3), 5);
1648   gtk_table_set_col_spacings (GTK_TABLE (table3), 5);
1649
1650   label24 = gtk_label_new (_("Symbol Rate"));
1651   gtk_widget_ref (label24);
1652   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label24", label24,
1653                             (GtkDestroyNotify) gtk_widget_unref);
1654   gtk_widget_show (label24);
1655   gtk_table_attach (GTK_TABLE (table3), label24, 0, 1, 1, 2,
1656                     (GtkAttachOptions) (GTK_FILL),
1657                     (GtkAttachOptions) (0), 0, 0);
1658   gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5);
1659
1660   label25 = gtk_label_new (_("Frequency"));
1661   gtk_widget_ref (label25);
1662   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label25", label25,
1663                             (GtkDestroyNotify) gtk_widget_unref);
1664   gtk_widget_show (label25);
1665   gtk_table_attach (GTK_TABLE (table3), label25, 0, 1, 0, 1,
1666                     (GtkAttachOptions) (GTK_FILL),
1667                     (GtkAttachOptions) (0), 0, 0);
1668   gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5);
1669
1670   label26 = gtk_label_new (_("Polarization"));
1671   gtk_widget_ref (label26);
1672   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label26", label26,
1673                             (GtkDestroyNotify) gtk_widget_unref);
1674   gtk_widget_show (label26);
1675   gtk_table_attach (GTK_TABLE (table3), label26, 0, 1, 2, 3,
1676                     (GtkAttachOptions) (GTK_FILL),
1677                     (GtkAttachOptions) (0), 0, 0);
1678   gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5);
1679
1680   sat_freq_adj = gtk_adjustment_new (11954, 10000, 12999, 1, 10, 10);
1681   sat_freq = gtk_spin_button_new (GTK_ADJUSTMENT (sat_freq_adj), 1, 0);
1682   gtk_widget_ref (sat_freq);
1683   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_freq", sat_freq,
1684                             (GtkDestroyNotify) gtk_widget_unref);
1685   gtk_widget_show (sat_freq);
1686   gtk_table_attach (GTK_TABLE (table3), sat_freq, 1, 2, 0, 1,
1687                     (GtkAttachOptions) (GTK_FILL),
1688                     (GtkAttachOptions) (0), 0, 0);
1689
1690   label27 = gtk_label_new (_("FEC"));
1691   gtk_widget_ref (label27);
1692   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label27", label27,
1693                             (GtkDestroyNotify) gtk_widget_unref);
1694   gtk_widget_show (label27);
1695   gtk_table_attach (GTK_TABLE (table3), label27, 0, 1, 3, 4,
1696                     (GtkAttachOptions) (GTK_FILL),
1697                     (GtkAttachOptions) (0), 0, 0);
1698   gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5);
1699
1700   hbox23 = gtk_hbox_new (FALSE, 0);
1701   gtk_widget_ref (hbox23);
1702   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox23", hbox23,
1703                             (GtkDestroyNotify) gtk_widget_unref);
1704   gtk_widget_show (hbox23);
1705   gtk_table_attach (GTK_TABLE (table3), hbox23, 1, 2, 2, 3,
1706                     (GtkAttachOptions) (GTK_FILL),
1707                     (GtkAttachOptions) (GTK_FILL), 0, 0);
1708
1709   sat_pol_vert = gtk_radio_button_new_with_label (pol_group, _("Vertical"));
1710   pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_vert));
1711   gtk_widget_ref (sat_pol_vert);
1712   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_vert", sat_pol_vert,
1713                             (GtkDestroyNotify) gtk_widget_unref);
1714   gtk_widget_show (sat_pol_vert);
1715   gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_vert, FALSE, FALSE, 0);
1716
1717   sat_pol_hor = gtk_radio_button_new_with_label (pol_group, _("Horizontal"));
1718   pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_hor));
1719   gtk_widget_ref (sat_pol_hor);
1720   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_hor", sat_pol_hor,
1721                             (GtkDestroyNotify) gtk_widget_unref);
1722   gtk_widget_show (sat_pol_hor);
1723   gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_hor, FALSE, FALSE, 0);
1724
1725   sat_srate_adj = gtk_adjustment_new (27500, 1000, 30000, 1, 10, 10);
1726   sat_srate = gtk_spin_button_new (GTK_ADJUSTMENT (sat_srate_adj), 1, 0);
1727   gtk_widget_ref (sat_srate);
1728   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_srate", sat_srate,
1729                             (GtkDestroyNotify) gtk_widget_unref);
1730   gtk_widget_show (sat_srate);
1731   gtk_table_attach (GTK_TABLE (table3), sat_srate, 1, 2, 1, 2,
1732                     (GtkAttachOptions) (GTK_FILL),
1733                     (GtkAttachOptions) (0), 0, 0);
1734
1735   sat_fec = gtk_combo_new ();
1736   gtk_widget_ref (sat_fec);
1737   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_fec", sat_fec,
1738                             (GtkDestroyNotify) gtk_widget_unref);
1739   gtk_widget_show (sat_fec);
1740   gtk_table_attach (GTK_TABLE (table3), sat_fec, 1, 2, 3, 4,
1741                     (GtkAttachOptions) (GTK_FILL),
1742                     (GtkAttachOptions) (0), 0, 0);
1743   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "1/2");
1744   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "2/3");
1745   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "3/4");
1746   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "4/5");
1747   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "5/6");
1748   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "7/8");
1749   gtk_combo_set_popdown_strings (GTK_COMBO (sat_fec), sat_fec_items);
1750   g_list_free (sat_fec_items);
1751
1752   combo_entry1 = GTK_COMBO (sat_fec)->entry;
1753   gtk_widget_ref (combo_entry1);
1754   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo_entry1", combo_entry1,
1755                             (GtkDestroyNotify) gtk_widget_unref);
1756   gtk_widget_show (combo_entry1);
1757   gtk_entry_set_text (GTK_ENTRY (combo_entry1), "3/4");
1758
1759   open_sat = gtk_label_new (_("Satellite"));
1760   gtk_widget_ref (open_sat);
1761   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_sat", open_sat,
1762                             (GtkDestroyNotify) gtk_widget_unref);
1763   gtk_widget_show (open_sat);
1764   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 3), open_sat);
1765
1766   dialog_action_area5 = GNOME_DIALOG (intf_open)->action_area;
1767   gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_action_area5", dialog_action_area5);
1768   gtk_widget_show (dialog_action_area5);
1769   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area5), GTK_BUTTONBOX_END);
1770   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area5), 8);
1771
1772   gnome_dialog_append_button (GNOME_DIALOG (intf_open), GNOME_STOCK_BUTTON_OK);
1773   button1 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_open)->buttons)->data);
1774   gtk_widget_ref (button1);
1775   gtk_object_set_data_full (GTK_OBJECT (intf_open), "button1", button1,
1776                             (GtkDestroyNotify) gtk_widget_unref);
1777   gtk_widget_show (button1);
1778   GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);
1779
1780   gnome_dialog_append_button (GNOME_DIALOG (intf_open), GNOME_STOCK_BUTTON_CANCEL);
1781   button3 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_open)->buttons)->data);
1782   gtk_widget_ref (button3);
1783   gtk_object_set_data_full (GTK_OBJECT (intf_open), "button3", button3,
1784                             (GtkDestroyNotify) gtk_widget_unref);
1785   gtk_widget_show (button3);
1786   GTK_WIDGET_SET_FLAGS (button3, GTK_CAN_DEFAULT);
1787
1788   gtk_signal_connect_after (GTK_OBJECT (open_notebook), "switch_page",
1789                             GTK_SIGNAL_FUNC (GtkOpenNotebookChanged),
1790                             NULL);
1791   gtk_signal_connect (GTK_OBJECT (entry_file), "changed",
1792                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1793                       NULL);
1794   gtk_signal_connect (GTK_OBJECT (open_browse), "clicked",
1795                       GTK_SIGNAL_FUNC (GtkFileShow),
1796                       NULL);
1797   gtk_signal_connect (GTK_OBJECT (disc_chapter), "changed",
1798                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1799                       NULL);
1800   gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled",
1801                       GTK_SIGNAL_FUNC (GtkDiscOpenDvd),
1802                       NULL);
1803   gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled",
1804                       GTK_SIGNAL_FUNC (GtkDiscOpenVcd),
1805                       NULL);
1806   gtk_signal_connect (GTK_OBJECT (disc_title), "changed",
1807                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1808                       NULL);
1809   gtk_signal_connect (GTK_OBJECT (disc_name), "changed",
1810                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1811                       NULL);
1812   gtk_signal_connect (GTK_OBJECT (network_udp), "toggled",
1813                       GTK_SIGNAL_FUNC (GtkNetworkOpenUDP),
1814                       NULL);
1815   gtk_signal_connect (GTK_OBJECT (network_multicast), "toggled",
1816                       GTK_SIGNAL_FUNC (GtkNetworkOpenMulticast),
1817                       NULL);
1818   gtk_signal_connect (GTK_OBJECT (network_channel), "toggled",
1819                       GTK_SIGNAL_FUNC (GtkNetworkOpenChannel),
1820                       NULL);
1821   gtk_signal_connect (GTK_OBJECT (network_http), "toggled",
1822                       GTK_SIGNAL_FUNC (GtkNetworkOpenHTTP),
1823                       NULL);
1824   gtk_signal_connect (GTK_OBJECT (network_multicast_address), "changed",
1825                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1826                       NULL);
1827   gtk_signal_connect (GTK_OBJECT (network_channel_address), "changed",
1828                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1829                       NULL);
1830   gtk_signal_connect (GTK_OBJECT (network_multicast_port), "changed",
1831                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1832                       NULL);
1833   gtk_signal_connect (GTK_OBJECT (network_channel_port), "changed",
1834                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1835                       NULL);
1836   gtk_signal_connect (GTK_OBJECT (network_http_url), "changed",
1837                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1838                       NULL);
1839   gtk_signal_connect (GTK_OBJECT (network_udp_port), "changed",
1840                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1841                       NULL);
1842   gtk_signal_connect (GTK_OBJECT (sat_freq), "changed",
1843                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1844                       NULL);
1845   gtk_signal_connect (GTK_OBJECT (sat_pol_vert), "toggled",
1846                       GTK_SIGNAL_FUNC (GtkSatOpenToggle),
1847                       NULL);
1848   gtk_signal_connect (GTK_OBJECT (sat_pol_hor), "toggled",
1849                       GTK_SIGNAL_FUNC (GtkSatOpenToggle),
1850                       NULL);
1851   gtk_signal_connect (GTK_OBJECT (sat_srate), "changed",
1852                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1853                       NULL);
1854   gtk_signal_connect (GTK_OBJECT (combo_entry1), "changed",
1855                       GTK_SIGNAL_FUNC (GtkOpenChanged),
1856                       NULL);
1857   gtk_signal_connect (GTK_OBJECT (button1), "clicked",
1858                       GTK_SIGNAL_FUNC (GtkOpenOk),
1859                       NULL);
1860   gtk_signal_connect (GTK_OBJECT (button3), "clicked",
1861                       GTK_SIGNAL_FUNC (GtkOpenCancel),
1862                       NULL);
1863
1864   return intf_open;
1865 }
1866
1867 GtkWidget*
1868 create_intf_file (void)
1869 {
1870   GtkWidget *intf_file;
1871   GtkWidget *file_ok;
1872   GtkWidget *file_cancel;
1873
1874   intf_file = gtk_file_selection_new (_("Open File"));
1875   gtk_object_set_data (GTK_OBJECT (intf_file), "intf_file", intf_file);
1876   gtk_container_set_border_width (GTK_CONTAINER (intf_file), 10);
1877   gtk_window_set_modal (GTK_WINDOW (intf_file), TRUE);
1878   gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (intf_file));
1879
1880   file_ok = GTK_FILE_SELECTION (intf_file)->ok_button;
1881   gtk_object_set_data (GTK_OBJECT (intf_file), "file_ok", file_ok);
1882   gtk_widget_show (file_ok);
1883   GTK_WIDGET_SET_FLAGS (file_ok, GTK_CAN_DEFAULT);
1884
1885   file_cancel = GTK_FILE_SELECTION (intf_file)->cancel_button;
1886   gtk_object_set_data (GTK_OBJECT (intf_file), "file_cancel", file_cancel);
1887   gtk_widget_show (file_cancel);
1888   GTK_WIDGET_SET_FLAGS (file_cancel, GTK_CAN_DEFAULT);
1889
1890   gtk_signal_connect (GTK_OBJECT (file_ok), "clicked",
1891                       GTK_SIGNAL_FUNC (GtkFileOk),
1892                       NULL);
1893   gtk_signal_connect (GTK_OBJECT (file_cancel), "clicked",
1894                       GTK_SIGNAL_FUNC (GtkFileCancel),
1895                       NULL);
1896
1897   return intf_file;
1898 }
1899
1900 GtkWidget*
1901 create_intf_modules (void)
1902 {
1903   GtkWidget *intf_modules;
1904   GtkWidget *dialog_vbox1;
1905   GtkWidget *label12;
1906   GtkWidget *dialog_action_area1;
1907   GtkWidget *modules_ok;
1908   GtkWidget *modules_apply;
1909   GtkWidget *modules_cancel;
1910
1911   intf_modules = gnome_dialog_new (_("Modules"), NULL);
1912   gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules);
1913   gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE);
1914
1915   dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox;
1916   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1);
1917   gtk_widget_show (dialog_vbox1);
1918
1919   label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version."));
1920   gtk_widget_ref (label12);
1921   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12,
1922                             (GtkDestroyNotify) gtk_widget_unref);
1923   gtk_widget_show (label12);
1924   gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0);
1925
1926   dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area;
1927   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1);
1928   gtk_widget_show (dialog_action_area1);
1929   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
1930   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
1931
1932   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK);
1933   modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1934   gtk_widget_ref (modules_ok);
1935   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok,
1936                             (GtkDestroyNotify) gtk_widget_unref);
1937   gtk_widget_show (modules_ok);
1938   GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT);
1939
1940   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY);
1941   modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1942   gtk_widget_ref (modules_apply);
1943   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply,
1944                             (GtkDestroyNotify) gtk_widget_unref);
1945   gtk_widget_show (modules_apply);
1946   GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT);
1947
1948   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL);
1949   modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
1950   gtk_widget_ref (modules_cancel);
1951   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel,
1952                             (GtkDestroyNotify) gtk_widget_unref);
1953   gtk_widget_show (modules_cancel);
1954   GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT);
1955
1956   return intf_modules;
1957 }
1958
1959 static GnomeUIInfo playlist_add_menu_uiinfo[] =
1960 {
1961   {
1962     GNOME_APP_UI_ITEM, N_("Disc"),
1963     NULL,
1964     (gpointer) GtkDiscOpenShow, NULL, NULL,
1965     GNOME_APP_PIXMAP_NONE, NULL,
1966     0, (GdkModifierType) 0, NULL
1967   },
1968   {
1969     GNOME_APP_UI_ITEM, N_("File"),
1970     NULL,
1971     (gpointer) GtkFileOpenShow, NULL, NULL,
1972     GNOME_APP_PIXMAP_NONE, NULL,
1973     0, (GdkModifierType) 0, NULL
1974   },
1975   {
1976     GNOME_APP_UI_ITEM, N_("Network"),
1977     NULL,
1978     (gpointer) GtkNetworkOpenShow, NULL, NULL,
1979     GNOME_APP_PIXMAP_NONE, NULL,
1980     0, (GdkModifierType) 0, NULL
1981   },
1982   {
1983     GNOME_APP_UI_ITEM, N_("Url"),
1984     NULL,
1985     (gpointer) GtkPlaylistAddUrl, NULL, NULL,
1986     GNOME_APP_PIXMAP_NONE, NULL,
1987     0, (GdkModifierType) 0, NULL
1988   },
1989   GNOMEUIINFO_END
1990 };
1991
1992 static GnomeUIInfo playlist_delete_menu_uiinfo[] =
1993 {
1994   {
1995     GNOME_APP_UI_ITEM, N_("All"),
1996     NULL,
1997     (gpointer) GtkPlaylistDeleteAll, NULL, NULL,
1998     GNOME_APP_PIXMAP_NONE, NULL,
1999     0, (GdkModifierType) 0, NULL
2000   },
2001   {
2002     GNOME_APP_UI_ITEM, N_("Item"),
2003     NULL,
2004     (gpointer) GtkPlaylistDeleteSelected, NULL, NULL,
2005     GNOME_APP_PIXMAP_NONE, NULL,
2006     0, (GdkModifierType) 0, NULL
2007   },
2008   GNOMEUIINFO_END
2009 };
2010
2011 static GnomeUIInfo playlist_selection_menu_uiinfo[] =
2012 {
2013   {
2014     GNOME_APP_UI_ITEM, N_("Crop"),
2015     NULL,
2016     (gpointer) GtkPlaylistCrop, NULL, NULL,
2017     GNOME_APP_PIXMAP_NONE, NULL,
2018     0, (GdkModifierType) 0, NULL
2019   },
2020   {
2021     GNOME_APP_UI_ITEM, N_("Invert"),
2022     NULL,
2023     (gpointer) GtkPlaylistInvert, NULL, NULL,
2024     GNOME_APP_PIXMAP_NONE, NULL,
2025     0, (GdkModifierType) 0, NULL
2026   },
2027   {
2028     GNOME_APP_UI_ITEM, N_("Select"),
2029     NULL,
2030     (gpointer) GtkPlaylistSelect, NULL, NULL,
2031     GNOME_APP_PIXMAP_NONE, NULL,
2032     0, (GdkModifierType) 0, NULL
2033   },
2034   GNOMEUIINFO_END
2035 };
2036
2037 static GnomeUIInfo playlist_menubar_uiinfo[] =
2038 {
2039   {
2040     GNOME_APP_UI_SUBTREE, N_("Add"),
2041     NULL,
2042     playlist_add_menu_uiinfo, NULL, NULL,
2043     GNOME_APP_PIXMAP_NONE, NULL,
2044     0, (GdkModifierType) 0, NULL
2045   },
2046   {
2047     GNOME_APP_UI_SUBTREE, N_("Delete"),
2048     NULL,
2049     playlist_delete_menu_uiinfo, NULL, NULL,
2050     GNOME_APP_PIXMAP_NONE, NULL,
2051     0, (GdkModifierType) 0, NULL
2052   },
2053   {
2054     GNOME_APP_UI_SUBTREE, N_("Selection"),
2055     NULL,
2056     playlist_selection_menu_uiinfo, NULL, NULL,
2057     GNOME_APP_PIXMAP_NONE, NULL,
2058     0, (GdkModifierType) 0, NULL
2059   },
2060   GNOMEUIINFO_END
2061 };
2062
2063 GtkWidget*
2064 create_intf_playlist (void)
2065 {
2066   GtkWidget *intf_playlist;
2067   GtkWidget *playlist_vbox;
2068   GtkWidget *playlist_scrolledwindow;
2069   GtkWidget *playlist_viewport;
2070   GtkWidget *playlist_frame;
2071   GtkWidget *playlist_clist;
2072   GtkWidget *playlist_label_url;
2073   GtkWidget *playlist_label_duration;
2074   GtkWidget *playlist_menubar;
2075   GtkWidget *playlist_action;
2076   GtkWidget *playlist_ok;
2077   GtkWidget *playlist_cancel;
2078
2079   intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
2080   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
2081   gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 400, 300);
2082   gtk_window_set_policy (GTK_WINDOW (intf_playlist), TRUE, TRUE, FALSE);
2083   gnome_dialog_close_hides (GNOME_DIALOG (intf_playlist), TRUE);
2084
2085   playlist_vbox = GNOME_DIALOG (intf_playlist)->vbox;
2086   gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_vbox", playlist_vbox);
2087   gtk_widget_show (playlist_vbox);
2088
2089   playlist_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
2090   gtk_widget_ref (playlist_scrolledwindow);
2091   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_scrolledwindow", playlist_scrolledwindow,
2092                             (GtkDestroyNotify) gtk_widget_unref);
2093   gtk_widget_show (playlist_scrolledwindow);
2094   gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_scrolledwindow, TRUE, TRUE, 0);
2095   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (playlist_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
2096
2097   playlist_viewport = gtk_viewport_new (NULL, NULL);
2098   gtk_widget_ref (playlist_viewport);
2099   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_viewport", playlist_viewport,
2100                             (GtkDestroyNotify) gtk_widget_unref);
2101   gtk_widget_show (playlist_viewport);
2102   gtk_container_add (GTK_CONTAINER (playlist_scrolledwindow), playlist_viewport);
2103
2104   playlist_frame = gtk_frame_new (_("Playlist"));
2105   gtk_widget_ref (playlist_frame);
2106   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_frame", playlist_frame,
2107                             (GtkDestroyNotify) gtk_widget_unref);
2108   gtk_widget_show (playlist_frame);
2109   gtk_container_add (GTK_CONTAINER (playlist_viewport), playlist_frame);
2110   gtk_container_set_border_width (GTK_CONTAINER (playlist_frame), 4);
2111   gtk_frame_set_label_align (GTK_FRAME (playlist_frame), 0.05, 0.5);
2112
2113   playlist_clist = gtk_clist_new (2);
2114   gtk_widget_ref (playlist_clist);
2115   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist,
2116                             (GtkDestroyNotify) gtk_widget_unref);
2117   gtk_widget_show (playlist_clist);
2118   gtk_container_add (GTK_CONTAINER (playlist_frame), playlist_clist);
2119   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 287);
2120   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 70);
2121   gtk_clist_set_selection_mode (GTK_CLIST (playlist_clist), GTK_SELECTION_EXTENDED);
2122   gtk_clist_column_titles_show (GTK_CLIST (playlist_clist));
2123
2124   playlist_label_url = gtk_label_new (_("Url"));
2125   gtk_widget_ref (playlist_label_url);
2126   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_url", playlist_label_url,
2127                             (GtkDestroyNotify) gtk_widget_unref);
2128   gtk_widget_show (playlist_label_url);
2129   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, playlist_label_url);
2130
2131   playlist_label_duration = gtk_label_new (_("Duration"));
2132   gtk_widget_ref (playlist_label_duration);
2133   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_duration", playlist_label_duration,
2134                             (GtkDestroyNotify) gtk_widget_unref);
2135   gtk_widget_show (playlist_label_duration);
2136   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, playlist_label_duration);
2137
2138   playlist_menubar = gtk_menu_bar_new ();
2139   gtk_widget_ref (playlist_menubar);
2140   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_menubar", playlist_menubar,
2141                             (GtkDestroyNotify) gtk_widget_unref);
2142   gtk_widget_show (playlist_menubar);
2143   gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_menubar, FALSE, FALSE, 0);
2144   gnome_app_fill_menu (GTK_MENU_SHELL (playlist_menubar), playlist_menubar_uiinfo,
2145                        NULL, FALSE, 0);
2146
2147   gtk_widget_ref (playlist_menubar_uiinfo[0].widget);
2148   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add",
2149                             playlist_menubar_uiinfo[0].widget,
2150                             (GtkDestroyNotify) gtk_widget_unref);
2151
2152   gtk_widget_ref (playlist_add_menu_uiinfo[0].widget);
2153   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_disc",
2154                             playlist_add_menu_uiinfo[0].widget,
2155                             (GtkDestroyNotify) gtk_widget_unref);
2156
2157   gtk_widget_ref (playlist_add_menu_uiinfo[1].widget);
2158   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_file",
2159                             playlist_add_menu_uiinfo[1].widget,
2160                             (GtkDestroyNotify) gtk_widget_unref);
2161
2162   gtk_widget_ref (playlist_add_menu_uiinfo[2].widget);
2163   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_network",
2164                             playlist_add_menu_uiinfo[2].widget,
2165                             (GtkDestroyNotify) gtk_widget_unref);
2166
2167   gtk_widget_ref (playlist_add_menu_uiinfo[3].widget);
2168   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_url",
2169                             playlist_add_menu_uiinfo[3].widget,
2170                             (GtkDestroyNotify) gtk_widget_unref);
2171
2172   gtk_widget_ref (playlist_menubar_uiinfo[1].widget);
2173   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete",
2174                             playlist_menubar_uiinfo[1].widget,
2175                             (GtkDestroyNotify) gtk_widget_unref);
2176
2177   gtk_widget_ref (playlist_delete_menu_uiinfo[0].widget);
2178   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_all",
2179                             playlist_delete_menu_uiinfo[0].widget,
2180                             (GtkDestroyNotify) gtk_widget_unref);
2181
2182   gtk_widget_ref (playlist_delete_menu_uiinfo[1].widget);
2183   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_item",
2184                             playlist_delete_menu_uiinfo[1].widget,
2185                             (GtkDestroyNotify) gtk_widget_unref);
2186
2187   gtk_widget_ref (playlist_menubar_uiinfo[2].widget);
2188   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection",
2189                             playlist_menubar_uiinfo[2].widget,
2190                             (GtkDestroyNotify) gtk_widget_unref);
2191
2192   gtk_widget_ref (playlist_selection_menu_uiinfo[0].widget);
2193   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_crop",
2194                             playlist_selection_menu_uiinfo[0].widget,
2195                             (GtkDestroyNotify) gtk_widget_unref);
2196
2197   gtk_widget_ref (playlist_selection_menu_uiinfo[1].widget);
2198   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_invert",
2199                             playlist_selection_menu_uiinfo[1].widget,
2200                             (GtkDestroyNotify) gtk_widget_unref);
2201
2202   gtk_widget_ref (playlist_selection_menu_uiinfo[2].widget);
2203   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_select",
2204                             playlist_selection_menu_uiinfo[2].widget,
2205                             (GtkDestroyNotify) gtk_widget_unref);
2206
2207   playlist_action = GNOME_DIALOG (intf_playlist)->action_area;
2208   gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_action", playlist_action);
2209   gtk_widget_show (playlist_action);
2210   gtk_button_box_set_layout (GTK_BUTTON_BOX (playlist_action), GTK_BUTTONBOX_END);
2211   gtk_button_box_set_spacing (GTK_BUTTON_BOX (playlist_action), 8);
2212   gtk_button_box_set_child_size (GTK_BUTTON_BOX (playlist_action), 100, 38);
2213
2214   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
2215   playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
2216   gtk_widget_ref (playlist_ok);
2217   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
2218                             (GtkDestroyNotify) gtk_widget_unref);
2219   gtk_widget_show (playlist_ok);
2220   GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
2221
2222   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_CANCEL);
2223   playlist_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
2224   gtk_widget_ref (playlist_cancel);
2225   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_cancel", playlist_cancel,
2226                             (GtkDestroyNotify) gtk_widget_unref);
2227   gtk_widget_show (playlist_cancel);
2228   GTK_WIDGET_SET_FLAGS (playlist_cancel, GTK_CAN_DEFAULT);
2229
2230   gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
2231                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2232                       NULL);
2233   gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event",
2234                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2235                       NULL);
2236   gtk_signal_connect (GTK_OBJECT (playlist_clist), "event",
2237                       GTK_SIGNAL_FUNC (GtkPlaylistEvent),
2238                       NULL);
2239   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received",
2240                       GTK_SIGNAL_FUNC (GtkPlaylistDragData),
2241                       NULL);
2242   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion",
2243                       GTK_SIGNAL_FUNC (GtkPlaylistDragMotion),
2244                       NULL);
2245   gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
2246                       GTK_SIGNAL_FUNC (GtkPlaylistOk),
2247                       NULL);
2248   gtk_signal_connect (GTK_OBJECT (playlist_cancel), "clicked",
2249                       GTK_SIGNAL_FUNC (GtkPlaylistCancel),
2250                       NULL);
2251
2252   return intf_playlist;
2253 }
2254
2255 GtkWidget*
2256 create_intf_jump (void)
2257 {
2258   GtkWidget *intf_jump;
2259   GtkWidget *jump_vbox;
2260   GtkWidget *jump_frame;
2261   GtkWidget *jump_box;
2262   GtkWidget *jump_label3;
2263   GtkObject *jump_second_spinbutton_adj;
2264   GtkWidget *jump_second_spinbutton;
2265   GtkWidget *jump_label1;
2266   GtkObject *jump_minute_spinbutton_adj;
2267   GtkWidget *jump_minute_spinbutton;
2268   GtkWidget *jump_label2;
2269   GtkObject *jump_hour_spinbutton_adj;
2270   GtkWidget *jump_hour_spinbutton;
2271   GtkWidget *jump_action;
2272   GtkWidget *jump_ok;
2273   GtkWidget *jump_cancel;
2274
2275   intf_jump = gnome_dialog_new (NULL, NULL);
2276   gtk_object_set_data (GTK_OBJECT (intf_jump), "intf_jump", intf_jump);
2277   gtk_window_set_policy (GTK_WINDOW (intf_jump), FALSE, FALSE, FALSE);
2278
2279   jump_vbox = GNOME_DIALOG (intf_jump)->vbox;
2280   gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_vbox", jump_vbox);
2281   gtk_widget_show (jump_vbox);
2282
2283   jump_frame = gtk_frame_new (_("Jump to: "));
2284   gtk_widget_ref (jump_frame);
2285   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_frame", jump_frame,
2286                             (GtkDestroyNotify) gtk_widget_unref);
2287   gtk_widget_show (jump_frame);
2288   gtk_box_pack_start (GTK_BOX (jump_vbox), jump_frame, FALSE, FALSE, 0);
2289   gtk_container_set_border_width (GTK_CONTAINER (jump_frame), 5);
2290   gtk_frame_set_label_align (GTK_FRAME (jump_frame), 0.05, 0.5);
2291
2292   jump_box = gtk_hbox_new (FALSE, 0);
2293   gtk_widget_ref (jump_box);
2294   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_box", jump_box,
2295                             (GtkDestroyNotify) gtk_widget_unref);
2296   gtk_widget_show (jump_box);
2297   gtk_container_add (GTK_CONTAINER (jump_frame), jump_box);
2298   gtk_container_set_border_width (GTK_CONTAINER (jump_box), 5);
2299
2300   jump_label3 = gtk_label_new (_("s."));
2301   gtk_widget_ref (jump_label3);
2302   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label3", jump_label3,
2303                             (GtkDestroyNotify) gtk_widget_unref);
2304   gtk_widget_show (jump_label3);
2305   gtk_box_pack_end (GTK_BOX (jump_box), jump_label3, FALSE, FALSE, 0);
2306
2307   jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
2308   jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0);
2309   gtk_widget_ref (jump_second_spinbutton);
2310   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton,
2311                             (GtkDestroyNotify) gtk_widget_unref);
2312   gtk_widget_show (jump_second_spinbutton);
2313   gtk_box_pack_end (GTK_BOX (jump_box), jump_second_spinbutton, FALSE, FALSE, 5);
2314
2315   jump_label1 = gtk_label_new (_("m:"));
2316   gtk_widget_ref (jump_label1);
2317   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label1", jump_label1,
2318                             (GtkDestroyNotify) gtk_widget_unref);
2319   gtk_widget_show (jump_label1);
2320   gtk_box_pack_end (GTK_BOX (jump_box), jump_label1, FALSE, FALSE, 5);
2321
2322   jump_minute_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 10);
2323   jump_minute_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_minute_spinbutton_adj), 1, 0);
2324   gtk_widget_ref (jump_minute_spinbutton);
2325   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_spinbutton", jump_minute_spinbutton,
2326                             (GtkDestroyNotify) gtk_widget_unref);
2327   gtk_widget_show (jump_minute_spinbutton);
2328   gtk_box_pack_end (GTK_BOX (jump_box), jump_minute_spinbutton, FALSE, FALSE, 5);
2329
2330   jump_label2 = gtk_label_new (_("h:"));
2331   gtk_widget_ref (jump_label2);
2332   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label2", jump_label2,
2333                             (GtkDestroyNotify) gtk_widget_unref);
2334   gtk_widget_show (jump_label2);
2335   gtk_box_pack_end (GTK_BOX (jump_box), jump_label2, FALSE, FALSE, 5);
2336
2337   jump_hour_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 10, 10);
2338   jump_hour_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_hour_spinbutton_adj), 1, 0);
2339   gtk_widget_ref (jump_hour_spinbutton);
2340   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_spinbutton", jump_hour_spinbutton,
2341                             (GtkDestroyNotify) gtk_widget_unref);
2342   gtk_widget_show (jump_hour_spinbutton);
2343   gtk_box_pack_end (GTK_BOX (jump_box), jump_hour_spinbutton, FALSE, FALSE, 5);
2344
2345   jump_action = GNOME_DIALOG (intf_jump)->action_area;
2346   gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_action", jump_action);
2347   gtk_widget_show (jump_action);
2348   gtk_button_box_set_layout (GTK_BUTTON_BOX (jump_action), GTK_BUTTONBOX_END);
2349   gtk_button_box_set_spacing (GTK_BUTTON_BOX (jump_action), 8);
2350
2351   gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_OK);
2352   jump_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
2353   gtk_widget_ref (jump_ok);
2354   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_ok", jump_ok,
2355                             (GtkDestroyNotify) gtk_widget_unref);
2356   gtk_widget_show (jump_ok);
2357   GTK_WIDGET_SET_FLAGS (jump_ok, GTK_CAN_DEFAULT);
2358
2359   gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_CANCEL);
2360   jump_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
2361   gtk_widget_ref (jump_cancel);
2362   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_cancel", jump_cancel,
2363                             (GtkDestroyNotify) gtk_widget_unref);
2364   gtk_widget_show (jump_cancel);
2365   GTK_WIDGET_SET_FLAGS (jump_cancel, GTK_CAN_DEFAULT);
2366
2367   gtk_signal_connect (GTK_OBJECT (jump_ok), "clicked",
2368                       GTK_SIGNAL_FUNC (GtkJumpOk),
2369                       NULL);
2370   gtk_signal_connect (GTK_OBJECT (jump_cancel), "clicked",
2371                       GTK_SIGNAL_FUNC (GtkJumpCancel),
2372                       NULL);
2373
2374   return intf_jump;
2375 }
2376
2377 GtkWidget*
2378 create_intf_messages (void)
2379 {
2380   GtkWidget *intf_messages;
2381   GtkWidget *dialog_vbox6;
2382   GtkWidget *scrolledwindow1;
2383   GtkWidget *messages_textbox;
2384   GtkWidget *dialog_action_area6;
2385   GtkWidget *messages_ok;
2386
2387   intf_messages = gnome_dialog_new (_("Messages"), NULL);
2388   gtk_object_set_data (GTK_OBJECT (intf_messages), "intf_messages", intf_messages);
2389   gtk_window_set_policy (GTK_WINDOW (intf_messages), TRUE, TRUE, FALSE);
2390   gnome_dialog_close_hides (GNOME_DIALOG (intf_messages), TRUE);
2391
2392   dialog_vbox6 = GNOME_DIALOG (intf_messages)->vbox;
2393   gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_vbox6", dialog_vbox6);
2394   gtk_widget_show (dialog_vbox6);
2395
2396   scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
2397   gtk_widget_ref (scrolledwindow1);
2398   gtk_object_set_data_full (GTK_OBJECT (intf_messages), "scrolledwindow1", scrolledwindow1,
2399                             (GtkDestroyNotify) gtk_widget_unref);
2400   gtk_widget_show (scrolledwindow1);
2401   gtk_box_pack_start (GTK_BOX (dialog_vbox6), scrolledwindow1, TRUE, TRUE, 0);
2402   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
2403
2404   messages_textbox = gtk_text_new (NULL, NULL);
2405   gtk_widget_ref (messages_textbox);
2406   gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_textbox", messages_textbox,
2407                             (GtkDestroyNotify) gtk_widget_unref);
2408   gtk_widget_show (messages_textbox);
2409   gtk_container_add (GTK_CONTAINER (scrolledwindow1), messages_textbox);
2410   gtk_widget_set_usize (messages_textbox, 600, 400);
2411
2412   dialog_action_area6 = GNOME_DIALOG (intf_messages)->action_area;
2413   gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_action_area6", dialog_action_area6);
2414   gtk_widget_show (dialog_action_area6);
2415   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area6), GTK_BUTTONBOX_END);
2416   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area6), 8);
2417
2418   gnome_dialog_append_button (GNOME_DIALOG (intf_messages), GNOME_STOCK_BUTTON_OK);
2419   messages_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_messages)->buttons)->data);
2420   gtk_widget_ref (messages_ok);
2421   gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_ok", messages_ok,
2422                             (GtkDestroyNotify) gtk_widget_unref);
2423   gtk_widget_show (messages_ok);
2424   GTK_WIDGET_SET_FLAGS (messages_ok, GTK_CAN_DEFAULT);
2425
2426   gtk_signal_connect (GTK_OBJECT (intf_messages), "destroy",
2427                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2428                       NULL);
2429   gtk_signal_connect (GTK_OBJECT (intf_messages), "delete_event",
2430                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2431                       NULL);
2432   gtk_signal_connect (GTK_OBJECT (messages_ok), "clicked",
2433                       GTK_SIGNAL_FUNC (GtkMessagesOk),
2434                       NULL);
2435
2436   return intf_messages;
2437 }
2438