]> git.sesse.net Git - vlc/blob - modules/gui/gtk/gnome_interface.c
* ./po/*: more interface strings harmonization.
[vlc] / modules / gui / gtk / gnome_interface.c
1 /* This file was created automatically by glade and fixed by bootstrap */
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 (GnomeExit, 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   GNOMEUIINFO_SEPARATOR,
63   {
64     GNOME_APP_UI_ITEM, N_("Progr_am"),
65     N_("Choose the program"),
66     (gpointer) NULL, NULL, NULL,
67     GNOME_APP_PIXMAP_NONE, NULL,
68     0, (GdkModifierType) 0, NULL
69   },
70   {
71     GNOME_APP_UI_ITEM, N_("_Title"),
72     N_("Choose title"),
73     (gpointer) NULL, NULL, NULL,
74     GNOME_APP_PIXMAP_NONE, NULL,
75     0, (GdkModifierType) 0, NULL
76   },
77   {
78     GNOME_APP_UI_ITEM, N_("_Chapter"),
79     N_("Choose chapter"),
80     (gpointer) NULL, NULL, NULL,
81     GNOME_APP_PIXMAP_NONE, NULL,
82     0, (GdkModifierType) 0, NULL
83   },
84   GNOMEUIINFO_SEPARATOR,
85   {
86     GNOME_APP_UI_ITEM, N_("_Playlist..."),
87     N_("Open the playlist window"),
88     (gpointer) GtkPlaylistShow, NULL, NULL,
89     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
90     0, (GdkModifierType) 0, NULL
91   },
92   {
93     GNOME_APP_UI_ITEM, N_("_Modules..."),
94     N_("Open the module manager"),
95     (gpointer) GtkModulesShow, NULL, NULL,
96     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
97     0, (GdkModifierType) 0, NULL
98   },
99   {
100     GNOME_APP_UI_ITEM, N_("Messages..."),
101     N_("Open the messages window"),
102     (gpointer) GtkMessagesShow, NULL, NULL,
103     GNOME_APP_PIXMAP_NONE, NULL,
104     0, (GdkModifierType) 0, NULL
105   },
106   GNOMEUIINFO_END
107 };
108
109 static GnomeUIInfo menubar_settings_menu_uiinfo[] =
110 {
111   GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, NULL),
112   GNOMEUIINFO_END
113 };
114
115 static GnomeUIInfo menubar_config_audio_menu_uiinfo[] =
116 {
117   {
118     GNOME_APP_UI_ITEM, N_("_Language"),
119     N_("Select audio channel"),
120     (gpointer) NULL, NULL, NULL,
121     GNOME_APP_PIXMAP_NONE, NULL,
122     0, (GdkModifierType) 0, NULL
123   },
124   GNOMEUIINFO_SEPARATOR,
125   {
126     GNOME_APP_UI_ITEM, N_("Volume Up"),
127     NULL,
128     (gpointer) GtkVolumeUp, NULL, NULL,
129     GNOME_APP_PIXMAP_NONE, NULL,
130     0, (GdkModifierType) 0, NULL
131   },
132   {
133     GNOME_APP_UI_ITEM, N_("Volume Down"),
134     NULL,
135     (gpointer) GtkVolumeDown, NULL, NULL,
136     GNOME_APP_PIXMAP_NONE, NULL,
137     0, (GdkModifierType) 0, NULL
138   },
139   {
140     GNOME_APP_UI_ITEM, N_("Mute"),
141     NULL,
142     (gpointer) GtkVolumeMute, NULL, NULL,
143     GNOME_APP_PIXMAP_NONE, NULL,
144     0, (GdkModifierType) 0, NULL
145   },
146   GNOMEUIINFO_SEPARATOR,
147   {
148     GNOME_APP_UI_ITEM, N_("Channels"),
149     NULL,
150     (gpointer) NULL, NULL, NULL,
151     GNOME_APP_PIXMAP_NONE, NULL,
152     0, (GdkModifierType) 0, NULL
153   },
154   {
155     GNOME_APP_UI_ITEM, N_("Device"),
156     NULL,
157     (gpointer) NULL, NULL, NULL,
158     GNOME_APP_PIXMAP_NONE, NULL,
159     0, (GdkModifierType) 0, NULL
160   },
161   GNOMEUIINFO_END
162 };
163
164 static GnomeUIInfo menubar_config_video_menu_menu_uiinfo[] =
165 {
166   {
167     GNOME_APP_UI_ITEM, N_("_Subtitles"),
168     N_("Select subtitles channel"),
169     (gpointer) NULL, NULL, NULL,
170     GNOME_APP_PIXMAP_NONE, NULL,
171     0, (GdkModifierType) 0, NULL
172   },
173   GNOMEUIINFO_SEPARATOR,
174   {
175     GNOME_APP_UI_ITEM, N_("_Fullscreen"),
176     NULL,
177     (gpointer) GtkFullscreen, NULL, NULL,
178     GNOME_APP_PIXMAP_NONE, NULL,
179     0, (GdkModifierType) 0, NULL
180   },
181   GNOMEUIINFO_SEPARATOR,
182   {
183     GNOME_APP_UI_ITEM, N_("Deinterlace"),
184     NULL,
185     (gpointer) NULL, NULL, NULL,
186     GNOME_APP_PIXMAP_NONE, NULL,
187     0, (GdkModifierType) 0, NULL
188   },
189   {
190     GNOME_APP_UI_ITEM, N_("Screen"),
191     NULL,
192     (gpointer) NULL, NULL, NULL,
193     GNOME_APP_PIXMAP_NONE, NULL,
194     0, (GdkModifierType) 0, NULL
195   },
196   GNOMEUIINFO_END
197 };
198
199 static GnomeUIInfo menubar_help_menu_uiinfo[] =
200 {
201   GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, NULL),
202   GNOMEUIINFO_END
203 };
204
205 static GnomeUIInfo menubar_uiinfo[] =
206 {
207   GNOMEUIINFO_MENU_FILE_TREE (menubar_file_menu_uiinfo),
208   GNOMEUIINFO_MENU_VIEW_TREE (menubar_view_menu_uiinfo),
209   GNOMEUIINFO_MENU_SETTINGS_TREE (menubar_settings_menu_uiinfo),
210   {
211     GNOME_APP_UI_SUBTREE, N_("_Audio"),
212     NULL,
213     menubar_config_audio_menu_uiinfo, NULL, NULL,
214     GNOME_APP_PIXMAP_NONE, NULL,
215     0, (GdkModifierType) 0, NULL
216   },
217   {
218     GNOME_APP_UI_SUBTREE, N_("_Video"),
219     NULL,
220     menubar_config_video_menu_menu_uiinfo, NULL, NULL,
221     GNOME_APP_PIXMAP_NONE, NULL,
222     0, (GdkModifierType) 0, NULL
223   },
224   GNOMEUIINFO_MENU_HELP_TREE (menubar_help_menu_uiinfo),
225   GNOMEUIINFO_END
226 };
227
228 GtkWidget*
229 create_intf_window (void)
230 {
231   GtkWidget *intf_window;
232   GtkWidget *dockitem;
233   GtkWidget *toolbar;
234   GtkWidget *tmp_toolbar_icon;
235   GtkWidget *toolbar_file;
236   GtkWidget *toolbar_disc;
237   GtkWidget *toolbar_network;
238   GtkWidget *toolbar_sat;
239   GtkWidget *toolbar_back;
240   GtkWidget *toolbar_stop;
241   GtkWidget *toolbar_eject;
242   GtkWidget *toolbar_play;
243   GtkWidget *toolbar_pause;
244   GtkWidget *toolbar_slow;
245   GtkWidget *toolbar_fast;
246   GtkWidget *toolbar_playlist;
247   GtkWidget *toolbar_prev;
248   GtkWidget *toolbar_next;
249   GtkWidget *vbox8;
250   GtkWidget *slider_frame;
251   GtkWidget *slider;
252   GtkWidget *file_box;
253   GtkWidget *label_status;
254   GtkWidget *dvd_box;
255   GtkWidget *label21;
256   GtkWidget *title_chapter_box;
257   GtkWidget *label19;
258   GtkWidget *title_label;
259   GtkWidget *button_title_prev;
260   GtkWidget *button_title_next;
261   GtkWidget *vseparator1;
262   GtkWidget *dvd_chapter_box;
263   GtkWidget *label20;
264   GtkWidget *chapter_label;
265   GtkWidget *button_chapter_prev;
266   GtkWidget *button_chapter_next;
267   GtkWidget *network_box;
268   GtkWidget *network_address_label;
269   GtkWidget *network_channel_box;
270   GtkWidget *label_network;
271   GtkObject *network_channel_spinbutton_adj;
272   GtkWidget *network_channel_spinbutton;
273   GtkWidget *network_channel_go_button;
274   GtkWidget *appbar;
275   GtkTooltips *tooltips;
276
277   tooltips = gtk_tooltips_new ();
278
279   intf_window = gnome_app_new ("VideoLAN Client", _("VLC media player"));
280   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
281   gtk_window_set_policy (GTK_WINDOW (intf_window), FALSE, TRUE, TRUE);
282
283   dockitem = GNOME_APP (intf_window)->dock;
284   gtk_widget_ref (dockitem);
285   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem,
286                             (GtkDestroyNotify) gtk_widget_unref);
287   gtk_widget_show (dockitem);
288
289   gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo);
290
291   gtk_widget_ref (menubar_uiinfo[0].widget);
292   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file",
293                             menubar_uiinfo[0].widget,
294                             (GtkDestroyNotify) gtk_widget_unref);
295
296   gtk_widget_ref (menubar_file_menu_uiinfo[0].widget);
297   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open",
298                             menubar_file_menu_uiinfo[0].widget,
299                             (GtkDestroyNotify) gtk_widget_unref);
300
301   gtk_widget_ref (menubar_file_menu_uiinfo[1].widget);
302   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc",
303                             menubar_file_menu_uiinfo[1].widget,
304                             (GtkDestroyNotify) gtk_widget_unref);
305
306   gtk_widget_ref (menubar_file_menu_uiinfo[2].widget);
307   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network",
308                             menubar_file_menu_uiinfo[2].widget,
309                             (GtkDestroyNotify) gtk_widget_unref);
310
311   gtk_widget_ref (menubar_file_menu_uiinfo[3].widget);
312   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator1",
313                             menubar_file_menu_uiinfo[3].widget,
314                             (GtkDestroyNotify) gtk_widget_unref);
315
316   gtk_widget_ref (menubar_file_menu_uiinfo[4].widget);
317   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_eject",
318                             menubar_file_menu_uiinfo[4].widget,
319                             (GtkDestroyNotify) gtk_widget_unref);
320
321   gtk_widget_ref (menubar_file_menu_uiinfo[5].widget);
322   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator15",
323                             menubar_file_menu_uiinfo[5].widget,
324                             (GtkDestroyNotify) gtk_widget_unref);
325
326   gtk_widget_ref (menubar_file_menu_uiinfo[6].widget);
327   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_close",
328                             menubar_file_menu_uiinfo[6].widget,
329                             (GtkDestroyNotify) gtk_widget_unref);
330
331   gtk_widget_ref (menubar_file_menu_uiinfo[7].widget);
332   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit",
333                             menubar_file_menu_uiinfo[7].widget,
334                             (GtkDestroyNotify) gtk_widget_unref);
335
336   gtk_widget_ref (menubar_uiinfo[1].widget);
337   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view",
338                             menubar_uiinfo[1].widget,
339                             (GtkDestroyNotify) gtk_widget_unref);
340
341   gtk_widget_ref (menubar_view_menu_uiinfo[0].widget);
342   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_hide_interface",
343                             menubar_view_menu_uiinfo[0].widget,
344                             (GtkDestroyNotify) gtk_widget_unref);
345
346   gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
347   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator9",
348                             menubar_view_menu_uiinfo[1].widget,
349                             (GtkDestroyNotify) gtk_widget_unref);
350
351   gtk_widget_ref (menubar_view_menu_uiinfo[2].widget);
352   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_program",
353                             menubar_view_menu_uiinfo[2].widget,
354                             (GtkDestroyNotify) gtk_widget_unref);
355   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[2].widget, FALSE);
356
357   gtk_widget_ref (menubar_view_menu_uiinfo[3].widget);
358   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title",
359                             menubar_view_menu_uiinfo[3].widget,
360                             (GtkDestroyNotify) gtk_widget_unref);
361   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[3].widget, FALSE);
362
363   gtk_widget_ref (menubar_view_menu_uiinfo[4].widget);
364   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter",
365                             menubar_view_menu_uiinfo[4].widget,
366                             (GtkDestroyNotify) gtk_widget_unref);
367   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[4].widget, FALSE);
368
369   gtk_widget_ref (menubar_view_menu_uiinfo[5].widget);
370   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7",
371                             menubar_view_menu_uiinfo[5].widget,
372                             (GtkDestroyNotify) gtk_widget_unref);
373
374   gtk_widget_ref (menubar_view_menu_uiinfo[6].widget);
375   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
376                             menubar_view_menu_uiinfo[6].widget,
377                             (GtkDestroyNotify) gtk_widget_unref);
378
379   gtk_widget_ref (menubar_view_menu_uiinfo[7].widget);
380   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
381                             menubar_view_menu_uiinfo[7].widget,
382                             (GtkDestroyNotify) gtk_widget_unref);
383   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[7].widget, FALSE);
384
385   gtk_widget_ref (menubar_view_menu_uiinfo[8].widget);
386   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_messages",
387                             menubar_view_menu_uiinfo[8].widget,
388                             (GtkDestroyNotify) gtk_widget_unref);
389
390   gtk_widget_ref (menubar_uiinfo[2].widget);
391   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
392                             menubar_uiinfo[2].widget,
393                             (GtkDestroyNotify) gtk_widget_unref);
394
395   gtk_widget_ref (menubar_settings_menu_uiinfo[0].widget);
396   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
397                             menubar_settings_menu_uiinfo[0].widget,
398                             (GtkDestroyNotify) gtk_widget_unref);
399
400   gtk_widget_ref (menubar_uiinfo[3].widget);
401   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_audio",
402                             menubar_uiinfo[3].widget,
403                             (GtkDestroyNotify) gtk_widget_unref);
404
405   gtk_widget_ref (menubar_config_audio_menu_uiinfo[0].widget);
406   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio",
407                             menubar_config_audio_menu_uiinfo[0].widget,
408                             (GtkDestroyNotify) gtk_widget_unref);
409   gtk_widget_set_sensitive (menubar_config_audio_menu_uiinfo[0].widget, FALSE);
410
411   gtk_widget_ref (menubar_config_audio_menu_uiinfo[1].widget);
412   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator25",
413                             menubar_config_audio_menu_uiinfo[1].widget,
414                             (GtkDestroyNotify) gtk_widget_unref);
415
416   gtk_widget_ref (menubar_config_audio_menu_uiinfo[2].widget);
417   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_up",
418                             menubar_config_audio_menu_uiinfo[2].widget,
419                             (GtkDestroyNotify) gtk_widget_unref);
420
421   gtk_widget_ref (menubar_config_audio_menu_uiinfo[3].widget);
422   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_down",
423                             menubar_config_audio_menu_uiinfo[3].widget,
424                             (GtkDestroyNotify) gtk_widget_unref);
425
426   gtk_widget_ref (menubar_config_audio_menu_uiinfo[4].widget);
427   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_mute",
428                             menubar_config_audio_menu_uiinfo[4].widget,
429                             (GtkDestroyNotify) gtk_widget_unref);
430
431   gtk_widget_ref (menubar_config_audio_menu_uiinfo[5].widget);
432   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator16",
433                             menubar_config_audio_menu_uiinfo[5].widget,
434                             (GtkDestroyNotify) gtk_widget_unref);
435
436   gtk_widget_ref (menubar_config_audio_menu_uiinfo[6].widget);
437   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio_channels",
438                             menubar_config_audio_menu_uiinfo[6].widget,
439                             (GtkDestroyNotify) gtk_widget_unref);
440
441   gtk_widget_ref (menubar_config_audio_menu_uiinfo[7].widget);
442   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio_device",
443                             menubar_config_audio_menu_uiinfo[7].widget,
444                             (GtkDestroyNotify) gtk_widget_unref);
445
446   gtk_widget_ref (menubar_uiinfo[4].widget);
447   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_video_menu",
448                             menubar_uiinfo[4].widget,
449                             (GtkDestroyNotify) gtk_widget_unref);
450
451   gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[0].widget);
452   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures",
453                             menubar_config_video_menu_menu_uiinfo[0].widget,
454                             (GtkDestroyNotify) gtk_widget_unref);
455   gtk_widget_set_sensitive (menubar_config_video_menu_menu_uiinfo[0].widget, FALSE);
456
457   gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[1].widget);
458   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator23",
459                             menubar_config_video_menu_menu_uiinfo[1].widget,
460                             (GtkDestroyNotify) gtk_widget_unref);
461
462   gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[2].widget);
463   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen",
464                             menubar_config_video_menu_menu_uiinfo[2].widget,
465                             (GtkDestroyNotify) gtk_widget_unref);
466
467   gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[3].widget);
468   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator24",
469                             menubar_config_video_menu_menu_uiinfo[3].widget,
470                             (GtkDestroyNotify) gtk_widget_unref);
471
472   gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[4].widget);
473   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_deinterlace",
474                             menubar_config_video_menu_menu_uiinfo[4].widget,
475                             (GtkDestroyNotify) gtk_widget_unref);
476
477   gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[5].widget);
478   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_video_device",
479                             menubar_config_video_menu_menu_uiinfo[5].widget,
480                             (GtkDestroyNotify) gtk_widget_unref);
481
482   gtk_widget_ref (menubar_uiinfo[5].widget);
483   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
484                             menubar_uiinfo[5].widget,
485                             (GtkDestroyNotify) gtk_widget_unref);
486
487   gtk_widget_ref (menubar_help_menu_uiinfo[0].widget);
488   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about",
489                             menubar_help_menu_uiinfo[0].widget,
490                             (GtkDestroyNotify) gtk_widget_unref);
491
492   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
493   gtk_widget_ref (toolbar);
494   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
495                             (GtkDestroyNotify) gtk_widget_unref);
496   gtk_widget_show (toolbar);
497   gnome_app_add_toolbar (GNOME_APP (intf_window), GTK_TOOLBAR (toolbar), "toolbar",
498                                 GNOME_DOCK_ITEM_BEH_EXCLUSIVE,
499                                 GNOME_DOCK_TOP, 1, 0, 2);
500   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
501   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
502   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
503
504   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_OPEN);
505   toolbar_file = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
506                                 GTK_TOOLBAR_CHILD_BUTTON,
507                                 NULL,
508                                 _("File"),
509                                 _("Open a file"), NULL,
510                                 tmp_toolbar_icon, NULL, NULL);
511   gtk_widget_ref (toolbar_file);
512   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_file", toolbar_file,
513                             (GtkDestroyNotify) gtk_widget_unref);
514   gtk_widget_show (toolbar_file);
515
516   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_CDROM);
517   toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
518                                 GTK_TOOLBAR_CHILD_BUTTON,
519                                 NULL,
520                                 _("Disc"),
521                                 _("Open a DVD or VCD"), NULL,
522                                 tmp_toolbar_icon, NULL, NULL);
523   gtk_widget_ref (toolbar_disc);
524   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc,
525                             (GtkDestroyNotify) gtk_widget_unref);
526   gtk_widget_show (toolbar_disc);
527
528   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_REFRESH);
529   toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
530                                 GTK_TOOLBAR_CHILD_BUTTON,
531                                 NULL,
532                                 _("Net"),
533                                 _("Select a network stream"), NULL,
534                                 tmp_toolbar_icon, NULL, NULL);
535   gtk_widget_ref (toolbar_network);
536   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network,
537                             (GtkDestroyNotify) gtk_widget_unref);
538   gtk_widget_show (toolbar_network);
539
540   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_MIC);
541   toolbar_sat = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
542                                 GTK_TOOLBAR_CHILD_BUTTON,
543                                 NULL,
544                                 _("Sat"),
545                                 _("Open a Satellite Card"), NULL,
546                                 tmp_toolbar_icon, NULL, NULL);
547   gtk_widget_ref (toolbar_sat);
548   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_sat", toolbar_sat,
549                             (GtkDestroyNotify) gtk_widget_unref);
550   gtk_widget_show (toolbar_sat);
551
552   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
553
554   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BACK);
555   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
556                                 GTK_TOOLBAR_CHILD_BUTTON,
557                                 NULL,
558                                 _("Back"),
559                                 _("Go Backward"), NULL,
560                                 tmp_toolbar_icon, NULL, NULL);
561   gtk_widget_ref (toolbar_back);
562   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
563                             (GtkDestroyNotify) gtk_widget_unref);
564   gtk_widget_show (toolbar_back);
565   gtk_widget_set_sensitive (toolbar_back, FALSE);
566
567   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP);
568   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
569                                 GTK_TOOLBAR_CHILD_BUTTON,
570                                 NULL,
571                                 _("Stop"),
572                                 _("Stop Stream"), NULL,
573                                 tmp_toolbar_icon, NULL, NULL);
574   gtk_widget_ref (toolbar_stop);
575   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
576                             (GtkDestroyNotify) gtk_widget_unref);
577   gtk_widget_show (toolbar_stop);
578
579   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TOP);
580   toolbar_eject = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
581                                 GTK_TOOLBAR_CHILD_BUTTON,
582                                 NULL,
583                                 _("Eject"),
584                                 _("Eject disc"), NULL,
585                                 tmp_toolbar_icon, NULL, NULL);
586   gtk_widget_ref (toolbar_eject);
587   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_eject", toolbar_eject,
588                             (GtkDestroyNotify) gtk_widget_unref);
589   gtk_widget_show (toolbar_eject);
590
591   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD);
592   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
593                                 GTK_TOOLBAR_CHILD_BUTTON,
594                                 NULL,
595                                 _("Play"),
596                                 _("Play Stream"), NULL,
597                                 tmp_toolbar_icon, NULL, NULL);
598   gtk_widget_ref (toolbar_play);
599   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
600                             (GtkDestroyNotify) gtk_widget_unref);
601   gtk_widget_show (toolbar_play);
602
603   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM);
604   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
605                                 GTK_TOOLBAR_CHILD_BUTTON,
606                                 NULL,
607                                 _("Pause"),
608                                 _("Pause Stream"), NULL,
609                                 tmp_toolbar_icon, NULL, NULL);
610   gtk_widget_ref (toolbar_pause);
611   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
612                             (GtkDestroyNotify) gtk_widget_unref);
613   gtk_widget_show (toolbar_pause);
614   gtk_widget_set_sensitive (toolbar_pause, FALSE);
615
616   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
617
618   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP);
619   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
620                                 GTK_TOOLBAR_CHILD_BUTTON,
621                                 NULL,
622                                 _("Slow"),
623                                 _("Play Slower"), NULL,
624                                 tmp_toolbar_icon, NULL, NULL);
625   gtk_widget_ref (toolbar_slow);
626   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
627                             (GtkDestroyNotify) gtk_widget_unref);
628   gtk_widget_show (toolbar_slow);
629   gtk_widget_set_sensitive (toolbar_slow, FALSE);
630
631   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER);
632   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
633                                 GTK_TOOLBAR_CHILD_BUTTON,
634                                 NULL,
635                                 _("Fast"),
636                                 _("Play Faster"), NULL,
637                                 tmp_toolbar_icon, NULL, NULL);
638   gtk_widget_ref (toolbar_fast);
639   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
640                             (GtkDestroyNotify) gtk_widget_unref);
641   gtk_widget_show (toolbar_fast);
642   gtk_widget_set_sensitive (toolbar_fast, FALSE);
643
644   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_INDEX);
645   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
646                                 GTK_TOOLBAR_CHILD_BUTTON,
647                                 NULL,
648                                 _("Playlist"),
649                                 _("Open Playlist"), NULL,
650                                 tmp_toolbar_icon, NULL, NULL);
651   gtk_widget_ref (toolbar_playlist);
652   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
653                             (GtkDestroyNotify) gtk_widget_unref);
654   gtk_widget_show (toolbar_playlist);
655
656   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
657   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
658                                 GTK_TOOLBAR_CHILD_BUTTON,
659                                 NULL,
660                                 _("Prev"),
661                                 _("Previous file"), NULL,
662                                 tmp_toolbar_icon, NULL, NULL);
663   gtk_widget_ref (toolbar_prev);
664   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
665                             (GtkDestroyNotify) gtk_widget_unref);
666   gtk_widget_show (toolbar_prev);
667
668   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_LAST);
669   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
670                                 GTK_TOOLBAR_CHILD_BUTTON,
671                                 NULL,
672                                 _("Next"),
673                                 _("Next File"), NULL,
674                                 tmp_toolbar_icon, NULL, NULL);
675   gtk_widget_ref (toolbar_next);
676   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
677                             (GtkDestroyNotify) gtk_widget_unref);
678   gtk_widget_show (toolbar_next);
679
680   vbox8 = gtk_vbox_new (FALSE, 0);
681   gtk_widget_ref (vbox8);
682   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox8", vbox8,
683                             (GtkDestroyNotify) gtk_widget_unref);
684   gtk_widget_show (vbox8);
685   gnome_app_set_contents (GNOME_APP (intf_window), vbox8);
686
687   slider_frame = gtk_frame_new ("-:--:--");
688   gtk_widget_ref (slider_frame);
689   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame,
690                             (GtkDestroyNotify) gtk_widget_unref);
691   gtk_box_pack_start (GTK_BOX (vbox8), slider_frame, TRUE, TRUE, 0);
692   gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5);
693
694   slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
695   gtk_widget_ref (slider);
696   gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
697                             (GtkDestroyNotify) gtk_widget_unref);
698   gtk_widget_show (slider);
699   gtk_container_add (GTK_CONTAINER (slider_frame), slider);
700   gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
701   gtk_scale_set_digits (GTK_SCALE (slider), 3);
702
703   file_box = gtk_hbox_new (FALSE, 0);
704   gtk_widget_ref (file_box);
705   gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box,
706                             (GtkDestroyNotify) gtk_widget_unref);
707   gtk_widget_show (file_box);
708   gtk_box_pack_start (GTK_BOX (vbox8), file_box, TRUE, TRUE, 0);
709
710   label_status = gtk_label_new ("");
711   gtk_widget_ref (label_status);
712   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
713                             (GtkDestroyNotify) gtk_widget_unref);
714   gtk_widget_show (label_status);
715   gtk_box_pack_start (GTK_BOX (file_box), label_status, TRUE, TRUE, 0);
716
717   dvd_box = gtk_hbox_new (FALSE, 0);
718   gtk_widget_ref (dvd_box);
719   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box,
720                             (GtkDestroyNotify) gtk_widget_unref);
721   gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0);
722
723   label21 = gtk_label_new (_("Disc"));
724   gtk_widget_ref (label21);
725   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21,
726                             (GtkDestroyNotify) gtk_widget_unref);
727   gtk_widget_show (label21);
728   gtk_box_pack_start (GTK_BOX (dvd_box), label21, TRUE, FALSE, 0);
729
730   title_chapter_box = gtk_hbox_new (FALSE, 10);
731   gtk_widget_ref (title_chapter_box);
732   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_chapter_box", title_chapter_box,
733                             (GtkDestroyNotify) gtk_widget_unref);
734   gtk_widget_show (title_chapter_box);
735   gtk_box_pack_start (GTK_BOX (dvd_box), title_chapter_box, TRUE, FALSE, 0);
736
737   label19 = gtk_label_new (_("Title:"));
738   gtk_widget_ref (label19);
739   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label19", label19,
740                             (GtkDestroyNotify) gtk_widget_unref);
741   gtk_widget_show (label19);
742   gtk_box_pack_start (GTK_BOX (title_chapter_box), label19, FALSE, FALSE, 0);
743
744   title_label = gtk_label_new ("--");
745   gtk_widget_ref (title_label);
746   gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_label", title_label,
747                             (GtkDestroyNotify) gtk_widget_unref);
748   gtk_widget_show (title_label);
749   gtk_box_pack_start (GTK_BOX (title_chapter_box), title_label, FALSE, FALSE, 0);
750
751   button_title_prev = gnome_stock_button (GNOME_STOCK_BUTTON_PREV);
752   gtk_widget_ref (button_title_prev);
753   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_prev", button_title_prev,
754                             (GtkDestroyNotify) gtk_widget_unref);
755   gtk_widget_show (button_title_prev);
756   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0);
757   gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL);
758
759   button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
760   gtk_widget_ref (button_title_next);
761   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_next", button_title_next,
762                             (GtkDestroyNotify) gtk_widget_unref);
763   gtk_widget_show (button_title_next);
764   gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0);
765
766   vseparator1 = gtk_vseparator_new ();
767   gtk_widget_ref (vseparator1);
768   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vseparator1", vseparator1,
769                             (GtkDestroyNotify) gtk_widget_unref);
770   gtk_widget_show (vseparator1);
771   gtk_box_pack_start (GTK_BOX (dvd_box), vseparator1, FALSE, FALSE, 0);
772
773   dvd_chapter_box = gtk_hbox_new (FALSE, 10);
774   gtk_widget_ref (dvd_chapter_box);
775   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_chapter_box", dvd_chapter_box,
776                             (GtkDestroyNotify) gtk_widget_unref);
777   gtk_widget_show (dvd_chapter_box);
778   gtk_box_pack_start (GTK_BOX (dvd_box), dvd_chapter_box, TRUE, FALSE, 0);
779
780   label20 = gtk_label_new (_("Chapter:"));
781   gtk_widget_ref (label20);
782   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label20", label20,
783                             (GtkDestroyNotify) gtk_widget_unref);
784   gtk_widget_show (label20);
785   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label20, FALSE, FALSE, 0);
786
787   chapter_label = gtk_label_new ("---");
788   gtk_widget_ref (chapter_label);
789   gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_label", chapter_label,
790                             (GtkDestroyNotify) gtk_widget_unref);
791   gtk_widget_show (chapter_label);
792   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), chapter_label, FALSE, FALSE, 0);
793
794   button_chapter_prev = gnome_stock_button (GNOME_STOCK_BUTTON_DOWN);
795   gtk_widget_ref (button_chapter_prev);
796   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_prev", button_chapter_prev,
797                             (GtkDestroyNotify) gtk_widget_unref);
798   gtk_widget_show (button_chapter_prev);
799   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0);
800   gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL);
801
802   button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_UP);
803   gtk_widget_ref (button_chapter_next);
804   gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_next", button_chapter_next,
805                             (GtkDestroyNotify) gtk_widget_unref);
806   gtk_widget_show (button_chapter_next);
807   gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0);
808   gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL);
809
810   network_box = gtk_hbox_new (TRUE, 0);
811   gtk_widget_ref (network_box);
812   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box,
813                             (GtkDestroyNotify) gtk_widget_unref);
814   gtk_box_pack_start (GTK_BOX (vbox8), network_box, FALSE, FALSE, 0);
815
816   network_address_label = gtk_label_new (_("No server"));
817   gtk_widget_ref (network_address_label);
818   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_address_label", network_address_label,
819                             (GtkDestroyNotify) gtk_widget_unref);
820   gtk_widget_show (network_address_label);
821   gtk_box_pack_start (GTK_BOX (network_box), network_address_label, FALSE, FALSE, 0);
822
823   network_channel_box = gtk_hbox_new (FALSE, 0);
824   gtk_widget_ref (network_channel_box);
825   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_box", network_channel_box,
826                             (GtkDestroyNotify) gtk_widget_unref);
827   gtk_widget_show (network_channel_box);
828   gtk_box_pack_start (GTK_BOX (network_box), network_channel_box, FALSE, FALSE, 0);
829
830   label_network = gtk_label_new (_("Network Channel:"));
831   gtk_widget_ref (label_network);
832   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_network", label_network,
833                             (GtkDestroyNotify) gtk_widget_unref);
834   gtk_widget_show (label_network);
835   gtk_box_pack_start (GTK_BOX (network_channel_box), label_network, TRUE, FALSE, 5);
836
837   network_channel_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
838   network_channel_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_spinbutton_adj), 1, 0);
839   gtk_widget_ref (network_channel_spinbutton);
840   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_spinbutton", network_channel_spinbutton,
841                             (GtkDestroyNotify) gtk_widget_unref);
842   gtk_widget_show (network_channel_spinbutton);
843   gtk_box_pack_start (GTK_BOX (network_channel_box), network_channel_spinbutton, FALSE, TRUE, 5);
844
845   network_channel_go_button = gtk_button_new_with_label (_("Go!"));
846   gtk_widget_ref (network_channel_go_button);
847   gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_go_button", network_channel_go_button,
848                             (GtkDestroyNotify) gtk_widget_unref);
849   gtk_widget_show (network_channel_go_button);
850   gtk_box_pack_start (GTK_BOX (network_channel_box), network_channel_go_button, FALSE, FALSE, 0);
851   gtk_button_set_relief (GTK_BUTTON (network_channel_go_button), GTK_RELIEF_NONE);
852
853   appbar = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_NEVER);
854   gtk_widget_ref (appbar);
855   gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar,
856                             (GtkDestroyNotify) gtk_widget_unref);
857   gtk_widget_show (appbar);
858   gnome_app_set_statusbar (GNOME_APP (intf_window), appbar);
859
860   gtk_signal_connect (GTK_OBJECT (intf_window), "delete_event",
861                       GTK_SIGNAL_FUNC (GtkWindowDelete),
862                       NULL);
863   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
864                       GTK_SIGNAL_FUNC (GtkWindowDrag),
865                       NULL);
866   gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
867   gtk_signal_connect (GTK_OBJECT (toolbar_file), "clicked",
868                       GTK_SIGNAL_FUNC (GtkFileOpenShow),
869                       NULL);
870   gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
871                       GTK_SIGNAL_FUNC (GtkDiscOpenShow),
872                       NULL);
873   gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked",
874                       GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
875                       NULL);
876   gtk_signal_connect (GTK_OBJECT (toolbar_sat), "clicked",
877                       GTK_SIGNAL_FUNC (GtkSatOpenShow),
878                       NULL);
879   gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
880                       GTK_SIGNAL_FUNC (GtkControlBack),
881                       NULL);
882   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
883                       GTK_SIGNAL_FUNC (GtkControlStop),
884                       NULL);
885   gtk_signal_connect (GTK_OBJECT (toolbar_eject), "clicked",
886                       GTK_SIGNAL_FUNC (GtkDiscEject),
887                       NULL);
888   gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
889                       GTK_SIGNAL_FUNC (GtkControlPlay),
890                       NULL);
891   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
892                       GTK_SIGNAL_FUNC (GtkControlPause),
893                       NULL);
894   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
895                       GTK_SIGNAL_FUNC (GtkControlSlow),
896                       NULL);
897   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
898                       GTK_SIGNAL_FUNC (GtkControlFast),
899                       NULL);
900   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
901                       GTK_SIGNAL_FUNC (GtkPlaylistShow),
902                       NULL);
903   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
904                       GTK_SIGNAL_FUNC (GtkPlaylistPrev),
905                       NULL);
906   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
907                       GTK_SIGNAL_FUNC (GtkPlaylistNext),
908                       NULL);
909   gtk_signal_connect (GTK_OBJECT (slider), "button_press_event",
910                       GTK_SIGNAL_FUNC (GtkSliderPress),
911                       NULL);
912   gtk_signal_connect (GTK_OBJECT (slider), "button_release_event",
913                       GTK_SIGNAL_FUNC (GtkSliderRelease),
914                       NULL);
915   gtk_signal_connect (GTK_OBJECT (button_title_prev), "clicked",
916                       GTK_SIGNAL_FUNC (GtkTitlePrev),
917                       NULL);
918   gtk_signal_connect (GTK_OBJECT (button_title_next), "clicked",
919                       GTK_SIGNAL_FUNC (GtkTitleNext),
920                       NULL);
921   gtk_signal_connect (GTK_OBJECT (button_chapter_prev), "clicked",
922                       GTK_SIGNAL_FUNC (GtkChapterPrev),
923                       NULL);
924   gtk_signal_connect (GTK_OBJECT (button_chapter_next), "clicked",
925                       GTK_SIGNAL_FUNC (GtkChapterNext),
926                       NULL);
927   gtk_signal_connect (GTK_OBJECT (network_channel_spinbutton), "activate",
928                       GTK_SIGNAL_FUNC (GtkNetworkJoin),
929                       NULL);
930   gtk_signal_connect (GTK_OBJECT (network_channel_go_button), "clicked",
931                       GTK_SIGNAL_FUNC (GtkChannelGo),
932                       NULL);
933
934   gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips);
935
936   return intf_window;
937 }
938
939 static GnomeUIInfo audio1_menu_uiinfo[] =
940 {
941   {
942     GNOME_APP_UI_ITEM, N_("_Language"),
943     N_("Select audio channel"),
944     (gpointer) NULL, NULL, NULL,
945     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_VOLUME,
946     0, (GdkModifierType) 0, NULL
947   },
948   GNOMEUIINFO_SEPARATOR,
949   {
950     GNOME_APP_UI_ITEM, N_("Volume Up"),
951     NULL,
952     (gpointer) GtkVolumeUp, NULL, NULL,
953     GNOME_APP_PIXMAP_NONE, NULL,
954     0, (GdkModifierType) 0, NULL
955   },
956   {
957     GNOME_APP_UI_ITEM, N_("Volume Down"),
958     NULL,
959     (gpointer) GtkVolumeDown, NULL, NULL,
960     GNOME_APP_PIXMAP_NONE, NULL,
961     0, (GdkModifierType) 0, NULL
962   },
963   {
964     GNOME_APP_UI_ITEM, N_("Mute"),
965     NULL,
966     (gpointer) GtkVolumeMute, NULL, NULL,
967     GNOME_APP_PIXMAP_NONE, NULL,
968     0, (GdkModifierType) 0, NULL
969   },
970   GNOMEUIINFO_SEPARATOR,
971   {
972     GNOME_APP_UI_ITEM, N_("Channels"),
973     NULL,
974     (gpointer) NULL, NULL, NULL,
975     GNOME_APP_PIXMAP_NONE, NULL,
976     0, (GdkModifierType) 0, NULL
977   },
978   {
979     GNOME_APP_UI_ITEM, N_("Device"),
980     NULL,
981     (gpointer) NULL, NULL, NULL,
982     GNOME_APP_PIXMAP_NONE, NULL,
983     0, (GdkModifierType) 0, NULL
984   },
985   GNOMEUIINFO_END
986 };
987
988 static GnomeUIInfo video1_menu_uiinfo[] =
989 {
990   {
991     GNOME_APP_UI_ITEM, N_("_Subtitles"),
992     N_("Select subtitles channel"),
993     (gpointer) NULL, NULL, NULL,
994     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FONT,
995     0, (GdkModifierType) 0, NULL
996   },
997   GNOMEUIINFO_SEPARATOR,
998   {
999     GNOME_APP_UI_ITEM, N_("_Fullscreen"),
1000     N_("Toggle fullscreen mode"),
1001     (gpointer) GtkFullscreen, NULL, NULL,
1002     GNOME_APP_PIXMAP_NONE, NULL,
1003     0, (GdkModifierType) 0, NULL
1004   },
1005   GNOMEUIINFO_SEPARATOR,
1006   {
1007     GNOME_APP_UI_ITEM, N_("Deinterlace"),
1008     NULL,
1009     (gpointer) NULL, NULL, NULL,
1010     GNOME_APP_PIXMAP_NONE, NULL,
1011     0, (GdkModifierType) 0, NULL
1012   },
1013   {
1014     GNOME_APP_UI_ITEM, N_("Screen"),
1015     NULL,
1016     (gpointer) NULL, NULL, NULL,
1017     GNOME_APP_PIXMAP_NONE, NULL,
1018     0, (GdkModifierType) 0, NULL
1019   },
1020   GNOMEUIINFO_END
1021 };
1022
1023 static GnomeUIInfo popup_file_menu_uiinfo[] =
1024 {
1025   {
1026     GNOME_APP_UI_ITEM, N_("_Open File..."),
1027     N_("Open a file"),
1028     (gpointer) GtkFileOpenShow, NULL, NULL,
1029     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
1030     0, (GdkModifierType) 0, NULL
1031   },
1032   {
1033     GNOME_APP_UI_ITEM, N_("Open _Disc..."),
1034     N_("Open a DVD or VCD"),
1035     (gpointer) GtkDiscOpenShow, NULL, NULL,
1036     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
1037     0, (GdkModifierType) 0, NULL
1038   },
1039   {
1040     GNOME_APP_UI_ITEM, N_("_Network Stream..."),
1041     N_("Select a network stream"),
1042     (gpointer) GtkNetworkOpenShow, NULL, NULL,
1043     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
1044     0, (GdkModifierType) 0, NULL
1045   },
1046   GNOMEUIINFO_SEPARATOR,
1047   GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, NULL),
1048   GNOMEUIINFO_END
1049 };
1050
1051 static GnomeUIInfo intf_popup_uiinfo[] =
1052 {
1053   {
1054     GNOME_APP_UI_ITEM, N_("Play"),
1055     NULL,
1056     (gpointer) GtkControlPlay, NULL, NULL,
1057     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
1058     0, (GdkModifierType) 0, NULL
1059   },
1060   {
1061     GNOME_APP_UI_ITEM, N_("Pause"),
1062     NULL,
1063     (gpointer) GtkControlPause, NULL, NULL,
1064     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
1065     0, (GdkModifierType) 0, NULL
1066   },
1067   {
1068     GNOME_APP_UI_ITEM, N_("Stop"),
1069     NULL,
1070     (gpointer) GtkControlStop, NULL, NULL,
1071     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_STOP,
1072     0, (GdkModifierType) 0, NULL
1073   },
1074   {
1075     GNOME_APP_UI_ITEM, N_("Back"),
1076     NULL,
1077     (gpointer) GtkControlBack, NULL, NULL,
1078     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BACK,
1079     0, (GdkModifierType) 0, NULL
1080   },
1081   {
1082     GNOME_APP_UI_ITEM, N_("Slow"),
1083     NULL,
1084     (gpointer) GtkControlSlow, NULL, NULL,
1085     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP,
1086     0, (GdkModifierType) 0, NULL
1087   },
1088   {
1089     GNOME_APP_UI_ITEM, N_("Fast"),
1090     NULL,
1091     (gpointer) GtkControlFast, NULL, NULL,
1092     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER,
1093     0, (GdkModifierType) 0, NULL
1094   },
1095   GNOMEUIINFO_SEPARATOR,
1096   {
1097     GNOME_APP_UI_ITEM, N_("Next"),
1098     NULL,
1099     (gpointer) GtkPlaylistNext, NULL, NULL,
1100     GNOME_APP_PIXMAP_NONE, NULL,
1101     0, (GdkModifierType) 0, NULL
1102   },
1103   {
1104     GNOME_APP_UI_ITEM, N_("Prev"),
1105     NULL,
1106     (gpointer) GtkPlaylistPrev, NULL, NULL,
1107     GNOME_APP_PIXMAP_NONE, NULL,
1108     0, (GdkModifierType) 0, NULL
1109   },
1110   {
1111     GNOME_APP_UI_ITEM, N_("_Jump..."),
1112     N_("Got directly so specified point"),
1113     (gpointer) GtkJumpShow, NULL, NULL,
1114     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_JUMP_TO,
1115     0, (GdkModifierType) 0, NULL
1116   },
1117   GNOMEUIINFO_SEPARATOR,
1118   {
1119     GNOME_APP_UI_ITEM, N_("Program"),
1120     N_("Switch program"),
1121     (gpointer) NULL, NULL, NULL,
1122     GNOME_APP_PIXMAP_NONE, NULL,
1123     0, (GdkModifierType) 0, NULL
1124   },
1125   {
1126     GNOME_APP_UI_ITEM, N_("_Navigation"),
1127     N_("Navigate through titles and chapters"),
1128     (gpointer) NULL, NULL, NULL,
1129     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_SEARCH,
1130     0, (GdkModifierType) 0, NULL
1131   },
1132   {
1133     GNOME_APP_UI_SUBTREE, N_("Audio"),
1134     NULL,
1135     audio1_menu_uiinfo, NULL, NULL,
1136     GNOME_APP_PIXMAP_NONE, NULL,
1137     0, (GdkModifierType) 0, NULL
1138   },
1139   {
1140     GNOME_APP_UI_SUBTREE, N_("Video"),
1141     NULL,
1142     video1_menu_uiinfo, NULL, NULL,
1143     GNOME_APP_PIXMAP_NONE, NULL,
1144     0, (GdkModifierType) 0, NULL
1145   },
1146   GNOMEUIINFO_SEPARATOR,
1147   GNOMEUIINFO_MENU_FILE_TREE (popup_file_menu_uiinfo),
1148   {
1149     GNOME_APP_UI_ITEM, N_("Toggle _Interface"),
1150     NULL,
1151     (gpointer) GtkWindowToggle, NULL, NULL,
1152     GNOME_APP_PIXMAP_NONE, NULL,
1153     0, (GdkModifierType) 0, NULL
1154   },
1155   {
1156     GNOME_APP_UI_ITEM, N_("Playlist..."),
1157     NULL,
1158     (gpointer) GtkPlaylistShow, NULL, NULL,
1159     GNOME_APP_PIXMAP_NONE, NULL,
1160     0, (GdkModifierType) 0, NULL
1161   },
1162   GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, NULL),
1163   GNOMEUIINFO_SEPARATOR,
1164   GNOMEUIINFO_MENU_EXIT_ITEM (GnomeExit, NULL),
1165   GNOMEUIINFO_END
1166 };
1167
1168 GtkWidget*
1169 create_intf_popup (void)
1170 {
1171   GtkWidget *intf_popup;
1172
1173   intf_popup = gtk_menu_new ();
1174   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
1175   gnome_app_fill_menu (GTK_MENU_SHELL (intf_popup), intf_popup_uiinfo,
1176                        NULL, FALSE, 0);
1177
1178   gtk_widget_ref (intf_popup_uiinfo[0].widget);
1179   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play",
1180                             intf_popup_uiinfo[0].widget,
1181                             (GtkDestroyNotify) gtk_widget_unref);
1182
1183   gtk_widget_ref (intf_popup_uiinfo[1].widget);
1184   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause",
1185                             intf_popup_uiinfo[1].widget,
1186                             (GtkDestroyNotify) gtk_widget_unref);
1187
1188   gtk_widget_ref (intf_popup_uiinfo[2].widget);
1189   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_stop",
1190                             intf_popup_uiinfo[2].widget,
1191                             (GtkDestroyNotify) gtk_widget_unref);
1192
1193   gtk_widget_ref (intf_popup_uiinfo[3].widget);
1194   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_back",
1195                             intf_popup_uiinfo[3].widget,
1196                             (GtkDestroyNotify) gtk_widget_unref);
1197   gtk_widget_set_sensitive (intf_popup_uiinfo[3].widget, FALSE);
1198
1199   gtk_widget_ref (intf_popup_uiinfo[4].widget);
1200   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
1201                             intf_popup_uiinfo[4].widget,
1202                             (GtkDestroyNotify) gtk_widget_unref);
1203
1204   gtk_widget_ref (intf_popup_uiinfo[5].widget);
1205   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
1206                             intf_popup_uiinfo[5].widget,
1207                             (GtkDestroyNotify) gtk_widget_unref);
1208
1209   gtk_widget_ref (intf_popup_uiinfo[6].widget);
1210   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
1211                             intf_popup_uiinfo[6].widget,
1212                             (GtkDestroyNotify) gtk_widget_unref);
1213
1214   gtk_widget_ref (intf_popup_uiinfo[7].widget);
1215   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_next",
1216                             intf_popup_uiinfo[7].widget,
1217                             (GtkDestroyNotify) gtk_widget_unref);
1218
1219   gtk_widget_ref (intf_popup_uiinfo[8].widget);
1220   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_prev",
1221                             intf_popup_uiinfo[8].widget,
1222                             (GtkDestroyNotify) gtk_widget_unref);
1223
1224   gtk_widget_ref (intf_popup_uiinfo[9].widget);
1225   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_jump",
1226                             intf_popup_uiinfo[9].widget,
1227                             (GtkDestroyNotify) gtk_widget_unref);
1228
1229   gtk_widget_ref (intf_popup_uiinfo[10].widget);
1230   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator17",
1231                             intf_popup_uiinfo[10].widget,
1232                             (GtkDestroyNotify) gtk_widget_unref);
1233
1234   gtk_widget_ref (intf_popup_uiinfo[11].widget);
1235   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_program",
1236                             intf_popup_uiinfo[11].widget,
1237                             (GtkDestroyNotify) gtk_widget_unref);
1238   gtk_widget_set_sensitive (intf_popup_uiinfo[11].widget, FALSE);
1239
1240   gtk_widget_ref (intf_popup_uiinfo[12].widget);
1241   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation",
1242                             intf_popup_uiinfo[12].widget,
1243                             (GtkDestroyNotify) gtk_widget_unref);
1244   gtk_widget_set_sensitive (intf_popup_uiinfo[12].widget, FALSE);
1245
1246   gtk_widget_ref (intf_popup_uiinfo[13].widget);
1247   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "audio1",
1248                             intf_popup_uiinfo[13].widget,
1249                             (GtkDestroyNotify) gtk_widget_unref);
1250
1251   gtk_widget_ref (audio1_menu_uiinfo[0].widget);
1252   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio",
1253                             audio1_menu_uiinfo[0].widget,
1254                             (GtkDestroyNotify) gtk_widget_unref);
1255   gtk_widget_set_sensitive (audio1_menu_uiinfo[0].widget, FALSE);
1256
1257   gtk_widget_ref (audio1_menu_uiinfo[1].widget);
1258   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator20",
1259                             audio1_menu_uiinfo[1].widget,
1260                             (GtkDestroyNotify) gtk_widget_unref);
1261
1262   gtk_widget_ref (audio1_menu_uiinfo[2].widget);
1263   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_up",
1264                             audio1_menu_uiinfo[2].widget,
1265                             (GtkDestroyNotify) gtk_widget_unref);
1266
1267   gtk_widget_ref (audio1_menu_uiinfo[3].widget);
1268   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_down",
1269                             audio1_menu_uiinfo[3].widget,
1270                             (GtkDestroyNotify) gtk_widget_unref);
1271
1272   gtk_widget_ref (audio1_menu_uiinfo[4].widget);
1273   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_mute",
1274                             audio1_menu_uiinfo[4].widget,
1275                             (GtkDestroyNotify) gtk_widget_unref);
1276
1277   gtk_widget_ref (audio1_menu_uiinfo[5].widget);
1278   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator21",
1279                             audio1_menu_uiinfo[5].widget,
1280                             (GtkDestroyNotify) gtk_widget_unref);
1281
1282   gtk_widget_ref (audio1_menu_uiinfo[6].widget);
1283   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_channels",
1284                             audio1_menu_uiinfo[6].widget,
1285                             (GtkDestroyNotify) gtk_widget_unref);
1286
1287   gtk_widget_ref (audio1_menu_uiinfo[7].widget);
1288   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_device",
1289                             audio1_menu_uiinfo[7].widget,
1290                             (GtkDestroyNotify) gtk_widget_unref);
1291
1292   gtk_widget_ref (intf_popup_uiinfo[14].widget);
1293   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "video1",
1294                             intf_popup_uiinfo[14].widget,
1295                             (GtkDestroyNotify) gtk_widget_unref);
1296
1297   gtk_widget_ref (video1_menu_uiinfo[0].widget);
1298   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures",
1299                             video1_menu_uiinfo[0].widget,
1300                             (GtkDestroyNotify) gtk_widget_unref);
1301   gtk_widget_set_sensitive (video1_menu_uiinfo[0].widget, FALSE);
1302
1303   gtk_widget_ref (video1_menu_uiinfo[1].widget);
1304   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator18",
1305                             video1_menu_uiinfo[1].widget,
1306                             (GtkDestroyNotify) gtk_widget_unref);
1307
1308   gtk_widget_ref (video1_menu_uiinfo[2].widget);
1309   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fullscreen",
1310                             video1_menu_uiinfo[2].widget,
1311                             (GtkDestroyNotify) gtk_widget_unref);
1312
1313   gtk_widget_ref (video1_menu_uiinfo[3].widget);
1314   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator19",
1315                             video1_menu_uiinfo[3].widget,
1316                             (GtkDestroyNotify) gtk_widget_unref);
1317
1318   gtk_widget_ref (video1_menu_uiinfo[4].widget);
1319   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_deinterlace",
1320                             video1_menu_uiinfo[4].widget,
1321                             (GtkDestroyNotify) gtk_widget_unref);
1322
1323   gtk_widget_ref (video1_menu_uiinfo[5].widget);
1324   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_video_device",
1325                             video1_menu_uiinfo[5].widget,
1326                             (GtkDestroyNotify) gtk_widget_unref);
1327
1328   gtk_widget_ref (intf_popup_uiinfo[15].widget);
1329   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator13",
1330                             intf_popup_uiinfo[15].widget,
1331                             (GtkDestroyNotify) gtk_widget_unref);
1332
1333   gtk_widget_ref (intf_popup_uiinfo[16].widget);
1334   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file",
1335                             intf_popup_uiinfo[16].widget,
1336                             (GtkDestroyNotify) gtk_widget_unref);
1337
1338   gtk_widget_ref (popup_file_menu_uiinfo[0].widget);
1339   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open",
1340                             popup_file_menu_uiinfo[0].widget,
1341                             (GtkDestroyNotify) gtk_widget_unref);
1342
1343   gtk_widget_ref (popup_file_menu_uiinfo[1].widget);
1344   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc",
1345                             popup_file_menu_uiinfo[1].widget,
1346                             (GtkDestroyNotify) gtk_widget_unref);
1347
1348   gtk_widget_ref (popup_file_menu_uiinfo[2].widget);
1349   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network",
1350                             popup_file_menu_uiinfo[2].widget,
1351                             (GtkDestroyNotify) gtk_widget_unref);
1352
1353   gtk_widget_ref (popup_file_menu_uiinfo[3].widget);
1354   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator4",
1355                             popup_file_menu_uiinfo[3].widget,
1356                             (GtkDestroyNotify) gtk_widget_unref);
1357
1358   gtk_widget_ref (popup_file_menu_uiinfo[4].widget);
1359   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about",
1360                             popup_file_menu_uiinfo[4].widget,
1361                             (GtkDestroyNotify) gtk_widget_unref);
1362
1363   gtk_widget_ref (intf_popup_uiinfo[17].widget);
1364   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_interface_toggle",
1365                             intf_popup_uiinfo[17].widget,
1366                             (GtkDestroyNotify) gtk_widget_unref);
1367
1368   gtk_widget_ref (intf_popup_uiinfo[18].widget);
1369   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_playlist",
1370                             intf_popup_uiinfo[18].widget,
1371                             (GtkDestroyNotify) gtk_widget_unref);
1372
1373   gtk_widget_ref (intf_popup_uiinfo[19].widget);
1374   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_preferences",
1375                             intf_popup_uiinfo[19].widget,
1376                             (GtkDestroyNotify) gtk_widget_unref);
1377
1378   gtk_widget_ref (intf_popup_uiinfo[20].widget);
1379   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2",
1380                             intf_popup_uiinfo[20].widget,
1381                             (GtkDestroyNotify) gtk_widget_unref);
1382
1383   gtk_widget_ref (intf_popup_uiinfo[21].widget);
1384   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit",
1385                             intf_popup_uiinfo[21].widget,
1386                             (GtkDestroyNotify) gtk_widget_unref);
1387
1388   return intf_popup;
1389 }
1390
1391 GtkWidget*
1392 create_intf_about (void)
1393 {
1394   const gchar *authors[] = {
1395     "the VideoLAN team <videolan@videolan.org>",
1396     "http://www.videolan.org/",
1397     NULL
1398   };
1399   GtkWidget *intf_about;
1400
1401   intf_about = gnome_about_new ("VideoLAN Client", VERSION,
1402                         _("(c) 1996-2003 the VideoLAN team"),
1403                         authors,
1404                         _("This is the VideoLAN Client, a DVD, MPEG and DivX player. It can play MPEG and MPEG2 files from a file or from a network source."),
1405                         NULL);
1406   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
1407
1408   return intf_about;
1409 }
1410
1411 GtkWidget*
1412 create_intf_open (void)
1413 {
1414   GtkWidget *intf_open;
1415   GtkWidget *dialog_vbox5;
1416   GtkWidget *open_vbox;
1417   GtkWidget *frame10;
1418   GtkWidget *hbox21;
1419   GtkWidget *hbox22;
1420   GtkWidget *label34;
1421   GtkWidget *combo2;
1422   GtkWidget *entry_open;
1423   GtkWidget *label36;
1424   GtkWidget *open_notebook;
1425   GtkWidget *hbox20;
1426   GtkWidget *combo1;
1427   GtkWidget *entry_file;
1428   GtkWidget *vbox13;
1429   GtkWidget *open_browse;
1430   GtkWidget *open_file;
1431   GtkWidget *table5;
1432   GtkWidget *label35;
1433   GtkWidget *hbox24;
1434   GSList *disc_group = NULL;
1435   GtkWidget *disc_dvd;
1436   GtkWidget *disc_vcd;
1437   GtkWidget *label19;
1438   GtkWidget *disc_name;
1439   GtkWidget *disc_chapter_label;
1440   GtkWidget *disc_title_label;
1441   GtkWidget *disc_dvd_use_menu;
1442   GtkObject *disc_title_adj;
1443   GtkWidget *disc_title;
1444   GtkObject *disc_chapter_adj;
1445   GtkWidget *disc_chapter;
1446   GtkWidget *open_disc;
1447   GtkWidget *table4;
1448   GSList *table4_group = NULL;
1449   GtkWidget *network_udp;
1450   GtkWidget *network_multicast;
1451   GtkWidget *network_channel;
1452   GtkWidget *network_http;
1453   GtkWidget *network_udp_port_label;
1454   GtkWidget *network_multicast_address_label;
1455   GtkWidget *network_channel_address_label;
1456   GtkWidget *network_http_url_label;
1457   GtkWidget *network_multicast_address_combo;
1458   GtkWidget *network_multicast_address;
1459   GtkWidget *network_channel_address_combo;
1460   GtkWidget *network_channel_address;
1461   GtkWidget *network_multicast_port_label;
1462   GtkWidget *network_channel_port_label;
1463   GtkObject *network_multicast_port_adj;
1464   GtkWidget *network_multicast_port;
1465   GtkObject *network_channel_port_adj;
1466   GtkWidget *network_channel_port;
1467   GtkWidget *network_http_url;
1468   GtkObject *network_udp_port_adj;
1469   GtkWidget *network_udp_port;
1470   GtkWidget *open_net;
1471   GtkWidget *table3;
1472   GtkWidget *label24;
1473   GtkWidget *label25;
1474   GtkWidget *label26;
1475   GtkObject *sat_freq_adj;
1476   GtkWidget *sat_freq;
1477   GtkWidget *label27;
1478   GtkWidget *hbox23;
1479   GSList *pol_group = NULL;
1480   GtkWidget *sat_pol_vert;
1481   GtkWidget *sat_pol_hor;
1482   GtkObject *sat_srate_adj;
1483   GtkWidget *sat_srate;
1484   GtkWidget *sat_fec;
1485   GList *sat_fec_items = NULL;
1486   GtkWidget *combo_entry1;
1487   GtkWidget *open_sat;
1488   GtkWidget *show_subtitle;
1489   GtkWidget *hbox_subtitle;
1490   GtkWidget *combo3;
1491   GtkWidget *entry_subtitle;
1492   GtkWidget *vbox14;
1493   GtkWidget *button4;
1494   GtkWidget *label37;
1495   GtkObject *subtitle_delay_adj;
1496   GtkWidget *subtitle_delay;
1497   GtkWidget *label38;
1498   GtkObject *subtitle_fps_adj;
1499   GtkWidget *subtitle_fps;
1500   GtkWidget *hbox28;
1501   GtkWidget *show_sout_settings;
1502   GtkWidget *sout_settings;
1503   GtkWidget *dialog_action_area5;
1504   GtkWidget *button1;
1505   GtkWidget *button3;
1506
1507   intf_open = gnome_dialog_new (_("Open Stream"), NULL);
1508   gtk_object_set_data (GTK_OBJECT (intf_open), "intf_open", intf_open);
1509   gtk_window_set_modal (GTK_WINDOW (intf_open), TRUE);
1510   gtk_window_set_policy (GTK_WINDOW (intf_open), FALSE, FALSE, FALSE);
1511   gnome_dialog_close_hides (GNOME_DIALOG (intf_open), TRUE);
1512
1513   dialog_vbox5 = GNOME_DIALOG (intf_open)->vbox;
1514   gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_vbox5", dialog_vbox5);
1515   gtk_widget_show (dialog_vbox5);
1516
1517   open_vbox = gtk_vbox_new (FALSE, 5);
1518   gtk_widget_ref (open_vbox);
1519   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_vbox", open_vbox,
1520                             (GtkDestroyNotify) gtk_widget_unref);
1521   gtk_widget_show (open_vbox);
1522   gtk_box_pack_start (GTK_BOX (dialog_vbox5), open_vbox, TRUE, TRUE, 0);
1523
1524   frame10 = gtk_frame_new (_("Media Resource Locator (MRL)"));
1525   gtk_widget_ref (frame10);
1526   gtk_object_set_data_full (GTK_OBJECT (intf_open), "frame10", frame10,
1527                             (GtkDestroyNotify) gtk_widget_unref);
1528   gtk_widget_show (frame10);
1529   gtk_box_pack_start (GTK_BOX (open_vbox), frame10, FALSE, TRUE, 0);
1530
1531   hbox21 = gtk_hbox_new (FALSE, 5);
1532   gtk_widget_ref (hbox21);
1533   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox21", hbox21,
1534                             (GtkDestroyNotify) gtk_widget_unref);
1535   gtk_widget_show (hbox21);
1536   gtk_container_add (GTK_CONTAINER (frame10), hbox21);
1537   gtk_container_set_border_width (GTK_CONTAINER (hbox21), 5);
1538
1539   hbox22 = gtk_hbox_new (FALSE, 0);
1540   gtk_widget_ref (hbox22);
1541   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox22", hbox22,
1542                             (GtkDestroyNotify) gtk_widget_unref);
1543   gtk_widget_show (hbox22);
1544   gtk_box_pack_start (GTK_BOX (hbox21), hbox22, FALSE, TRUE, 0);
1545
1546   label34 = gtk_label_new (_("Open Target:"));
1547   gtk_widget_ref (label34);
1548   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label34", label34,
1549                             (GtkDestroyNotify) gtk_widget_unref);
1550   gtk_widget_show (label34);
1551   gtk_box_pack_start (GTK_BOX (hbox22), label34, FALSE, FALSE, 0);
1552
1553   combo2 = gtk_combo_new ();
1554   gtk_widget_ref (combo2);
1555   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo2", combo2,
1556                             (GtkDestroyNotify) gtk_widget_unref);
1557   gtk_widget_show (combo2);
1558   gtk_box_pack_start (GTK_BOX (hbox21), combo2, TRUE, TRUE, 0);
1559
1560   entry_open = GTK_COMBO (combo2)->entry;
1561   gtk_widget_ref (entry_open);
1562   gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_open", entry_open,
1563                             (GtkDestroyNotify) gtk_widget_unref);
1564   gtk_widget_show (entry_open);
1565
1566   label36 = gtk_label_new (_("Alternatively, you can build an MRL using one of the following predefined targets:"));
1567   gtk_widget_ref (label36);
1568   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label36", label36,
1569                             (GtkDestroyNotify) gtk_widget_unref);
1570   gtk_widget_show (label36);
1571   gtk_box_pack_start (GTK_BOX (open_vbox), label36, TRUE, TRUE, 0);
1572   gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT);
1573   gtk_misc_set_alignment (GTK_MISC (label36), 0, 1);
1574
1575   open_notebook = gtk_notebook_new ();
1576   gtk_widget_ref (open_notebook);
1577   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_notebook", open_notebook,
1578                             (GtkDestroyNotify) gtk_widget_unref);
1579   gtk_widget_show (open_notebook);
1580   gtk_box_pack_start (GTK_BOX (open_vbox), open_notebook, TRUE, TRUE, 0);
1581
1582   hbox20 = gtk_hbox_new (FALSE, 5);
1583   gtk_widget_ref (hbox20);
1584   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox20", hbox20,
1585                             (GtkDestroyNotify) gtk_widget_unref);
1586   gtk_widget_show (hbox20);
1587   gtk_container_add (GTK_CONTAINER (open_notebook), hbox20);
1588   gtk_container_set_border_width (GTK_CONTAINER (hbox20), 5);
1589
1590   combo1 = gtk_combo_new ();
1591   gtk_widget_ref (combo1);
1592   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo1", combo1,
1593                             (GtkDestroyNotify) gtk_widget_unref);
1594   gtk_widget_show (combo1);
1595   gtk_box_pack_start (GTK_BOX (hbox20), combo1, FALSE, TRUE, 0);
1596
1597   entry_file = GTK_COMBO (combo1)->entry;
1598   gtk_widget_ref (entry_file);
1599   gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_file", entry_file,
1600                             (GtkDestroyNotify) gtk_widget_unref);
1601   gtk_widget_show (entry_file);
1602
1603   vbox13 = gtk_vbox_new (TRUE, 0);
1604   gtk_widget_ref (vbox13);
1605   gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox13", vbox13,
1606                             (GtkDestroyNotify) gtk_widget_unref);
1607   gtk_widget_show (vbox13);
1608   gtk_box_pack_start (GTK_BOX (hbox20), vbox13, FALSE, FALSE, 0);
1609
1610   open_browse = gtk_button_new_with_label (_("Browse..."));
1611   gtk_widget_ref (open_browse);
1612   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_browse", open_browse,
1613                             (GtkDestroyNotify) gtk_widget_unref);
1614   gtk_widget_show (open_browse);
1615   gtk_box_pack_start (GTK_BOX (vbox13), open_browse, FALSE, FALSE, 0);
1616
1617   open_file = gtk_label_new (_("File"));
1618   gtk_widget_ref (open_file);
1619   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_file", open_file,
1620                             (GtkDestroyNotify) gtk_widget_unref);
1621   gtk_widget_show (open_file);
1622   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 0), open_file);
1623
1624   table5 = gtk_table_new (5, 2, FALSE);
1625   gtk_widget_ref (table5);
1626   gtk_object_set_data_full (GTK_OBJECT (intf_open), "table5", table5,
1627                             (GtkDestroyNotify) gtk_widget_unref);
1628   gtk_widget_show (table5);
1629   gtk_container_add (GTK_CONTAINER (open_notebook), table5);
1630   gtk_container_set_border_width (GTK_CONTAINER (table5), 5);
1631   gtk_table_set_row_spacings (GTK_TABLE (table5), 5);
1632   gtk_table_set_col_spacings (GTK_TABLE (table5), 5);
1633
1634   label35 = gtk_label_new (_("Disc type"));
1635   gtk_widget_ref (label35);
1636   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label35", label35,
1637                             (GtkDestroyNotify) gtk_widget_unref);
1638   gtk_widget_show (label35);
1639   gtk_table_attach (GTK_TABLE (table5), label35, 0, 1, 0, 1,
1640                     (GtkAttachOptions) (GTK_FILL),
1641                     (GtkAttachOptions) (0), 0, 0);
1642   gtk_misc_set_alignment (GTK_MISC (label35), 0, 0.5);
1643
1644   hbox24 = gtk_hbox_new (FALSE, 0);
1645   gtk_widget_ref (hbox24);
1646   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox24", hbox24,
1647                             (GtkDestroyNotify) gtk_widget_unref);
1648   gtk_widget_show (hbox24);
1649   gtk_table_attach (GTK_TABLE (table5), hbox24, 1, 2, 0, 1,
1650                     (GtkAttachOptions) (GTK_FILL),
1651                     (GtkAttachOptions) (GTK_FILL), 0, 0);
1652
1653   disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD"));
1654   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd));
1655   gtk_widget_ref (disc_dvd);
1656   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd", disc_dvd,
1657                             (GtkDestroyNotify) gtk_widget_unref);
1658   gtk_widget_show (disc_dvd);
1659   gtk_box_pack_start (GTK_BOX (hbox24), disc_dvd, FALSE, FALSE, 0);
1660
1661   disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD"));
1662   disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd));
1663   gtk_widget_ref (disc_vcd);
1664   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_vcd", disc_vcd,
1665                             (GtkDestroyNotify) gtk_widget_unref);
1666   gtk_widget_show (disc_vcd);
1667   gtk_box_pack_start (GTK_BOX (hbox24), disc_vcd, FALSE, FALSE, 0);
1668
1669   label19 = gtk_label_new (_("Device name"));
1670   gtk_widget_ref (label19);
1671   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label19", label19,
1672                             (GtkDestroyNotify) gtk_widget_unref);
1673   gtk_widget_show (label19);
1674   gtk_table_attach (GTK_TABLE (table5), label19, 0, 1, 1, 2,
1675                     (GtkAttachOptions) (GTK_FILL),
1676                     (GtkAttachOptions) (0), 0, 0);
1677
1678   disc_name = gtk_entry_new ();
1679   gtk_widget_ref (disc_name);
1680   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_name", disc_name,
1681                             (GtkDestroyNotify) gtk_widget_unref);
1682   gtk_widget_show (disc_name);
1683   gtk_table_attach (GTK_TABLE (table5), disc_name, 1, 2, 1, 2,
1684                     (GtkAttachOptions) (GTK_FILL),
1685                     (GtkAttachOptions) (0), 0, 0);
1686   gtk_entry_set_text (GTK_ENTRY (disc_name), "/dev/dvd");
1687
1688   disc_chapter_label = gtk_label_new (_("Chapter"));
1689   gtk_widget_ref (disc_chapter_label);
1690   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter_label", disc_chapter_label,
1691                             (GtkDestroyNotify) gtk_widget_unref);
1692   gtk_widget_show (disc_chapter_label);
1693   gtk_table_attach (GTK_TABLE (table5), disc_chapter_label, 0, 1, 4, 5,
1694                     (GtkAttachOptions) (GTK_FILL),
1695                     (GtkAttachOptions) (0), 0, 0);
1696   gtk_misc_set_alignment (GTK_MISC (disc_chapter_label), 0, 0.5);
1697
1698   disc_title_label = gtk_label_new (_("Title"));
1699   gtk_widget_ref (disc_title_label);
1700   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title_label", disc_title_label,
1701                             (GtkDestroyNotify) gtk_widget_unref);
1702   gtk_widget_show (disc_title_label);
1703   gtk_table_attach (GTK_TABLE (table5), disc_title_label, 0, 1, 3, 4,
1704                     (GtkAttachOptions) (GTK_FILL),
1705                     (GtkAttachOptions) (0), 0, 0);
1706   gtk_misc_set_alignment (GTK_MISC (disc_title_label), 0, 0.5);
1707
1708   disc_dvd_use_menu = gtk_check_button_new_with_label (_("Use DVD menus"));
1709   gtk_widget_ref (disc_dvd_use_menu);
1710   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd_use_menu", disc_dvd_use_menu,
1711                             (GtkDestroyNotify) gtk_widget_unref);
1712   gtk_widget_show (disc_dvd_use_menu);
1713   gtk_table_attach (GTK_TABLE (table5), disc_dvd_use_menu, 1, 2, 2, 3,
1714                     (GtkAttachOptions) (GTK_FILL),
1715                     (GtkAttachOptions) (0), 0, 0);
1716   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (disc_dvd_use_menu), TRUE);
1717
1718   disc_title_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1719   disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0);
1720   gtk_widget_ref (disc_title);
1721   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title", disc_title,
1722                             (GtkDestroyNotify) gtk_widget_unref);
1723   gtk_widget_show (disc_title);
1724   gtk_table_attach (GTK_TABLE (table5), disc_title, 1, 2, 3, 4,
1725                     (GtkAttachOptions) (GTK_FILL),
1726                     (GtkAttachOptions) (0), 0, 0);
1727
1728   disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10);
1729   disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0);
1730   gtk_widget_ref (disc_chapter);
1731   gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter", disc_chapter,
1732                             (GtkDestroyNotify) gtk_widget_unref);
1733   gtk_widget_show (disc_chapter);
1734   gtk_table_attach (GTK_TABLE (table5), disc_chapter, 1, 2, 4, 5,
1735                     (GtkAttachOptions) (GTK_FILL),
1736                     (GtkAttachOptions) (0), 0, 0);
1737
1738   open_disc = gtk_label_new (_("Disc"));
1739   gtk_widget_ref (open_disc);
1740   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_disc", open_disc,
1741                             (GtkDestroyNotify) gtk_widget_unref);
1742   gtk_widget_show (open_disc);
1743   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 1), open_disc);
1744
1745   table4 = gtk_table_new (4, 6, FALSE);
1746   gtk_widget_ref (table4);
1747   gtk_object_set_data_full (GTK_OBJECT (intf_open), "table4", table4,
1748                             (GtkDestroyNotify) gtk_widget_unref);
1749   gtk_widget_show (table4);
1750   gtk_container_add (GTK_CONTAINER (open_notebook), table4);
1751   gtk_container_set_border_width (GTK_CONTAINER (table4), 5);
1752   gtk_table_set_row_spacings (GTK_TABLE (table4), 5);
1753   gtk_table_set_col_spacings (GTK_TABLE (table4), 5);
1754
1755   network_udp = gtk_radio_button_new_with_label (table4_group, _("UDP/RTP"));
1756   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_udp));
1757   gtk_widget_ref (network_udp);
1758   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp", network_udp,
1759                             (GtkDestroyNotify) gtk_widget_unref);
1760   gtk_widget_show (network_udp);
1761   gtk_table_attach (GTK_TABLE (table4), network_udp, 0, 1, 0, 1,
1762                     (GtkAttachOptions) (GTK_FILL),
1763                     (GtkAttachOptions) (0), 0, 0);
1764
1765   network_multicast = gtk_radio_button_new_with_label (table4_group, _("UDP/RTP Multicast"));
1766   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_multicast));
1767   gtk_widget_ref (network_multicast);
1768   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast", network_multicast,
1769                             (GtkDestroyNotify) gtk_widget_unref);
1770   gtk_widget_show (network_multicast);
1771   gtk_table_attach (GTK_TABLE (table4), network_multicast, 0, 1, 1, 2,
1772                     (GtkAttachOptions) (GTK_FILL),
1773                     (GtkAttachOptions) (0), 0, 0);
1774
1775   network_channel = gtk_radio_button_new_with_label (table4_group, _("Channel server"));
1776   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_channel));
1777   gtk_widget_ref (network_channel);
1778   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel", network_channel,
1779                             (GtkDestroyNotify) gtk_widget_unref);
1780   gtk_widget_show (network_channel);
1781   gtk_table_attach (GTK_TABLE (table4), network_channel, 0, 1, 2, 3,
1782                     (GtkAttachOptions) (GTK_FILL),
1783                     (GtkAttachOptions) (0), 0, 0);
1784
1785   network_http = gtk_radio_button_new_with_label (table4_group, _("HTTP/FTP/MMS"));
1786   table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http));
1787   gtk_widget_ref (network_http);
1788   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http", network_http,
1789                             (GtkDestroyNotify) gtk_widget_unref);
1790   gtk_widget_show (network_http);
1791   gtk_table_attach (GTK_TABLE (table4), network_http, 0, 1, 3, 4,
1792                     (GtkAttachOptions) (GTK_FILL),
1793                     (GtkAttachOptions) (0), 0, 0);
1794
1795   network_udp_port_label = gtk_label_new (_("Port"));
1796   gtk_widget_ref (network_udp_port_label);
1797   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port_label", network_udp_port_label,
1798                             (GtkDestroyNotify) gtk_widget_unref);
1799   gtk_widget_show (network_udp_port_label);
1800   gtk_table_attach (GTK_TABLE (table4), network_udp_port_label, 1, 2, 0, 1,
1801                     (GtkAttachOptions) (GTK_FILL),
1802                     (GtkAttachOptions) (0), 0, 0);
1803   gtk_misc_set_alignment (GTK_MISC (network_udp_port_label), 1, 0.5);
1804
1805   network_multicast_address_label = gtk_label_new (_("Address"));
1806   gtk_widget_ref (network_multicast_address_label);
1807   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_label", network_multicast_address_label,
1808                             (GtkDestroyNotify) gtk_widget_unref);
1809   gtk_widget_show (network_multicast_address_label);
1810   gtk_table_attach (GTK_TABLE (table4), network_multicast_address_label, 1, 2, 1, 2,
1811                     (GtkAttachOptions) (GTK_FILL),
1812                     (GtkAttachOptions) (0), 0, 0);
1813   gtk_widget_set_sensitive (network_multicast_address_label, FALSE);
1814   gtk_label_set_justify (GTK_LABEL (network_multicast_address_label), GTK_JUSTIFY_RIGHT);
1815   gtk_misc_set_alignment (GTK_MISC (network_multicast_address_label), 1, 0.5);
1816
1817   network_channel_address_label = gtk_label_new (_("Address"));
1818   gtk_widget_ref (network_channel_address_label);
1819   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_address_label", network_channel_address_label,
1820                             (GtkDestroyNotify) gtk_widget_unref);
1821   gtk_widget_show (network_channel_address_label);
1822   gtk_table_attach (GTK_TABLE (table4), network_channel_address_label, 1, 2, 2, 3,
1823                     (GtkAttachOptions) (GTK_FILL),
1824                     (GtkAttachOptions) (0), 0, 0);
1825   gtk_widget_set_sensitive (network_channel_address_label, FALSE);
1826
1827   network_http_url_label = gtk_label_new (_("URL"));
1828   gtk_widget_ref (network_http_url_label);
1829   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url_label", network_http_url_label,
1830                             (GtkDestroyNotify) gtk_widget_unref);
1831   gtk_widget_show (network_http_url_label);
1832   gtk_table_attach (GTK_TABLE (table4), network_http_url_label, 1, 2, 3, 4,
1833                     (GtkAttachOptions) (GTK_FILL),
1834                     (GtkAttachOptions) (0), 0, 0);
1835   gtk_widget_set_sensitive (network_http_url_label, FALSE);
1836   gtk_misc_set_alignment (GTK_MISC (network_http_url_label), 1, 0.5);
1837
1838   network_multicast_address_combo = gtk_combo_new ();
1839   gtk_widget_ref (network_multicast_address_combo);
1840   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_combo", network_multicast_address_combo,
1841                             (GtkDestroyNotify) gtk_widget_unref);
1842   gtk_widget_show (network_multicast_address_combo);
1843   gtk_table_attach (GTK_TABLE (table4), network_multicast_address_combo, 2, 4, 1, 2,
1844                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1845                     (GtkAttachOptions) (0), 0, 0);
1846   gtk_widget_set_sensitive (network_multicast_address_combo, FALSE);
1847
1848   network_multicast_address = GTK_COMBO (network_multicast_address_combo)->entry;
1849   gtk_widget_ref (network_multicast_address);
1850   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address", network_multicast_address,
1851                             (GtkDestroyNotify) gtk_widget_unref);
1852   gtk_widget_show (network_multicast_address);
1853
1854   network_channel_address_combo = gtk_combo_new ();
1855   gtk_widget_ref (network_channel_address_combo);
1856   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_address_combo", network_channel_address_combo,
1857                             (GtkDestroyNotify) gtk_widget_unref);
1858   gtk_widget_show (network_channel_address_combo);
1859   gtk_table_attach (GTK_TABLE (table4), network_channel_address_combo, 2, 4, 2, 3,
1860                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1861                     (GtkAttachOptions) (0), 0, 0);
1862   gtk_widget_set_sensitive (network_channel_address_combo, FALSE);
1863
1864   network_channel_address = GTK_COMBO (network_channel_address_combo)->entry;
1865   gtk_widget_ref (network_channel_address);
1866   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_address", network_channel_address,
1867                             (GtkDestroyNotify) gtk_widget_unref);
1868   gtk_widget_show (network_channel_address);
1869
1870   network_multicast_port_label = gtk_label_new (_("Port"));
1871   gtk_widget_ref (network_multicast_port_label);
1872   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port_label", network_multicast_port_label,
1873                             (GtkDestroyNotify) gtk_widget_unref);
1874   gtk_widget_show (network_multicast_port_label);
1875   gtk_table_attach (GTK_TABLE (table4), network_multicast_port_label, 4, 5, 1, 2,
1876                     (GtkAttachOptions) (GTK_FILL),
1877                     (GtkAttachOptions) (0), 0, 0);
1878   gtk_widget_set_sensitive (network_multicast_port_label, FALSE);
1879   gtk_misc_set_alignment (GTK_MISC (network_multicast_port_label), 1, 0.5);
1880
1881   network_channel_port_label = gtk_label_new (_("Port"));
1882   gtk_widget_ref (network_channel_port_label);
1883   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_port_label", network_channel_port_label,
1884                             (GtkDestroyNotify) gtk_widget_unref);
1885   gtk_widget_show (network_channel_port_label);
1886   gtk_table_attach (GTK_TABLE (table4), network_channel_port_label, 4, 5, 2, 3,
1887                     (GtkAttachOptions) (GTK_FILL),
1888                     (GtkAttachOptions) (0), 0, 0);
1889   gtk_widget_set_sensitive (network_channel_port_label, FALSE);
1890   gtk_misc_set_alignment (GTK_MISC (network_channel_port_label), 1, 0.5);
1891
1892   network_multicast_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1893   network_multicast_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_multicast_port_adj), 1, 0);
1894   gtk_widget_ref (network_multicast_port);
1895   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port", network_multicast_port,
1896                             (GtkDestroyNotify) gtk_widget_unref);
1897   gtk_widget_show (network_multicast_port);
1898   gtk_table_attach (GTK_TABLE (table4), network_multicast_port, 5, 6, 1, 2,
1899                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1900                     (GtkAttachOptions) (0), 0, 0);
1901   gtk_widget_set_usize (network_multicast_port, 75, -2);
1902   gtk_widget_set_sensitive (network_multicast_port, FALSE);
1903
1904   network_channel_port_adj = gtk_adjustment_new (6010, 0, 65535, 1, 10, 10);
1905   network_channel_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_channel_port_adj), 1, 0);
1906   gtk_widget_ref (network_channel_port);
1907   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_channel_port", network_channel_port,
1908                             (GtkDestroyNotify) gtk_widget_unref);
1909   gtk_widget_show (network_channel_port);
1910   gtk_table_attach (GTK_TABLE (table4), network_channel_port, 5, 6, 2, 3,
1911                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1912                     (GtkAttachOptions) (0), 0, 0);
1913   gtk_widget_set_usize (network_channel_port, 75, -2);
1914   gtk_widget_set_sensitive (network_channel_port, FALSE);
1915
1916   network_http_url = gtk_entry_new ();
1917   gtk_widget_ref (network_http_url);
1918   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url", network_http_url,
1919                             (GtkDestroyNotify) gtk_widget_unref);
1920   gtk_widget_show (network_http_url);
1921   gtk_table_attach (GTK_TABLE (table4), network_http_url, 2, 6, 3, 4,
1922                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1923                     (GtkAttachOptions) (0), 0, 0);
1924   gtk_widget_set_sensitive (network_http_url, FALSE);
1925
1926   network_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
1927   network_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_udp_port_adj), 1, 0);
1928   gtk_widget_ref (network_udp_port);
1929   gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port", network_udp_port,
1930                             (GtkDestroyNotify) gtk_widget_unref);
1931   gtk_widget_show (network_udp_port);
1932   gtk_table_attach (GTK_TABLE (table4), network_udp_port, 2, 3, 0, 1,
1933                     (GtkAttachOptions) (GTK_FILL),
1934                     (GtkAttachOptions) (0), 0, 0);
1935   gtk_widget_set_usize (network_udp_port, 1, -2);
1936
1937   open_net = gtk_label_new (_("Network"));
1938   gtk_widget_ref (open_net);
1939   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_net", open_net,
1940                             (GtkDestroyNotify) gtk_widget_unref);
1941   gtk_widget_show (open_net);
1942   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 2), open_net);
1943
1944   table3 = gtk_table_new (4, 2, FALSE);
1945   gtk_widget_ref (table3);
1946   gtk_object_set_data_full (GTK_OBJECT (intf_open), "table3", table3,
1947                             (GtkDestroyNotify) gtk_widget_unref);
1948   gtk_widget_show (table3);
1949   gtk_container_add (GTK_CONTAINER (open_notebook), table3);
1950   gtk_container_set_border_width (GTK_CONTAINER (table3), 5);
1951   gtk_table_set_row_spacings (GTK_TABLE (table3), 5);
1952   gtk_table_set_col_spacings (GTK_TABLE (table3), 5);
1953
1954   label24 = gtk_label_new (_("Symbol Rate"));
1955   gtk_widget_ref (label24);
1956   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label24", label24,
1957                             (GtkDestroyNotify) gtk_widget_unref);
1958   gtk_widget_show (label24);
1959   gtk_table_attach (GTK_TABLE (table3), label24, 0, 1, 1, 2,
1960                     (GtkAttachOptions) (GTK_FILL),
1961                     (GtkAttachOptions) (0), 0, 0);
1962   gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5);
1963
1964   label25 = gtk_label_new (_("Frequency"));
1965   gtk_widget_ref (label25);
1966   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label25", label25,
1967                             (GtkDestroyNotify) gtk_widget_unref);
1968   gtk_widget_show (label25);
1969   gtk_table_attach (GTK_TABLE (table3), label25, 0, 1, 0, 1,
1970                     (GtkAttachOptions) (GTK_FILL),
1971                     (GtkAttachOptions) (0), 0, 0);
1972   gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5);
1973
1974   label26 = gtk_label_new (_("Polarization"));
1975   gtk_widget_ref (label26);
1976   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label26", label26,
1977                             (GtkDestroyNotify) gtk_widget_unref);
1978   gtk_widget_show (label26);
1979   gtk_table_attach (GTK_TABLE (table3), label26, 0, 1, 2, 3,
1980                     (GtkAttachOptions) (GTK_FILL),
1981                     (GtkAttachOptions) (0), 0, 0);
1982   gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5);
1983
1984   sat_freq_adj = gtk_adjustment_new (11954, 10000, 12999, 1, 10, 10);
1985   sat_freq = gtk_spin_button_new (GTK_ADJUSTMENT (sat_freq_adj), 1, 0);
1986   gtk_widget_ref (sat_freq);
1987   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_freq", sat_freq,
1988                             (GtkDestroyNotify) gtk_widget_unref);
1989   gtk_widget_show (sat_freq);
1990   gtk_table_attach (GTK_TABLE (table3), sat_freq, 1, 2, 0, 1,
1991                     (GtkAttachOptions) (GTK_FILL),
1992                     (GtkAttachOptions) (0), 0, 0);
1993
1994   label27 = gtk_label_new (_("FEC"));
1995   gtk_widget_ref (label27);
1996   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label27", label27,
1997                             (GtkDestroyNotify) gtk_widget_unref);
1998   gtk_widget_show (label27);
1999   gtk_table_attach (GTK_TABLE (table3), label27, 0, 1, 3, 4,
2000                     (GtkAttachOptions) (GTK_FILL),
2001                     (GtkAttachOptions) (0), 0, 0);
2002   gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5);
2003
2004   hbox23 = gtk_hbox_new (FALSE, 0);
2005   gtk_widget_ref (hbox23);
2006   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox23", hbox23,
2007                             (GtkDestroyNotify) gtk_widget_unref);
2008   gtk_widget_show (hbox23);
2009   gtk_table_attach (GTK_TABLE (table3), hbox23, 1, 2, 2, 3,
2010                     (GtkAttachOptions) (GTK_FILL),
2011                     (GtkAttachOptions) (GTK_FILL), 0, 0);
2012
2013   sat_pol_vert = gtk_radio_button_new_with_label (pol_group, _("Vertical"));
2014   pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_vert));
2015   gtk_widget_ref (sat_pol_vert);
2016   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_vert", sat_pol_vert,
2017                             (GtkDestroyNotify) gtk_widget_unref);
2018   gtk_widget_show (sat_pol_vert);
2019   gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_vert, FALSE, FALSE, 0);
2020
2021   sat_pol_hor = gtk_radio_button_new_with_label (pol_group, _("Horizontal"));
2022   pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_hor));
2023   gtk_widget_ref (sat_pol_hor);
2024   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_hor", sat_pol_hor,
2025                             (GtkDestroyNotify) gtk_widget_unref);
2026   gtk_widget_show (sat_pol_hor);
2027   gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_hor, FALSE, FALSE, 0);
2028
2029   sat_srate_adj = gtk_adjustment_new (27500, 1000, 30000, 1, 10, 10);
2030   sat_srate = gtk_spin_button_new (GTK_ADJUSTMENT (sat_srate_adj), 1, 0);
2031   gtk_widget_ref (sat_srate);
2032   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_srate", sat_srate,
2033                             (GtkDestroyNotify) gtk_widget_unref);
2034   gtk_widget_show (sat_srate);
2035   gtk_table_attach (GTK_TABLE (table3), sat_srate, 1, 2, 1, 2,
2036                     (GtkAttachOptions) (GTK_FILL),
2037                     (GtkAttachOptions) (0), 0, 0);
2038
2039   sat_fec = gtk_combo_new ();
2040   gtk_widget_ref (sat_fec);
2041   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_fec", sat_fec,
2042                             (GtkDestroyNotify) gtk_widget_unref);
2043   gtk_widget_show (sat_fec);
2044   gtk_table_attach (GTK_TABLE (table3), sat_fec, 1, 2, 3, 4,
2045                     (GtkAttachOptions) (GTK_FILL),
2046                     (GtkAttachOptions) (0), 0, 0);
2047   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "1/2");
2048   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "2/3");
2049   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "3/4");
2050   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "4/5");
2051   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "5/6");
2052   sat_fec_items = g_list_append (sat_fec_items, (gpointer) "7/8");
2053   gtk_combo_set_popdown_strings (GTK_COMBO (sat_fec), sat_fec_items);
2054   g_list_free (sat_fec_items);
2055
2056   combo_entry1 = GTK_COMBO (sat_fec)->entry;
2057   gtk_widget_ref (combo_entry1);
2058   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo_entry1", combo_entry1,
2059                             (GtkDestroyNotify) gtk_widget_unref);
2060   gtk_widget_show (combo_entry1);
2061   gtk_entry_set_text (GTK_ENTRY (combo_entry1), "3/4");
2062
2063   open_sat = gtk_label_new (_("Satellite"));
2064   gtk_widget_ref (open_sat);
2065   gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_sat", open_sat,
2066                             (GtkDestroyNotify) gtk_widget_unref);
2067   gtk_widget_show (open_sat);
2068   gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 3), open_sat);
2069
2070   show_subtitle = gtk_check_button_new_with_label (_("Subtitle"));
2071   gtk_widget_ref (show_subtitle);
2072   gtk_object_set_data_full (GTK_OBJECT (intf_open), "show_subtitle", show_subtitle,
2073                             (GtkDestroyNotify) gtk_widget_unref);
2074   gtk_widget_show (show_subtitle);
2075   gtk_box_pack_start (GTK_BOX (dialog_vbox5), show_subtitle, FALSE, FALSE, 0);
2076
2077   hbox_subtitle = gtk_hbox_new (FALSE, 5);
2078   gtk_widget_ref (hbox_subtitle);
2079   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox_subtitle", hbox_subtitle,
2080                             (GtkDestroyNotify) gtk_widget_unref);
2081   gtk_widget_show (hbox_subtitle);
2082   gtk_box_pack_start (GTK_BOX (dialog_vbox5), hbox_subtitle, TRUE, TRUE, 0);
2083   gtk_container_set_border_width (GTK_CONTAINER (hbox_subtitle), 5);
2084
2085   combo3 = gtk_combo_new ();
2086   gtk_widget_ref (combo3);
2087   gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo3", combo3,
2088                             (GtkDestroyNotify) gtk_widget_unref);
2089   gtk_widget_show (combo3);
2090   gtk_box_pack_start (GTK_BOX (hbox_subtitle), combo3, FALSE, TRUE, 0);
2091
2092   entry_subtitle = GTK_COMBO (combo3)->entry;
2093   gtk_widget_ref (entry_subtitle);
2094   gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_subtitle", entry_subtitle,
2095                             (GtkDestroyNotify) gtk_widget_unref);
2096   gtk_widget_show (entry_subtitle);
2097
2098   vbox14 = gtk_vbox_new (TRUE, 0);
2099   gtk_widget_ref (vbox14);
2100   gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox14", vbox14,
2101                             (GtkDestroyNotify) gtk_widget_unref);
2102   gtk_widget_show (vbox14);
2103   gtk_box_pack_start (GTK_BOX (hbox_subtitle), vbox14, FALSE, FALSE, 0);
2104
2105   button4 = gtk_button_new_with_label (_("Browse..."));
2106   gtk_widget_ref (button4);
2107   gtk_object_set_data_full (GTK_OBJECT (intf_open), "button4", button4,
2108                             (GtkDestroyNotify) gtk_widget_unref);
2109   gtk_widget_show (button4);
2110   gtk_box_pack_start (GTK_BOX (vbox14), button4, FALSE, FALSE, 0);
2111
2112   label37 = gtk_label_new (_("delay"));
2113   gtk_widget_ref (label37);
2114   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label37", label37,
2115                             (GtkDestroyNotify) gtk_widget_unref);
2116   gtk_widget_show (label37);
2117   gtk_box_pack_start (GTK_BOX (hbox_subtitle), label37, TRUE, TRUE, 0);
2118
2119   subtitle_delay_adj = gtk_adjustment_new (0, -1000, 1000, 0.1, 10, 10);
2120   subtitle_delay = gtk_spin_button_new (GTK_ADJUSTMENT (subtitle_delay_adj), 1, 1);
2121   gtk_widget_ref (subtitle_delay);
2122   gtk_object_set_data_full (GTK_OBJECT (intf_open), "subtitle_delay", subtitle_delay,
2123                             (GtkDestroyNotify) gtk_widget_unref);
2124   gtk_widget_show (subtitle_delay);
2125   gtk_box_pack_start (GTK_BOX (hbox_subtitle), subtitle_delay, TRUE, TRUE, 0);
2126
2127   label38 = gtk_label_new (_("fps"));
2128   gtk_widget_ref (label38);
2129   gtk_object_set_data_full (GTK_OBJECT (intf_open), "label38", label38,
2130                             (GtkDestroyNotify) gtk_widget_unref);
2131   gtk_widget_show (label38);
2132   gtk_box_pack_start (GTK_BOX (hbox_subtitle), label38, TRUE, TRUE, 0);
2133
2134   subtitle_fps_adj = gtk_adjustment_new (0, 0, 100, 0.1, 10, 10);
2135   subtitle_fps = gtk_spin_button_new (GTK_ADJUSTMENT (subtitle_fps_adj), 1, 1);
2136   gtk_widget_ref (subtitle_fps);
2137   gtk_object_set_data_full (GTK_OBJECT (intf_open), "subtitle_fps", subtitle_fps,
2138                             (GtkDestroyNotify) gtk_widget_unref);
2139   gtk_widget_show (subtitle_fps);
2140   gtk_box_pack_start (GTK_BOX (hbox_subtitle), subtitle_fps, TRUE, TRUE, 0);
2141
2142   hbox28 = gtk_hbox_new (FALSE, 0);
2143   gtk_widget_ref (hbox28);
2144   gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox28", hbox28,
2145                             (GtkDestroyNotify) gtk_widget_unref);
2146   gtk_widget_show (hbox28);
2147   gtk_box_pack_start (GTK_BOX (dialog_vbox5), hbox28, TRUE, TRUE, 2);
2148
2149   show_sout_settings = gtk_check_button_new_with_label (_("Stream output"));
2150   gtk_widget_ref (show_sout_settings);
2151   gtk_object_set_data_full (GTK_OBJECT (intf_open), "show_sout_settings", show_sout_settings,
2152                             (GtkDestroyNotify) gtk_widget_unref);
2153   gtk_widget_show (show_sout_settings);
2154   gtk_box_pack_start (GTK_BOX (hbox28), show_sout_settings, FALSE, FALSE, 0);
2155
2156   sout_settings = gtk_button_new_with_label (_("Settings..."));
2157   gtk_widget_ref (sout_settings);
2158   gtk_object_set_data_full (GTK_OBJECT (intf_open), "sout_settings", sout_settings,
2159                             (GtkDestroyNotify) gtk_widget_unref);
2160   gtk_widget_show (sout_settings);
2161   gtk_box_pack_start (GTK_BOX (hbox28), sout_settings, FALSE, FALSE, 20);
2162
2163   dialog_action_area5 = GNOME_DIALOG (intf_open)->action_area;
2164   gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_action_area5", dialog_action_area5);
2165   gtk_widget_show (dialog_action_area5);
2166   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area5), GTK_BUTTONBOX_END);
2167   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area5), 8);
2168
2169   gnome_dialog_append_button (GNOME_DIALOG (intf_open), GNOME_STOCK_BUTTON_OK);
2170   button1 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_open)->buttons)->data);
2171   gtk_widget_ref (button1);
2172   gtk_object_set_data_full (GTK_OBJECT (intf_open), "button1", button1,
2173                             (GtkDestroyNotify) gtk_widget_unref);
2174   gtk_widget_show (button1);
2175   GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);
2176
2177   gnome_dialog_append_button (GNOME_DIALOG (intf_open), GNOME_STOCK_BUTTON_CANCEL);
2178   button3 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_open)->buttons)->data);
2179   gtk_widget_ref (button3);
2180   gtk_object_set_data_full (GTK_OBJECT (intf_open), "button3", button3,
2181                             (GtkDestroyNotify) gtk_widget_unref);
2182   gtk_widget_show (button3);
2183   GTK_WIDGET_SET_FLAGS (button3, GTK_CAN_DEFAULT);
2184
2185   gtk_signal_connect_after (GTK_OBJECT (open_notebook), "switch_page",
2186                             GTK_SIGNAL_FUNC (GtkOpenNotebookChanged),
2187                             NULL);
2188   gtk_signal_connect (GTK_OBJECT (entry_file), "changed",
2189                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2190                       NULL);
2191   gtk_signal_connect (GTK_OBJECT (open_browse), "clicked",
2192                       GTK_SIGNAL_FUNC (GtkFileShow),
2193                       "entry_file");
2194   gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled",
2195                       GTK_SIGNAL_FUNC (GtkDiscOpenDvd),
2196                       NULL);
2197   gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled",
2198                       GTK_SIGNAL_FUNC (GtkDiscOpenVcd),
2199                       NULL);
2200   gtk_signal_connect (GTK_OBJECT (disc_name), "changed",
2201                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2202                       NULL);
2203   gtk_signal_connect (GTK_OBJECT (disc_dvd_use_menu), "toggled",
2204                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2205                       NULL);
2206   gtk_signal_connect (GTK_OBJECT (disc_title), "changed",
2207                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2208                       NULL);
2209   gtk_signal_connect (GTK_OBJECT (disc_chapter), "changed",
2210                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2211                       NULL);
2212   gtk_signal_connect (GTK_OBJECT (network_udp), "toggled",
2213                       GTK_SIGNAL_FUNC (GtkNetworkOpenUDP),
2214                       NULL);
2215   gtk_signal_connect (GTK_OBJECT (network_multicast), "toggled",
2216                       GTK_SIGNAL_FUNC (GtkNetworkOpenMulticast),
2217                       NULL);
2218   gtk_signal_connect (GTK_OBJECT (network_channel), "toggled",
2219                       GTK_SIGNAL_FUNC (GtkNetworkOpenChannel),
2220                       NULL);
2221   gtk_signal_connect (GTK_OBJECT (network_http), "toggled",
2222                       GTK_SIGNAL_FUNC (GtkNetworkOpenHTTP),
2223                       NULL);
2224   gtk_signal_connect (GTK_OBJECT (network_multicast_address), "changed",
2225                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2226                       NULL);
2227   gtk_signal_connect (GTK_OBJECT (network_channel_address), "changed",
2228                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2229                       NULL);
2230   gtk_signal_connect (GTK_OBJECT (network_multicast_port), "changed",
2231                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2232                       NULL);
2233   gtk_signal_connect (GTK_OBJECT (network_channel_port), "changed",
2234                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2235                       NULL);
2236   gtk_signal_connect (GTK_OBJECT (network_http_url), "changed",
2237                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2238                       NULL);
2239   gtk_signal_connect (GTK_OBJECT (network_udp_port), "changed",
2240                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2241                       NULL);
2242   gtk_signal_connect (GTK_OBJECT (sat_freq), "changed",
2243                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2244                       NULL);
2245   gtk_signal_connect (GTK_OBJECT (sat_pol_vert), "toggled",
2246                       GTK_SIGNAL_FUNC (GtkSatOpenToggle),
2247                       NULL);
2248   gtk_signal_connect (GTK_OBJECT (sat_pol_hor), "toggled",
2249                       GTK_SIGNAL_FUNC (GtkSatOpenToggle),
2250                       NULL);
2251   gtk_signal_connect (GTK_OBJECT (sat_srate), "changed",
2252                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2253                       NULL);
2254   gtk_signal_connect (GTK_OBJECT (combo_entry1), "changed",
2255                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2256                       NULL);
2257   gtk_signal_connect (GTK_OBJECT (show_subtitle), "clicked",
2258                       GTK_SIGNAL_FUNC (GtkOpenSubtitleShow),
2259                       NULL);
2260   gtk_signal_connect (GTK_OBJECT (entry_subtitle), "changed",
2261                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2262                       NULL);
2263   gtk_signal_connect (GTK_OBJECT (button4), "clicked",
2264                       GTK_SIGNAL_FUNC (GtkFileShow),
2265                       "entry_subtitle");
2266   gtk_signal_connect (GTK_OBJECT (subtitle_delay), "changed",
2267                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2268                       NULL);
2269   gtk_signal_connect (GTK_OBJECT (subtitle_fps), "changed",
2270                       GTK_SIGNAL_FUNC (GtkOpenChanged),
2271                       NULL);
2272   gtk_signal_connect (GTK_OBJECT (show_sout_settings), "clicked",
2273                       GTK_SIGNAL_FUNC (GtkOpenSoutShow),
2274                       NULL);
2275   gtk_signal_connect (GTK_OBJECT (sout_settings), "clicked",
2276                       GTK_SIGNAL_FUNC (GtkSoutSettings),
2277                       NULL);
2278   gtk_signal_connect (GTK_OBJECT (button1), "clicked",
2279                       GTK_SIGNAL_FUNC (GtkOpenOk),
2280                       NULL);
2281   gtk_signal_connect (GTK_OBJECT (button3), "clicked",
2282                       GTK_SIGNAL_FUNC (GtkOpenCancel),
2283                       NULL);
2284
2285   return intf_open;
2286 }
2287
2288 GtkWidget*
2289 create_intf_file (void)
2290 {
2291   GtkWidget *intf_file;
2292   GtkWidget *file_ok;
2293   GtkWidget *file_cancel;
2294
2295   intf_file = gtk_file_selection_new (_("Open File"));
2296   gtk_object_set_data (GTK_OBJECT (intf_file), "intf_file", intf_file);
2297   gtk_container_set_border_width (GTK_CONTAINER (intf_file), 10);
2298   gtk_window_set_modal (GTK_WINDOW (intf_file), TRUE);
2299   gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (intf_file));
2300
2301   file_ok = GTK_FILE_SELECTION (intf_file)->ok_button;
2302   gtk_object_set_data (GTK_OBJECT (intf_file), "file_ok", file_ok);
2303   gtk_widget_show (file_ok);
2304   GTK_WIDGET_SET_FLAGS (file_ok, GTK_CAN_DEFAULT);
2305
2306   file_cancel = GTK_FILE_SELECTION (intf_file)->cancel_button;
2307   gtk_object_set_data (GTK_OBJECT (intf_file), "file_cancel", file_cancel);
2308   gtk_widget_show (file_cancel);
2309   GTK_WIDGET_SET_FLAGS (file_cancel, GTK_CAN_DEFAULT);
2310
2311   gtk_signal_connect (GTK_OBJECT (file_ok), "clicked",
2312                       GTK_SIGNAL_FUNC (GtkFileOk),
2313                       NULL);
2314   gtk_signal_connect (GTK_OBJECT (file_cancel), "clicked",
2315                       GTK_SIGNAL_FUNC (GtkFileCancel),
2316                       NULL);
2317
2318   return intf_file;
2319 }
2320
2321 GtkWidget*
2322 create_intf_modules (void)
2323 {
2324   GtkWidget *intf_modules;
2325   GtkWidget *dialog_vbox1;
2326   GtkWidget *label12;
2327   GtkWidget *dialog_action_area1;
2328   GtkWidget *modules_ok;
2329   GtkWidget *modules_apply;
2330   GtkWidget *modules_cancel;
2331
2332   intf_modules = gnome_dialog_new (_("Modules"), NULL);
2333   gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules);
2334   gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE);
2335
2336   dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox;
2337   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1);
2338   gtk_widget_show (dialog_vbox1);
2339
2340   label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version."));
2341   gtk_widget_ref (label12);
2342   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12,
2343                             (GtkDestroyNotify) gtk_widget_unref);
2344   gtk_widget_show (label12);
2345   gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0);
2346
2347   dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area;
2348   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1);
2349   gtk_widget_show (dialog_action_area1);
2350   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
2351   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
2352
2353   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK);
2354   modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
2355   gtk_widget_ref (modules_ok);
2356   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok,
2357                             (GtkDestroyNotify) gtk_widget_unref);
2358   gtk_widget_show (modules_ok);
2359   GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT);
2360
2361   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY);
2362   modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
2363   gtk_widget_ref (modules_apply);
2364   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply,
2365                             (GtkDestroyNotify) gtk_widget_unref);
2366   gtk_widget_show (modules_apply);
2367   GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT);
2368
2369   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL);
2370   modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
2371   gtk_widget_ref (modules_cancel);
2372   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel,
2373                             (GtkDestroyNotify) gtk_widget_unref);
2374   gtk_widget_show (modules_cancel);
2375   GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT);
2376
2377   return intf_modules;
2378 }
2379
2380 static GnomeUIInfo playlist_add_menu_uiinfo[] =
2381 {
2382   {
2383     GNOME_APP_UI_ITEM, N_("Disc"),
2384     NULL,
2385     (gpointer) GtkDiscOpenShow, NULL, NULL,
2386     GNOME_APP_PIXMAP_NONE, NULL,
2387     0, (GdkModifierType) 0, NULL
2388   },
2389   {
2390     GNOME_APP_UI_ITEM, N_("File"),
2391     NULL,
2392     (gpointer) GtkFileOpenShow, NULL, NULL,
2393     GNOME_APP_PIXMAP_NONE, NULL,
2394     0, (GdkModifierType) 0, NULL
2395   },
2396   {
2397     GNOME_APP_UI_ITEM, N_("Network"),
2398     NULL,
2399     (gpointer) GtkNetworkOpenShow, NULL, NULL,
2400     GNOME_APP_PIXMAP_NONE, NULL,
2401     0, (GdkModifierType) 0, NULL
2402   },
2403   {
2404     GNOME_APP_UI_ITEM, N_("Url"),
2405     NULL,
2406     (gpointer) GtkPlaylistAddUrl, NULL, NULL,
2407     GNOME_APP_PIXMAP_NONE, NULL,
2408     0, (GdkModifierType) 0, NULL
2409   },
2410   GNOMEUIINFO_END
2411 };
2412
2413 static GnomeUIInfo playlist_delete_menu_uiinfo[] =
2414 {
2415   {
2416     GNOME_APP_UI_ITEM, N_("All"),
2417     NULL,
2418     (gpointer) GtkPlaylistDeleteAll, NULL, NULL,
2419     GNOME_APP_PIXMAP_NONE, NULL,
2420     0, (GdkModifierType) 0, NULL
2421   },
2422   {
2423     GNOME_APP_UI_ITEM, N_("Item"),
2424     NULL,
2425     (gpointer) GtkPlaylistDeleteSelected, NULL, NULL,
2426     GNOME_APP_PIXMAP_NONE, NULL,
2427     0, (GdkModifierType) 0, NULL
2428   },
2429   GNOMEUIINFO_END
2430 };
2431
2432 static GnomeUIInfo playlist_selection_menu_uiinfo[] =
2433 {
2434   {
2435     GNOME_APP_UI_ITEM, N_("Crop"),
2436     NULL,
2437     (gpointer) GtkPlaylistCrop, NULL, NULL,
2438     GNOME_APP_PIXMAP_NONE, NULL,
2439     0, (GdkModifierType) 0, NULL
2440   },
2441   {
2442     GNOME_APP_UI_ITEM, N_("Invert"),
2443     NULL,
2444     (gpointer) GtkPlaylistInvert, NULL, NULL,
2445     GNOME_APP_PIXMAP_NONE, NULL,
2446     0, (GdkModifierType) 0, NULL
2447   },
2448   {
2449     GNOME_APP_UI_ITEM, N_("Select"),
2450     NULL,
2451     (gpointer) GtkPlaylistSelect, NULL, NULL,
2452     GNOME_APP_PIXMAP_NONE, NULL,
2453     0, (GdkModifierType) 0, NULL
2454   },
2455   GNOMEUIINFO_END
2456 };
2457
2458 static GnomeUIInfo playlist_menubar_uiinfo[] =
2459 {
2460   {
2461     GNOME_APP_UI_SUBTREE, N_("Add"),
2462     NULL,
2463     playlist_add_menu_uiinfo, NULL, NULL,
2464     GNOME_APP_PIXMAP_NONE, NULL,
2465     0, (GdkModifierType) 0, NULL
2466   },
2467   {
2468     GNOME_APP_UI_SUBTREE, N_("Delete"),
2469     NULL,
2470     playlist_delete_menu_uiinfo, NULL, NULL,
2471     GNOME_APP_PIXMAP_NONE, NULL,
2472     0, (GdkModifierType) 0, NULL
2473   },
2474   {
2475     GNOME_APP_UI_SUBTREE, N_("Selection"),
2476     NULL,
2477     playlist_selection_menu_uiinfo, NULL, NULL,
2478     GNOME_APP_PIXMAP_NONE, NULL,
2479     0, (GdkModifierType) 0, NULL
2480   },
2481   GNOMEUIINFO_END
2482 };
2483
2484 GtkWidget*
2485 create_intf_playlist (void)
2486 {
2487   GtkWidget *intf_playlist;
2488   GtkWidget *playlist_vbox;
2489   GtkWidget *playlist_scrolledwindow;
2490   GtkWidget *playlist_viewport;
2491   GtkWidget *playlist_frame;
2492   GtkWidget *playlist_clist;
2493   GtkWidget *playlist_label_url;
2494   GtkWidget *playlist_label_duration;
2495   GtkWidget *playlist_menubar;
2496   GtkWidget *playlist_action;
2497   GtkWidget *playlist_ok;
2498   GtkWidget *playlist_cancel;
2499
2500   intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
2501   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
2502   gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 400, 300);
2503   gtk_window_set_policy (GTK_WINDOW (intf_playlist), TRUE, TRUE, FALSE);
2504   gnome_dialog_close_hides (GNOME_DIALOG (intf_playlist), TRUE);
2505
2506   playlist_vbox = GNOME_DIALOG (intf_playlist)->vbox;
2507   gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_vbox", playlist_vbox);
2508   gtk_widget_show (playlist_vbox);
2509
2510   playlist_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
2511   gtk_widget_ref (playlist_scrolledwindow);
2512   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_scrolledwindow", playlist_scrolledwindow,
2513                             (GtkDestroyNotify) gtk_widget_unref);
2514   gtk_widget_show (playlist_scrolledwindow);
2515   gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_scrolledwindow, TRUE, TRUE, 0);
2516   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (playlist_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
2517
2518   playlist_viewport = gtk_viewport_new (NULL, NULL);
2519   gtk_widget_ref (playlist_viewport);
2520   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_viewport", playlist_viewport,
2521                             (GtkDestroyNotify) gtk_widget_unref);
2522   gtk_widget_show (playlist_viewport);
2523   gtk_container_add (GTK_CONTAINER (playlist_scrolledwindow), playlist_viewport);
2524
2525   playlist_frame = gtk_frame_new (_("Playlist"));
2526   gtk_widget_ref (playlist_frame);
2527   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_frame", playlist_frame,
2528                             (GtkDestroyNotify) gtk_widget_unref);
2529   gtk_widget_show (playlist_frame);
2530   gtk_container_add (GTK_CONTAINER (playlist_viewport), playlist_frame);
2531   gtk_container_set_border_width (GTK_CONTAINER (playlist_frame), 4);
2532   gtk_frame_set_label_align (GTK_FRAME (playlist_frame), 0.05, 0.5);
2533
2534   playlist_clist = gtk_clist_new (2);
2535   gtk_widget_ref (playlist_clist);
2536   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist,
2537                             (GtkDestroyNotify) gtk_widget_unref);
2538   gtk_widget_show (playlist_clist);
2539   gtk_container_add (GTK_CONTAINER (playlist_frame), playlist_clist);
2540   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 287);
2541   gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 70);
2542   gtk_clist_set_selection_mode (GTK_CLIST (playlist_clist), GTK_SELECTION_EXTENDED);
2543   gtk_clist_column_titles_show (GTK_CLIST (playlist_clist));
2544
2545   playlist_label_url = gtk_label_new (_("Url"));
2546   gtk_widget_ref (playlist_label_url);
2547   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_url", playlist_label_url,
2548                             (GtkDestroyNotify) gtk_widget_unref);
2549   gtk_widget_show (playlist_label_url);
2550   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, playlist_label_url);
2551
2552   playlist_label_duration = gtk_label_new (_("Duration"));
2553   gtk_widget_ref (playlist_label_duration);
2554   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_duration", playlist_label_duration,
2555                             (GtkDestroyNotify) gtk_widget_unref);
2556   gtk_widget_show (playlist_label_duration);
2557   gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, playlist_label_duration);
2558
2559   playlist_menubar = gtk_menu_bar_new ();
2560   gtk_widget_ref (playlist_menubar);
2561   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_menubar", playlist_menubar,
2562                             (GtkDestroyNotify) gtk_widget_unref);
2563   gtk_widget_show (playlist_menubar);
2564   gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_menubar, FALSE, FALSE, 0);
2565   gnome_app_fill_menu (GTK_MENU_SHELL (playlist_menubar), playlist_menubar_uiinfo,
2566                        NULL, FALSE, 0);
2567
2568   gtk_widget_ref (playlist_menubar_uiinfo[0].widget);
2569   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add",
2570                             playlist_menubar_uiinfo[0].widget,
2571                             (GtkDestroyNotify) gtk_widget_unref);
2572
2573   gtk_widget_ref (playlist_add_menu_uiinfo[0].widget);
2574   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_disc",
2575                             playlist_add_menu_uiinfo[0].widget,
2576                             (GtkDestroyNotify) gtk_widget_unref);
2577
2578   gtk_widget_ref (playlist_add_menu_uiinfo[1].widget);
2579   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_file",
2580                             playlist_add_menu_uiinfo[1].widget,
2581                             (GtkDestroyNotify) gtk_widget_unref);
2582
2583   gtk_widget_ref (playlist_add_menu_uiinfo[2].widget);
2584   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_network",
2585                             playlist_add_menu_uiinfo[2].widget,
2586                             (GtkDestroyNotify) gtk_widget_unref);
2587
2588   gtk_widget_ref (playlist_add_menu_uiinfo[3].widget);
2589   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_url",
2590                             playlist_add_menu_uiinfo[3].widget,
2591                             (GtkDestroyNotify) gtk_widget_unref);
2592
2593   gtk_widget_ref (playlist_menubar_uiinfo[1].widget);
2594   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete",
2595                             playlist_menubar_uiinfo[1].widget,
2596                             (GtkDestroyNotify) gtk_widget_unref);
2597
2598   gtk_widget_ref (playlist_delete_menu_uiinfo[0].widget);
2599   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_all",
2600                             playlist_delete_menu_uiinfo[0].widget,
2601                             (GtkDestroyNotify) gtk_widget_unref);
2602
2603   gtk_widget_ref (playlist_delete_menu_uiinfo[1].widget);
2604   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_item",
2605                             playlist_delete_menu_uiinfo[1].widget,
2606                             (GtkDestroyNotify) gtk_widget_unref);
2607
2608   gtk_widget_ref (playlist_menubar_uiinfo[2].widget);
2609   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection",
2610                             playlist_menubar_uiinfo[2].widget,
2611                             (GtkDestroyNotify) gtk_widget_unref);
2612
2613   gtk_widget_ref (playlist_selection_menu_uiinfo[0].widget);
2614   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_crop",
2615                             playlist_selection_menu_uiinfo[0].widget,
2616                             (GtkDestroyNotify) gtk_widget_unref);
2617
2618   gtk_widget_ref (playlist_selection_menu_uiinfo[1].widget);
2619   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_invert",
2620                             playlist_selection_menu_uiinfo[1].widget,
2621                             (GtkDestroyNotify) gtk_widget_unref);
2622
2623   gtk_widget_ref (playlist_selection_menu_uiinfo[2].widget);
2624   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_select",
2625                             playlist_selection_menu_uiinfo[2].widget,
2626                             (GtkDestroyNotify) gtk_widget_unref);
2627
2628   playlist_action = GNOME_DIALOG (intf_playlist)->action_area;
2629   gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_action", playlist_action);
2630   gtk_widget_show (playlist_action);
2631   gtk_button_box_set_layout (GTK_BUTTON_BOX (playlist_action), GTK_BUTTONBOX_END);
2632   gtk_button_box_set_spacing (GTK_BUTTON_BOX (playlist_action), 8);
2633   gtk_button_box_set_child_size (GTK_BUTTON_BOX (playlist_action), 100, 38);
2634
2635   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
2636   playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
2637   gtk_widget_ref (playlist_ok);
2638   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
2639                             (GtkDestroyNotify) gtk_widget_unref);
2640   gtk_widget_show (playlist_ok);
2641   GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
2642
2643   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_CANCEL);
2644   playlist_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
2645   gtk_widget_ref (playlist_cancel);
2646   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_cancel", playlist_cancel,
2647                             (GtkDestroyNotify) gtk_widget_unref);
2648   gtk_widget_show (playlist_cancel);
2649   GTK_WIDGET_SET_FLAGS (playlist_cancel, GTK_CAN_DEFAULT);
2650
2651   gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
2652                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2653                       NULL);
2654   gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event",
2655                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2656                       NULL);
2657   gtk_signal_connect (GTK_OBJECT (playlist_clist), "event",
2658                       GTK_SIGNAL_FUNC (GtkPlaylistEvent),
2659                       NULL);
2660   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received",
2661                       GTK_SIGNAL_FUNC (GtkPlaylistDragData),
2662                       NULL);
2663   gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion",
2664                       GTK_SIGNAL_FUNC (GtkPlaylistDragMotion),
2665                       NULL);
2666   gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
2667                       GTK_SIGNAL_FUNC (GtkPlaylistOk),
2668                       NULL);
2669   gtk_signal_connect (GTK_OBJECT (playlist_cancel), "clicked",
2670                       GTK_SIGNAL_FUNC (GtkPlaylistCancel),
2671                       NULL);
2672
2673   return intf_playlist;
2674 }
2675
2676 GtkWidget*
2677 create_intf_jump (void)
2678 {
2679   GtkWidget *intf_jump;
2680   GtkWidget *jump_vbox;
2681   GtkWidget *jump_frame;
2682   GtkWidget *jump_box;
2683   GtkWidget *jump_label3;
2684   GtkObject *jump_second_spinbutton_adj;
2685   GtkWidget *jump_second_spinbutton;
2686   GtkWidget *jump_label1;
2687   GtkObject *jump_minute_spinbutton_adj;
2688   GtkWidget *jump_minute_spinbutton;
2689   GtkWidget *jump_label2;
2690   GtkObject *jump_hour_spinbutton_adj;
2691   GtkWidget *jump_hour_spinbutton;
2692   GtkWidget *jump_action;
2693   GtkWidget *jump_ok;
2694   GtkWidget *jump_cancel;
2695
2696   intf_jump = gnome_dialog_new (NULL, NULL);
2697   gtk_object_set_data (GTK_OBJECT (intf_jump), "intf_jump", intf_jump);
2698   gtk_window_set_policy (GTK_WINDOW (intf_jump), FALSE, FALSE, FALSE);
2699
2700   jump_vbox = GNOME_DIALOG (intf_jump)->vbox;
2701   gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_vbox", jump_vbox);
2702   gtk_widget_show (jump_vbox);
2703
2704   jump_frame = gtk_frame_new (_("Jump to: "));
2705   gtk_widget_ref (jump_frame);
2706   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_frame", jump_frame,
2707                             (GtkDestroyNotify) gtk_widget_unref);
2708   gtk_widget_show (jump_frame);
2709   gtk_box_pack_start (GTK_BOX (jump_vbox), jump_frame, FALSE, FALSE, 0);
2710   gtk_container_set_border_width (GTK_CONTAINER (jump_frame), 5);
2711   gtk_frame_set_label_align (GTK_FRAME (jump_frame), 0.05, 0.5);
2712
2713   jump_box = gtk_hbox_new (FALSE, 0);
2714   gtk_widget_ref (jump_box);
2715   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_box", jump_box,
2716                             (GtkDestroyNotify) gtk_widget_unref);
2717   gtk_widget_show (jump_box);
2718   gtk_container_add (GTK_CONTAINER (jump_frame), jump_box);
2719   gtk_container_set_border_width (GTK_CONTAINER (jump_box), 5);
2720
2721   jump_label3 = gtk_label_new (_("s."));
2722   gtk_widget_ref (jump_label3);
2723   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label3", jump_label3,
2724                             (GtkDestroyNotify) gtk_widget_unref);
2725   gtk_widget_show (jump_label3);
2726   gtk_box_pack_end (GTK_BOX (jump_box), jump_label3, FALSE, FALSE, 0);
2727
2728   jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
2729   jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0);
2730   gtk_widget_ref (jump_second_spinbutton);
2731   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton,
2732                             (GtkDestroyNotify) gtk_widget_unref);
2733   gtk_widget_show (jump_second_spinbutton);
2734   gtk_box_pack_end (GTK_BOX (jump_box), jump_second_spinbutton, FALSE, FALSE, 5);
2735
2736   jump_label1 = gtk_label_new (_("m:"));
2737   gtk_widget_ref (jump_label1);
2738   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label1", jump_label1,
2739                             (GtkDestroyNotify) gtk_widget_unref);
2740   gtk_widget_show (jump_label1);
2741   gtk_box_pack_end (GTK_BOX (jump_box), jump_label1, FALSE, FALSE, 5);
2742
2743   jump_minute_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 10);
2744   jump_minute_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_minute_spinbutton_adj), 1, 0);
2745   gtk_widget_ref (jump_minute_spinbutton);
2746   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_spinbutton", jump_minute_spinbutton,
2747                             (GtkDestroyNotify) gtk_widget_unref);
2748   gtk_widget_show (jump_minute_spinbutton);
2749   gtk_box_pack_end (GTK_BOX (jump_box), jump_minute_spinbutton, FALSE, FALSE, 5);
2750
2751   jump_label2 = gtk_label_new (_("h:"));
2752   gtk_widget_ref (jump_label2);
2753   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label2", jump_label2,
2754                             (GtkDestroyNotify) gtk_widget_unref);
2755   gtk_widget_show (jump_label2);
2756   gtk_box_pack_end (GTK_BOX (jump_box), jump_label2, FALSE, FALSE, 5);
2757
2758   jump_hour_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 10, 10);
2759   jump_hour_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_hour_spinbutton_adj), 1, 0);
2760   gtk_widget_ref (jump_hour_spinbutton);
2761   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_spinbutton", jump_hour_spinbutton,
2762                             (GtkDestroyNotify) gtk_widget_unref);
2763   gtk_widget_show (jump_hour_spinbutton);
2764   gtk_box_pack_end (GTK_BOX (jump_box), jump_hour_spinbutton, FALSE, FALSE, 5);
2765
2766   jump_action = GNOME_DIALOG (intf_jump)->action_area;
2767   gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_action", jump_action);
2768   gtk_widget_show (jump_action);
2769   gtk_button_box_set_layout (GTK_BUTTON_BOX (jump_action), GTK_BUTTONBOX_END);
2770   gtk_button_box_set_spacing (GTK_BUTTON_BOX (jump_action), 8);
2771
2772   gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_OK);
2773   jump_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
2774   gtk_widget_ref (jump_ok);
2775   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_ok", jump_ok,
2776                             (GtkDestroyNotify) gtk_widget_unref);
2777   gtk_widget_show (jump_ok);
2778   GTK_WIDGET_SET_FLAGS (jump_ok, GTK_CAN_DEFAULT);
2779
2780   gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_CANCEL);
2781   jump_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
2782   gtk_widget_ref (jump_cancel);
2783   gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_cancel", jump_cancel,
2784                             (GtkDestroyNotify) gtk_widget_unref);
2785   gtk_widget_show (jump_cancel);
2786   GTK_WIDGET_SET_FLAGS (jump_cancel, GTK_CAN_DEFAULT);
2787
2788   gtk_signal_connect (GTK_OBJECT (jump_ok), "clicked",
2789                       GTK_SIGNAL_FUNC (GtkJumpOk),
2790                       NULL);
2791   gtk_signal_connect (GTK_OBJECT (jump_cancel), "clicked",
2792                       GTK_SIGNAL_FUNC (GtkJumpCancel),
2793                       NULL);
2794
2795   return intf_jump;
2796 }
2797
2798 GtkWidget*
2799 create_intf_messages (void)
2800 {
2801   GtkWidget *intf_messages;
2802   GtkWidget *dialog_vbox6;
2803   GtkWidget *scrolledwindow1;
2804   GtkWidget *messages_textbox;
2805   GtkWidget *dialog_action_area6;
2806   GtkWidget *messages_ok;
2807
2808   intf_messages = gnome_dialog_new (_("Messages"), NULL);
2809   gtk_object_set_data (GTK_OBJECT (intf_messages), "intf_messages", intf_messages);
2810   gtk_window_set_policy (GTK_WINDOW (intf_messages), TRUE, TRUE, FALSE);
2811   gnome_dialog_close_hides (GNOME_DIALOG (intf_messages), TRUE);
2812
2813   dialog_vbox6 = GNOME_DIALOG (intf_messages)->vbox;
2814   gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_vbox6", dialog_vbox6);
2815   gtk_widget_show (dialog_vbox6);
2816
2817   scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
2818   gtk_widget_ref (scrolledwindow1);
2819   gtk_object_set_data_full (GTK_OBJECT (intf_messages), "scrolledwindow1", scrolledwindow1,
2820                             (GtkDestroyNotify) gtk_widget_unref);
2821   gtk_widget_show (scrolledwindow1);
2822   gtk_box_pack_start (GTK_BOX (dialog_vbox6), scrolledwindow1, TRUE, TRUE, 0);
2823   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
2824
2825   messages_textbox = gtk_text_new (NULL, NULL);
2826   gtk_widget_ref (messages_textbox);
2827   gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_textbox", messages_textbox,
2828                             (GtkDestroyNotify) gtk_widget_unref);
2829   gtk_widget_show (messages_textbox);
2830   gtk_container_add (GTK_CONTAINER (scrolledwindow1), messages_textbox);
2831   gtk_widget_set_usize (messages_textbox, 600, 400);
2832
2833   dialog_action_area6 = GNOME_DIALOG (intf_messages)->action_area;
2834   gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_action_area6", dialog_action_area6);
2835   gtk_widget_show (dialog_action_area6);
2836   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area6), GTK_BUTTONBOX_END);
2837   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area6), 8);
2838
2839   gnome_dialog_append_button (GNOME_DIALOG (intf_messages), GNOME_STOCK_BUTTON_OK);
2840   messages_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_messages)->buttons)->data);
2841   gtk_widget_ref (messages_ok);
2842   gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_ok", messages_ok,
2843                             (GtkDestroyNotify) gtk_widget_unref);
2844   gtk_widget_show (messages_ok);
2845   GTK_WIDGET_SET_FLAGS (messages_ok, GTK_CAN_DEFAULT);
2846
2847   gtk_signal_connect (GTK_OBJECT (intf_messages), "destroy",
2848                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2849                       NULL);
2850   gtk_signal_connect (GTK_OBJECT (intf_messages), "delete_event",
2851                       GTK_SIGNAL_FUNC (gtk_widget_hide),
2852                       NULL);
2853   gtk_signal_connect (GTK_OBJECT (messages_ok), "clicked",
2854                       GTK_SIGNAL_FUNC (GtkMessagesOk),
2855                       NULL);
2856
2857   return intf_messages;
2858 }
2859
2860 GtkWidget*
2861 create_intf_sout (void)
2862 {
2863   GtkWidget *intf_sout;
2864   GtkWidget *dialog_vbox7;
2865   GtkWidget *vbox16;
2866   GtkWidget *frame11;
2867   GtkWidget *hbox26;
2868   GtkWidget *label39;
2869   GtkWidget *combo4;
2870   GtkWidget *sout_entry_target;
2871   GtkWidget *frame12;
2872   GtkWidget *table6;
2873   GSList *sout_access_group = NULL;
2874   GtkWidget *sout_access_file;
2875   GtkWidget *sout_access_udp;
2876   GtkWidget *sout_access_rtp;
2877   GtkWidget *sout_file_path_label;
2878   GtkWidget *sout_udp_address_label;
2879   GtkWidget *sout_udp_address_combo;
2880   GtkWidget *sout_udp_address;
2881   GtkWidget *sout_udp_port_label;
2882   GtkObject *sout_udp_port_adj;
2883   GtkWidget *sout_udp_port;
2884   GtkWidget *combo5;
2885   GtkWidget *sout_file_path;
2886   GtkWidget *hbox27;
2887   GSList *sout_mux_group = NULL;
2888   GtkWidget *sout_mux_ts;
2889   GtkWidget *sout_mux_ps;
2890   GtkWidget *sout_mux_avi;
2891   GtkWidget *dialog_action_area7;
2892   GtkWidget *button7;
2893   GtkWidget *button9;
2894
2895   intf_sout = gnome_dialog_new (NULL, NULL);
2896   gtk_object_set_data (GTK_OBJECT (intf_sout), "intf_sout", intf_sout);
2897   gtk_container_set_border_width (GTK_CONTAINER (intf_sout), 5);
2898   gtk_window_set_modal (GTK_WINDOW (intf_sout), TRUE);
2899   gtk_window_set_policy (GTK_WINDOW (intf_sout), FALSE, FALSE, FALSE);
2900
2901   dialog_vbox7 = GNOME_DIALOG (intf_sout)->vbox;
2902   gtk_object_set_data (GTK_OBJECT (intf_sout), "dialog_vbox7", dialog_vbox7);
2903   gtk_widget_show (dialog_vbox7);
2904
2905   vbox16 = gtk_vbox_new (FALSE, 0);
2906   gtk_widget_ref (vbox16);
2907   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "vbox16", vbox16,
2908                             (GtkDestroyNotify) gtk_widget_unref);
2909   gtk_widget_show (vbox16);
2910   gtk_box_pack_start (GTK_BOX (dialog_vbox7), vbox16, TRUE, TRUE, 0);
2911
2912   frame11 = gtk_frame_new (_("Stream output (MRL)"));
2913   gtk_widget_ref (frame11);
2914   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "frame11", frame11,
2915                             (GtkDestroyNotify) gtk_widget_unref);
2916   gtk_widget_show (frame11);
2917   gtk_box_pack_start (GTK_BOX (vbox16), frame11, FALSE, TRUE, 0);
2918
2919   hbox26 = gtk_hbox_new (FALSE, 0);
2920   gtk_widget_ref (hbox26);
2921   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox26", hbox26,
2922                             (GtkDestroyNotify) gtk_widget_unref);
2923   gtk_widget_show (hbox26);
2924   gtk_container_add (GTK_CONTAINER (frame11), hbox26);
2925   gtk_container_set_border_width (GTK_CONTAINER (hbox26), 5);
2926
2927   label39 = gtk_label_new (_("Destination Target: "));
2928   gtk_widget_ref (label39);
2929   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "label39", label39,
2930                             (GtkDestroyNotify) gtk_widget_unref);
2931   gtk_widget_show (label39);
2932   gtk_box_pack_start (GTK_BOX (hbox26), label39, FALSE, FALSE, 0);
2933
2934   combo4 = gtk_combo_new ();
2935   gtk_widget_ref (combo4);
2936   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "combo4", combo4,
2937                             (GtkDestroyNotify) gtk_widget_unref);
2938   gtk_widget_show (combo4);
2939   gtk_box_pack_start (GTK_BOX (hbox26), combo4, TRUE, TRUE, 0);
2940
2941   sout_entry_target = GTK_COMBO (combo4)->entry;
2942   gtk_widget_ref (sout_entry_target);
2943   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_entry_target", sout_entry_target,
2944                             (GtkDestroyNotify) gtk_widget_unref);
2945   gtk_widget_show (sout_entry_target);
2946
2947   frame12 = gtk_frame_new (NULL);
2948   gtk_widget_ref (frame12);
2949   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "frame12", frame12,
2950                             (GtkDestroyNotify) gtk_widget_unref);
2951   gtk_widget_show (frame12);
2952   gtk_box_pack_start (GTK_BOX (vbox16), frame12, TRUE, TRUE, 0);
2953
2954   table6 = gtk_table_new (3, 5, FALSE);
2955   gtk_widget_ref (table6);
2956   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "table6", table6,
2957                             (GtkDestroyNotify) gtk_widget_unref);
2958   gtk_widget_show (table6);
2959   gtk_container_add (GTK_CONTAINER (frame12), table6);
2960   gtk_table_set_row_spacings (GTK_TABLE (table6), 5);
2961   gtk_table_set_col_spacings (GTK_TABLE (table6), 5);
2962
2963   sout_access_file = gtk_radio_button_new_with_label (sout_access_group, _("File"));
2964   sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_file));
2965   gtk_widget_ref (sout_access_file);
2966   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_file", sout_access_file,
2967                             (GtkDestroyNotify) gtk_widget_unref);
2968   gtk_widget_show (sout_access_file);
2969   gtk_table_attach (GTK_TABLE (table6), sout_access_file, 0, 1, 0, 1,
2970                     (GtkAttachOptions) (GTK_FILL),
2971                     (GtkAttachOptions) (0), 0, 0);
2972
2973   sout_access_udp = gtk_radio_button_new_with_label (sout_access_group, _("UDP"));
2974   sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_udp));
2975   gtk_widget_ref (sout_access_udp);
2976   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_udp", sout_access_udp,
2977                             (GtkDestroyNotify) gtk_widget_unref);
2978   gtk_widget_show (sout_access_udp);
2979   gtk_table_attach (GTK_TABLE (table6), sout_access_udp, 0, 1, 1, 2,
2980                     (GtkAttachOptions) (GTK_FILL),
2981                     (GtkAttachOptions) (0), 0, 0);
2982
2983   sout_access_rtp = gtk_radio_button_new_with_label (sout_access_group, _("RTP"));
2984   sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_rtp));
2985   gtk_widget_ref (sout_access_rtp);
2986   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_rtp", sout_access_rtp,
2987                             (GtkDestroyNotify) gtk_widget_unref);
2988   gtk_widget_show (sout_access_rtp);
2989   gtk_table_attach (GTK_TABLE (table6), sout_access_rtp, 0, 1, 2, 3,
2990                     (GtkAttachOptions) (GTK_FILL),
2991                     (GtkAttachOptions) (0), 0, 0);
2992
2993   sout_file_path_label = gtk_label_new (_("Path:"));
2994   gtk_widget_ref (sout_file_path_label);
2995   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_file_path_label", sout_file_path_label,
2996                             (GtkDestroyNotify) gtk_widget_unref);
2997   gtk_widget_show (sout_file_path_label);
2998   gtk_table_attach (GTK_TABLE (table6), sout_file_path_label, 1, 2, 0, 1,
2999                     (GtkAttachOptions) (GTK_FILL),
3000                     (GtkAttachOptions) (0), 0, 0);
3001   gtk_misc_set_alignment (GTK_MISC (sout_file_path_label), 0, 0.5);
3002
3003   sout_udp_address_label = gtk_label_new (_("Address:"));
3004   gtk_widget_ref (sout_udp_address_label);
3005   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address_label", sout_udp_address_label,
3006                             (GtkDestroyNotify) gtk_widget_unref);
3007   gtk_widget_show (sout_udp_address_label);
3008   gtk_table_attach (GTK_TABLE (table6), sout_udp_address_label, 1, 2, 1, 2,
3009                     (GtkAttachOptions) (GTK_FILL),
3010                     (GtkAttachOptions) (0), 0, 0);
3011   gtk_misc_set_alignment (GTK_MISC (sout_udp_address_label), 0, 0.5);
3012
3013   sout_udp_address_combo = gtk_combo_new ();
3014   gtk_widget_ref (sout_udp_address_combo);
3015   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address_combo", sout_udp_address_combo,
3016                             (GtkDestroyNotify) gtk_widget_unref);
3017   gtk_widget_show (sout_udp_address_combo);
3018   gtk_table_attach (GTK_TABLE (table6), sout_udp_address_combo, 2, 3, 1, 2,
3019                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
3020                     (GtkAttachOptions) (0), 0, 0);
3021
3022   sout_udp_address = GTK_COMBO (sout_udp_address_combo)->entry;
3023   gtk_widget_ref (sout_udp_address);
3024   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address", sout_udp_address,
3025                             (GtkDestroyNotify) gtk_widget_unref);
3026   gtk_widget_show (sout_udp_address);
3027
3028   sout_udp_port_label = gtk_label_new (_("Port"));
3029   gtk_widget_ref (sout_udp_port_label);
3030   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_port_label", sout_udp_port_label,
3031                             (GtkDestroyNotify) gtk_widget_unref);
3032   gtk_widget_show (sout_udp_port_label);
3033   gtk_table_attach (GTK_TABLE (table6), sout_udp_port_label, 3, 4, 1, 2,
3034                     (GtkAttachOptions) (GTK_FILL),
3035                     (GtkAttachOptions) (0), 0, 0);
3036   gtk_misc_set_alignment (GTK_MISC (sout_udp_port_label), 0, 0.5);
3037
3038   sout_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
3039   sout_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (sout_udp_port_adj), 1, 0);
3040   gtk_widget_ref (sout_udp_port);
3041   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_port", sout_udp_port,
3042                             (GtkDestroyNotify) gtk_widget_unref);
3043   gtk_widget_show (sout_udp_port);
3044   gtk_table_attach (GTK_TABLE (table6), sout_udp_port, 4, 5, 1, 2,
3045                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
3046                     (GtkAttachOptions) (0), 0, 0);
3047
3048   combo5 = gtk_combo_new ();
3049   gtk_widget_ref (combo5);
3050   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "combo5", combo5,
3051                             (GtkDestroyNotify) gtk_widget_unref);
3052   gtk_widget_show (combo5);
3053   gtk_table_attach (GTK_TABLE (table6), combo5, 2, 5, 0, 1,
3054                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
3055                     (GtkAttachOptions) (0), 0, 0);
3056
3057   sout_file_path = GTK_COMBO (combo5)->entry;
3058   gtk_widget_ref (sout_file_path);
3059   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_file_path", sout_file_path,
3060                             (GtkDestroyNotify) gtk_widget_unref);
3061   gtk_widget_show (sout_file_path);
3062
3063   hbox27 = gtk_hbox_new (FALSE, 0);
3064   gtk_widget_ref (hbox27);
3065   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox27", hbox27,
3066                             (GtkDestroyNotify) gtk_widget_unref);
3067   gtk_widget_show (hbox27);
3068   gtk_table_attach (GTK_TABLE (table6), hbox27, 4, 5, 2, 3,
3069                     (GtkAttachOptions) (GTK_FILL),
3070                     (GtkAttachOptions) (GTK_FILL), 0, 0);
3071
3072   sout_mux_ts = gtk_radio_button_new_with_label (sout_mux_group, _("TS"));
3073   sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_ts));
3074   gtk_widget_ref (sout_mux_ts);
3075   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_ts", sout_mux_ts,
3076                             (GtkDestroyNotify) gtk_widget_unref);
3077   gtk_widget_show (sout_mux_ts);
3078   gtk_box_pack_start (GTK_BOX (hbox27), sout_mux_ts, FALSE, FALSE, 0);
3079
3080   sout_mux_ps = gtk_radio_button_new_with_label (sout_mux_group, _("PS"));
3081   sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_ps));
3082   gtk_widget_ref (sout_mux_ps);
3083   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_ps", sout_mux_ps,
3084                             (GtkDestroyNotify) gtk_widget_unref);
3085   gtk_widget_show (sout_mux_ps);
3086   gtk_box_pack_start (GTK_BOX (hbox27), sout_mux_ps, FALSE, FALSE, 0);
3087
3088   sout_mux_avi = gtk_radio_button_new_with_label (sout_mux_group, _("AVI"));
3089   sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_avi));
3090   gtk_widget_ref (sout_mux_avi);
3091   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_avi", sout_mux_avi,
3092                             (GtkDestroyNotify) gtk_widget_unref);
3093   gtk_widget_show (sout_mux_avi);
3094   gtk_box_pack_start (GTK_BOX (hbox27), sout_mux_avi, FALSE, FALSE, 0);
3095
3096   dialog_action_area7 = GNOME_DIALOG (intf_sout)->action_area;
3097   gtk_object_set_data (GTK_OBJECT (intf_sout), "dialog_action_area7", dialog_action_area7);
3098   gtk_widget_show (dialog_action_area7);
3099   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area7), GTK_BUTTONBOX_END);
3100   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area7), 8);
3101
3102   gnome_dialog_append_button (GNOME_DIALOG (intf_sout), GNOME_STOCK_BUTTON_OK);
3103   button7 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_sout)->buttons)->data);
3104   gtk_widget_ref (button7);
3105   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "button7", button7,
3106                             (GtkDestroyNotify) gtk_widget_unref);
3107   gtk_widget_show (button7);
3108   GTK_WIDGET_SET_FLAGS (button7, GTK_CAN_DEFAULT);
3109
3110   gnome_dialog_append_button (GNOME_DIALOG (intf_sout), GNOME_STOCK_BUTTON_CANCEL);
3111   button9 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_sout)->buttons)->data);
3112   gtk_widget_ref (button9);
3113   gtk_object_set_data_full (GTK_OBJECT (intf_sout), "button9", button9,
3114                             (GtkDestroyNotify) gtk_widget_unref);
3115   gtk_widget_show (button9);
3116   GTK_WIDGET_SET_FLAGS (button9, GTK_CAN_DEFAULT);
3117
3118   gtk_signal_connect (GTK_OBJECT (sout_access_file), "toggled",
3119                       GTK_SIGNAL_FUNC (GtkSoutSettingsAccessFile),
3120                       NULL);
3121   gtk_signal_connect (GTK_OBJECT (sout_access_udp), "toggled",
3122                       GTK_SIGNAL_FUNC (GtkSoutSettingsAccessUdp),
3123                       NULL);
3124   gtk_signal_connect (GTK_OBJECT (sout_access_rtp), "toggled",
3125                       GTK_SIGNAL_FUNC (GtkSoutSettingsAccessUdp),
3126                       NULL);
3127   gtk_signal_connect (GTK_OBJECT (sout_udp_address), "changed",
3128                       GTK_SIGNAL_FUNC (GtkSoutSettingsChanged),
3129                       NULL);
3130   gtk_signal_connect (GTK_OBJECT (sout_udp_port), "changed",
3131                       GTK_SIGNAL_FUNC (GtkSoutSettingsChanged),
3132                       NULL);
3133   gtk_signal_connect (GTK_OBJECT (sout_file_path), "changed",
3134                       GTK_SIGNAL_FUNC (GtkSoutSettingsChanged),
3135                       NULL);
3136   gtk_signal_connect (GTK_OBJECT (sout_mux_ts), "toggled",
3137                       GTK_SIGNAL_FUNC (GtkSoutSettingsChanged),
3138                       NULL);
3139   gtk_signal_connect (GTK_OBJECT (sout_mux_ps), "toggled",
3140                       GTK_SIGNAL_FUNC (GtkSoutSettingsChanged),
3141                       NULL);
3142   gtk_signal_connect (GTK_OBJECT (sout_mux_avi), "toggled",
3143                       GTK_SIGNAL_FUNC (GtkSoutSettingsChanged),
3144                       NULL);
3145   gtk_signal_connect (GTK_OBJECT (button7), "clicked",
3146                       GTK_SIGNAL_FUNC (GtkSoutSettingsOk),
3147                       NULL);
3148   gtk_signal_connect (GTK_OBJECT (button9), "clicked",
3149                       GTK_SIGNAL_FUNC (GtkSoutSettingsCancel),
3150                       NULL);
3151
3152   return intf_sout;
3153 }
3154