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