FTXUI  3.0.0
C++ functional terminal UI.
FlexboxConfig Struct Reference

Public Types

enum class  Direction { Row , RowInversed , Column , ColumnInversed }
 
enum class  Wrap { NoWrap , Wrap , WrapInversed }
 
enum class  JustifyContent {
  FlexStart , FlexEnd , Center , Stretch ,
  SpaceBetween , SpaceAround , SpaceEvenly
}
 
enum class  AlignItems { FlexStart , FlexEnd , Center , Stretch }
 
enum class  AlignContent {
  FlexStart , FlexEnd , Center , Stretch ,
  SpaceBetween , SpaceAround , SpaceEvenly
}
 

Public Member Functions

FlexboxConfigSet (FlexboxConfig::Direction)
 
FlexboxConfigSet (FlexboxConfig::Wrap)
 
FlexboxConfigSet (FlexboxConfig::JustifyContent)
 
FlexboxConfigSet (FlexboxConfig::AlignItems)
 
FlexboxConfigSet (FlexboxConfig::AlignContent)
 
FlexboxConfigSetGap (int gap_x, int gap_y)
 

Data Fields

Direction direction = Direction::Row
 
Wrap wrap = Wrap::Wrap
 
JustifyContent justify_content = JustifyContent::FlexStart
 
AlignItems align_items = AlignItems::FlexStart
 
AlignContent align_content = AlignContent::FlexStart
 
int gap_x = 0
 
int gap_y = 0
 

Detailed Description

Definition at line 12 of file flexbox_config.hpp.

Member Enumeration Documentation

◆ Direction

enum Direction
strong

This establishes the main-axis, thus defining the direction flex items are placed in the flex container. Flexbox is (aside wrapping) single-direction layout concept. Think of flex items as primarily laying out either in horizontal rows or vertical columns.

Enumerator
Row 

Flex items are laid out in a row.

RowInversed 

Flex items are laid out in a row, but in reverse order.

Column 

Flex items are laid out in a column.

ColumnInversed 

Flex items are laid out in a column, but in reverse order.

Examples
examples/component/flexbox_gallery.cpp.

Definition at line 17 of file flexbox_config.hpp.

◆ Wrap

enum Wrap
strong

By default, flex items will all try to fit onto one line. You can change that and allow the items to wrap as needed with this property.

Enumerator
NoWrap 

Flex items will all try to fit onto one line.

Wrap 

Flex items will wrap onto multiple lines.

WrapInversed 

Flex items will wrap onto multiple lines, but in reverse order.

Examples
examples/component/flexbox_gallery.cpp.

Definition at line 28 of file flexbox_config.hpp.

◆ JustifyContent

enum JustifyContent
strong

This defines the alignment along the main axis. It helps distribute extra free space leftover when either all the flex items on a line are inflexible, or are flexible but have reached their maximum size. It also exerts some control over the alignment of items when they overflow the line.

Enumerator
FlexStart 

Items are aligned to the start of flexbox's direction.

FlexEnd 

Items are aligned to the end of flexbox's direction.

Center 

Items are centered along the line.

Stretch 

Items are stretched to fill the line.

SpaceBetween 

Items are evenly distributed in the line; first item is on the start.

SpaceAround 

Items are evenly distributed in the line with equal space around them. Note that visually the spaces aren’t equal, since all the items have equal space on both sides. The first item will have one unit of space against the container edge, but two units of space between the next item because that next item has its own spacing that applies.

SpaceEvenly 

Items are distributed so that the spacing between any two items (and the space to the edges) is equal.

Examples
examples/component/flexbox_gallery.cpp.

Definition at line 41 of file flexbox_config.hpp.

◆ AlignItems

enum AlignItems
strong

This defines the default behavior for how flex items are laid out along the cross axis on the current line. Think of it as the justify-content version for the cross-axis (perpendicular to the main-axis).

Enumerator
FlexStart 

items are placed at the start of the cross axis.

FlexEnd 

items are placed at the end of the cross axis.

Center 

items are centered along the cross axis.

Stretch 

items are stretched to fill the cross axis.

Examples
examples/component/flexbox_gallery.cpp.

Definition at line 68 of file flexbox_config.hpp.

◆ AlignContent

enum AlignContent
strong
Enumerator
FlexStart 

items are placed at the start of the cross axis.

FlexEnd 

items are placed at the end of the cross axis.

Center 

items are centered along the cross axis.

Stretch 

items are stretched to fill the cross axis.

SpaceBetween 

items are evenly distributed in the cross axis.

SpaceAround 

tems evenly distributed with equal space around each line.

SpaceEvenly 

items are evenly distributed in the cross axis with equal space around them.

Examples
examples/component/flexbox_gallery.cpp.

Definition at line 79 of file flexbox_config.hpp.

Member Function Documentation

◆ Set() [1/5]

Definition at line 5 of file flexbox_config.cpp.

◆ Set() [2/5]

Definition at line 10 of file flexbox_config.cpp.

◆ Set() [3/5]

Definition at line 15 of file flexbox_config.cpp.

◆ Set() [4/5]

Definition at line 20 of file flexbox_config.cpp.

◆ Set() [5/5]

Definition at line 25 of file flexbox_config.cpp.

◆ SetGap()

FlexboxConfig & SetGap ( int  gap_x,
int  gap_y 
)

Definition at line 30 of file flexbox_config.cpp.

Field Documentation

◆ direction

Definition at line 24 of file flexbox_config.hpp.

◆ wrap

Wrap wrap = Wrap::Wrap

Definition at line 34 of file flexbox_config.hpp.

◆ justify_content

Definition at line 63 of file flexbox_config.hpp.

◆ align_items

Definition at line 74 of file flexbox_config.hpp.

◆ align_content

Definition at line 90 of file flexbox_config.hpp.

◆ gap_x

int gap_x = 0

Definition at line 92 of file flexbox_config.hpp.

◆ gap_y

int gap_y = 0

Definition at line 93 of file flexbox_config.hpp.


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