]> git.sesse.net Git - vlc/blob - plugins/gnome/gnome_interface.c
(note: empty CVS mails mean that a new directory has been created,
[vlc] / plugins / gnome / gnome_interface.c
1 /*
2  * DO NOT EDIT THIS FILE - it is generated by Glade.
3  */
4
5 #ifdef HAVE_CONFIG_H
6 #  include <config.h>
7 #endif
8
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13
14 #include <gnome.h>
15
16 #include "gnome_callbacks.h"
17 #include "gnome_interface.h"
18 #include "gnome_support.h"
19
20 static GnomeUIInfo menubar_file_menu_uiinfo[] =
21 {
22   GNOMEUIINFO_MENU_OPEN_ITEM (on_menubar_open_activate, NULL),
23   GNOMEUIINFO_SEPARATOR,
24   GNOMEUIINFO_MENU_EXIT_ITEM (on_menubar_exit_activate, NULL),
25   GNOMEUIINFO_END
26 };
27
28 static GnomeUIInfo menubar_view_menu_uiinfo[] =
29 {
30   {
31     GNOME_APP_UI_ITEM, N_("_Playlist..."),
32     N_("Open the playlist window"),
33     (gpointer) on_menubar_playlist_activate, NULL, NULL,
34     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
35     0, (GdkModifierType) 0, NULL
36   },
37   {
38     GNOME_APP_UI_ITEM, N_("_Modules..."),
39     N_("Open the plugin manager"),
40     (gpointer) on_menubar_modules_activate, NULL, NULL,
41     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
42     0, (GdkModifierType) 0, NULL
43   },
44   GNOMEUIINFO_END
45 };
46
47 static GnomeUIInfo menubar_settings_menu_uiinfo[] =
48 {
49   GNOMEUIINFO_MENU_PREFERENCES_ITEM (on_menubar_preferences_activate, NULL),
50   GNOMEUIINFO_END
51 };
52
53 static GnomeUIInfo menubar_help_menu_uiinfo[] =
54 {
55   GNOMEUIINFO_MENU_ABOUT_ITEM (on_menubar_about_activate, NULL),
56   GNOMEUIINFO_END
57 };
58
59 static GnomeUIInfo menubar_uiinfo[] =
60 {
61   GNOMEUIINFO_MENU_FILE_TREE (menubar_file_menu_uiinfo),
62   GNOMEUIINFO_MENU_VIEW_TREE (menubar_view_menu_uiinfo),
63   GNOMEUIINFO_MENU_SETTINGS_TREE (menubar_settings_menu_uiinfo),
64   GNOMEUIINFO_MENU_HELP_TREE (menubar_help_menu_uiinfo),
65   GNOMEUIINFO_END
66 };
67
68 GtkWidget*
69 create_intf_window (void)
70 {
71   GtkWidget *intf_window;
72   GtkWidget *dockitem;
73   GtkWidget *toolbar;
74   GtkWidget *tmp_toolbar_icon;
75   GtkWidget *toolbar_open;
76   GtkWidget *toolbar_back;
77   GtkWidget *toolbar_stop;
78   GtkWidget *toolbar_play;
79   GtkWidget *toolbar_pause;
80   GtkWidget *toolbar_slow;
81   GtkWidget *toolbar_fast;
82   GtkWidget *toolbar_playlist;
83   GtkWidget *toolbar_prev;
84   GtkWidget *toolbar_next;
85   GtkWidget *vbox2;
86   GtkWidget *entry1;
87   GtkWidget *label6;
88   GtkWidget *hscale;
89   GtkWidget *label13;
90   GtkWidget *appbar;
91
92   intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client"));
93   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
94
95   dockitem = GNOME_APP (intf_window)->dock;
96   gtk_widget_ref (dockitem);
97   gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem,
98                             (GtkDestroyNotify) gtk_widget_unref);
99   gtk_widget_show (dockitem);
100
101   gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo);
102
103   gtk_widget_ref (menubar_uiinfo[0].widget);
104   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file",
105                             menubar_uiinfo[0].widget,
106                             (GtkDestroyNotify) gtk_widget_unref);
107
108   gtk_widget_ref (menubar_file_menu_uiinfo[0].widget);
109   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open",
110                             menubar_file_menu_uiinfo[0].widget,
111                             (GtkDestroyNotify) gtk_widget_unref);
112
113   gtk_widget_ref (menubar_file_menu_uiinfo[1].widget);
114   gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator1",
115                             menubar_file_menu_uiinfo[1].widget,
116                             (GtkDestroyNotify) gtk_widget_unref);
117
118   gtk_widget_ref (menubar_file_menu_uiinfo[2].widget);
119   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit",
120                             menubar_file_menu_uiinfo[2].widget,
121                             (GtkDestroyNotify) gtk_widget_unref);
122
123   gtk_widget_ref (menubar_uiinfo[1].widget);
124   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view",
125                             menubar_uiinfo[1].widget,
126                             (GtkDestroyNotify) gtk_widget_unref);
127
128   gtk_widget_ref (menubar_view_menu_uiinfo[0].widget);
129   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
130                             menubar_view_menu_uiinfo[0].widget,
131                             (GtkDestroyNotify) gtk_widget_unref);
132   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[0].widget, FALSE);
133
134   gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
135   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
136                             menubar_view_menu_uiinfo[1].widget,
137                             (GtkDestroyNotify) gtk_widget_unref);
138   gtk_widget_set_sensitive (menubar_view_menu_uiinfo[1].widget, FALSE);
139
140   gtk_widget_ref (menubar_uiinfo[2].widget);
141   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
142                             menubar_uiinfo[2].widget,
143                             (GtkDestroyNotify) gtk_widget_unref);
144
145   gtk_widget_ref (menubar_settings_menu_uiinfo[0].widget);
146   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
147                             menubar_settings_menu_uiinfo[0].widget,
148                             (GtkDestroyNotify) gtk_widget_unref);
149   gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[0].widget, FALSE);
150
151   gtk_widget_ref (menubar_uiinfo[3].widget);
152   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
153                             menubar_uiinfo[3].widget,
154                             (GtkDestroyNotify) gtk_widget_unref);
155
156   gtk_widget_ref (menubar_help_menu_uiinfo[0].widget);
157   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about",
158                             menubar_help_menu_uiinfo[0].widget,
159                             (GtkDestroyNotify) gtk_widget_unref);
160
161   toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
162   gtk_widget_ref (toolbar);
163   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar,
164                             (GtkDestroyNotify) gtk_widget_unref);
165   gtk_widget_show (toolbar);
166   gnome_app_add_toolbar (GNOME_APP (intf_window), GTK_TOOLBAR (toolbar), "toolbar",
167                                 GNOME_DOCK_ITEM_BEH_EXCLUSIVE,
168                                 GNOME_DOCK_TOP, 1, 0, 2);
169   gtk_container_set_border_width (GTK_CONTAINER (toolbar), 1);
170   gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16);
171   gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE);
172   gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE);
173
174   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_OPEN);
175   toolbar_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
176                                 GTK_TOOLBAR_CHILD_BUTTON,
177                                 NULL,
178                                 _("Open"),
179                                 _("Open File"), NULL,
180                                 tmp_toolbar_icon, NULL, NULL);
181   gtk_widget_ref (toolbar_open);
182   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_open", toolbar_open,
183                             (GtkDestroyNotify) gtk_widget_unref);
184   gtk_widget_show (toolbar_open);
185
186   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
187
188   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BACK);
189   toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
190                                 GTK_TOOLBAR_CHILD_BUTTON,
191                                 NULL,
192                                 _("Back"),
193                                 _("Go Backwards"), NULL,
194                                 tmp_toolbar_icon, NULL, NULL);
195   gtk_widget_ref (toolbar_back);
196   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
197                             (GtkDestroyNotify) gtk_widget_unref);
198   gtk_widget_show (toolbar_back);
199   gtk_widget_set_sensitive (toolbar_back, FALSE);
200
201   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP);
202   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
203                                 GTK_TOOLBAR_CHILD_BUTTON,
204                                 NULL,
205                                 _("Stop"),
206                                 _("Stop Stream"), NULL,
207                                 tmp_toolbar_icon, NULL, NULL);
208   gtk_widget_ref (toolbar_stop);
209   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
210                             (GtkDestroyNotify) gtk_widget_unref);
211   gtk_widget_show (toolbar_stop);
212   gtk_widget_set_sensitive (toolbar_stop, FALSE);
213
214   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD);
215   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
216                                 GTK_TOOLBAR_CHILD_BUTTON,
217                                 NULL,
218                                 _("Play"),
219                                 _("Play Stream"), NULL,
220                                 tmp_toolbar_icon, NULL, NULL);
221   gtk_widget_ref (toolbar_play);
222   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
223                             (GtkDestroyNotify) gtk_widget_unref);
224   gtk_widget_show (toolbar_play);
225
226   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM);
227   toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
228                                 GTK_TOOLBAR_CHILD_BUTTON,
229                                 NULL,
230                                 _("Pause"),
231                                 _("Pause Stream"), NULL,
232                                 tmp_toolbar_icon, NULL, NULL);
233   gtk_widget_ref (toolbar_pause);
234   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
235                             (GtkDestroyNotify) gtk_widget_unref);
236   gtk_widget_show (toolbar_pause);
237
238   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP);
239   toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
240                                 GTK_TOOLBAR_CHILD_BUTTON,
241                                 NULL,
242                                 _("Slow"),
243                                 _("Play Slower"), NULL,
244                                 tmp_toolbar_icon, NULL, NULL);
245   gtk_widget_ref (toolbar_slow);
246   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
247                             (GtkDestroyNotify) gtk_widget_unref);
248   gtk_widget_show (toolbar_slow);
249
250   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER);
251   toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
252                                 GTK_TOOLBAR_CHILD_BUTTON,
253                                 NULL,
254                                 _("Fast"),
255                                 _("Play Faster"), NULL,
256                                 tmp_toolbar_icon, NULL, NULL);
257   gtk_widget_ref (toolbar_fast);
258   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
259                             (GtkDestroyNotify) gtk_widget_unref);
260   gtk_widget_show (toolbar_fast);
261
262   gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
263
264   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_INDEX);
265   toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
266                                 GTK_TOOLBAR_CHILD_BUTTON,
267                                 NULL,
268                                 _("Playlist"),
269                                 _("Open Playlist"), NULL,
270                                 tmp_toolbar_icon, NULL, NULL);
271   gtk_widget_ref (toolbar_playlist);
272   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
273                             (GtkDestroyNotify) gtk_widget_unref);
274   gtk_widget_show (toolbar_playlist);
275   gtk_widget_set_sensitive (toolbar_playlist, FALSE);
276
277   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
278   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
279                                 GTK_TOOLBAR_CHILD_BUTTON,
280                                 NULL,
281                                 _("Prev"),
282                                 _("Previous File"), NULL,
283                                 tmp_toolbar_icon, NULL, NULL);
284   gtk_widget_ref (toolbar_prev);
285   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev,
286                             (GtkDestroyNotify) gtk_widget_unref);
287   gtk_widget_show (toolbar_prev);
288
289   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_LAST);
290   toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
291                                 GTK_TOOLBAR_CHILD_BUTTON,
292                                 NULL,
293                                 _("Next"),
294                                 _("Next File"), NULL,
295                                 tmp_toolbar_icon, NULL, NULL);
296   gtk_widget_ref (toolbar_next);
297   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next,
298                             (GtkDestroyNotify) gtk_widget_unref);
299   gtk_widget_show (toolbar_next);
300
301   vbox2 = gtk_vbox_new (FALSE, 0);
302   gtk_widget_ref (vbox2);
303   gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox2", vbox2,
304                             (GtkDestroyNotify) gtk_widget_unref);
305   gtk_widget_show (vbox2);
306   gnome_app_set_contents (GNOME_APP (intf_window), vbox2);
307
308   entry1 = gtk_entry_new ();
309   gtk_widget_ref (entry1);
310   gtk_object_set_data_full (GTK_OBJECT (intf_window), "entry1", entry1,
311                             (GtkDestroyNotify) gtk_widget_unref);
312   gtk_widget_show (entry1);
313   gtk_box_pack_start (GTK_BOX (vbox2), entry1, FALSE, FALSE, 0);
314   gtk_entry_set_text (GTK_ENTRY (entry1), _("Tired of boring stub messages ? Write your own exciting message here !!"));
315
316   label6 = gtk_label_new (_("This part of the interface doesn't work yet. You can drag the slider below, though:"));
317   gtk_widget_ref (label6);
318   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label6", label6,
319                             (GtkDestroyNotify) gtk_widget_unref);
320   gtk_widget_show (label6);
321   gtk_box_pack_start (GTK_BOX (vbox2), label6, FALSE, FALSE, 0);
322   gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
323   gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
324   gtk_misc_set_padding (GTK_MISC (label6), 5, 0);
325
326   hscale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
327   gtk_widget_ref (hscale);
328   gtk_object_set_data_full (GTK_OBJECT (intf_window), "hscale", hscale,
329                             (GtkDestroyNotify) gtk_widget_unref);
330   gtk_widget_show (hscale);
331   gtk_box_pack_start (GTK_BOX (vbox2), hscale, FALSE, FALSE, 0);
332   gtk_scale_set_value_pos (GTK_SCALE (hscale), GTK_POS_BOTTOM);
333   gtk_range_set_update_policy (GTK_RANGE (hscale), GTK_UPDATE_DELAYED);
334
335   label13 = gtk_label_new (_("HEY ! YOU CAN DROP A FILE ON VLC TOO :-)"));
336   gtk_widget_ref (label13);
337   gtk_object_set_data_full (GTK_OBJECT (intf_window), "label13", label13,
338                             (GtkDestroyNotify) gtk_widget_unref);
339   gtk_widget_show (label13);
340   gtk_box_pack_start (GTK_BOX (vbox2), label13, FALSE, FALSE, 0);
341   gtk_misc_set_padding (GTK_MISC (label13), 0, 5);
342
343   appbar = gnome_appbar_new (TRUE, TRUE, GNOME_PREFERENCES_NEVER);
344   gtk_widget_ref (appbar);
345   gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar,
346                             (GtkDestroyNotify) gtk_widget_unref);
347   gtk_widget_show (appbar);
348   gnome_app_set_statusbar (GNOME_APP (intf_window), appbar);
349
350   gtk_signal_connect (GTK_OBJECT (intf_window), "destroy",
351                       GTK_SIGNAL_FUNC (on_intf_window_destroy),
352                       NULL);
353   gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
354                       GTK_SIGNAL_FUNC (on_intf_window_drag_data_received),
355                       NULL);
356   gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
357   gtk_signal_connect (GTK_OBJECT (toolbar_open), "clicked",
358                       GTK_SIGNAL_FUNC (on_toolbar_open_clicked),
359                       NULL);
360   gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
361                       GTK_SIGNAL_FUNC (on_toolbar_back_clicked),
362                       NULL);
363   gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
364                       GTK_SIGNAL_FUNC (on_toolbar_stop_clicked),
365                       NULL);
366   gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
367                       GTK_SIGNAL_FUNC (on_toolbar_play_clicked),
368                       NULL);
369   gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
370                       GTK_SIGNAL_FUNC (on_toolbar_pause_clicked),
371                       NULL);
372   gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
373                       GTK_SIGNAL_FUNC (on_toolbar_slow_clicked),
374                       NULL);
375   gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
376                       GTK_SIGNAL_FUNC (on_toolbar_fast_clicked),
377                       NULL);
378   gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
379                       GTK_SIGNAL_FUNC (on_toolbar_playlist_clicked),
380                       NULL);
381   gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
382                       GTK_SIGNAL_FUNC (on_toolbar_prev_clicked),
383                       NULL);
384   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
385                       GTK_SIGNAL_FUNC (on_toolbar_next_clicked),
386                       NULL);
387   gtk_signal_connect (GTK_OBJECT (hscale), "button_release_event",
388                       GTK_SIGNAL_FUNC (on_hscale_button_release_event),
389                       NULL);
390   gtk_signal_connect (GTK_OBJECT (hscale), "button_press_event",
391                       GTK_SIGNAL_FUNC (on_hscale_button_press_event),
392                       NULL);
393
394   return intf_window;
395 }
396
397 static GnomeUIInfo intf_popup_uiinfo[] =
398 {
399   {
400     GNOME_APP_UI_ITEM, N_("_Play"),
401     NULL,
402     (gpointer) on_popup_play_activate, NULL, NULL,
403     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
404     0, (GdkModifierType) 0, NULL
405   },
406   {
407     GNOME_APP_UI_ITEM, N_("Pause"),
408     NULL,
409     (gpointer) on_popup_pause_activate, NULL, NULL,
410     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
411     0, (GdkModifierType) 0, NULL
412   },
413   {
414     GNOME_APP_UI_ITEM, N_("Slow"),
415     NULL,
416     (gpointer) on_popup_slow_activate, NULL, NULL,
417     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP,
418     0, (GdkModifierType) 0, NULL
419   },
420   {
421     GNOME_APP_UI_ITEM, N_("Fast"),
422     NULL,
423     (gpointer) on_popup_fast_activate, NULL, NULL,
424     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER,
425     0, (GdkModifierType) 0, NULL
426   },
427   GNOMEUIINFO_SEPARATOR,
428   GNOMEUIINFO_MENU_OPEN_ITEM (on_popup_open_activate, NULL),
429   GNOMEUIINFO_SEPARATOR,
430   GNOMEUIINFO_MENU_ABOUT_ITEM (on_popup_about_activate, NULL),
431   GNOMEUIINFO_MENU_EXIT_ITEM (on_popup_exit_activate, NULL),
432   GNOMEUIINFO_END
433 };
434
435 GtkWidget*
436 create_intf_popup (void)
437 {
438   GtkWidget *intf_popup;
439
440   intf_popup = gtk_menu_new ();
441   gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup);
442   gnome_app_fill_menu (GTK_MENU_SHELL (intf_popup), intf_popup_uiinfo,
443                        NULL, FALSE, 0);
444
445   gtk_widget_ref (intf_popup_uiinfo[0].widget);
446   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play",
447                             intf_popup_uiinfo[0].widget,
448                             (GtkDestroyNotify) gtk_widget_unref);
449
450   gtk_widget_ref (intf_popup_uiinfo[1].widget);
451   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause",
452                             intf_popup_uiinfo[1].widget,
453                             (GtkDestroyNotify) gtk_widget_unref);
454
455   gtk_widget_ref (intf_popup_uiinfo[2].widget);
456   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
457                             intf_popup_uiinfo[2].widget,
458                             (GtkDestroyNotify) gtk_widget_unref);
459
460   gtk_widget_ref (intf_popup_uiinfo[3].widget);
461   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
462                             intf_popup_uiinfo[3].widget,
463                             (GtkDestroyNotify) gtk_widget_unref);
464
465   gtk_widget_ref (intf_popup_uiinfo[4].widget);
466   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2",
467                             intf_popup_uiinfo[4].widget,
468                             (GtkDestroyNotify) gtk_widget_unref);
469
470   gtk_widget_ref (intf_popup_uiinfo[5].widget);
471   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open",
472                             intf_popup_uiinfo[5].widget,
473                             (GtkDestroyNotify) gtk_widget_unref);
474
475   gtk_widget_ref (intf_popup_uiinfo[6].widget);
476   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
477                             intf_popup_uiinfo[6].widget,
478                             (GtkDestroyNotify) gtk_widget_unref);
479
480   gtk_widget_ref (intf_popup_uiinfo[7].widget);
481   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about",
482                             intf_popup_uiinfo[7].widget,
483                             (GtkDestroyNotify) gtk_widget_unref);
484
485   gtk_widget_ref (intf_popup_uiinfo[8].widget);
486   gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit",
487                             intf_popup_uiinfo[8].widget,
488                             (GtkDestroyNotify) gtk_widget_unref);
489
490   return intf_popup;
491 }
492
493 GtkWidget*
494 create_intf_about (void)
495 {
496   const gchar *authors[] = {
497     "Régis Duchesne <regis@via.ecp.fr>",
498     "Michel Lespinasse <walken@zoy.org>",
499     "Olivier Pomel <pomel@via.ecp.fr>",
500     "Pierre Baillet <oct@zoy.org>",
501     "Jean-Philippe Grimaldi <jeanphi@via.ecp.fr>",
502     "Andres Krapf <dae@via.ecp.fr>",
503     "Christophe Massiot <massiot@via.ecp.fr>",
504     "Vincent Seguin <seguin@via.ecp.fr>",
505     "Benoit Steiner <benny@via.ecp.fr>",
506     "Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>",
507     "Jean-Marc Dressler <polux@via.ecp.fr>",
508     "Gaël Hendryckx <jimmy@via.ecp.fr>",
509     "Samuel Hocevar <sam@zoy.org>",
510     "Brieuc Jeunhomme <bbp@via.ecp.fr>",
511     "Michel Kaempf <maxx@via.ecp.fr>",
512     "Stéphane Borel <stef@via.ecp.fr>",
513     "Renaud Dartus <reno@via.ecp.fr>",
514     "Henri Fallon <henri@via.ecp.fr>",
515     NULL
516   };
517   GtkWidget *intf_about;
518
519   intf_about = gnome_about_new ("VideoLAN Client", VERSION,
520                         _("(C) 1996, 1997, 1998, 1999, 2000, 2001 - the VideoLAN Team"),
521                         authors,
522                         _("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."),
523                         NULL);
524   gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about);
525
526   return intf_about;
527 }
528
529 GtkWidget*
530 create_intf_fileopen (void)
531 {
532   GtkWidget *intf_fileopen;
533   GtkWidget *fileopen_ok;
534   GtkWidget *fileopen_cancel;
535
536   intf_fileopen = gtk_file_selection_new (_("Open File"));
537   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "intf_fileopen", intf_fileopen);
538   gtk_container_set_border_width (GTK_CONTAINER (intf_fileopen), 10);
539
540   fileopen_ok = GTK_FILE_SELECTION (intf_fileopen)->ok_button;
541   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_ok", fileopen_ok);
542   gtk_widget_show (fileopen_ok);
543   GTK_WIDGET_SET_FLAGS (fileopen_ok, GTK_CAN_DEFAULT);
544
545   fileopen_cancel = GTK_FILE_SELECTION (intf_fileopen)->cancel_button;
546   gtk_object_set_data (GTK_OBJECT (intf_fileopen), "fileopen_cancel", fileopen_cancel);
547   gtk_widget_show (fileopen_cancel);
548   GTK_WIDGET_SET_FLAGS (fileopen_cancel, GTK_CAN_DEFAULT);
549
550   gtk_signal_connect (GTK_OBJECT (intf_fileopen), "destroy",
551                       GTK_SIGNAL_FUNC (on_intf_fileopen_destroy),
552                       NULL);
553   gtk_signal_connect (GTK_OBJECT (fileopen_ok), "clicked",
554                       GTK_SIGNAL_FUNC (on_fileopen_ok_clicked),
555                       NULL);
556   gtk_signal_connect (GTK_OBJECT (fileopen_cancel), "clicked",
557                       GTK_SIGNAL_FUNC (on_fileopen_cancel_clicked),
558                       NULL);
559
560   return intf_fileopen;
561 }
562
563 GtkWidget*
564 create_intf_modules (void)
565 {
566   GtkWidget *intf_modules;
567   GtkWidget *dialog_vbox1;
568   GtkWidget *label12;
569   GtkWidget *dialog_action_area1;
570   GtkWidget *modules_ok;
571   GtkWidget *modules_apply;
572   GtkWidget *modules_cancel;
573
574   intf_modules = gnome_dialog_new (_("Modules"), NULL);
575   gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules);
576   gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE);
577
578   dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox;
579   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1);
580   gtk_widget_show (dialog_vbox1);
581
582   label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version."));
583   gtk_widget_ref (label12);
584   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12,
585                             (GtkDestroyNotify) gtk_widget_unref);
586   gtk_widget_show (label12);
587   gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0);
588
589   dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area;
590   gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1);
591   gtk_widget_show (dialog_action_area1);
592   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
593   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
594
595   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK);
596   modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
597   gtk_widget_ref (modules_ok);
598   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok,
599                             (GtkDestroyNotify) gtk_widget_unref);
600   gtk_widget_show (modules_ok);
601   GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT);
602
603   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY);
604   modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
605   gtk_widget_ref (modules_apply);
606   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply,
607                             (GtkDestroyNotify) gtk_widget_unref);
608   gtk_widget_show (modules_apply);
609   GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT);
610
611   gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL);
612   modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
613   gtk_widget_ref (modules_cancel);
614   gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel,
615                             (GtkDestroyNotify) gtk_widget_unref);
616   gtk_widget_show (modules_cancel);
617   GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT);
618
619   gtk_signal_connect (GTK_OBJECT (intf_modules), "destroy",
620                       GTK_SIGNAL_FUNC (on_intf_modules_destroy),
621                       NULL);
622   gtk_signal_connect (GTK_OBJECT (modules_ok), "clicked",
623                       GTK_SIGNAL_FUNC (on_modules_ok_clicked),
624                       NULL);
625   gtk_signal_connect (GTK_OBJECT (modules_apply), "clicked",
626                       GTK_SIGNAL_FUNC (on_modules_apply_clicked),
627                       NULL);
628   gtk_signal_connect (GTK_OBJECT (modules_cancel), "clicked",
629                       GTK_SIGNAL_FUNC (on_modules_cancel_clicked),
630                       NULL);
631
632   return intf_modules;
633 }
634
635 GtkWidget*
636 create_intf_playlist (void)
637 {
638   GtkWidget *intf_playlist;
639   GtkWidget *dialog_vbox2;
640   GtkWidget *label11;
641   GtkWidget *scrolledwindow3;
642   GtkWidget *clist2;
643   GtkWidget *label8;
644   GtkWidget *label9;
645   GtkWidget *label10;
646   GtkWidget *dialog_action_area2;
647   GtkWidget *playlist_ok;
648
649   intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
650   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
651
652   dialog_vbox2 = GNOME_DIALOG (intf_playlist)->vbox;
653   gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_vbox2", dialog_vbox2);
654   gtk_widget_show (dialog_vbox2);
655
656   label11 = gtk_label_new (_("Sorry, the playlist isn't functional yet. Please retry in a later version."));
657   gtk_widget_ref (label11);
658   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label11", label11,
659                             (GtkDestroyNotify) gtk_widget_unref);
660   gtk_widget_show (label11);
661   gtk_box_pack_start (GTK_BOX (dialog_vbox2), label11, FALSE, FALSE, 0);
662
663   scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
664   gtk_widget_ref (scrolledwindow3);
665   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow3", scrolledwindow3,
666                             (GtkDestroyNotify) gtk_widget_unref);
667   gtk_widget_show (scrolledwindow3);
668   gtk_box_pack_start (GTK_BOX (dialog_vbox2), scrolledwindow3, TRUE, TRUE, 0);
669
670   clist2 = gtk_clist_new (3);
671   gtk_widget_ref (clist2);
672   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "clist2", clist2,
673                             (GtkDestroyNotify) gtk_widget_unref);
674   gtk_widget_show (clist2);
675   gtk_container_add (GTK_CONTAINER (scrolledwindow3), clist2);
676   gtk_clist_set_column_width (GTK_CLIST (clist2), 0, 211);
677   gtk_clist_set_column_width (GTK_CLIST (clist2), 1, 49);
678   gtk_clist_set_column_width (GTK_CLIST (clist2), 2, 35);
679   gtk_clist_column_titles_hide (GTK_CLIST (clist2));
680
681   label8 = gtk_label_new (_("Name"));
682   gtk_widget_ref (label8);
683   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label8", label8,
684                             (GtkDestroyNotify) gtk_widget_unref);
685   gtk_widget_show (label8);
686   gtk_clist_set_column_widget (GTK_CLIST (clist2), 0, label8);
687
688   label9 = gtk_label_new (_("Type"));
689   gtk_widget_ref (label9);
690   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label9", label9,
691                             (GtkDestroyNotify) gtk_widget_unref);
692   gtk_widget_show (label9);
693   gtk_clist_set_column_widget (GTK_CLIST (clist2), 1, label9);
694
695   label10 = gtk_label_new (_("Length"));
696   gtk_widget_ref (label10);
697   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label10", label10,
698                             (GtkDestroyNotify) gtk_widget_unref);
699   gtk_widget_show (label10);
700   gtk_clist_set_column_widget (GTK_CLIST (clist2), 2, label10);
701
702   dialog_action_area2 = GNOME_DIALOG (intf_playlist)->action_area;
703   gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_action_area2", dialog_action_area2);
704   gtk_widget_show (dialog_action_area2);
705   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_END);
706   gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area2), 8);
707
708   gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
709   playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
710   gtk_widget_ref (playlist_ok);
711   gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
712                             (GtkDestroyNotify) gtk_widget_unref);
713   gtk_widget_show (playlist_ok);
714   GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
715
716   gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
717                       GTK_SIGNAL_FUNC (on_intf_playlist_destroy),
718                       NULL);
719   gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
720                       GTK_SIGNAL_FUNC (on_playlist_ok_clicked),
721                       NULL);
722
723   return intf_playlist;
724 }
725