Swap tempo/meter colours when hovering. Use entered marker for these as well.
authornick_m <mainsbridge@gmail.com>
Fri, 19 Aug 2016 18:36:52 +0000 (04:36 +1000)
committernick_m <mainsbridge@gmail.com>
Fri, 19 Aug 2016 18:36:52 +0000 (04:36 +1000)
- Note : entered_marker modifies the 'p' press, locating to the
  currently hovered-over marker.

gtk2_ardour/editor_mouse.cc
gtk2_ardour/marker.cc
gtk2_ardour/marker.h

index 0adbe42818833742e7cc16aeb70fc7c49cd96493..1bc242d3a2d73dc546e036680da53a384085cd63 100644 (file)
@@ -1688,6 +1688,8 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
 {
        ControlPoint* cp;
        ArdourMarker * marker;
+       MeterMarker* m_marker = 0;
+       TempoMarker* t_marker = 0;
        double fraction;
         bool ret = true;
 
@@ -1745,9 +1747,22 @@ Editor::enter_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
                }
                entered_marker = marker;
                marker->set_color_rgba (UIConfiguration::instance().color ("entered marker"));
-               // fall through
+               break;
+
        case MeterMarkerItem:
+               if ((m_marker = static_cast<MeterMarker *> (item->get_data ("marker"))) == 0) {
+                       break;
+               }
+               entered_marker = m_marker;
+               m_marker->set_enter_color ();
+               break;
+
        case TempoMarkerItem:
+               if ((t_marker = static_cast<TempoMarker *> (item->get_data ("marker"))) == 0) {
+                       break;
+               }
+               entered_marker = t_marker;
+               t_marker->set_enter_color ();
                break;
 
        case FadeInHandleItem:
@@ -1822,6 +1837,8 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent*, ItemType item_type)
 {
        AutomationLine* al;
        ArdourMarker *marker;
+       TempoMarker *t_marker;
+       MeterMarker *m_marker;
        Location *loc;
        bool is_start;
        bool ret = true;
@@ -1854,9 +1871,22 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent*, ItemType item_type)
                if ((loc = find_location_from_marker (marker, is_start)) != 0) {
                        location_flags_changed (loc);
                }
-               // fall through
+               break;
+
        case MeterMarkerItem:
+               if ((m_marker = static_cast<MeterMarker *> (item->get_data ("marker"))) == 0) {
+                       break;
+               }
+               entered_marker = 0;
+               m_marker->set_leave_color ();
+               break;
+
        case TempoMarkerItem:
+               if ((t_marker = static_cast<TempoMarker *> (item->get_data ("marker"))) == 0) {
+                       break;
+               }
+               entered_marker = 0;
+               t_marker->set_leave_color ();
                break;
 
        case FadeInTrimHandleItem:
index 87c0c06ab20d260ff23f069505ab6bc6d4d324ab..9e05e1e4d6fd5da3dde10729ac045f2278c9f387 100644 (file)
@@ -556,6 +556,26 @@ TempoMarker::update_height_mark (const double& ratio)
        mark->set (*points);
 }
 
+void
+TempoMarker::set_enter_color ()
+{
+       if (_tempo.position_lock_style() == MusicTime) {
+               set_color_rgba (UIConfiguration::instance().color ("tempo marker"));
+       } else {
+               set_color_rgba (UIConfiguration::instance().color ("tempo marker music"));
+       }
+}
+
+void
+TempoMarker::set_leave_color ()
+{
+       if (_tempo.position_lock_style() == MusicTime) {
+               set_color_rgba (UIConfiguration::instance().color ("tempo marker music"));
+       } else {
+               set_color_rgba (UIConfiguration::instance().color ("tempo marker"));
+       }
+}
+
 /***********************************************************************/
 
 MeterMarker::MeterMarker (PublicEditor& editor, ArdourCanvas::Container& parent, guint32 rgba, const string& text,
@@ -571,3 +591,23 @@ MeterMarker::~MeterMarker ()
 {
 }
 
+void
+MeterMarker::set_enter_color ()
+{
+       if (_meter.position_lock_style() == MusicTime) {
+               set_color_rgba (UIConfiguration::instance().color ("meter marker"));
+       } else {
+               set_color_rgba (UIConfiguration::instance().color ("meter marker music"));
+       }
+}
+
+void
+MeterMarker::set_leave_color ()
+{
+       if (_meter.position_lock_style() == MusicTime) {
+               set_color_rgba (UIConfiguration::instance().color ("meter marker music"));
+       } else {
+               set_color_rgba (UIConfiguration::instance().color ("meter marker"));
+       }
+}
+
index becc809a742c4114ac98cd9f9c0b897951b608de..b7ef26383301071da6c1cb50dcf2d1e88e8451d8 100644 (file)
@@ -146,6 +146,9 @@ class TempoMarker : public ArdourMarker
        ARDOUR::TempoSection& tempo() const { return _tempo; }
 
        void update_height_mark (const double& ratio);
+       void set_enter_color();
+       void set_leave_color();
+
   private:
        ARDOUR::TempoSection& _tempo;
 };
@@ -158,6 +161,9 @@ class MeterMarker : public ArdourMarker
 
        ARDOUR::MeterSection& meter() const { return _meter; }
 
+       void set_enter_color();
+       void set_leave_color();
+
   private:
        ARDOUR::MeterSection& _meter;
 };