1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 09:20:16 +01:00

Global slider instances for control panels out of TrackPanel.cpp...

... and updating of them is accomplished privately in implementation files,
reducing intrusions into TrackPanel and ProjectWindow

This removes #include-s from TrackInfo.cpp, leaving dependency cycles better
than previously
This commit is contained in:
Paul Licameli
2019-06-18 12:47:26 -04:00
parent 627213cb74
commit 6a03e7c84a
12 changed files with 234 additions and 194 deletions

View File

@@ -73,10 +73,8 @@ is time to refresh some aspect of the screen.
#include "TrackInfo.h"
#include "TrackPanelAx.h"
#include "WaveTrack.h"
#include "tracks/playabletrack/wavetrack/ui/WaveTrackControls.h"
#ifdef EXPERIMENTAL_MIDI_OUT
#include "NoteTrack.h"
#include "tracks/playabletrack/notetrack/ui/NoteTrackControls.h"
#endif
#include "ondemand/ODManager.h"
@@ -260,7 +258,6 @@ TrackPanel::TrackPanel(wxWindow * parent, wxWindowID id,
#pragma warning( default: 4355 )
#endif
{
TrackInfo::ReCreateSliders();
TrackInfo::UpdatePrefs( this );
SetLayoutDirection(wxLayout_LeftToRight);
@@ -322,35 +319,6 @@ TrackPanel::~TrackPanel()
ReleaseMouse();
}
LWSlider *TrackPanel::GainSlider( const WaveTrack *wt )
{
auto pControls = &TrackControls::Get( *wt );
auto rect = FindRect( *pControls );
wxRect sliderRect;
WaveTrackControls::GetGainRect( rect.GetTopLeft(), sliderRect );
return TrackInfo::GainSlider(sliderRect, wt, false, this);
}
LWSlider *TrackPanel::PanSlider( const WaveTrack *wt )
{
auto pControls = &TrackControls::Get( *wt );
auto rect = FindRect( *pControls );
wxRect sliderRect;
WaveTrackControls::GetPanRect( rect.GetTopLeft(), sliderRect );
return TrackInfo::PanSlider(sliderRect, wt, false, this);
}
#ifdef EXPERIMENTAL_MIDI_OUT
LWSlider *TrackPanel::VelocitySlider( const NoteTrack *nt )
{
auto pControls = &TrackControls::Get( *nt );
auto rect = FindRect( *pControls );
wxRect sliderRect;
NoteTrackControls::GetVelocityRect( rect.GetTopLeft(), sliderRect );
return TrackInfo::VelocitySlider(sliderRect, nt, false, this);
}
#endif
void TrackPanel::UpdatePrefs()
{
// All vertical rulers must be recalculated since the minimum and maximum
@@ -362,12 +330,6 @@ void TrackPanel::UpdatePrefs()
Refresh();
}
void TrackPanel::ApplyUpdatedTheme()
{
TrackInfo::ReCreateSliders();
}
wxSize TrackPanel::GetTracksUsableArea() const
{
auto size = GetSize();