TracktionEngine
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
tracktion::engine::Selectable Class Referenceabstract

Base class for things that can be selected, and whose properties can appear in the properties panel. More...

Inheritance diagram for tracktion::engine::Selectable:

Public Types

using WeakRef = juce::WeakReference< Selectable >
 

Public Member Functions

 Selectable ()
 
virtual ~Selectable ()
 
virtual juce::String getSelectableDescription ()=0
 Subclasses must return a description of what they are. More...
 
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected. More...
 
virtual void changed ()
 This should be called to send a change notification to any SelectableListeners that are registered with this object. More...
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. More...
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions. More...
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 

Static Public Member Functions

static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted. More...
 

Public Attributes

WeakRef::Master masterReference
 

Detailed Description

Base class for things that can be selected, and whose properties can appear in the properties panel.

Member Typedef Documentation

◆ WeakRef

using tracktion::engine::Selectable::WeakRef = juce::WeakReference<Selectable>

Constructor & Destructor Documentation

◆ Selectable()

tracktion::engine::Selectable::Selectable ( )

◆ ~Selectable()

virtual tracktion::engine::Selectable::~Selectable ( )
virtual

Member Function Documentation

◆ initialise()

static void tracktion::engine::Selectable::initialise ( )
static

◆ getSelectableDescription()

virtual juce::String tracktion::engine::Selectable::getSelectableDescription ( )
pure virtual

Subclasses must return a description of what they are.

Implemented in tracktion::engine::ProjectItem, tracktion::engine::Project, tracktion::engine::VolumeAndPanPlugin, tracktion::engine::VCAPlugin, tracktion::engine::TextPlugin, tracktion::engine::RackType, tracktion::engine::RackInstance, tracktion::engine::LevelMeterPlugin, tracktion::engine::InsertPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::LatencyPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::FourOscPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::DelayPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::AirWindowsPlugin, tracktion::engine::WaveInputDevice, tracktion::engine::VirtualMidiInputDevice, tracktion::engine::OutputDevice, tracktion::engine::InputDeviceInstance::InputDeviceDestination, tracktion::engine::InputDevice, tracktion::engine::TrackCompManager::TrackComp, tracktion::engine::TempoTrack, tracktion::engine::MasterTrack, tracktion::engine::MarkerTrack, tracktion::engine::FolderTrack, tracktion::engine::ChordTrack, tracktion::engine::AutomationTrack, tracktion::engine::AudioTrack, tracktion::engine::ArrangerTrack, tracktion::engine::TimeSigSetting, tracktion::engine::TempoSetting, tracktion::engine::TempoSequence, tracktion::engine::PitchSetting, tracktion::engine::Edit, tracktion::engine::WaveAudioClip, tracktion::engine::StepClip, tracktion::engine::StepClip::PatternInstance, tracktion::engine::StepClip::Channel, tracktion::engine::MidiClip, tracktion::engine::MarkerClip, tracktion::engine::EditClip, tracktion::engine::ContainerClip, tracktion::engine::CollectionClip, tracktion::engine::MakeMonoEffect, tracktion::engine::NormaliseEffect, tracktion::engine::StepVolumeEffect, tracktion::engine::ChordClip, tracktion::engine::ArrangerClip, tracktion::engine::AutomatableParameter, tracktion::engine::StepModifier, tracktion::engine::RandomModifier, tracktion::engine::MIDITrackerModifier, tracktion::engine::LFOModifier, tracktion::engine::EnvelopeFollowerModifier, tracktion::engine::BreakpointOscillatorModifier, tracktion::engine::SelectedMidiEvents, and tracktion::engine::ControlSurface.

◆ selectionStatusChanged()

virtual void tracktion::engine::Selectable::selectionStatusChanged ( bool  isNowSelected)
virtual

Can be overridden to tell this object that it has just been selected or deselected.

Reimplemented in tracktion::engine::CurveEditorPoint, tracktion::engine::ProjectItem, and tracktion::engine::SelectedMidiEvents.

◆ changed()

virtual void tracktion::engine::Selectable::changed ( )
virtual

This should be called to send a change notification to any SelectableListeners that are registered with this object.

Reimplemented in tracktion::engine::Plugin, tracktion::engine::EditClip, tracktion::engine::Clip, and tracktion::engine::AudioClipBase.

◆ selectableAboutToBeDeleted()

virtual void tracktion::engine::Selectable::selectableAboutToBeDeleted ( )
virtual

Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.

Reimplemented in tracktion::engine::Plugin, and tracktion::engine::ExternalPlugin.

◆ addSelectableListener()

void tracktion::engine::Selectable::addSelectableListener ( SelectableListener )

◆ removeSelectableListener()

void tracktion::engine::Selectable::removeSelectableListener ( SelectableListener )

◆ isSelectableValid()

static bool tracktion::engine::Selectable::isSelectableValid ( const Selectable )
staticnoexcept

checks whether this object has been deleted.

This is pretty reliable, and can be called with a null pointer, but isn't 100% perfect, as it can provide a false-positive when an object is deleted, and another one later created that happens to have the same memory address.

◆ cancelAnyPendingUpdates()

void tracktion::engine::Selectable::cancelAnyPendingUpdates ( )

If changed() has been called, this will cancel any pending async change notificaions.

◆ deselect()

void tracktion::engine::Selectable::deselect ( )

◆ propertiesChanged()

void tracktion::engine::Selectable::propertiesChanged ( )

◆ notifyListenersOfDeletion()

void tracktion::engine::Selectable::notifyListenersOfDeletion ( )

◆ getWeakRef()

WeakRef tracktion::engine::Selectable::getWeakRef ( )

Member Data Documentation

◆ masterReference

WeakRef::Master tracktion::engine::Selectable::masterReference

The documentation for this class was generated from the following file: