Swap tempo/meter colours when hovering. Use entered marker for these as well.

- Note : entered_marker modifies the 'p' press, locating to the
	  currently hovered-over marker.
This commit is contained in:
nick_m 2016-08-20 04:36:52 +10:00
parent 949dd8245d
commit 869a9cb5df
3 changed files with 78 additions and 2 deletions

View 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:

View 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"));
}
}

View 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;
};