refactor transport buttons block creation
[rugen] / src / interface.c
index 0ed9059..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");
 
@@ -662,55 +673,115 @@ static
 GtkWidget*
 create_pane_filedir( GtkWidget* top )
 {
-  GtkWidget* table1, *scrolledwindow1, *list_dir;
-
-  table1 = gtk_table_new (1, 1, FALSE);
-  gtk_widget_show (table1);
-
-  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);
+       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;
+};
 
-  GLADE_HOOKUP_OBJECT (top, table1, "table1");
-  GLADE_HOOKUP_OBJECT (top, scrolledwindow1, "scrolledwindow1");
-  GLADE_HOOKUP_OBJECT (top, list_dir, "list_dir");
+static
+GtkWidget*
+create_pane_playlist( GtkWidget* top )
+{
+       GtkWidget *table;
+       GtkWidget *scrolledwindow;
+       GtkWidget *treeview;
+       GtkWidget *alignment;
+       GtkWidget *hbox;
 
-  gtk_widget_grab_focus (list_dir);
+       table = gtk_table_new (2, 1, FALSE);
 
-  return table1;
+       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;
 };
 
 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 *vpaned1;
-  GtkWidget *table5;
-  GtkWidget *scrolledwindow6;
-  GtkWidget *list_clips;
-  GtkWidget *table4;
-  GtkWidget *scrolledwindow5;
-  GtkWidget *treeview1;
-  GtkWidget *alignment12;
-  GtkWidget *hbox19;
        GtkWidget *hpaned0;
        GtkWidget *frame1, *frame2;
 
@@ -740,121 +811,23 @@ 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),
                FALSE, TRUE);
 
-  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);
+       gtk_paned_pack2 (GTK_PANED (hpaned1),
+               create_pane_playlist(page_clips),
+               FALSE, TRUE);
 
-  hbox19 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (hbox19);
-  gtk_container_add (GTK_CONTAINER (alignment12), hbox19);
 
-       create_playlist_buttons(hbox19, page_clips);
 
   /* 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");
-  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");
 
   return page_clips;
 }