refactor transport buttons block creation
[rugen] / src / interface.c
index 9b16055..cbf12d2 100644 (file)
@@ -26,7 +26,9 @@
 #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 i;
     GtkWidget *hbox;
@@ -97,7 +99,6 @@ static void create_buttons_transport(GtkWidget *top, GtkWidget *parent_box)
 
     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++)
@@ -124,6 +125,34 @@ static void create_buttons_transport(GtkWidget *top, GtkWidget *parent_box)
     };
 
     GLADE_HOOKUP_OBJECT (top, hbox, "buttons_transport_hbox");
+
+    return hbox;
+};
+
+static
+GtkWidget *
+create_block_buttons_transport(GtkWidget *top)
+{
+       GtkWidget *hbox, *label[2];
+
+       hbox = gtk_hbox_new (FALSE, 0);
+       gtk_widget_show (hbox);
+
+       label[0] = gtk_label_new ("label46");
+       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);
+
+       gtk_box_pack_start (GTK_BOX (hbox),
+               create_buttons_transport(top),
+               FALSE, TRUE, 0);
+
+       label[1] = gtk_label_new ("label47");
+       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);
+
+       return hbox;
 };
 
 GtkWidget*
@@ -153,9 +182,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 +302,14 @@ 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);
-
-  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),
+               FALSE, TRUE, 0);
 
   vbox_trim = gtk_vbox_new (FALSE, 0);
   gtk_widget_show (vbox_trim);
@@ -328,9 +342,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");
 
@@ -665,10 +676,24 @@ 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);
@@ -704,88 +729,58 @@ create_pane_filedir( GtkWidget* top )
 
        gtk_widget_grab_focus (list[0]);
 
-       return vpaned;
+       return vbox;
 };
 
 static
 GtkWidget*
 create_pane_playlist( GtkWidget* top )
 {
-  GtkWidget *vpaned1;
-  GtkWidget *table5;
-  GtkWidget *scrolledwindow6;
-  GtkWidget *table4;
-  GtkWidget *scrolledwindow5;
-  GtkWidget *treeview1;
-  GtkWidget *alignment12;
-  GtkWidget *hbox19;
-
-  vpaned1 = gtk_vpaned_new ();
-  gtk_widget_show (vpaned1);
-  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);
-
-  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);
+       GtkWidget *table;
+       GtkWidget *scrolledwindow;
+       GtkWidget *treeview;
+       GtkWidget *alignment;
+       GtkWidget *hbox;
+
+       table = gtk_table_new (2, 1, FALSE);
 
-  hbox19 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (hbox19);
-  gtk_container_add (GTK_CONTAINER (alignment12), hbox19);
+       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);
 
-       create_playlist_buttons(hbox19, top);
+       treeview = gtk_tree_view_new ();
+       gtk_widget_show (treeview);
+       gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview);
 
-  GLADE_HOOKUP_OBJECT (top, vpaned1, "vpaned1");
-  GLADE_HOOKUP_OBJECT (top, table5, "table5");
-  GLADE_HOOKUP_OBJECT (top, scrolledwindow6, "scrolledwindow6");
-  GLADE_HOOKUP_OBJECT (top, table4, "table4");
-  GLADE_HOOKUP_OBJECT (top, scrolledwindow5, "scrolledwindow5");
-  GLADE_HOOKUP_OBJECT (top, treeview1, "treeview1");
-  GLADE_HOOKUP_OBJECT (top, alignment12, "alignment12");
-  GLADE_HOOKUP_OBJECT (top, hbox19, "hbox19");
+       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);
 
-  return vpaned1;
+       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;
 };
 
 GtkWidget*
 create_page_operate (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 *hpaned0;
        GtkWidget *frame1, *frame2;
@@ -816,48 +811,10 @@ create_page_operate (void)
 
        create_pane_status (frame2, page_clips);
 
-  vbox8 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_show (vbox8);
-       gtk_container_add (GTK_CONTAINER (frame1), 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);
+       hpaned1 = gtk_hpaned_new ();
+       gtk_widget_show (hpaned1);
+       gtk_container_add (GTK_CONTAINER (frame1), hpaned1);
+       gtk_paned_set_position (GTK_PANED (hpaned1), 120);
 
        gtk_paned_pack1 (GTK_PANED (hpaned1),
                create_pane_filedir(page_clips),
@@ -870,15 +827,6 @@ create_page_operate (void)
 
 
   /* Store pointers to all widgets, for use by lookup_widget(). */
-  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");
 
   return page_clips;