41#include "../CommonCommandFlags.h"
44#include "../TrackPanelAx.h"
45#include "../TrackPanel.h"
46#include "../WaveTrack.h"
47#include "../prefs/WaveformSettings.h"
48#include "../prefs/SpectrogramSettings.h"
49#include "../Shuttle.h"
50#include "../ShuttleGui.h"
51#include "../tracks/playabletrack/wavetrack/ui/WaveTrackView.h"
52#include "../tracks/playabletrack/wavetrack/ui/WaveTrackViewConstants.h"
67 static_cast<void>(&context);
68 static_cast<void>(&t);
76#ifdef USE_OWN_TRACK_SELECTION
84 {
return VisitSettings<false>(
S); }
87 {
return VisitSettings<true>(
S); }
92#ifdef USE_OWN_TRACK_SELECTION
96 S.StartMultiColumn(3, wxEXPAND);
98 S.SetStretchyCol( 2 );
111 for (
auto t : tracks.Leaders() )
114 for (
auto channel : channels ) {
116#ifdef USE_OWN_TRACK_SELECTION
121 channel->GetSelected();
135{
XO(
"Set Track Status") };
150 {
return VisitSettings<false>(
S); }
153 {
return VisitSettings<true>(
S); }
158 S.StartMultiColumn(3, wxEXPAND);
160 S.SetStretchyCol( 2 );
164 S.StartMultiColumn(2, wxEXPAND);
166 S.SetStretchyCol( 1 );
194 else if( t == trackFocus.
Get() )
195 trackFocus.Set(
nullptr );
204{
XO(
"Set Track Audio") };
220 {
return VisitSettings<false>(
S); }
223 {
return VisitSettings<true>(
S); }
228 S.StartMultiColumn(2, wxEXPAND);
230 S.SetStretchyCol( 1 );
235 S.StartMultiColumn(3, wxEXPAND);
237 S.SetStretchyCol( 2 );
246 static_cast<void>(context);
268{
XO(
"Set Track Visuals") };
283 {
wxT(
"Color0"),
XO(
"Color 0") },
284 {
wxT(
"Color1"),
XO(
"Color 1") },
285 {
wxT(
"Color2"),
XO(
"Color 2") },
286 {
wxT(
"Color3"),
XO(
"Color 3") },
316 {
wxT(
"Times2"),
XO(
"Times 2") },
323 auto result = transform_container< EnumValueSymbols >(
355 {
return VisitSettings<false>(
S); }
358 {
return VisitSettings<true>(
S); }
363 S.StartMultiColumn(3, wxEXPAND);
365 S.SetStretchyCol( 2 );
372 auto typeNames = transform_container<TranslatableStrings>(
386 S.StartMultiColumn(2, wxEXPAND);
388 S.SetStretchyCol( 1 );
393 S.StartMultiColumn(3, wxEXPAND);
395 S.SetStretchyCol( 2 );
398 Msgids( schemes.data(), schemes.size() ) );
405 static_cast<void>(context);
408 static const double ZOOMLIMIT = 0.001f;
424 view.SetMultiView(
true );
429 wt->GetWaveformSettings().scaleType =
437 case kReset: wt->SetDisplayBounds(-1,1);
break;
438 case kTimes2: wt->SetDisplayBounds(-2,2);
break;
439 case kHalfWave: wt->SetDisplayBounds(0,1);
break;
445 wt->GetDisplayBounds(&vzmin, &vzmax);
498 {
return VisitSettings<false>(
S); }
500 {
return VisitSettings<true>(
S); }
508 wxT(
"Optional/Extra/Part2/Scriptables1"),
518 Command(
wxT(
"SetTrackVisuals"),
XXO(
"Set Track Visuals..."),
524 wxT(
"Optional/Extra/Part2/Scriptables2"),
AttachedItem sAttachment1
AttachedItem sAttachment2
const ReservedCommandFlag & AudioIONotBusyFlag()
XXO("&Cut/Copy/Paste Toolbar")
static const EnumValueSymbol kScaleTypeStrings[nScaleTypes]
static const EnumValueSymbol kZoomTypeStrings[nZoomTypes]
static EnumValueSymbols DiscoverSubViewTypes()
static const EnumValueSymbol kColourStrings[nColours]
TranslatableStrings Msgids(const EnumValueSymbol strings[], size_t nStrings)
Convenience function often useful when adding choice controls.
Subclass & Get(const RegisteredFactory &key)
Get reference to an attachment, creating on demand if not present, down-cast it to Subclass.
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
AudacityProject & project
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
const TranslatableString Stripped() const
AudioTrack subclass that can also be audibly replayed by the program.
static const ComponentInterfaceSymbol Symbol
bool ApplyInner(const CommandContext &context, Track *t) override
bool VisitSettings(SettingsVisitorBase< Const > &S)
void PopulateOrExchange(ShuttleGui &S) override
bool VisitSettings(SettingsVisitorBase< Const > &S)
virtual bool ApplyInner(const CommandContext &context, Track *t)
bool Apply(const CommandContext &context) override
virtual void PopulateOrExchange(ShuttleGui &S) override
SetTrackStatusCommand mSetStatus
static const ComponentInterfaceSymbol Symbol
bool VisitSettings(SettingsVisitorBase< Const > &S)
SetTrackVisualsCommand mSetVisuals
SetTrackAudioCommand mSetAudio
void PopulateOrExchange(ShuttleGui &S) override
static const ComponentInterfaceSymbol Symbol
bool ApplyInner(const CommandContext &context, Track *t) override
bool VisitSettings(SettingsVisitorBase< Const > &S)
static const ComponentInterfaceSymbol Symbol
bool ApplyInner(const CommandContext &context, Track *t) override
void PopulateOrExchange(ShuttleGui &S) override
bool VisitSettings(SettingsVisitorBase< Const > &S)
Visitor of effect or command parameters. This is a base class with lots of virtual functions that do ...
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
static const EnumValueSymbols & GetColorSchemeNames()
Abstract base class for an object holding data associated with points on a time axis.
virtual void SetPan(float)
virtual void SetSelected(bool s)
void SetName(const wxString &n)
static TrackList & Get(AudacityProject &project)
static auto Channels(TrackType *pTrack) -> TrackIterRange< TrackType >
static TrackPanel & Get(AudacityProject &project)
void SetExpandedHeight(int height)
static TrackView & Get(Track &)
A Track that contains audio waveform data.
void SetWaveColorIndex(int colorIndex)
static WaveTrackView & Get(WaveTrack &track)
AUDACITY_DLL_API void OnAudacityCommand(const CommandContext &ctx)
AUDACITY_DLL_API const EnumValueSymbol MultiViewSymbol
String identifier for a preference for one of each type of view.
void swap(std::unique_ptr< Alg_seq > &a, std::unique_ptr< Alg_seq > &b)
BuiltinCommandsModule::Registration< SetTrackAudioCommand > reg2
BuiltinCommandsModule::Registration< SetTrackCommand > reg4
BuiltinCommandsModule::Registration< SetTrackStatusCommand > reg
BuiltinCommandsModule::Registration< SetTrackVisualsCommand > reg3
static const std::vector< WaveTrackSubViewType > & All()
Discover all registered types.
static Display Default()
Return a preferred type.