Represents a FlexBox container, which contains and manages the layout of a set of FlexItem objects. More...
#include <juce_FlexBox.h>
Public Types | |
enum | AlignContent { AlignContent::stretch, AlignContent::flexStart, AlignContent::flexEnd, AlignContent::center, AlignContent::spaceBetween, AlignContent::spaceAround } |
Possible values for the alignContent property. More... | |
enum | AlignItems { AlignItems::stretch, AlignItems::flexStart, AlignItems::flexEnd, AlignItems::center } |
Possible values for the alignItems property. More... | |
enum | Direction { Direction::row, Direction::rowReverse, Direction::column, Direction::columnReverse } |
Possible values for the flexDirection property. More... | |
enum | JustifyContent { JustifyContent::flexStart, JustifyContent::flexEnd, JustifyContent::center, JustifyContent::spaceBetween, JustifyContent::spaceAround } |
Possible values for the justifyContent property. More... | |
enum | Wrap { Wrap::noWrap, Wrap::wrap, Wrap::wrapReverse } |
Possible values for the flexWrap property. More... | |
Public Member Functions | |
FlexBox () noexcept=default | |
Creates an empty FlexBox container with default parameters. More... | |
FlexBox (Direction, Wrap, AlignContent, AlignItems, JustifyContent) noexcept | |
Creates an empty FlexBox container with these parameters. More... | |
FlexBox (JustifyContent) noexcept | |
Creates an empty FlexBox container with the given content-justification mode. More... | |
void | performLayout (Rectangle< float > targetArea) |
Lays-out the box's items within the given rectangle. More... | |
void | performLayout (Rectangle< int > targetArea) |
Lays-out the box's items within the given rectangle. More... | |
Public Attributes | |
AlignContent | alignContent = AlignContent::stretch |
Specifies how a flex container's lines are placed within the flex container when there is extra space on the cross-axis. More... | |
AlignItems | alignItems = AlignItems::stretch |
Specifies the alignment of flex items along the cross-axis of each line. More... | |
Direction | flexDirection = Direction::row |
Specifies how flex items are placed in the flex container, and defines the direction of the main axis. More... | |
Wrap | flexWrap = Wrap::noWrap |
Specifies whether items are forced into a single line or can be wrapped onto multiple lines. More... | |
Array< FlexItem > | items |
The set of items to lay-out. More... | |
JustifyContent | justifyContent = JustifyContent::flexStart |
Defines how the container distributes space between and around items along the main-axis. More... | |
Represents a FlexBox container, which contains and manages the layout of a set of FlexItem objects.
To use this class, set its parameters appropriately (you can search online for more help on exactly how the FlexBox protocol works!), then add your sub-items to the items array, and call performLayout() in the resized() function of your Component.
@tags{GUI}
|
strong |
Possible values for the alignContent property.
|
strong |
Possible values for the alignItems property.
|
strong |
|
strong |
Possible values for the justifyContent property.
|
strong |
|
defaultnoexcept |
Creates an empty FlexBox container with default parameters.
|
noexcept |
Creates an empty FlexBox container with these parameters.
|
noexcept |
Creates an empty FlexBox container with the given content-justification mode.
Lays-out the box's items within the given rectangle.
Lays-out the box's items within the given rectangle.
AlignContent juce::FlexBox::alignContent = AlignContent::stretch |
Specifies how a flex container's lines are placed within the flex container when there is extra space on the cross-axis.
This property has no effect on single line layouts.
AlignItems juce::FlexBox::alignItems = AlignItems::stretch |
Specifies the alignment of flex items along the cross-axis of each line.
Direction juce::FlexBox::flexDirection = Direction::row |
Specifies how flex items are placed in the flex container, and defines the direction of the main axis.
Wrap juce::FlexBox::flexWrap = Wrap::noWrap |
Specifies whether items are forced into a single line or can be wrapped onto multiple lines.
If wrapping is allowed, this property also controls the direction in which lines are stacked.
JustifyContent juce::FlexBox::justifyContent = JustifyContent::flexStart |
Defines how the container distributes space between and around items along the main-axis.
The alignment is done after the lengths and auto margins are applied, so that if there is at least one flexible element, with flex-grow different from 0, it will have no effect as there won't be any available space.