Component::Positioner Class Referenceabstract

Base class for objects that can be used to automatically position a component according to some kind of algorithm. More...

Inheritance diagram for Component::Positioner:

Public Member Functions

 Positioner (Component &component) noexcept
 Creates a Positioner which can control the specified component. More...
 
virtual ~Positioner ()
 Destructor. More...
 
ComponentgetComponent () const noexcept
 Returns the component that this positioner controls. More...
 
virtual void applyNewBounds (const Rectangle< int > &newBounds)=0
 Attempts to set the component's position to the given rectangle. More...
 

Detailed Description

Base class for objects that can be used to automatically position a component according to some kind of algorithm.

The component class simply holds onto a reference to a Positioner, but doesn't actually do anything with it - all the functionality must be implemented by the positioner itself (e.g. it might choose to watch some kind of value and move the component when the value changes).

Constructor & Destructor Documentation

◆ Positioner()

Component::Positioner::Positioner ( Component component)
explicitnoexcept

Creates a Positioner which can control the specified component.

◆ ~Positioner()

virtual Component::Positioner::~Positioner ( )
virtual

Destructor.

Member Function Documentation

◆ getComponent()

Component& Component::Positioner::getComponent ( ) const
noexcept

Returns the component that this positioner controls.

References JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR.

◆ applyNewBounds()

virtual void Component::Positioner::applyNewBounds ( const Rectangle< int > &  newBounds)
pure virtual

Attempts to set the component's position to the given rectangle.

Unlike simply calling Component::setBounds(), this may involve the positioner being smart enough to adjust itself to fit the new bounds, e.g. a RelativeRectangle's positioner may try to reverse the expressions used to make them fit these new coordinates.


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