1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-29 16:53:51 +01:00

Highlighting of Track Control Panel sliders

This commit is contained in:
Paul Licameli
2017-06-25 18:15:54 -04:00
parent 44d6d5f427
commit 51e25cdfa0
3 changed files with 11 additions and 7 deletions

View File

@@ -2076,12 +2076,13 @@ template<typename TrackClass>
void TrackInfo::SliderDrawFunction void TrackInfo::SliderDrawFunction
( LWSlider *(*Selector) ( LWSlider *(*Selector)
(const wxRect &sliderRect, const TrackClass *t, bool captured, wxWindow*), (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; wxRect sliderRect = rect;
TrackInfo::GetSliderHorizontalBounds( rect.GetTopLeft(), sliderRect ); TrackInfo::GetSliderHorizontalBounds( rect.GetTopLeft(), sliderRect );
auto wt = static_cast<const TrackClass*>( pTrack ); auto wt = static_cast<const TrackClass*>( pTrack );
Selector( sliderRect, wt, captured, nullptr )->OnPaint(*dc, false); Selector( sliderRect, wt, captured, nullptr )->OnPaint(*dc, highlight);
} }
#include "tracks/playabletrack/wavetrack/ui/WaveTrackSliderHandles.h" #include "tracks/playabletrack/wavetrack/ui/WaveTrackSliderHandles.h"
@@ -2094,7 +2095,7 @@ void TrackInfo::PanSliderDrawFunction
bool hit = target && target->GetTrack().get() == pTrack; bool hit = target && target->GetTrack().get() == pTrack;
bool captured = hit && target->IsClicked(); bool captured = hit && target->IsClicked();
SliderDrawFunction<WaveTrack> SliderDrawFunction<WaveTrack>
( &TrackInfo::PanSlider, dc, rect, pTrack, captured); ( &TrackInfo::PanSlider, dc, rect, pTrack, captured, hit);
} }
void TrackInfo::GainSliderDrawFunction void TrackInfo::GainSliderDrawFunction
@@ -2106,7 +2107,7 @@ void TrackInfo::GainSliderDrawFunction
bool hit = target && target->GetTrack().get() == pTrack; bool hit = target && target->GetTrack().get() == pTrack;
bool captured = hit && target->IsClicked(); bool captured = hit && target->IsClicked();
SliderDrawFunction<WaveTrack> SliderDrawFunction<WaveTrack>
( &TrackInfo::GainSlider, dc, rect, pTrack, captured); ( &TrackInfo::GainSlider, dc, rect, pTrack, captured, hit);
} }
#ifdef EXPERIMENTAL_MIDI_OUT #ifdef EXPERIMENTAL_MIDI_OUT
@@ -2120,7 +2121,7 @@ void TrackInfo::VelocitySliderDrawFunction
bool hit = target && target->GetTrack().get() == pTrack; bool hit = target && target->GetTrack().get() == pTrack;
bool captured = hit && target->IsClicked(); bool captured = hit && target->IsClicked();
SliderDrawFunction<NoteTrack> SliderDrawFunction<NoteTrack>
( &TrackInfo::VelocitySlider, dc, rect, pTrack, captured); ( &TrackInfo::VelocitySlider, dc, rect, pTrack, captured, hit);
} }
#endif #endif

View File

@@ -121,7 +121,8 @@ public:
( LWSlider *(*Selector) ( LWSlider *(*Selector)
(const wxRect &sliderRect, const TrackClass *t, bool captured, (const wxRect &sliderRect, const TrackClass *t, bool captured,
wxWindow*), 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 static void PanSliderDrawFunction
( TrackPanelDrawingContext &context, ( TrackPanelDrawingContext &context,

View File

@@ -21,7 +21,9 @@ SliderHandle::SliderHandle
: mSliderFn{ sliderFn } : mSliderFn{ sliderFn }
, mRect{ rect } , mRect{ rect }
, mpTrack{ pTrack } , mpTrack{ pTrack }
{} {
mChangeHighlight = RefreshCode::RefreshCell;
}
SliderHandle::~SliderHandle() SliderHandle::~SliderHandle()
{ {