1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-04-01 03:54:47 +02:00

Define static accessor functions for VRulerControls and TrackControls...

... and use std::enable_shared_from_this

Temporarily putting TrackControls.cpp back into the big s.c.c, now 59 files

Future rewriting might even eliminate all mention of those classes in
the definition of the Track classes.
This commit is contained in:
Paul Licameli
2019-06-18 12:19:03 -04:00
parent 2259f12acb
commit 18ba27a641
8 changed files with 52 additions and 22 deletions

View File

@@ -100,6 +100,7 @@ is time to refresh some aspect of the screen.
#include "toolbars/ControlToolBar.h"
#include "tracks/ui/TrackControls.h"
#include "tracks/ui/TrackVRulerControls.h" // for inheritance relation
//This loads the appropriate set of cursors, depending on platform.
@@ -339,7 +340,7 @@ TrackPanel::~TrackPanel()
LWSlider *TrackPanel::GainSlider( const WaveTrack *wt )
{
auto pControls = wt->GetTrackControl();
auto pControls = &TrackControls::Get( *wt );
auto rect = FindRect( *pControls );
wxRect sliderRect;
TrackInfo::GetGainRect( rect.GetTopLeft(), sliderRect );
@@ -348,7 +349,7 @@ LWSlider *TrackPanel::GainSlider( const WaveTrack *wt )
LWSlider *TrackPanel::PanSlider( const WaveTrack *wt )
{
auto pControls = wt->GetTrackControl();
auto pControls = &TrackControls::Get( *wt );
auto rect = FindRect( *pControls );
wxRect sliderRect;
TrackInfo::GetPanRect( rect.GetTopLeft(), sliderRect );
@@ -358,7 +359,7 @@ LWSlider *TrackPanel::PanSlider( const WaveTrack *wt )
#ifdef EXPERIMENTAL_MIDI_OUT
LWSlider *TrackPanel::VelocitySlider( const NoteTrack *nt )
{
auto pControls = nt->GetTrackControl();
auto pControls = &TrackControls::Get( *nt );
auto rect = FindRect( *pControls );
wxRect sliderRect;
TrackInfo::GetVelocityRect( rect.GetTopLeft(), sliderRect );
@@ -2194,7 +2195,8 @@ struct VRulerAndChannel final : TrackPanelGroup {
Subdivision Children( const wxRect &rect ) override
{
return { Axis::X, Refinement{
{ rect.GetLeft(), mpChannel->GetVRulerControl() },
{ rect.GetLeft(),
TrackVRulerControls::Get( *mpChannel ).shared_from_this() },
{ mLeftOffset, mpChannel }
} };
}
@@ -2240,7 +2242,8 @@ struct LabeledChannelGroup final : TrackPanelGroup {
: mpTrack{ pTrack }, mLeftOffset{ leftOffset } {}
Subdivision Children( const wxRect &rect ) override
{ return { Axis::X, Refinement{
{ rect.GetLeft(), mpTrack->GetTrackControl() },
{ rect.GetLeft(),
TrackControls::Get( *mpTrack ).shared_from_this() },
{ rect.GetLeft() + kTrackInfoWidth,
std::make_shared< ChannelGroup >( mpTrack, mLeftOffset ) }
} }; }