rec-enable buttons are now ArdourButtons, but with a minor graphical glitch that...
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 2 Nov 2011 19:51:59 +0000 (19:51 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 2 Nov 2011 19:51:59 +0000 (19:51 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@10402 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour3_ui_default.conf
gtk2_ardour/mixer_strip.cc
gtk2_ardour/route_time_axis.cc
gtk2_ardour/route_ui.cc
gtk2_ardour/route_ui.h

index 60fd7e3bed44bc195cdfe31f21cfdd9aa5c7793d..d92151e5da2eae51f9a59450bfba7620abc206c8 100644 (file)
     <Option name="mute button led mid" value="00000000"/>
     <Option name="mute button text" value="d6d6d3ff"/>
     <Option name="mute button text active" value="484840ff"/>
-    <Option name="mute button text mid" value="00000000"/>
-    <Option name="solo button border start" value="00000000"/>
-    <Option name="solo button border end" value="00000000"/>
+    <Option name="mute button text mid" value="484840ff"/>
+    <Option name="solo button border start" value="adfa36ff"/>
+    <Option name="solo button border end" value="5d8c16ff"/>
     <Option name="solo button border start selected" value="00000000"/>
     <Option name="solo button border end selected" value="00000000"/>
-    <Option name="solo button fill start" value="00000000"/>
-    <Option name="solo button fill end" value="00000000"/>
-    <Option name="solo button fill start active" value="00000000"/>
-    <Option name="solo button fill end active" value="00000000"/>
+    <Option name="solo button fill start" value="636d5fff"/>
+    <Option name="solo button fill end" value="575f53ff"/>
+    <Option name="solo button fill start active" value="adfa36ff"/>
+    <Option name="solo button fill end active" value="9ce925ff"/>
     <Option name="solo button fill start mid" value="00000000"/>
     <Option name="solo button fill end mid" value="00000000"/>
     <Option name="solo button led" value="00000000"/>
     <Option name="solo button led active" value="00000000"/>
     <Option name="solo button led mid" value="00000000"/>
-    <Option name="solo button text" value="00000000"/>
-    <Option name="solo button text active" value="00000000"/>
+    <Option name="solo button text" value="b9bcb6ff"/>
+    <Option name="solo button text active" value="000000ff"/>
     <Option name="solo button text mid" value="00000000"/>
-    <Option name="record enable button border start" value="00000000"/>
-    <Option name="record enable button border end" value="00000000"/>
+    <Option name="record enable button border start" value="cc0909ff"/>
+    <Option name="record enable button border end" value="7a0d0dff"/>
     <Option name="record enable button border start selected" value="00000000"/>
     <Option name="record enable button border end selected" value="00000000"/>
-    <Option name="record enable button fill start" value="00000000"/>
-    <Option name="record enable button fill end" value="00000000"/>
-    <Option name="record enable button fill start active" value="00000000"/>
-    <Option name="record enable button fill end active" value="00000000"/>
-    <Option name="record enable button fill start mid" value="00000000"/>
-    <Option name="record enable button fill end mid" value="00000000"/>
+    <Option name="record enable button fill start" value="603f3fff"/>
+    <Option name="record enable button fill end" value="3d2828ff"/>
+    <Option name="record enable button fill start active" value="fb0c0cff"/>
+    <Option name="record enable button fill end active" value="b50f0fff"/>
+    <Option name="record enable button fill start mid" value="ffa8a8ff"/>
+    <Option name="record enable button fill end mid" value="fb7c7cff"/>
     <Option name="record enable button led" value="00000000"/>
     <Option name="record enable button led active" value="00000000"/>
     <Option name="record enable button led mid" value="00000000"/>
-    <Option name="record enable button text" value="00000000"/>
+    <Option name="record enable button text" value="c6c1c2ff"/>
     <Option name="record enable button text active" value="00000000"/>
-    <Option name="record enable button text mid" value="00000000"/>
+    <Option name="record enable button text mid" value="433232ff"/>
     <Option name="send alert button border start" value="9baa8dff"/>
     <Option name="send alert button border end" value="6d7762ff"/>
     <Option name="send alert button border start selected" value="00000000"/>
     <Option name="send alert button text" value="e4e4e2ff"/>
     <Option name="send alert button text active" value="696959ff"/>
     <Option name="send alert button text mid" value="00000000"/>
-
-    <Option name="solo button border start" value="9baa8dff"/>
-    <Option name="solo button border end" value="6d7762ff"/>
-    <Option name="solo button border start selected" value="00000000"/>
-    <Option name="solo button border end selected" value="00000000"/>
-    <Option name="solo button fill start" value="4e5647ff"/>
-    <Option name="solo button fill end" value="43493cff"/>
-    <Option name="solo button fill start active" value="91f928ff"/>
-    <Option name="solo button fill end active" value="85e524ff"/>
-    <Option name="solo button fill start mid" value="00000000"/>
-    <Option name="solo button fill end mid" value="00000000"/>
-    <Option name="solo button led" value="00000000"/>
-    <Option name="solo button led active" value="00000000"/>
-    <Option name="solo button led mid" value="00000000"/>
-    <Option name="solo button text" value="e4e4e2ff"/>
-    <Option name="solo button text active" value="696959ff"/>
-    <Option name="solo button text mid" value="00000000"/>
-
   </Canvas>
 </Ardour>
index 3b59b247dc591bd03d996441ff74447f0fd01f08..7021e06b4e72843df91aa17908f3aab3e223b46e 100644 (file)
@@ -302,12 +302,6 @@ MixerStrip::init ()
        input_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::input_press), false);
        output_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::output_press), false);
 
-       /* we don't need this if its not an audio track, but we don't know that yet and it doesn't
-          hurt (much).
-       */
-
-       rec_enable_button->set_name ("MixerRecordEnableButton");
-
        /* ditto for this button and busses */
 
        name_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_press), false);
@@ -1783,7 +1777,7 @@ MixerStrip::set_button_names ()
 {
        switch (_width) {
        case Wide:
-               rec_enable_button_label.set_text (_("Rec"));
+               rec_enable_button->set_text (_("Rec"));
                mute_button->set_text (_("Mute"));
                monitor_input_button->set_text (_("In"));
                monitor_disk_button->set_text (_("Disk"));
@@ -1812,7 +1806,7 @@ MixerStrip::set_button_names ()
                break;
 
        default:
-               rec_enable_button_label.set_text (_("R"));
+               rec_enable_button->set_text (_("R"));
                mute_button->set_text (_("M"));
                monitor_input_button->set_text (_("I"));
                monitor_disk_button->set_text (_("D"));
index f6a6a9c123eb79378c283ee590cc740b88c556fc..f273f73e2db3cd87babbd587bcb03c3cf8d55293 100644 (file)
@@ -179,10 +179,10 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
                switch (track()->mode()) {
                case ARDOUR::Normal:
                case ARDOUR::NonLayered:
-                       rec_enable_button->add (*(manage (new Image (::get_icon (X_("record_normal_red"))))));
+                       rec_enable_button->set_image (::get_icon (X_("record_normal_red")));
                        break;
                case ARDOUR::Destructive:
-                       rec_enable_button->add (*(manage (new Image (::get_icon (X_("record_tape_red"))))));
+                       rec_enable_button->set_image (::get_icon (X_("record_tape_red")));
                        break;
                }
                rec_enable_button->show_all ();
@@ -754,10 +754,10 @@ RouteTimeAxisView::set_track_mode (TrackMode mode, bool apply_to_selection)
                switch (mode) {
                case ARDOUR::NonLayered:
                case ARDOUR::Normal:
-                       rec_enable_button->add (*(manage (new Image (::get_icon (X_("record_normal_red"))))));
+                       rec_enable_button->set_image (::get_icon (X_("record_normal_red")));
                        break;
                case ARDOUR::Destructive:
-                       rec_enable_button->add (*(manage (new Image (::get_icon (X_("record_tape_red"))))));
+                       rec_enable_button->set_image (::get_icon (X_("record_tape_red")));
                        break;
                }
 
@@ -2348,7 +2348,7 @@ RouteTimeAxisView::remove_underlay (StreamView* v)
 void
 RouteTimeAxisView::set_button_names ()
 {
-       rec_enable_button_label.set_text (_("r"));
+       rec_enable_button->set_text (_("r"));
 
         if (_route && _route->solo_safe()) {
                solo_button->remove ();
index c12658d973f545b43199da15d7efa6d9b8ea9259..9bedb9b521a75c36746722d2ff3b86d2372bc1cb 100644 (file)
@@ -119,10 +119,8 @@ RouteUI::init ()
        UI::instance()->set_tip (solo_button, _("Mute other (non-soloed) tracks"), "");
        solo_button->set_no_show_all (true);
 
-       rec_enable_button = manage (new BindableToggleButton);
+       rec_enable_button = manage (new ArdourButton);
        rec_enable_button->set_name ("record enable button");
-       rec_enable_button->add (rec_enable_button_label);
-       rec_enable_button_label.show ();
        UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), "");
 
        show_sends_button = manage (new ArdourButton);
@@ -541,6 +539,10 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
                 }
         }
 
+       cerr << name() << " re button press, i am " << _i_am_the_modifier << " active state = " 
+            << rec_enable_button->active_state()
+            << endl;
+
        if (!_i_am_the_modifier && is_track() && rec_enable_button) {
 
                if (Keyboard::is_button2_event (ev)) {
@@ -550,7 +552,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
 
                } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
 
-                       _session->set_record_enabled (_session->get_routes(), !rec_enable_button->get_active());
+                       _session->set_record_enabled (_session->get_routes(), !rec_enable_button->active_state());
 
                } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
 
@@ -558,7 +560,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
                           NOTE: Primary-button2 is MIDI learn.
                        */
                        if (ev->button == 1 && _route->route_group()) {
-                               _session->set_record_enabled (_route->route_group()->route_list(), !rec_enable_button->get_active(), Session::rt_cleanup, true);
+                               _session->set_record_enabled (_route->route_group()->route_list(), !rec_enable_button->active_state(), Session::rt_cleanup, true);
                        }
 
                } else if (Keyboard::is_context_menu_event (ev)) {
@@ -569,7 +571,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
 
                        boost::shared_ptr<RouteList> rl (new RouteList);
                        rl->push_back (route());
-                       _session->set_record_enabled (rl, !rec_enable_button->get_active());
+                       _session->set_record_enabled (rl, !rec_enable_button->active_state());
                }
        }
 
@@ -734,7 +736,7 @@ RouteUI::step_edit_changed (bool yn)
 {
         if (yn) {
                 if (rec_enable_button) {
-                        rec_enable_button->set_visual_state (3);
+                        rec_enable_button->set_active_state (Active);
                 }
 
                 start_step_editing ();
@@ -746,7 +748,7 @@ RouteUI::step_edit_changed (bool yn)
         } else {
 
                 if (rec_enable_button) {
-                        rec_enable_button->set_visual_state (0);
+                        rec_enable_button->unset_active_state ();
                 }
 
                 stop_step_editing ();
@@ -1126,30 +1128,15 @@ RouteUI::update_rec_display ()
                return;
        }
 
-       bool model = _route->record_enabled();
-       bool view = rec_enable_button->get_active();
-
-       /* first make sure the button's "depressed" visual
-          is correct.
-       */
-
-       if (model != view) {
-               ++_i_am_the_modifier;
-               rec_enable_button->set_active (model);
-               --_i_am_the_modifier;
-       }
-
-       /* now make sure its color state is correct */
-
-       if (model) {
+       if (_route->record_enabled()) {
                 switch (_session->record_status ()) {
                 case Session::Recording:
-                        rec_enable_button->set_visual_state (1);
+                        rec_enable_button->set_active_state (Active);
                         break;
 
                 case Session::Disabled:
                 case Session::Enabled:
-                        rec_enable_button->set_visual_state (2);
+                        rec_enable_button->set_active_state (Mid);
                         break;
 
                 }
@@ -1159,7 +1146,7 @@ RouteUI::update_rec_display ()
                 }
 
        } else {
-               rec_enable_button->set_visual_state (0);
+               rec_enable_button->unset_active_state ();
 
                 if (step_edit_item) {
                         step_edit_item->set_sensitive (true);
@@ -1699,7 +1686,7 @@ RouteUI::save_as_template ()
 void
 RouteUI::check_rec_enable_sensitivity ()
 {
-       if (_session->transport_rolling() && rec_enable_button->get_active() && Config->get_disable_disarm_during_roll()) {
+       if (_session->transport_rolling() && rec_enable_button->active_state() && Config->get_disable_disarm_during_roll()) {
                rec_enable_button->set_sensitive (false);
        } else {
                rec_enable_button->set_sensitive (true);
index a14437b0bfb227aa1b5fa133f01abb79966fe57b..82b19c7b739ab233b1ab6fe89b375649665ff24d 100644 (file)
@@ -94,7 +94,7 @@ class RouteUI : public virtual AxisView
        Gtk::HBox _invert_button_box;
        ArdourButton* mute_button;
        ArdourButton* solo_button;
-       BindableToggleButton* rec_enable_button; /* audio tracks */
+       ArdourButton* rec_enable_button; /* audio tracks */
        ArdourButton* show_sends_button; /* busses */
        ArdourButton* monitor_input_button;
        ArdourButton* monitor_disk_button;
@@ -104,16 +104,12 @@ class RouteUI : public virtual AxisView
         ArdourButton* solo_safe_led;
         ArdourButton* solo_isolated_led;
 
-       Gtk::Label rec_enable_button_label;
        Gtk::Label monitor_input_button_label;
        Gtk::Label monitor_disk_button_label;
 
        void send_blink (bool);
        sigc::connection send_blink_connection;
 
-       virtual std::string solo_button_name () const { return "SoloButton"; }
-       virtual std::string safe_solo_button_name () const { return "SafeSoloButton"; }
-
        Gtk::Menu* mute_menu;
        Gtk::Menu* solo_menu;
        Gtk::Menu* sends_menu;