From 51e25cdfa0bb598e5c6ff126b55a82e08ef53cdf Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 25 Jun 2017 18:15:54 -0400 Subject: [PATCH] Highlighting of Track Control Panel sliders --- src/TrackPanel.cpp | 11 ++++++----- src/TrackPanel.h | 3 ++- src/tracks/ui/SliderHandle.cpp | 4 +++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index a50eb04b0..2e394df24 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -2076,12 +2076,13 @@ template void TrackInfo::SliderDrawFunction ( LWSlider *(*Selector) (const wxRect &sliderRect, const TrackClass *t, bool captured, wxWindow*), - wxDC *dc, const wxRect &rect, const Track *pTrack, bool captured ) + wxDC *dc, const wxRect &rect, const Track *pTrack, + bool captured, bool highlight ) { wxRect sliderRect = rect; TrackInfo::GetSliderHorizontalBounds( rect.GetTopLeft(), sliderRect ); auto wt = static_cast( pTrack ); - Selector( sliderRect, wt, captured, nullptr )->OnPaint(*dc, false); + Selector( sliderRect, wt, captured, nullptr )->OnPaint(*dc, highlight); } #include "tracks/playabletrack/wavetrack/ui/WaveTrackSliderHandles.h" @@ -2094,7 +2095,7 @@ void TrackInfo::PanSliderDrawFunction bool hit = target && target->GetTrack().get() == pTrack; bool captured = hit && target->IsClicked(); SliderDrawFunction - ( &TrackInfo::PanSlider, dc, rect, pTrack, captured); + ( &TrackInfo::PanSlider, dc, rect, pTrack, captured, hit); } void TrackInfo::GainSliderDrawFunction @@ -2106,7 +2107,7 @@ void TrackInfo::GainSliderDrawFunction bool hit = target && target->GetTrack().get() == pTrack; bool captured = hit && target->IsClicked(); SliderDrawFunction - ( &TrackInfo::GainSlider, dc, rect, pTrack, captured); + ( &TrackInfo::GainSlider, dc, rect, pTrack, captured, hit); } #ifdef EXPERIMENTAL_MIDI_OUT @@ -2120,7 +2121,7 @@ void TrackInfo::VelocitySliderDrawFunction bool hit = target && target->GetTrack().get() == pTrack; bool captured = hit && target->IsClicked(); SliderDrawFunction - ( &TrackInfo::VelocitySlider, dc, rect, pTrack, captured); + ( &TrackInfo::VelocitySlider, dc, rect, pTrack, captured, hit); } #endif diff --git a/src/TrackPanel.h b/src/TrackPanel.h index 943aeb540..8e11c1e89 100644 --- a/src/TrackPanel.h +++ b/src/TrackPanel.h @@ -121,7 +121,8 @@ public: ( LWSlider *(*Selector) (const wxRect &sliderRect, const TrackClass *t, bool captured, wxWindow*), - wxDC *dc, const wxRect &rect, const Track *pTrack, bool captured ); + wxDC *dc, const wxRect &rect, const Track *pTrack, + bool captured, bool highlight ); static void PanSliderDrawFunction ( TrackPanelDrawingContext &context, diff --git a/src/tracks/ui/SliderHandle.cpp b/src/tracks/ui/SliderHandle.cpp index d422d820f..6bae9d82e 100644 --- a/src/tracks/ui/SliderHandle.cpp +++ b/src/tracks/ui/SliderHandle.cpp @@ -21,7 +21,9 @@ SliderHandle::SliderHandle : mSliderFn{ sliderFn } , mRect{ rect } , mpTrack{ pTrack } -{} +{ + mChangeHighlight = RefreshCode::RefreshCell; +} SliderHandle::~SliderHandle() {