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