replace primary transport buttons
[rugen] / src / interface.c
index 5fc0aab..65b9814 100644 (file)
 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
   g_object_set_data (G_OBJECT (component), name, widget)
 
-static void create_buttons_transport(GtkWidget *top, GtkWidget *parent_box)
+static
+GtkWidget *
+create_buttons_transport(GtkWidget *top, int type)
 {
-    int i;
-    GtkWidget *hbox;
-    gchar name[32];
-    const static struct
-    {
-        gchar* tooltip;
-        gchar* filename;
-    } buttons[] =
-    {
-        {
-            "Beginning of playlist",
-            "stock_media-begin-16.png"
-        },
-        {
-            "Start of clip",
-            "stock_media-prev-16.png"
-        },
-        {
-            "Rewind",
-            "stock_media-rew-16.png"
-        },
-        {
-            "Previous frame",
-            "stock_media-prev-frame-16.png"
-        },
-        {
-            "Pause",
-            "stock_media-pause-16.png"
-        },
-        {
-            "Play",
-            "stock_media-play-16.png"
-        },
-        {
-            "Stop",
-            "stock_media-stop-16.png"
-        },
-        {
-            "Next frame",
-            "stock_media-next-frame-16.png"
-        },
-        {
-            "Fast forward",
-            "stock_media-fwd-16.png"
-        },
-        {
-            "Next clip",
-            "stock_media-next-16.png"
-        },
-        {
-            "End of playlist",
-            "stock_media-end-16.png"
-        },
-        {
-            "Loop On",
-            "eof-loop-16.png"
-        },
-        {
-            "Loop Off",
-            "eof-pause-16.png"
-        },
-        {
-            NULL,
-            NULL
-        }
-    };
-
-    hbox = gtk_hbox_new (FALSE, 0);
-    gtk_widget_show (hbox);
-    gtk_box_pack_start (GTK_BOX (parent_box), hbox, FALSE, TRUE, 0);
-
-
-    for(i = 0; buttons[i].filename; i++)
-    {
-        GtkWidget *transport, *image;
-
-        transport = gtk_button_new ();
-        gtk_widget_show (transport);
-        gtk_box_pack_start (GTK_BOX (hbox), transport, TRUE, FALSE, 0);
-        gtk_widget_set_size_request (transport, 34, 25);
-        GTK_WIDGET_UNSET_FLAGS (transport, GTK_CAN_FOCUS);
-        gtk_button_set_relief (GTK_BUTTON (transport), GTK_RELIEF_NONE);
-        gtk_widget_set_tooltip_text (transport, buttons[i].tooltip);
-
-        image = gtk_image_new_from_pixbuf(create_pixbuf(buttons[i].filename));
-        gtk_widget_show (image);
-        gtk_container_add (GTK_CONTAINER (transport), image);
-
-        snprintf(name, sizeof(name), "transport_%d", i);
-        GLADE_HOOKUP_OBJECT (top, transport, name);
-
-        snprintf(name, sizeof(name), "transport_image_%d", i);
-        GLADE_HOOKUP_OBJECT (top, image, name);
-    };
-
-    GLADE_HOOKUP_OBJECT (top, hbox, "buttons_transport_hbox");
+       int i;
+       GtkWidget *hbox;
+       gchar name[32];
+       const static struct
+       {
+               int type;
+               gchar* tooltip;
+               gchar* filename;
+       } buttons[] =
+       {
+               {
+                       2,
+                       "Beginning of playlist",
+                       "stock_media-begin-16.png"
+               },
+               {
+                       2,
+                       "Start of clip",
+                       "stock_media-prev-16.png"
+               },
+               {
+                       2,
+                       "Rewind",
+                       "stock_media-rew-16.png"
+               },
+               {
+                       2,
+                       "Previous frame",
+                       "stock_media-prev-frame-16.png"
+               },
+               {
+                       1,
+                       "Pause",
+                       "player_pause_32x32.png"
+               },
+               {
+                       1,
+                       "Play",
+                       "player_play_64x32.png"
+               },
+               {
+                       1,
+                       "Stop",
+                       "player_stop_32x32.png"
+               },
+               {
+                       2,
+                       "Next frame",
+                       "stock_media-next-frame-16.png"
+               },
+               {
+                       2,
+                       "Fast forward",
+                       "stock_media-fwd-16.png"
+               },
+               {
+                       2,
+                       "Next clip",
+                       "stock_media-next-16.png"
+               },
+               {
+                       2,
+                       "End of playlist",
+                       "stock_media-end-16.png"
+               },
+               {
+                       2,
+                       "Loop On",
+                       "eof-loop-16.png"
+               },
+               {
+                       2,
+                       "Loop Off",
+                       "eof-pause-16.png"
+               },
+               {
+                       0,
+                       NULL,
+                       NULL
+               }
+       };
+
+       hbox = gtk_hbox_new (FALSE, 0);
+       gtk_widget_show (hbox);
+
+
+       for(i = 0; buttons[i].filename; i++)
+       {
+               GtkWidget *transport, *image;
+
+               if ( type != buttons[i].type )
+                       continue;
+
+               transport = gtk_button_new ();
+               gtk_widget_show (transport);
+               gtk_box_pack_start (GTK_BOX (hbox), transport, TRUE, FALSE, 0);
+               GTK_WIDGET_UNSET_FLAGS (transport, GTK_CAN_FOCUS);
+               gtk_button_set_relief (GTK_BUTTON (transport), GTK_RELIEF_NONE);
+               gtk_widget_set_tooltip_text (transport, buttons[i].tooltip);
+
+               image = gtk_image_new_from_pixbuf(create_pixbuf(buttons[i].filename));
+               gtk_widget_show (image);
+               gtk_container_add (GTK_CONTAINER (transport), image);
+
+               snprintf(name, sizeof(name), "transport_%d", i);
+               GLADE_HOOKUP_OBJECT (top, transport, name);
+
+               snprintf(name, sizeof(name), "transport_image_%d", i);
+               GLADE_HOOKUP_OBJECT (top, image, name);
+       };
+
+       snprintf(name, sizeof(name), "buttons_transport_hbox_%d", type);
+       GLADE_HOOKUP_OBJECT (top, hbox, name);
+
+       return hbox;
+};
+
+static
+GtkWidget *
+create_block_buttons_transport(GtkWidget *top, int type)
+{
+       gchar name[32];
+       GtkWidget *hbox, *label[2];
+
+       hbox = gtk_hbox_new (FALSE, 0);
+       gtk_widget_show (hbox);
+
+       snprintf(name, sizeof(name), "bbt_label_%da", type);
+       label[0] = gtk_label_new (name);
+       gtk_widget_show (label[0]);
+       gtk_box_pack_start (GTK_BOX (hbox), label[0], TRUE, TRUE, 0);
+       gtk_label_set_justify (GTK_LABEL (label[0]), GTK_JUSTIFY_LEFT);
+       GLADE_HOOKUP_OBJECT (top, label[0], name);
+
+
+       gtk_box_pack_start (GTK_BOX (hbox),
+               create_buttons_transport(top, type),
+               FALSE, TRUE, 0);
+
+       snprintf(name, sizeof(name), "bbt_label_%db", type);
+       label[1] = gtk_label_new (name);
+       gtk_widget_show (label[1]);
+       gtk_box_pack_start (GTK_BOX (hbox), label[1], TRUE, TRUE, 0);
+       gtk_label_set_justify (GTK_LABEL (label[1]), GTK_JUSTIFY_LEFT);
+       GLADE_HOOKUP_OBJECT (top, label[0], name);
+
+       return hbox;
 };
 
 GtkWidget*
@@ -153,9 +206,6 @@ create_gdv1394d (void)
   GtkWidget *notebook1;
   GtkWidget *empty_notebook_page;
   GtkWidget *label40;
-  GtkWidget *hbox20;
-  GtkWidget *label46;
-  GtkWidget *label47;
   GtkWidget *vbox_trim;
   GtkWidget *statusbar;
 
@@ -276,26 +326,18 @@ create_gdv1394d (void)
   gtk_widget_show (empty_notebook_page);
   gtk_container_add (GTK_CONTAINER (notebook1), empty_notebook_page);
 
-  label40 = gtk_label_new ("");
+  label40 = gtk_label_new ("label40");
   gtk_widget_show (label40);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label40);
   gtk_label_set_justify (GTK_LABEL (label40), GTK_JUSTIFY_LEFT);
 
-  hbox20 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (hbox20);
-  gtk_box_pack_start (GTK_BOX (vbox6), hbox20, FALSE, TRUE, 0);
-
-  label46 = gtk_label_new ("");
-  gtk_widget_show (label46);
-  gtk_box_pack_start (GTK_BOX (hbox20), label46, TRUE, TRUE, 0);
-  gtk_label_set_justify (GTK_LABEL (label46), GTK_JUSTIFY_LEFT);
+       gtk_box_pack_start (GTK_BOX (vbox6),
+               create_block_buttons_transport(gdv1394d, 1),
+               FALSE, TRUE, 0);
 
-  create_buttons_transport(gdv1394d, hbox20);
-
-  label47 = gtk_label_new ("");
-  gtk_widget_show (label47);
-  gtk_box_pack_start (GTK_BOX (hbox20), label47, TRUE, TRUE, 0);
-  gtk_label_set_justify (GTK_LABEL (label47), GTK_JUSTIFY_LEFT);
+       gtk_box_pack_start (GTK_BOX (vbox6),
+               create_block_buttons_transport(gdv1394d, 2),
+               FALSE, TRUE, 0);
 
   vbox_trim = gtk_vbox_new (FALSE, 0);
   gtk_widget_show (vbox_trim);
@@ -328,9 +370,6 @@ create_gdv1394d (void)
   GLADE_HOOKUP_OBJECT (gdv1394d, vbox6, "vbox6");
   GLADE_HOOKUP_OBJECT (gdv1394d, notebook1, "notebook1");
   GLADE_HOOKUP_OBJECT (gdv1394d, label40, "label40");
-  GLADE_HOOKUP_OBJECT (gdv1394d, hbox20, "hbox20");
-  GLADE_HOOKUP_OBJECT (gdv1394d, label46, "label46");
-  GLADE_HOOKUP_OBJECT (gdv1394d, label47, "label47");
   GLADE_HOOKUP_OBJECT (gdv1394d, vbox_trim, "vbox_trim");
   GLADE_HOOKUP_OBJECT (gdv1394d, statusbar, "statusbar");
 
@@ -493,643 +532,331 @@ create_window_connection (void)
   return window_connection;
 }
 
-GtkWidget*
-create_page_status (void)
+static GtkWidget* create_pane_status (GtkWidget* parent, GtkWidget* top)
 {
-  GtkWidget *page_status;
-  GtkWidget *scrolledwindow4;
-  GtkWidget *viewport1;
-  GtkWidget *table3;
-  GtkWidget *label_unit_0;
-  GtkWidget *label_unit_1;
-  GtkWidget *label_unit_2;
-  GtkWidget *label_unit_3;
-  GtkWidget *label_unit_4;
-  GtkWidget *label_unit_5;
-  GtkWidget *label_unit_6;
-  GtkWidget *label_unit_7;
-  GtkWidget *label_unit_8;
-  GtkWidget *label_unit_9;
-  GtkWidget *label_unit_10;
-  GtkWidget *label_unit_11;
-  GtkWidget *label_unit_13;
-  GtkWidget *label_unit_14;
-  GtkWidget *label_unit_15;
-  GtkWidget *radiobutton_0;
-  GSList *radiobutton_0_group = NULL;
-  GtkWidget *radiobutton_1;
-  GtkWidget *radiobutton_2;
-  GtkWidget *radiobutton_3;
-  GtkWidget *radiobutton_4;
-  GtkWidget *radiobutton_5;
-  GtkWidget *radiobutton_6;
-  GtkWidget *radiobutton_7;
-  GtkWidget *radiobutton_8;
-  GtkWidget *radiobutton_9;
-  GtkWidget *radiobutton_10;
-  GtkWidget *radiobutton_11;
-  GtkWidget *label_unit_12;
-  GtkWidget *radiobutton_12;
-  GtkWidget *radiobutton_13;
-  GtkWidget *radiobutton_14;
-  GtkWidget *radiobutton_15;
-
-  page_status = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_title (GTK_WINDOW (page_status), _("page_status"));
-
-  scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_show (scrolledwindow4);
-  gtk_container_add (GTK_CONTAINER (page_status), scrolledwindow4);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
-  viewport1 = gtk_viewport_new (NULL, NULL);
-  gtk_widget_show (viewport1);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow4), viewport1);
-
-  table3 = gtk_table_new (32, 1, FALSE);
-  gtk_widget_show (table3);
-  gtk_container_add (GTK_CONTAINER (viewport1), table3);
-
-  label_unit_0 = gtk_label_new (_("00"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_0, 0, 1, 1, 2,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_0), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_0), 0, 0.5);
-
-  label_unit_1 = gtk_label_new (_("01"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_1, 0, 1, 3, 4,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_1), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_1), 0, 0.5);
-
-  label_unit_2 = gtk_label_new (_("02"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_2, 0, 1, 5, 6,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_2), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_2), 0, 0.5);
-
-  label_unit_3 = gtk_label_new (_("03"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_3, 0, 1, 7, 8,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_3), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_3), 0, 0.5);
-
-  label_unit_4 = gtk_label_new (_("04"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_4, 0, 1, 9, 10,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_4), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_4), 0, 0.5);
-
-  label_unit_5 = gtk_label_new (_("05"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_5, 0, 1, 11, 12,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_5), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_5), 0, 0.5);
-
-  label_unit_6 = gtk_label_new (_("06"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_6, 0, 1, 13, 14,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_6), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_6), 0, 0.5);
-
-  label_unit_7 = gtk_label_new (_("07"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_7, 0, 1, 15, 16,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_7), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_7), 0, 0.5);
-
-  label_unit_8 = gtk_label_new (_("08"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_8, 0, 1, 17, 18,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_8), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_8), 0, 0.5);
-
-  label_unit_9 = gtk_label_new (_("09"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_9, 0, 1, 19, 20,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_9), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_9), 0, 0.5);
-
-  label_unit_10 = gtk_label_new (_("10"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_10, 0, 1, 21, 22,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_10), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_10), 0, 0.5);
-
-  label_unit_11 = gtk_label_new (_("11"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_11, 0, 1, 23, 24,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_11), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_11), 0, 0.5);
-
-  label_unit_13 = gtk_label_new (_("13"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_13, 0, 1, 27, 28,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_13), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_13), 0, 0.5);
-
-  label_unit_14 = gtk_label_new (_("14"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_14, 0, 1, 29, 30,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_14), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_14), 0, 0.5);
-
-  label_unit_15 = gtk_label_new (_("15"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_15, 0, 1, 31, 32,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_15), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_15), 0, 0.5);
-
-  radiobutton_0 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_0, 0, 1, 0, 1,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_0), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_0));
-
-  radiobutton_1 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_1, 0, 1, 2, 3,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_1), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_1));
-
-  radiobutton_2 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_2, 0, 1, 4, 5,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_2), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_2));
-
-  radiobutton_3 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_3, 0, 1, 6, 7,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_3), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_3));
-
-  radiobutton_4 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_4, 0, 1, 8, 9,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_4), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_4));
-
-  radiobutton_5 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_5, 0, 1, 10, 11,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_5), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_5));
+       int i;
+       char buf[32];
+
+       GtkWidget *scrolledwindow;
+       GtkWidget *viewport;
+       GtkWidget *table;
+       GSList *radiobutton_group = NULL;
+
+       // create a scrolled area
+       scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
+       gtk_widget_show (scrolledwindow);
+       if ( parent )
+               gtk_container_add (GTK_CONTAINER (parent), scrolledwindow);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+       GLADE_HOOKUP_OBJECT (top, scrolledwindow, "scrolledwindow4");
+
+       // create a viewport
+       viewport = gtk_viewport_new (NULL, NULL);
+       gtk_widget_show (viewport);
+       gtk_container_add (GTK_CONTAINER (scrolledwindow), viewport);
+       GLADE_HOOKUP_OBJECT (top, viewport, "viewport1");
+
+       // create a table for displaying radios
+       table = gtk_table_new (32, 1, FALSE);
+       gtk_widget_show (table);
+       gtk_container_add (GTK_CONTAINER (viewport), table);
+       GLADE_HOOKUP_OBJECT (top, table, "table3");
+
+       for (i = 0; i < 16; i++)
+       {
+               GtkWidget *label_unit;
+               GtkWidget *radiobutton;
+
+               // label unit
+               snprintf(buf, sizeof(buf), "%.2d", i);
+               label_unit = gtk_label_new (buf);
+               gtk_table_attach (GTK_TABLE (table), label_unit, 0, 1, i * 2 + 1, i * 2 + 2,
+                       (GtkAttachOptions) (GTK_FILL),
+                       (GtkAttachOptions) (0), 0, 0);
+               gtk_label_set_justify (GTK_LABEL (label_unit), GTK_JUSTIFY_LEFT);
+               gtk_misc_set_alignment (GTK_MISC (label_unit), 0, 0.5);
+               snprintf(buf, sizeof(buf), "label_unit_%d", i);
+               GLADE_HOOKUP_OBJECT (top, label_unit, buf);
+
+               // radio button
+               radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
+               gtk_table_attach (GTK_TABLE (table), radiobutton, 0, 1, i * 2, i * 2 + 1,
+                       (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                       (GtkAttachOptions) (0), 0, 0);
+               gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton), radiobutton_group);
+               radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton));
+               snprintf(buf, sizeof(buf), "radiobutton_%d", i);
+               GLADE_HOOKUP_OBJECT (top, radiobutton, buf);
+       }
+
+       return scrolledwindow;
+}
 
-  radiobutton_6 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_6, 0, 1, 12, 13,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_6), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_6));
+static
+GtkWidget*
+create_playlist_buttons( GtkWidget* parent, GtkWidget* top )
+{
+       int i;
+       const static struct
+       {
+               gchar* tooltip;
+               gchar* stock;
+               gchar* label;
+               gchar* hookup;
+       } buttons[] =
+       {
+               {
+                       "Refresh",
+                       "gtk-refresh",
+                       "",
+                       "button_clips_refresh",
+               },
+               {
+                       "Load root folder",
+                       "gtk-home",
+                       "",
+                       "button_clips_home"
+               },
+               {
+                       "Move clip up",
+                       "gtk-go-up",
+                       "",
+                       "button_up"
+               },
+               {
+                       "Move clip down",
+                       "gtk-go-down",
+                       "",
+                       "button_down"
+               },
+               {
+                       "Remove clip",
+                       "gtk-delete",
+                       "",
+                       "button_remove"
+               },
+               {
+                       "Remove all but current clip",
+                       "gtk-clear",
+                       "",
+                       "button_clean"
+               },
+               {
+                       NULL, NULL, NULL, NULL
+               }
+       };
+
+       GtkWidget *label44, *label45, *hbuttonbox5;
+
+       label44 = gtk_label_new (_(" "));
+       gtk_widget_show (label44);
+       gtk_box_pack_start (GTK_BOX (parent), label44, TRUE, TRUE, 0);
+       gtk_label_set_justify (GTK_LABEL (label44), GTK_JUSTIFY_LEFT);
+
+       for(i = 0; buttons[i].stock; i++)
+       {
+               GtkWidget *button, *alignment, *hbox, *image, *label;
+
+               button = gtk_button_new ();
+               gtk_widget_show (button);
+               gtk_box_pack_start (GTK_BOX (parent), button, FALSE, FALSE, 0);
+               GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS);
+               GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
+               gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+               gtk_widget_set_tooltip_text (button, buttons[i].tooltip);
+
+               alignment = gtk_alignment_new (0, 0.5, 0, 0);
+               gtk_widget_show (alignment);
+               gtk_container_add (GTK_CONTAINER (button), alignment);
+
+               hbox = gtk_hbox_new (FALSE, 2);
+               gtk_widget_show (hbox);
+               gtk_container_add (GTK_CONTAINER (alignment), hbox);
+
+               image = gtk_image_new_from_stock (buttons[i].stock, GTK_ICON_SIZE_MENU);
+               gtk_widget_show (image);
+               gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
+
+               label = gtk_label_new_with_mnemonic (buttons[i].label);
+               gtk_widget_show (label);
+               gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+               gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
+
+               GLADE_HOOKUP_OBJECT (top, button, buttons[i].hookup);
+       };
+
+       hbuttonbox5 = gtk_hbutton_box_new ();
+       gtk_widget_show (hbuttonbox5);
+       gtk_box_pack_start (GTK_BOX (parent), hbuttonbox5, FALSE, FALSE, 0);
+
+       label45 = gtk_label_new (_(" "));
+       gtk_widget_show (label45);
+       gtk_box_pack_start (GTK_BOX (parent), label45, TRUE, TRUE, 0);
+       gtk_label_set_justify (GTK_LABEL (label45), GTK_JUSTIFY_LEFT);
+
+       return parent;
+}
 
-  radiobutton_7 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_7, 0, 1, 14, 15,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_7), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_7));
+static
+GtkWidget*
+create_pane_filedir( GtkWidget* top )
+{
+       GtkWidget* vpaned;
+       GtkWidget* scrolledwindow[2];
+       GtkWidget* list[2];
+       GtkWidget* label_directory;
+       GtkWidget* vbox;
+
+       /* create vbox for label pack */
+       vbox = gtk_vbox_new (FALSE, 0);
+       gtk_widget_show (vbox);
+
+       /* create a label for dir name */
+       label_directory = gtk_label_new (_("Disconnected"));
+       gtk_widget_show (label_directory);
+       gtk_box_pack_start (GTK_BOX (vbox), label_directory, FALSE, FALSE, 0);
+       gtk_misc_set_alignment (GTK_MISC (label_directory), 0, 0.5);
+       GLADE_HOOKUP_OBJECT (top, label_directory, "label_directory");
+
+       /* create a vertical pane for dirs list and clips list */
+       vpaned = gtk_vpaned_new ();
+       gtk_widget_show (vpaned);
+       gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0);
+
+       /* create two scrolled window for lists areas */
+       scrolledwindow[0] = gtk_scrolled_window_new (NULL, NULL);
+       gtk_widget_show (scrolledwindow[0]);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow[0]),
+               GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+       scrolledwindow[1] = gtk_scrolled_window_new (NULL, NULL);
+       gtk_widget_show (scrolledwindow[1]);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow[1]),
+               GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+       /* pane them */
+       gtk_widget_set_size_request (vpaned, 400 , -1);
+       gtk_paned_pack1 (GTK_PANED (vpaned), scrolledwindow[0], FALSE, FALSE);
+       gtk_widget_set_size_request (scrolledwindow[0], 150, -1);
+       gtk_paned_pack2 (GTK_PANED (vpaned), scrolledwindow[1], TRUE, FALSE);
+       gtk_widget_set_size_request (scrolledwindow[1], 250, -1);
+
+       /* list_dirs */
+       list[0] = gtk_tree_view_new ();
+       gtk_widget_show (list[0]);
+       gtk_container_add (GTK_CONTAINER (scrolledwindow[0]), list[0]);
+       gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list[0]), FALSE);
+       GLADE_HOOKUP_OBJECT (top, list[0], "list_dir");
+
+       /* list_clips */
+       list[1] = gtk_tree_view_new ();
+       gtk_widget_show (list[1]);
+       gtk_container_add (GTK_CONTAINER (scrolledwindow[1]), list[1]);
+       gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list[1]), FALSE);
+       gtk_tree_view_set_enable_search (GTK_TREE_VIEW (list[1]), FALSE);
+       GLADE_HOOKUP_OBJECT (top, list[1], "list_clips");
+
+       gtk_widget_grab_focus (list[0]);
+
+       return vbox;
+};
 
-  radiobutton_8 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_8, 0, 1, 16, 17,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_8), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_8));
+static
+GtkWidget*
+create_pane_playlist( GtkWidget* top )
+{
+       GtkWidget *table;
+       GtkWidget *scrolledwindow;
+       GtkWidget *treeview;
+       GtkWidget *alignment;
+       GtkWidget *hbox;
+
+       table = gtk_table_new (2, 1, FALSE);
+
+       scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
+       gtk_widget_show (scrolledwindow);
+       gtk_table_attach (GTK_TABLE (table), scrolledwindow, 0, 1, 1, 2,
+               (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+               (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow),
+               GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+       treeview = gtk_tree_view_new ();
+       gtk_widget_show (treeview);
+       gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview);
+
+       alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
+       gtk_widget_show (alignment);
+       gtk_table_attach (GTK_TABLE (table), alignment, 0, 1, 0, 1,
+               (GtkAttachOptions) (GTK_FILL),
+               (GtkAttachOptions) (GTK_FILL), 0, 0);
+
+       hbox = gtk_hbox_new (FALSE, 0);
+       gtk_widget_show (hbox);
+       gtk_container_add (GTK_CONTAINER (alignment), hbox);
+
+       create_playlist_buttons(hbox, top);
+
+       GLADE_HOOKUP_OBJECT (top, table, "table4");
+       GLADE_HOOKUP_OBJECT (top, scrolledwindow, "scrolledwindow5");
+       GLADE_HOOKUP_OBJECT (top, treeview, "treeview1");
+       GLADE_HOOKUP_OBJECT (top, alignment, "alignment12");
+       GLADE_HOOKUP_OBJECT (top, hbox, "hbox19");
+
+       return table;
+};
 
-  radiobutton_9 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_9, 0, 1, 18, 19,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_9), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_9));
+GtkWidget*
+create_page_operate (void)
+{
+  GtkWidget *page_clips;
+  GtkWidget *hpaned1;
+       GtkWidget *hpaned0;
+       GtkWidget *frame1, *frame2;
 
-  radiobutton_10 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_10, 0, 1, 20, 21,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_10), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_10));
+       page_clips = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+       gtk_window_set_title (GTK_WINDOW (page_clips), _("page_operate"));
+       GLADE_HOOKUP_OBJECT_NO_REF (page_clips, page_clips, "page_operate");
 
-  radiobutton_11 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_11, 0, 1, 22, 23,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_11), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_11));
+       hpaned0 = gtk_hpaned_new ();
+       gtk_widget_show (hpaned0);
+       gtk_container_add (GTK_CONTAINER (page_clips), hpaned0);
+       GLADE_HOOKUP_OBJECT (page_clips, hpaned0, "hpaned0");
 
-  label_unit_12 = gtk_label_new (_("12"));
-  gtk_table_attach (GTK_TABLE (table3), label_unit_12, 0, 1, 25, 26,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label_unit_12), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (label_unit_12), 0, 0.5);
+       frame1 = gtk_frame_new ("Playlist");
+       frame2 = gtk_frame_new ("Units");
+       gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
+       gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);
+       gtk_widget_show(frame1);
+       GLADE_HOOKUP_OBJECT (page_clips, frame1, "page_clips");
+       gtk_widget_show(frame2);
+       GLADE_HOOKUP_OBJECT (page_clips, frame2, "page_status");
 
-  radiobutton_12 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_12, 0, 1, 24, 25,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_12), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_12));
+       gtk_widget_set_size_request (hpaned0, 200 , -1);
+       gtk_paned_pack1 (GTK_PANED (hpaned0), frame1, TRUE, FALSE);
+       gtk_widget_set_size_request (frame1, 50, -1);
+       gtk_paned_pack2 (GTK_PANED (hpaned0), frame2, FALSE, FALSE);
+       gtk_widget_set_size_request (frame2, 250, -1);
 
-  radiobutton_13 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_13, 0, 1, 26, 27,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_13), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_13));
+       create_pane_status (frame2, page_clips);
 
-  radiobutton_14 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_14, 0, 1, 28, 29,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_14), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_14));
+       hpaned1 = gtk_hpaned_new ();
+       gtk_widget_show (hpaned1);
+       gtk_container_add (GTK_CONTAINER (frame1), hpaned1);
+       gtk_paned_set_position (GTK_PANED (hpaned1), 120);
 
-  radiobutton_15 = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
-  gtk_table_attach (GTK_TABLE (table3), radiobutton_15, 0, 1, 30, 31,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_15), radiobutton_0_group);
-  radiobutton_0_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_15));
+       gtk_paned_pack1 (GTK_PANED (hpaned1),
+               create_pane_filedir(page_clips),
+               FALSE, TRUE);
 
-  /* Store pointers to all widgets, for use by lookup_widget(). */
-  GLADE_HOOKUP_OBJECT_NO_REF (page_status, page_status, "page_status");
-  GLADE_HOOKUP_OBJECT (page_status, scrolledwindow4, "scrolledwindow4");
-  GLADE_HOOKUP_OBJECT (page_status, viewport1, "viewport1");
-  GLADE_HOOKUP_OBJECT (page_status, table3, "table3");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_0, "label_unit_0");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_1, "label_unit_1");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_2, "label_unit_2");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_3, "label_unit_3");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_4, "label_unit_4");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_5, "label_unit_5");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_6, "label_unit_6");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_7, "label_unit_7");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_8, "label_unit_8");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_9, "label_unit_9");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_10, "label_unit_10");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_11, "label_unit_11");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_13, "label_unit_13");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_14, "label_unit_14");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_15, "label_unit_15");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_0, "radiobutton_0");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_1, "radiobutton_1");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_2, "radiobutton_2");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_3, "radiobutton_3");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_4, "radiobutton_4");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_5, "radiobutton_5");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_6, "radiobutton_6");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_7, "radiobutton_7");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_8, "radiobutton_8");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_9, "radiobutton_9");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_10, "radiobutton_10");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_11, "radiobutton_11");
-  GLADE_HOOKUP_OBJECT (page_status, label_unit_12, "label_unit_12");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_12, "radiobutton_12");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_13, "radiobutton_13");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_14, "radiobutton_14");
-  GLADE_HOOKUP_OBJECT (page_status, radiobutton_15, "radiobutton_15");
-
-  return page_status;
-}
+       gtk_paned_pack2 (GTK_PANED (hpaned1),
+               create_pane_playlist(page_clips),
+               FALSE, TRUE);
 
-GtkWidget*
-create_page_clips (void)
-{
-  GtkWidget *page_clips;
-  GtkWidget *vbox8;
-  GtkWidget *hbox26;
-  GtkWidget *label_directory;
-  GtkWidget *optionmenu1;
-  GtkWidget *menu1;
-  GtkWidget *mode_0;
-  GtkWidget *mode_1;
-  GtkWidget *mode_2;
-  GtkWidget *mode_3;
-  GtkWidget *hpaned1;
-  GtkWidget *table1;
-  GtkWidget *scrolledwindow1;
-  GtkWidget *list_dir;
-  GtkWidget *vpaned1;
-  GtkWidget *table5;
-  GtkWidget *scrolledwindow6;
-  GtkWidget *list_clips;
-  GtkWidget *table4;
-  GtkWidget *scrolledwindow5;
-  GtkWidget *treeview1;
-  GtkWidget *alignment12;
-  GtkWidget *hbox19;
-  GtkWidget *label44;
-  GtkWidget *button_clips_refresh;
-  GtkWidget *alignment5;
-  GtkWidget *hbox12;
-  GtkWidget *image5;
-  GtkWidget *label36;
-  GtkWidget *button_clips_home;
-  GtkWidget *alignment6;
-  GtkWidget *hbox13;
-  GtkWidget *image6;
-  GtkWidget *label37;
-  GtkWidget *button_up;
-  GtkWidget *image21;
-  GtkWidget *button_down;
-  GtkWidget *image22;
-  GtkWidget *button_remove;
-  GtkWidget *image23;
-  GtkWidget *button_clean;
-  GtkWidget *image24;
-  GtkWidget *hbuttonbox5;
-  GtkWidget *label45;
-
-  page_clips = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_title (GTK_WINDOW (page_clips), _("page_clips"));
-
-  vbox8 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_show (vbox8);
-  gtk_container_add (GTK_CONTAINER (page_clips), vbox8);
-
-  hbox26 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (hbox26);
-  gtk_box_pack_start (GTK_BOX (vbox8), hbox26, FALSE, FALSE, 0);
-
-  label_directory = gtk_label_new (_("Disconnected"));
-  gtk_widget_show (label_directory);
-  gtk_box_pack_start (GTK_BOX (hbox26), label_directory, TRUE, TRUE, 0);
-  gtk_misc_set_alignment (GTK_MISC (label_directory), 0, 0.5);
-
-  optionmenu1 = gtk_option_menu_new ();
-  gtk_widget_show (optionmenu1);
-  gtk_box_pack_start (GTK_BOX (hbox26), optionmenu1, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (optionmenu1, GTK_CAN_FOCUS);
-
-  menu1 = gtk_menu_new ();
-
-  mode_0 = gtk_menu_item_new_with_mnemonic (_("Play"));
-  gtk_widget_show (mode_0);
-  gtk_container_add (GTK_CONTAINER (menu1), mode_0);
-
-  mode_1 = gtk_menu_item_new_with_mnemonic (_("Load"));
-  gtk_widget_show (mode_1);
-  gtk_container_add (GTK_CONTAINER (menu1), mode_1);
-
-  mode_2 = gtk_menu_item_new_with_mnemonic (_("Append"));
-  gtk_widget_show (mode_2);
-  gtk_container_add (GTK_CONTAINER (menu1), mode_2);
-
-  mode_3 = gtk_menu_item_new_with_mnemonic (_("Insert"));
-  gtk_widget_show (mode_3);
-  gtk_container_add (GTK_CONTAINER (menu1), mode_3);
-
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu1), menu1);
-
-  hpaned1 = gtk_hpaned_new ();
-  gtk_widget_show (hpaned1);
-  gtk_box_pack_start (GTK_BOX (vbox8), hpaned1, TRUE, TRUE, 0);
-  gtk_paned_set_position (GTK_PANED (hpaned1), 120);
-
-  table1 = gtk_table_new (1, 1, FALSE);
-  gtk_widget_show (table1);
-  gtk_paned_pack1 (GTK_PANED (hpaned1), table1, FALSE, TRUE);
-
-  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_show (scrolledwindow1);
-  gtk_table_attach (GTK_TABLE (table1), scrolledwindow1, 0, 1, 0, 1,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
-  list_dir = gtk_tree_view_new ();
-  gtk_widget_show (list_dir);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow1), list_dir);
-  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list_dir), FALSE);
-
-  vpaned1 = gtk_vpaned_new ();
-  gtk_widget_show (vpaned1);
-  gtk_paned_pack2 (GTK_PANED (hpaned1), vpaned1, TRUE, TRUE);
-  gtk_paned_set_position (GTK_PANED (vpaned1), 130);
-
-  table5 = gtk_table_new (1, 1, FALSE);
-  gtk_widget_show (table5);
-  gtk_paned_pack1 (GTK_PANED (vpaned1), table5, TRUE, TRUE);
-
-  scrolledwindow6 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_show (scrolledwindow6);
-  gtk_table_attach (GTK_TABLE (table5), scrolledwindow6, 0, 1, 0, 1,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
-  list_clips = gtk_tree_view_new ();
-  gtk_widget_show (list_clips);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow6), list_clips);
-  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list_clips), FALSE);
-  gtk_tree_view_set_enable_search (GTK_TREE_VIEW (list_clips), FALSE);
-
-  table4 = gtk_table_new (2, 1, FALSE);
-  gtk_paned_pack2 (GTK_PANED (vpaned1), table4, TRUE, TRUE);
-
-  scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_show (scrolledwindow5);
-  gtk_table_attach (GTK_TABLE (table4), scrolledwindow5, 0, 1, 0, 1,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
-  treeview1 = gtk_tree_view_new ();
-  gtk_widget_show (treeview1);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow5), treeview1);
-
-  alignment12 = gtk_alignment_new (0.5, 0.5, 1, 1);
-  gtk_widget_show (alignment12);
-  gtk_table_attach (GTK_TABLE (table4), alignment12, 0, 1, 1, 2,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (GTK_FILL), 0, 0);
 
-  hbox19 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (hbox19);
-  gtk_container_add (GTK_CONTAINER (alignment12), hbox19);
-
-  label44 = gtk_label_new (_(" "));
-  gtk_widget_show (label44);
-  gtk_box_pack_start (GTK_BOX (hbox19), label44, TRUE, TRUE, 0);
-  gtk_label_set_justify (GTK_LABEL (label44), GTK_JUSTIFY_LEFT);
-
-  button_clips_refresh = gtk_button_new ();
-  gtk_widget_show (button_clips_refresh);
-  gtk_box_pack_start (GTK_BOX (hbox19), button_clips_refresh, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (button_clips_refresh, GTK_CAN_FOCUS);
-  GTK_WIDGET_SET_FLAGS (button_clips_refresh, GTK_CAN_DEFAULT);
-  gtk_button_set_relief (GTK_BUTTON (button_clips_refresh), GTK_RELIEF_NONE);
-  gtk_widget_set_tooltip_text (button_clips_refresh, _("Refresh"));
-
-  alignment5 = gtk_alignment_new (0, 0.5, 0, 0);
-  gtk_widget_show (alignment5);
-  gtk_container_add (GTK_CONTAINER (button_clips_refresh), alignment5);
-
-  hbox12 = gtk_hbox_new (FALSE, 2);
-  gtk_widget_show (hbox12);
-  gtk_container_add (GTK_CONTAINER (alignment5), hbox12);
-
-  image5 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image5);
-  gtk_box_pack_start (GTK_BOX (hbox12), image5, FALSE, FALSE, 0);
-
-  label36 = gtk_label_new_with_mnemonic ("");
-  gtk_widget_show (label36);
-  gtk_box_pack_start (GTK_BOX (hbox12), label36, FALSE, FALSE, 0);
-  gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT);
-
-  button_clips_home = gtk_button_new ();
-  gtk_widget_show (button_clips_home);
-  gtk_box_pack_start (GTK_BOX (hbox19), button_clips_home, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (button_clips_home, GTK_CAN_FOCUS);
-  GTK_WIDGET_SET_FLAGS (button_clips_home, GTK_CAN_DEFAULT);
-  gtk_button_set_relief (GTK_BUTTON (button_clips_home), GTK_RELIEF_NONE);
-  gtk_widget_set_tooltip_text (button_clips_home, _("Load root folder"));
-
-  alignment6 = gtk_alignment_new (0, 0.5, 0, 0);
-  gtk_widget_show (alignment6);
-  gtk_container_add (GTK_CONTAINER (button_clips_home), alignment6);
-
-  hbox13 = gtk_hbox_new (FALSE, 2);
-  gtk_widget_show (hbox13);
-  gtk_container_add (GTK_CONTAINER (alignment6), hbox13);
-
-  image6 = gtk_image_new_from_stock ("gtk-home", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image6);
-  gtk_box_pack_start (GTK_BOX (hbox13), image6, FALSE, FALSE, 0);
-
-  label37 = gtk_label_new_with_mnemonic ("");
-  gtk_widget_show (label37);
-  gtk_box_pack_start (GTK_BOX (hbox13), label37, FALSE, FALSE, 0);
-  gtk_label_set_justify (GTK_LABEL (label37), GTK_JUSTIFY_LEFT);
-
-  button_up = gtk_button_new ();
-  gtk_widget_show (button_up);
-  gtk_box_pack_start (GTK_BOX (hbox19), button_up, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (button_up, GTK_CAN_FOCUS);
-  GTK_WIDGET_SET_FLAGS (button_up, GTK_CAN_DEFAULT);
-  gtk_button_set_relief (GTK_BUTTON (button_up), GTK_RELIEF_NONE);
-  gtk_widget_set_tooltip_text (button_up, _("Move clip up"));
-
-  image21 = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image21);
-  gtk_container_add (GTK_CONTAINER (button_up), image21);
-
-  button_down = gtk_button_new ();
-  gtk_widget_show (button_down);
-  gtk_box_pack_start (GTK_BOX (hbox19), button_down, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (button_down, GTK_CAN_FOCUS);
-  GTK_WIDGET_SET_FLAGS (button_down, GTK_CAN_DEFAULT);
-  gtk_button_set_relief (GTK_BUTTON (button_down), GTK_RELIEF_NONE);
-  gtk_widget_set_tooltip_text (button_down, _("Move clip down"));
-
-  image22 = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image22);
-  gtk_container_add (GTK_CONTAINER (button_down), image22);
-
-  button_remove = gtk_button_new ();
-  gtk_widget_show (button_remove);
-  gtk_box_pack_start (GTK_BOX (hbox19), button_remove, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (button_remove, GTK_CAN_FOCUS);
-  GTK_WIDGET_SET_FLAGS (button_remove, GTK_CAN_DEFAULT);
-  gtk_button_set_relief (GTK_BUTTON (button_remove), GTK_RELIEF_NONE);
-  gtk_widget_set_tooltip_text (button_remove, _("Remove clip"));
-
-  image23 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image23);
-  gtk_container_add (GTK_CONTAINER (button_remove), image23);
-
-  button_clean = gtk_button_new ();
-  gtk_widget_show (button_clean);
-  gtk_box_pack_start (GTK_BOX (hbox19), button_clean, FALSE, FALSE, 0);
-  GTK_WIDGET_UNSET_FLAGS (button_clean, GTK_CAN_FOCUS);
-  GTK_WIDGET_SET_FLAGS (button_clean, GTK_CAN_DEFAULT);
-  gtk_button_set_relief (GTK_BUTTON (button_clean), GTK_RELIEF_NONE);
-  gtk_widget_set_tooltip_text (button_clean, _("Remove all but current clip"));
-
-  image24 = gtk_image_new_from_stock ("gtk-clear", GTK_ICON_SIZE_MENU);
-  gtk_widget_show (image24);
-  gtk_container_add (GTK_CONTAINER (button_clean), image24);
-
-  hbuttonbox5 = gtk_hbutton_box_new ();
-  gtk_widget_show (hbuttonbox5);
-  gtk_box_pack_start (GTK_BOX (hbox19), hbuttonbox5, FALSE, FALSE, 0);
-
-  label45 = gtk_label_new (_(" "));
-  gtk_widget_show (label45);
-  gtk_box_pack_start (GTK_BOX (hbox19), label45, TRUE, TRUE, 0);
-  gtk_label_set_justify (GTK_LABEL (label45), GTK_JUSTIFY_LEFT);
 
   /* Store pointers to all widgets, for use by lookup_widget(). */
-  GLADE_HOOKUP_OBJECT_NO_REF (page_clips, page_clips, "page_clips");
-  GLADE_HOOKUP_OBJECT (page_clips, vbox8, "vbox8");
-  GLADE_HOOKUP_OBJECT (page_clips, hbox26, "hbox26");
-  GLADE_HOOKUP_OBJECT (page_clips, label_directory, "label_directory");
-  GLADE_HOOKUP_OBJECT (page_clips, optionmenu1, "optionmenu1");
-  GLADE_HOOKUP_OBJECT (page_clips, menu1, "menu1");
-  GLADE_HOOKUP_OBJECT (page_clips, mode_0, "mode_0");
-  GLADE_HOOKUP_OBJECT (page_clips, mode_1, "mode_1");
-  GLADE_HOOKUP_OBJECT (page_clips, mode_2, "mode_2");
-  GLADE_HOOKUP_OBJECT (page_clips, mode_3, "mode_3");
   GLADE_HOOKUP_OBJECT (page_clips, hpaned1, "hpaned1");
-  GLADE_HOOKUP_OBJECT (page_clips, table1, "table1");
-  GLADE_HOOKUP_OBJECT (page_clips, scrolledwindow1, "scrolledwindow1");
-  GLADE_HOOKUP_OBJECT (page_clips, list_dir, "list_dir");
-  GLADE_HOOKUP_OBJECT (page_clips, vpaned1, "vpaned1");
-  GLADE_HOOKUP_OBJECT (page_clips, table5, "table5");
-  GLADE_HOOKUP_OBJECT (page_clips, scrolledwindow6, "scrolledwindow6");
-  GLADE_HOOKUP_OBJECT (page_clips, list_clips, "list_clips");
-  GLADE_HOOKUP_OBJECT (page_clips, table4, "table4");
-  GLADE_HOOKUP_OBJECT (page_clips, scrolledwindow5, "scrolledwindow5");
-  GLADE_HOOKUP_OBJECT (page_clips, treeview1, "treeview1");
-  GLADE_HOOKUP_OBJECT (page_clips, alignment12, "alignment12");
-  GLADE_HOOKUP_OBJECT (page_clips, hbox19, "hbox19");
-  GLADE_HOOKUP_OBJECT (page_clips, label44, "label44");
-  GLADE_HOOKUP_OBJECT (page_clips, button_clips_refresh, "button_clips_refresh");
-  GLADE_HOOKUP_OBJECT (page_clips, alignment5, "alignment5");
-  GLADE_HOOKUP_OBJECT (page_clips, hbox12, "hbox12");
-  GLADE_HOOKUP_OBJECT (page_clips, image5, "image5");
-  GLADE_HOOKUP_OBJECT (page_clips, label36, "label36");
-  GLADE_HOOKUP_OBJECT (page_clips, button_clips_home, "button_clips_home");
-  GLADE_HOOKUP_OBJECT (page_clips, alignment6, "alignment6");
-  GLADE_HOOKUP_OBJECT (page_clips, hbox13, "hbox13");
-  GLADE_HOOKUP_OBJECT (page_clips, image6, "image6");
-  GLADE_HOOKUP_OBJECT (page_clips, label37, "label37");
-  GLADE_HOOKUP_OBJECT (page_clips, button_up, "button_up");
-  GLADE_HOOKUP_OBJECT (page_clips, image21, "image21");
-  GLADE_HOOKUP_OBJECT (page_clips, button_down, "button_down");
-  GLADE_HOOKUP_OBJECT (page_clips, image22, "image22");
-  GLADE_HOOKUP_OBJECT (page_clips, button_remove, "button_remove");
-  GLADE_HOOKUP_OBJECT (page_clips, image23, "image23");
-  GLADE_HOOKUP_OBJECT (page_clips, button_clean, "button_clean");
-  GLADE_HOOKUP_OBJECT (page_clips, image24, "image24");
-  GLADE_HOOKUP_OBJECT (page_clips, hbuttonbox5, "hbuttonbox5");
-  GLADE_HOOKUP_OBJECT (page_clips, label45, "label45");
-
-  gtk_widget_grab_focus (list_dir);
+
   return page_clips;
 }