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