]> git.sesse.net Git - vlc/blobdiff - plugins/gnome/gnome_interface.c
(note: empty CVS mails mean that a new directory has been created,
[vlc] / plugins / gnome / gnome_interface.c
index 73fa64e27e63e1cd369b9b91006abf7ef99f5eed..8896d44107d3bef16af2e4f483af3ef085a0c361 100644 (file)
@@ -28,16 +28,16 @@ static GnomeUIInfo menubar_file_menu_uiinfo[] =
 static GnomeUIInfo menubar_view_menu_uiinfo[] =
 {
   {
-    GNOME_APP_UI_ITEM, N_("P_laylist"),
-    NULL,
+    GNOME_APP_UI_ITEM, N_("_Playlist..."),
+    N_("Open the playlist window"),
     (gpointer) on_menubar_playlist_activate, NULL, NULL,
     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
     0, (GdkModifierType) 0, NULL
   },
   {
-    GNOME_APP_UI_ITEM, N_("_Plugins"),
-    NULL,
-    (gpointer) on_menubar_plugins_activate, NULL, NULL,
+    GNOME_APP_UI_ITEM, N_("_Modules..."),
+    N_("Open the plugin manager"),
+    (gpointer) on_menubar_modules_activate, NULL, NULL,
     GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
     0, (GdkModifierType) 0, NULL
   },
@@ -69,7 +69,7 @@ GtkWidget*
 create_intf_window (void)
 {
   GtkWidget *intf_window;
-  GtkWidget *dock1;
+  GtkWidget *dockitem;
   GtkWidget *toolbar;
   GtkWidget *tmp_toolbar_icon;
   GtkWidget *toolbar_open;
@@ -82,18 +82,21 @@ create_intf_window (void)
   GtkWidget *toolbar_playlist;
   GtkWidget *toolbar_prev;
   GtkWidget *toolbar_next;
-  GtkWidget *scrolledwindow1;
-  GtkWidget *text1;
+  GtkWidget *vbox2;
+  GtkWidget *entry1;
+  GtkWidget *label6;
+  GtkWidget *hscale;
+  GtkWidget *label13;
   GtkWidget *appbar;
 
   intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client"));
   gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
 
-  dock1 = GNOME_APP (intf_window)->dock;
-  gtk_widget_ref (dock1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_window), "dock1", dock1,
+  dockitem = GNOME_APP (intf_window)->dock;
+  gtk_widget_ref (dockitem);
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (dock1);
+  gtk_widget_show (dockitem);
 
   gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo);
 
@@ -126,11 +129,13 @@ create_intf_window (void)
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
                             menubar_view_menu_uiinfo[0].widget,
                             (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_sensitive (menubar_view_menu_uiinfo[0].widget, FALSE);
 
   gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
-  gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_plugins",
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
                             menubar_view_menu_uiinfo[1].widget,
                             (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_sensitive (menubar_view_menu_uiinfo[1].widget, FALSE);
 
   gtk_widget_ref (menubar_uiinfo[2].widget);
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
@@ -141,6 +146,7 @@ create_intf_window (void)
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
                             menubar_settings_menu_uiinfo[0].widget,
                             (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[0].widget, FALSE);
 
   gtk_widget_ref (menubar_uiinfo[3].widget);
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
@@ -190,6 +196,7 @@ create_intf_window (void)
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (toolbar_back);
+  gtk_widget_set_sensitive (toolbar_back, FALSE);
 
   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP);
   toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
@@ -202,6 +209,7 @@ create_intf_window (void)
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (toolbar_stop);
+  gtk_widget_set_sensitive (toolbar_stop, FALSE);
 
   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD);
   toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
@@ -264,6 +272,7 @@ create_intf_window (void)
   gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (toolbar_playlist);
+  gtk_widget_set_sensitive (toolbar_playlist, FALSE);
 
   tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
   toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
@@ -289,22 +298,47 @@ create_intf_window (void)
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (toolbar_next);
 
-  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_ref (scrolledwindow1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_window), "scrolledwindow1", scrolledwindow1,
+  vbox2 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_ref (vbox2);
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox2", vbox2,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (vbox2);
+  gnome_app_set_contents (GNOME_APP (intf_window), vbox2);
+
+  entry1 = gtk_entry_new ();
+  gtk_widget_ref (entry1);
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "entry1", entry1,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (scrolledwindow1);
-  gnome_app_set_contents (GNOME_APP (intf_window), scrolledwindow1);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+  gtk_widget_show (entry1);
+  gtk_box_pack_start (GTK_BOX (vbox2), entry1, FALSE, FALSE, 0);
+  gtk_entry_set_text (GTK_ENTRY (entry1), _("Tired of boring stub messages ? Write your own exciting message here !!"));
 
-  text1 = gtk_text_new (NULL, NULL);
-  gtk_widget_ref (text1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_window), "text1", text1,
+  label6 = gtk_label_new (_("This part of the interface doesn't work yet. You can drag the slider below, though:"));
+  gtk_widget_ref (label6);
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "label6", label6,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (text1);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow1), text1);
-  gtk_text_insert (GTK_TEXT (text1), NULL, NULL, NULL,
-                   _("This is some random text. Nah. Eat at Sam's. Rent this place. Wazaaa."), 69);
+  gtk_widget_show (label6);
+  gtk_box_pack_start (GTK_BOX (vbox2), label6, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
+  gtk_misc_set_padding (GTK_MISC (label6), 5, 0);
+
+  hscale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
+  gtk_widget_ref (hscale);
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "hscale", hscale,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (hscale);
+  gtk_box_pack_start (GTK_BOX (vbox2), hscale, FALSE, FALSE, 0);
+  gtk_scale_set_value_pos (GTK_SCALE (hscale), GTK_POS_BOTTOM);
+  gtk_range_set_update_policy (GTK_RANGE (hscale), GTK_UPDATE_DELAYED);
+
+  label13 = gtk_label_new (_("HEY ! YOU CAN DROP A FILE ON VLC TOO :-)"));
+  gtk_widget_ref (label13);
+  gtk_object_set_data_full (GTK_OBJECT (intf_window), "label13", label13,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (label13);
+  gtk_box_pack_start (GTK_BOX (vbox2), label13, FALSE, FALSE, 0);
+  gtk_misc_set_padding (GTK_MISC (label13), 0, 5);
 
   appbar = gnome_appbar_new (TRUE, TRUE, GNOME_PREFERENCES_NEVER);
   gtk_widget_ref (appbar);
@@ -316,6 +350,9 @@ create_intf_window (void)
   gtk_signal_connect (GTK_OBJECT (intf_window), "destroy",
                       GTK_SIGNAL_FUNC (on_intf_window_destroy),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received",
+                      GTK_SIGNAL_FUNC (on_intf_window_drag_data_received),
+                      NULL);
   gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
   gtk_signal_connect (GTK_OBJECT (toolbar_open), "clicked",
                       GTK_SIGNAL_FUNC (on_toolbar_open_clicked),
@@ -347,6 +384,12 @@ create_intf_window (void)
   gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
                       GTK_SIGNAL_FUNC (on_toolbar_next_clicked),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (hscale), "button_release_event",
+                      GTK_SIGNAL_FUNC (on_hscale_button_release_event),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (hscale), "button_press_event",
+                      GTK_SIGNAL_FUNC (on_hscale_button_press_event),
+                      NULL);
 
   return intf_window;
 }
@@ -454,11 +497,13 @@ create_intf_about (void)
     "Régis Duchesne <regis@via.ecp.fr>",
     "Michel Lespinasse <walken@zoy.org>",
     "Olivier Pomel <pomel@via.ecp.fr>",
+    "Pierre Baillet <oct@zoy.org>",
     "Jean-Philippe Grimaldi <jeanphi@via.ecp.fr>",
     "Andres Krapf <dae@via.ecp.fr>",
     "Christophe Massiot <massiot@via.ecp.fr>",
     "Vincent Seguin <seguin@via.ecp.fr>",
     "Benoit Steiner <benny@via.ecp.fr>",
+    "Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>",
     "Jean-Marc Dressler <polux@via.ecp.fr>",
     "Gaël Hendryckx <jimmy@via.ecp.fr>",
     "Samuel Hocevar <sam@zoy.org>",
@@ -515,112 +560,164 @@ create_intf_fileopen (void)
   return intf_fileopen;
 }
 
+GtkWidget*
+create_intf_modules (void)
+{
+  GtkWidget *intf_modules;
+  GtkWidget *dialog_vbox1;
+  GtkWidget *label12;
+  GtkWidget *dialog_action_area1;
+  GtkWidget *modules_ok;
+  GtkWidget *modules_apply;
+  GtkWidget *modules_cancel;
+
+  intf_modules = gnome_dialog_new (_("Modules"), NULL);
+  gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules);
+  gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE);
+
+  dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox;
+  gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1);
+  gtk_widget_show (dialog_vbox1);
+
+  label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version."));
+  gtk_widget_ref (label12);
+  gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (label12);
+  gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0);
+
+  dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area;
+  gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1);
+  gtk_widget_show (dialog_action_area1);
+  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
+  gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8);
+
+  gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK);
+  modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
+  gtk_widget_ref (modules_ok);
+  gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (modules_ok);
+  GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT);
+
+  gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY);
+  modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
+  gtk_widget_ref (modules_apply);
+  gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (modules_apply);
+  GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT);
+
+  gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL);
+  modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data);
+  gtk_widget_ref (modules_cancel);
+  gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (modules_cancel);
+  GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT);
+
+  gtk_signal_connect (GTK_OBJECT (intf_modules), "destroy",
+                      GTK_SIGNAL_FUNC (on_intf_modules_destroy),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (modules_ok), "clicked",
+                      GTK_SIGNAL_FUNC (on_modules_ok_clicked),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (modules_apply), "clicked",
+                      GTK_SIGNAL_FUNC (on_modules_apply_clicked),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (modules_cancel), "clicked",
+                      GTK_SIGNAL_FUNC (on_modules_cancel_clicked),
+                      NULL);
+
+  return intf_modules;
+}
+
 GtkWidget*
 create_intf_playlist (void)
 {
   GtkWidget *intf_playlist;
-  GtkWidget *vbox1;
-  GtkWidget *scrolledwindow2;
-  GtkWidget *clist1;
-  GtkWidget *label3;
-  GtkWidget *label4;
-  GtkWidget *label5;
-  GtkWidget *hseparator1;
-  GtkWidget *hbox1;
-  GtkWidget *button1;
-  GtkWidget *playlist_close;
-  GtkWidget *playlist_help;
-
-  intf_playlist = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  GtkWidget *dialog_vbox2;
+  GtkWidget *label11;
+  GtkWidget *scrolledwindow3;
+  GtkWidget *clist2;
+  GtkWidget *label8;
+  GtkWidget *label9;
+  GtkWidget *label10;
+  GtkWidget *dialog_action_area2;
+  GtkWidget *playlist_ok;
+
+  intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
   gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
-  gtk_window_set_title (GTK_WINDOW (intf_playlist), _("Playlist"));
 
-  vbox1 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "vbox1", vbox1,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox1);
-  gtk_container_add (GTK_CONTAINER (intf_playlist), vbox1);
-
-  scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_ref (scrolledwindow2);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow2", scrolledwindow2,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (scrolledwindow2);
-  gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow2, TRUE, TRUE, 0);
+  dialog_vbox2 = GNOME_DIALOG (intf_playlist)->vbox;
+  gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_vbox2", dialog_vbox2);
+  gtk_widget_show (dialog_vbox2);
 
-  clist1 = gtk_clist_new (3);
-  gtk_widget_ref (clist1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "clist1", clist1,
+  label11 = gtk_label_new (_("Sorry, the playlist isn't functional yet. Please retry in a later version."));
+  gtk_widget_ref (label11);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label11", label11,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (clist1);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow2), clist1);
-  gtk_clist_set_column_width (GTK_CLIST (clist1), 0, 189);
-  gtk_clist_set_column_width (GTK_CLIST (clist1), 1, 80);
-  gtk_clist_set_column_width (GTK_CLIST (clist1), 2, 80);
-  gtk_clist_column_titles_show (GTK_CLIST (clist1));
+  gtk_widget_show (label11);
+  gtk_box_pack_start (GTK_BOX (dialog_vbox2), label11, FALSE, FALSE, 0);
 
-  label3 = gtk_label_new (_("Name"));
-  gtk_widget_ref (label3);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label3", label3,
+  scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_ref (scrolledwindow3);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow3", scrolledwindow3,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label3);
-  gtk_clist_set_column_widget (GTK_CLIST (clist1), 0, label3);
+  gtk_widget_show (scrolledwindow3);
+  gtk_box_pack_start (GTK_BOX (dialog_vbox2), scrolledwindow3, TRUE, TRUE, 0);
 
-  label4 = gtk_label_new (_("Type"));
-  gtk_widget_ref (label4);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label4", label4,
+  clist2 = gtk_clist_new (3);
+  gtk_widget_ref (clist2);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "clist2", clist2,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label4);
-  gtk_clist_set_column_widget (GTK_CLIST (clist1), 1, label4);
+  gtk_widget_show (clist2);
+  gtk_container_add (GTK_CONTAINER (scrolledwindow3), clist2);
+  gtk_clist_set_column_width (GTK_CLIST (clist2), 0, 211);
+  gtk_clist_set_column_width (GTK_CLIST (clist2), 1, 49);
+  gtk_clist_set_column_width (GTK_CLIST (clist2), 2, 35);
+  gtk_clist_column_titles_hide (GTK_CLIST (clist2));
 
-  label5 = gtk_label_new (_("Length"));
-  gtk_widget_ref (label5);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label5", label5,
+  label8 = gtk_label_new (_("Name"));
+  gtk_widget_ref (label8);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label8", label8,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label5);
-  gtk_clist_set_column_widget (GTK_CLIST (clist1), 2, label5);
+  gtk_widget_show (label8);
+  gtk_clist_set_column_widget (GTK_CLIST (clist2), 0, label8);
 
-  hseparator1 = gtk_hseparator_new ();
-  gtk_widget_ref (hseparator1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "hseparator1", hseparator1,
+  label9 = gtk_label_new (_("Type"));
+  gtk_widget_ref (label9);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label9", label9,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hseparator1);
-  gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, TRUE, 0);
+  gtk_widget_show (label9);
+  gtk_clist_set_column_widget (GTK_CLIST (clist2), 1, label9);
 
-  hbox1 = gtk_hbox_new (TRUE, 0);
-  gtk_widget_ref (hbox1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "hbox1", hbox1,
+  label10 = gtk_label_new (_("Length"));
+  gtk_widget_ref (label10);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label10", label10,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbox1);
-  gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
+  gtk_widget_show (label10);
+  gtk_clist_set_column_widget (GTK_CLIST (clist2), 2, label10);
 
-  button1 = gtk_button_new_with_label (_("Wazaaaa !"));
-  gtk_widget_ref (button1);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "button1", button1,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (button1);
-  gtk_box_pack_start (GTK_BOX (hbox1), button1, FALSE, FALSE, 0);
-
-  playlist_close = gnome_stock_button (GNOME_STOCK_BUTTON_CLOSE);
-  gtk_widget_ref (playlist_close);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_close", playlist_close,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (playlist_close);
-  gtk_box_pack_start (GTK_BOX (hbox1), playlist_close, FALSE, FALSE, 0);
+  dialog_action_area2 = GNOME_DIALOG (intf_playlist)->action_area;
+  gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_action_area2", dialog_action_area2);
+  gtk_widget_show (dialog_action_area2);
+  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_END);
+  gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area2), 8);
 
-  playlist_help = gnome_stock_button (GNOME_STOCK_BUTTON_HELP);
-  gtk_widget_ref (playlist_help);
-  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_help", playlist_help,
+  gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
+  playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
+  gtk_widget_ref (playlist_ok);
+  gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (playlist_help);
-  gtk_box_pack_start (GTK_BOX (hbox1), playlist_help, FALSE, FALSE, 0);
+  gtk_widget_show (playlist_ok);
+  GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
 
   gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
                       GTK_SIGNAL_FUNC (on_intf_playlist_destroy),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (playlist_close), "clicked",
-                      GTK_SIGNAL_FUNC (on_playlist_close_clicked),
+  gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
+                      GTK_SIGNAL_FUNC (on_playlist_ok_clicked),
                       NULL);
 
   return intf_playlist;