No-op; coding style.
[ardour.git] / gtk2_ardour / mixer_ui.cc
index 89276d435a5672426308972432324978291c53c5..dc3aced9787d52bd0779f86ce34c97318a3e88bf 100644 (file)
 
 */
 
+#ifdef WAF_BUILD
+#include "gtk2ardour-config.h"
+#endif
+
 #include <algorithm>
 #include <map>
 #include <sigc++/bind.h>
@@ -89,33 +93,9 @@ Mixer_UI::Mixer_UI ()
        b->show_all ();
 
        scroller.add (*b);
-       scroller.set_policy (Gtk::POLICY_ALWAYS, Gtk::POLICY_AUTOMATIC);
-
-       track_model = ListStore::create (track_columns);
-       track_display.set_model (track_model);
-       track_display.append_column (_("Strips"), track_columns.text);
-       track_display.append_column (_("Show"), track_columns.visible);
-       track_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
-       track_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
-       track_display.get_column (0)->set_expand(true);
-       track_display.get_column (1)->set_expand(false);
-       track_display.set_name (X_("MixerTrackDisplayList"));
-       track_display.get_selection()->set_mode (Gtk::SELECTION_NONE);
-       track_display.set_reorderable (true);
-       track_display.set_headers_visible (true);
+       scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
 
-       track_model->signal_row_deleted().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_delete));
-       track_model->signal_row_changed().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_change));
-       track_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_reorder));
-
-       CellRendererToggle* track_list_visible_cell = dynamic_cast<CellRendererToggle*>(track_display.get_column_cell_renderer (1));
-       track_list_visible_cell->property_activatable() = true;
-       track_list_visible_cell->property_radio() = false;
-
-       track_display.signal_button_press_event().connect (sigc::mem_fun (*this, &Mixer_UI::track_display_button_press), false);
-
-       track_display_scroller.add (track_display);
-       track_display_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+       setup_track_display ();
 
        group_model = ListStore::create (group_columns);
        group_display.set_model (group_model);
@@ -176,10 +156,6 @@ Mixer_UI::Mixer_UI ()
        group_display_vbox.pack_start (group_display_scroller, true, true);
        group_display_vbox.pack_start (*route_group_display_button_box, false, false);
 
-       track_display_frame.set_name("BaseFrame");
-       track_display_frame.set_shadow_type (Gtk::SHADOW_IN);
-       track_display_frame.add(track_display_scroller);
-
        group_display_frame.set_name ("BaseFrame");
        group_display_frame.set_shadow_type (Gtk::SHADOW_IN);
        group_display_frame.add (group_display_vbox);
@@ -213,7 +189,7 @@ Mixer_UI::Mixer_UI ()
        title += _("Mixer");
        set_title (title.get_string());
 
-       set_wmclass (X_("ardour_mixer"), "Ardour");
+       set_wmclass (X_("ardour_mixer"), PROGRAM_NAME);
 
        add_accel_group (ActionManager::ui_manager->get_accel_group());
 
@@ -237,16 +213,13 @@ Mixer_UI::Mixer_UI ()
        list_vpacker.show();
        group_display_button_label.show();
        group_display_button.show();
-       track_display_scroller.show();
        group_display_scroller.show();
        group_display_vbox.show();
-       track_display_frame.show();
        group_display_frame.show();
        rhs_pane1.show();
        strip_packer.show();
        out_packer.show();
        list_hpane.show();
-       track_display.show();
        group_display.show();
 
        auto_rebinding = FALSE;
@@ -277,6 +250,9 @@ Mixer_UI::show_window ()
        if (!_visible) {
                set_window_pos_and_size ();
 
+               /* show/hide group tabs as required */
+               parameter_changed ("show-group-tabs");
+
                /* now reset each strips width so the right widgets are shown */
                MixerStrip* ms;
 
@@ -1215,7 +1191,7 @@ Mixer_UI::route_group_property_changed (RouteGroup* group, const PropertyChange&
 }
 
 void
-Mixer_UI::route_group_name_edit (const Glib::ustring& path, const Glib::ustring& new_text)
+Mixer_UI::route_group_name_edit (const std::string& path, const std::string& new_text)
 {
        RouteGroup* group;
        TreeIter iter;
@@ -1259,7 +1235,7 @@ Mixer_UI::route_group_row_change (const Gtk::TreeModel::Path&, const Gtk::TreeMo
                }
        }
 
-       Glib::ustring name = (*iter)[group_columns.text];
+       std::string name = (*iter)[group_columns.text];
 
        if (name != group->name()) {
                group->set_name (name);
@@ -1613,3 +1589,61 @@ Mixer_UI::plugin_selector()
 
        return _plugin_selector;
 }
+
+void
+Mixer_UI::setup_track_display ()
+{
+       track_model = ListStore::create (track_columns);
+       track_display.set_model (track_model);
+       track_display.append_column (_("Strips"), track_columns.text);
+       track_display.append_column (_("Show"), track_columns.visible);
+       track_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
+       track_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
+       track_display.get_column (0)->set_expand(true);
+       track_display.get_column (1)->set_expand(false);
+       track_display.set_name (X_("MixerTrackDisplayList"));
+       track_display.get_selection()->set_mode (Gtk::SELECTION_NONE);
+       track_display.set_reorderable (true);
+       track_display.set_headers_visible (true);
+
+       track_model->signal_row_deleted().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_delete));
+       track_model->signal_row_changed().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_change));
+       track_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_reorder));
+
+       CellRendererToggle* track_list_visible_cell = dynamic_cast<CellRendererToggle*>(track_display.get_column_cell_renderer (1));
+       track_list_visible_cell->property_activatable() = true;
+       track_list_visible_cell->property_radio() = false;
+
+       track_display.signal_button_press_event().connect (sigc::mem_fun (*this, &Mixer_UI::track_display_button_press), false);
+
+       track_display_scroller.add (track_display);
+       track_display_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+
+       VBox* v = manage (new VBox);
+       v->show ();
+       v->pack_start (track_display_scroller, true, true);
+
+       Button* b = manage (new Button);
+       b->show ();
+       Widget* w = manage (new Image (Stock::ADD, ICON_SIZE_BUTTON));
+       w->show ();
+       b->add (*w);
+
+       b->signal_clicked().connect (sigc::mem_fun (*this, &Mixer_UI::new_track_or_bus));
+       
+       v->pack_start (*b, false, false);
+
+       track_display_frame.set_name("BaseFrame");
+       track_display_frame.set_shadow_type (Gtk::SHADOW_IN);
+       track_display_frame.add (*v);
+
+       track_display_scroller.show();
+       track_display_frame.show();
+       track_display.show();
+}
+
+void
+Mixer_UI::new_track_or_bus ()
+{
+       ARDOUR_UI::instance()->add_route (this);
+}