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