foleys_gui_magic
WYSWYG editor for JUCE GUIs including Visualisers
Public Member Functions | List of all members
Container Class Reference

The Container is a GuiItem, that can hold multiple Components. More...

+ Inheritance diagram for Container:

Public Member Functions

 Container (MagicGUIBuilder &builder, juce::ValueTree node)
 
void update () override
 Updates the layout fo children. More...
 
void addChildItem (std::unique_ptr< GuiItem > child)
 Append a child item. More...
 
std::vector< std::unique_ptr< GuiItem > >::iterator begin ()
 
std::vector< std::unique_ptr< GuiItem > >::iterator end ()
 
void setLayoutMode (LayoutType layout)
 Sets the layout mode of the container. More...
 
LayoutType getLayoutMode () const
 Returns the current layout mode. More...
 
void resized () override
 
bool isContainer () const override
 
void createSubComponents () override
 
void updateLayout () override
 This will trigger a recalculation of the children layout regardless of resized. More...
 
void updateColours () override
 Set colours in the wrapped Component to the value from the stylesheet and palette. More...
 
void updateContinuousRedraw ()
 
void configureFlexBox (const juce::ValueTree &node)
 
juce::Component * getWrappedComponent () override
 Allows accessing the Component inside that GuiItem. More...
 
GuiItemfindGuiItemWithId (const juce::String &name) override
 Lookup a Component through the tree. More...
 
GuiItemfindGuiItem (const juce::ValueTree &node) override
 Seeks recursively for a GuiItem. More...
 
- Public Member Functions inherited from GuiItem
 GuiItem (MagicGUIBuilder &builder, juce::ValueTree node)
 
 ~GuiItem () override
 
virtual std::vector< SettablePropertygetSettableProperties () const
 Override this to return each settable option the designer should be able to configure on your component. More...
 
void setColourTranslation (std::vector< std::pair< juce::String, int >> mapping)
 For each factory you can register a translation table, which will forward the colours from the Stylesheet to the Components. More...
 
juce::StringArray getColourNames () const
 Return the names of configurable colours. More...
 
virtual juce::String getControlledParameterID (juce::Point< int >)
 Returns the parameterID that is controlled from this component. More...
 
juce::var getProperty (const juce::Identifier &property)
 Look up a value through the DOM and CSS. More...
 
MagicGUIStategetMagicState ()
 
void updateInternal ()
 Reread properties from the config ValueTree. More...
 
void paint (juce::Graphics &g) final
 
void resized () override
 
LayoutType getParentsLayoutType () const
 Returns the layout type this item is managed by. More...
 
void configureFlexBoxItem (const juce::ValueTree &node)
 Parse the values and set it to the FlexBox::Item for layouting. More...
 
void configurePosition (const juce::ValueTree &node)
 
juce::Rectangle< int > resolvePosition (juce::Rectangle< int > parent)
 Calculates the position according to the parent area. More...
 
juce::Rectangle< int > getClientBounds () const
 Returns the bounds of the wrapped Component. More...
 
juce::String getTabCaption (const juce::String &defaultName) const
 
juce::Colour getTabColour () const
 
juce::FlexItem & getFlexItem ()
 
void itemDragEnter (const juce::DragAndDropTarget::SourceDetails &details) override
 
void itemDragExit (const juce::DragAndDropTarget::SourceDetails &details) override
 
void paintOverChildren (juce::Graphics &g) override
 
bool isInterestedInDragSource (const juce::DragAndDropTarget::SourceDetails &dragSourceDetails) override
 
void itemDropped (const juce::DragAndDropTarget::SourceDetails &dragSourceDetails) override
 

Additional Inherited Members

- Public Attributes inherited from GuiItem
MagicGUIBuildermagicBuilder
 
- Protected Attributes inherited from GuiItem
juce::ValueTree configNode
 
Decorator decorator
 
juce::FlexItem flexItem { juce::FlexItem (*this).withFlex (1.0f) }
 
std::vector< std::pair< juce::String, int > > colourTranslation
 

Detailed Description

The Container is a GuiItem, that can hold multiple Components.

In the editor it is seen as "View". With the setting "display" the layout strategy can be chosen.

Constructor & Destructor Documentation

◆ Container()

Container ( MagicGUIBuilder builder,
juce::ValueTree  node 
)

Member Function Documentation

◆ update()

void update ( )
overridevirtual

Updates the layout fo children.

Implements GuiItem.

References GuiItem::configNode, and Container::configureFlexBox().

◆ addChildItem()

void addChildItem ( std::unique_ptr< GuiItem child)

Append a child item.

To change the order the flexbox.order is used.

◆ begin()

std::vector< std::unique_ptr< GuiItem > >::iterator begin ( )

◆ end()

std::vector< std::unique_ptr< GuiItem > >::iterator end ( )

◆ setLayoutMode()

void setLayoutMode ( LayoutType  layout)

Sets the layout mode of the container.

References foleys::Tabbed, and Container::updateLayout().

◆ getLayoutMode()

LayoutType getLayoutMode ( ) const

Returns the current layout mode.

◆ resized()

void resized ( )
override

◆ isContainer()

bool isContainer ( ) const
overridevirtual

Reimplemented from GuiItem.

◆ createSubComponents()

void createSubComponents ( )
overridevirtual

◆ updateLayout()

void updateLayout ( )
overridevirtual

This will trigger a recalculation of the children layout regardless of resized.

Reimplemented from GuiItem.

References GuiItem::decorator, foleys::FlexBox, Decorator::getBackgroundColour(), GuiItem::getClientBounds(), and foleys::Tabbed.

Referenced by Container::createSubComponents(), Container::resized(), and Container::setLayoutMode().

◆ updateColours()

void updateColours ( )
overridevirtual

Set colours in the wrapped Component to the value from the stylesheet and palette.

Reimplemented from GuiItem.

Reimplemented in RootItem.

References GuiItem::configNode, GuiItem::decorator, GuiItem::magicBuilder, and Decorator::updateColours().

◆ updateContinuousRedraw()

void updateContinuousRedraw ( )

◆ configureFlexBox()

void configureFlexBox ( const juce::ValueTree &  node)

◆ getWrappedComponent()

juce::Component* getWrappedComponent ( )
overridevirtual

Allows accessing the Component inside that GuiItem.

Don't keep this pointer!

Implements GuiItem.

◆ findGuiItemWithId()

GuiItem * findGuiItemWithId ( const juce::String &  name)
overridevirtual

Lookup a Component through the tree.

It will return the first with that id regardless if there is another one. We discourage using that function, because that Component can be deleted and recreated at any time without notice.

Reimplemented from GuiItem.

◆ findGuiItem()

GuiItem * findGuiItem ( const juce::ValueTree &  node)
overridevirtual

Seeks recursively for a GuiItem.

Reimplemented from GuiItem.

References GuiItem::configNode.


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