diff options
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 34 | ||||
-rw-r--r-- | gtk2_ardour/marker.cc | 40 | ||||
-rw-r--r-- | gtk2_ardour/marker.h | 6 |
3 files changed, 78 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 0adbe42818..1bc242d3a2 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -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: diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc index 87c0c06ab2..9e05e1e4d6 100644 --- a/gtk2_ardour/marker.cc +++ b/gtk2_ardour/marker.cc @@ -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")); + } +} + diff --git a/gtk2_ardour/marker.h b/gtk2_ardour/marker.h index becc809a74..b7ef263833 100644 --- a/gtk2_ardour/marker.h +++ b/gtk2_ardour/marker.h @@ -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; }; |