add mixbus profile which removes the tearoffs
[ardour.git] / gtk2_ardour / ardour_ui2.cc
index e9ad63103291a739741104857cff76103009de22..ad8336ca103e84c02628a11bdf47f06eca6de6fe 100644 (file)
@@ -64,6 +64,7 @@ using namespace PBD;
 using namespace Gtkmm2ext;
 using namespace Gtk;
 using namespace Glib;
+using namespace ARDOUR_UI_UTILS;
 
 int
 ARDOUR_UI::setup_windows ()
@@ -222,7 +223,7 @@ ARDOUR_UI::setup_transport ()
        transport_tearoff->set_name ("TransportBase");
        transport_tearoff->tearoff_window().signal_key_press_event().connect (sigc::bind (sigc::ptr_fun (relay_key_press), &transport_tearoff->tearoff_window()), false);
 
-       if (Profile->get_sae()) {
+       if (Profile->get_sae() || Profile->get_mixbus()) {
                transport_tearoff->set_can_be_torn_off (false);
        }
 
@@ -357,13 +358,18 @@ ARDOUR_UI::setup_transport ()
        tbox2->set_spacing (2);
        tbox->set_spacing (2);
 
-       tbox1->pack_start (midi_panic_button, false, false, 5);
-       tbox1->pack_start (click_button, false, false, 5);
+       if (!Profile->get_trx()) {
+               tbox1->pack_start (midi_panic_button, false, false, 5);
+               tbox1->pack_start (click_button, false, false, 5);
+       }
+
        tbox1->pack_start (goto_start_button, false, false);
        tbox1->pack_start (goto_end_button, false, false);
        tbox1->pack_start (auto_loop_button, false, false);
 
-       tbox2->pack_start (play_selection_button, false, false);
+       if (!Profile->get_trx()) {
+               tbox2->pack_start (play_selection_button, false, false);
+       }
        tbox2->pack_start (roll_button, false, false);
        tbox2->pack_start (stop_button, false, false);
        tbox2->pack_start (rec_button, false, false, 5);
@@ -382,20 +388,29 @@ ARDOUR_UI::setup_transport ()
        HBox* clock_box = manage (new HBox);
 
        clock_box->pack_start (*primary_clock, false, false);
-       if (!ARDOUR::Profile->get_small_screen()) {
+       if (!ARDOUR::Profile->get_small_screen() && !ARDOUR::Profile->get_trx()) {
                clock_box->pack_start (*secondary_clock, false, false);
        }
        clock_box->set_spacing (3);
 
        shuttle_box = new ShuttleControl;
        shuttle_box->show ();
-
+       
        VBox* transport_vbox = manage (new VBox);
        transport_vbox->set_name ("TransportBase");
        transport_vbox->set_border_width (0);
        transport_vbox->set_spacing (3);
        transport_vbox->pack_start (*tbox, true, true, 0);
-       transport_vbox->pack_start (*shuttle_box, false, false, 0);
+
+       if (!Profile->get_trx()) {
+               transport_vbox->pack_start (*shuttle_box, false, false, 0);
+       }
+
+       time_info_box = manage (new TimeInfoBox);
+
+       if (ARDOUR::Profile->get_trx()) {
+               transport_tearoff_hbox.pack_start (*time_info_box, false, false);
+       }
 
        transport_tearoff_hbox.pack_start (*transport_vbox, false, false);
 
@@ -405,21 +420,33 @@ ARDOUR_UI::setup_transport ()
        auto_box->set_homogeneous (true);
        auto_box->set_spacing (2);
        auto_box->pack_start (sync_button, false, false);
-       auto_box->pack_start (follow_edits_button, false, false);
-       auto_box->pack_start (auto_return_button, false, false);
+       if (!ARDOUR::Profile->get_trx()) {
+               auto_box->pack_start (follow_edits_button, false, false);
+               auto_box->pack_start (auto_return_button, false, false);
+       }
 
-       transport_tearoff_hbox.pack_start (*auto_box, false, false);
+       if (!ARDOUR::Profile->get_trx()) {
+               transport_tearoff_hbox.pack_start (*auto_box, false, false);
+       }
        transport_tearoff_hbox.pack_start (*clock_box, true, true);
 
-       time_info_box = manage (new TimeInfoBox);
-       transport_tearoff_hbox.pack_start (*time_info_box, false, false);
+       if (ARDOUR::Profile->get_trx()) {
+               transport_tearoff_hbox.pack_start (*auto_box, false, false);
+       }
+
+       if (!ARDOUR::Profile->get_trx()) {
+               transport_tearoff_hbox.pack_start (*time_info_box, false, false);
+       }
 
-        if (Profile->get_small_screen()) {
+        if (ARDOUR::Profile->get_small_screen()) {
                 transport_tearoff_hbox.pack_start (_editor_transport_box, false, false);
         }
-       transport_tearoff_hbox.pack_start (alert_box, false, false);
-       transport_tearoff_hbox.pack_start (meter_box, false, false);
-       transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false);
+
+       if (!ARDOUR::Profile->get_trx()) {
+               transport_tearoff_hbox.pack_start (alert_box, false, false);
+               transport_tearoff_hbox.pack_start (meter_box, false, false);
+               transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false);
+       }
 
        if (Profile->get_sae()) {
                Image* img = manage (new Image ((::get_icon (X_("sae")))));
@@ -630,7 +657,7 @@ ARDOUR_UI::click_button_clicked (GdkEventButton* ev)
 }
 
 void
-ARDOUR_UI::toggle_always_play_range ()
+ARDOUR_UI::toggle_follow_edits ()
 {
        RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("ToggleFollowEdits"));
        assert (act);
@@ -638,7 +665,7 @@ ARDOUR_UI::toggle_always_play_range ()
        RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic (act);
        assert (tact);
 
-       Config->set_always_play_range (tact->get_active ());
+       Config->set_follow_edits (tact->get_active ());
 }