Photosine 0.5
Loading...
Searching...
No Matches
PluginInterface::PluginMenuComponent Class Reference

#include <PluginMenuComponent.h>

Inheritance diagram for PluginInterface::PluginMenuComponent:

Public Member Functions

 PluginMenuComponent ()
 ~PluginMenuComponent () override
void showPluginMenu (juce::ValueTree linkedValueTree, juce::Point< float > position)
juce::Component virtual members
void paint (juce::Graphics &) override
void resized () override
void focusGained (FocusChangeType cause) override
juce::ApplicationCommandTarget virtual members
juce::ApplicationCommandTarget * getNextCommandTarget () override
void getAllCommands (juce::Array< juce::CommandID > &commands) override
void getCommandInfo (juce::CommandID commandID, juce::ApplicationCommandInfo &result) override
bool perform (const InvocationInfo &info) override

Private Member Functions

void refreshPluginItems ()
void addPlugin (juce::PluginDescription pluginToLoad)
juce::ValueTree::Listener virtual members
void valueTreePropertyChanged (juce::ValueTree &treeWhosePropertyHasChanged, const juce::Identifier &property) override
void valueTreeChildAdded (juce::ValueTree &parentTree, juce::ValueTree &childWhichHasBeenAdded) override
void valueTreeChildRemoved (juce::ValueTree &parentTree, juce::ValueTree &childWhichHasBeenRemoved, int indexFromWhichChildWasRemoved) override
void valueTreeChildOrderChanged (juce::ValueTree &parentTreeWhoseChildrenHaveMoved, int oldIndex, int newIndex) override

Private Attributes

juce::Array< std::unique_ptr< PluginMenuItemComponent > > pluginItems
std::shared_ptr< PluginManagerpluginManager
std::unique_ptr< PluginMenuContainerpluginContainer
std::unique_ptr< juce::Viewport > menuViewport
juce::ValueTree projectValueTree

Detailed Description

UI component for adding, removing, selecting, replacing, reordering the plugins for the currently selected track. Plugins are represnted by PluginMenuItemComponent added to a PluginMenuContainer. PluginMenuContainer is the content component of a juce::Viewport for scrollability. It is a juce::DragAndDropContainer used for reordering plugins. This is the bridge between the value tree data, the PluginManager, and the user interface.

Constructor & Destructor Documentation

◆ PluginMenuComponent()

PluginInterface::PluginMenuComponent::PluginMenuComponent ( )

◆ ~PluginMenuComponent()

PluginInterface::PluginMenuComponent::~PluginMenuComponent ( )
override

Member Function Documentation

◆ addPlugin()

void PluginInterface::PluginMenuComponent::addPlugin ( juce::PluginDescription pluginToLoad)
private

Calls PluginManager::addPlugin(), used as a callback for PluginMenuContainer

◆ focusGained()

void PluginInterface::PluginMenuComponent::focusGained ( FocusChangeType cause)
override

◆ getAllCommands()

void PluginInterface::PluginMenuComponent::getAllCommands ( juce::Array< juce::CommandID > & commands)
override

◆ getCommandInfo()

void PluginInterface::PluginMenuComponent::getCommandInfo ( juce::CommandID commandID,
juce::ApplicationCommandInfo & result )
override

◆ getNextCommandTarget()

juce::ApplicationCommandTarget * PluginInterface::PluginMenuComponent::getNextCommandTarget ( )
override

◆ paint()

void PluginInterface::PluginMenuComponent::paint ( juce::Graphics & g)
override

◆ perform()

bool PluginInterface::PluginMenuComponent::perform ( const InvocationInfo & info)
override

◆ refreshPluginItems()

void PluginInterface::PluginMenuComponent::refreshPluginItems ( )
private

Clears every PluginMenuItemComponent and creates new ones to reflect the current state of the selected track's plugins.

◆ resized()

void PluginInterface::PluginMenuComponent::resized ( )
override

◆ showPluginMenu()

void PluginInterface::PluginMenuComponent::showPluginMenu ( juce::ValueTree linkedValueTree,
juce::Point< float > position )

Callback passed to PluginMenuItemComponent that shows the plugin loading menu via PluginManager

◆ valueTreeChildAdded()

void PluginInterface::PluginMenuComponent::valueTreeChildAdded ( juce::ValueTree & parentTree,
juce::ValueTree & childWhichHasBeenAdded )
overrideprivate

◆ valueTreeChildOrderChanged()

void PluginInterface::PluginMenuComponent::valueTreeChildOrderChanged ( juce::ValueTree & parentTreeWhoseChildrenHaveMoved,
int oldIndex,
int newIndex )
overrideprivate

◆ valueTreeChildRemoved()

void PluginInterface::PluginMenuComponent::valueTreeChildRemoved ( juce::ValueTree & parentTree,
juce::ValueTree & childWhichHasBeenRemoved,
int indexFromWhichChildWasRemoved )
overrideprivate

◆ valueTreePropertyChanged()

void PluginInterface::PluginMenuComponent::valueTreePropertyChanged ( juce::ValueTree & treeWhosePropertyHasChanged,
const juce::Identifier & property )
overrideprivate

Member Data Documentation

◆ menuViewport

std::unique_ptr<juce::Viewport> PluginInterface::PluginMenuComponent::menuViewport
private

◆ pluginContainer

std::unique_ptr<PluginMenuContainer> PluginInterface::PluginMenuComponent::pluginContainer
private

◆ pluginItems

juce::Array<std::unique_ptr<PluginMenuItemComponent> > PluginInterface::PluginMenuComponent::pluginItems
private

◆ pluginManager

std::shared_ptr<PluginManager> PluginInterface::PluginMenuComponent::pluginManager
private

◆ projectValueTree

juce::ValueTree PluginInterface::PluginMenuComponent::projectValueTree
private

Local object holding the project value tree so it's in scope for the Listener subclass.


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