FTXUI  0.8.1
C++ functional terminal UI.
ftxui Namespace Reference

Functions

template<class T , class... Args>
std::shared_ptr< T > Make (Args &&... args)
 
Component Button (ConstStringRef label, std::function< void()> on_click, Ref< ButtonOption > option)
 Draw a button. Execute a function when clicked. More...
 
Component Checkbox (ConstStringRef label, bool *checked, Ref< CheckboxOption > option)
 Draw checkable element. More...
 
Component Input (StringRef content, ConstStringRef placeholder, Ref< InputOption > option)
 An input box for editing text. More...
 
Component Menu (ConstStringListRef entries, int *selected, Ref< MenuOption > option)
 A list of text. The focused element is selected. More...
 
Component MenuEntry (ConstStringRef label, Ref< MenuEntryOption >={})
 
Component Radiobox (ConstStringListRef entries, int *selected, Ref< RadioboxOption > option)
 A list of element, where only one can be selected. More...
 
Component Toggle (ConstStringListRef entries, int *selected, Ref< ToggleOption > option)
 An horizontal list of elements. The user can navigate through them. More...
 
template<class T >
Component Slider (ConstStringRef label, T *value, T min, T max, T increment)
 An horizontal slider. More...
 
Component ResizableSplitLeft (Component main, Component back, int *main_size)
 An horizontal split in between two components, configurable using the mouse. More...
 
Component ResizableSplitRight (Component main, Component back, int *main_size)
 An horizontal split in between two components, configurable using the mouse. More...
 
Component ResizableSplitTop (Component main, Component back, int *main_size)
 An vertical split in between two components, configurable using the mouse. More...
 
Component ResizableSplitBottom (Component main, Component back, int *main_size)
 An vertical split in between two components, configurable using the mouse. More...
 
Component Renderer (Component child, std::function< Element()> render)
 Return a new Component, similar to |child|, but using |render| as the Component::Render() event. More...
 
Component Renderer (std::function< Element()> render)
 Return a component, using |render| to render its interface. More...
 
Component Renderer (std::function< Element(bool)> render)
 Return a focusable component, using |render| to render its interface. More...
 
Component CatchEvent (Component child, std::function< bool(Event)>)
 
Component Input (WideStringRef content, ConstStringRef placeholder, Ref< InputOption > option)
 . An input box for editing text. More...
 
template<class T >
Receiver< T > MakeReceiver ()
 
Element text (std::wstring text)
 Display a piece of unicode text. More...
 
Element vtext (std::wstring text)
 Display a piece unicode text vertically. More...
 
Elements paragraph (std::wstring the_text)
 Return a vector of ftxui::text for every word of the string. This is useful combined with ftxui::hflow. More...
 
Element operator| (Element element, Decorator decorator)
 From an element, apply a decorator. More...
 
Elements operator| (Elements elements, Decorator decorator)
 From a set of element, apply a decorator to every elements. More...
 
Decorator operator| (Decorator a, Decorator b)
 Compose two decorator into one. More...
 
Element text (std::string text)
 Display a piece of UTF8 encoded unicode text. More...
 
Element vtext (std::string text)
 Display a piece of unicode text vertically. More...
 
Element separator (void)
 
Element separator (Pixel)
 
Element gauge (float progress)
 Draw a high definition progress bar. More...
 
Element border (Element child)
 Draw a border around the element. More...
 
Decorator borderWith (Pixel pixel)
 Same as border but with a constant Pixel around the element. More...
 
Element window (Element title, Element content)
 Draw window with a title and a border around the element. More...
 
Element spinner (int charset_index, size_t image_index)
 Useful to represent the effect of time and/or events. This display an ASCII art "video". More...
 
Elements paragraph (std::string the_text)
 Return a vector of ftxui::text for every word of the string. This is useful combined with ftxui::hflow. More...
 
Element graph (GraphFunction graph_function)
 Draw a graph using a GraphFunction. More...
 
Element bold (Element child)
 Use a bold font, for elements with more emphasis. More...
 
Element dim (Element child)
 Use a light font, for elements with less emphasis. More...
 
Element inverted (Element child)
 Add a filter that will invert the foreground and the background colors. More...
 
Element underlined (Element child)
 Make the underlined element to be underlined. More...
 
Element blink (Element child)
 The text drawn alternates in between visible and hidden. More...
 
Decorator color (Color c)
 Decorate using a foreground color. More...
 
Decorator bgcolor (Color color)
 Decorate using a background color. More...
 
Element color (Color color, Element child)
 Set the foreground color of an element. More...
 
Element bgcolor (Color color, Element child)
 Set the background color of an element. More...
 
Element hbox (Elements children)
 A container displaying elements horizontally one by one. More...
 
Element vbox (Elements children)
 A container displaying elements vertically one by one. More...
 
Element dbox (Elements children_)
 Stack several element on top of each other. More...
 
Element gridbox (std::vector< Elements > lines)
 A container displaying a grid of elements. More...
 
Element hflow (Elements children)
 A container displaying elements horizontally one by one. More...
 
Element flex (Element child)
 Make a child element to expand proportionnally to the space left in a container. More...
 
Element flex_grow (Element child)
 Expand if possible. More...
 
Element flex_shrink (Element child)
 Minimize if needed. More...
 
Element xflex (Element child)
 Expand/Minimize if possible/needed on the X axis. More...
 
Element xflex_grow (Element child)
 Expand if possible on the X axis. More...
 
Element xflex_shrink (Element child)
 Minimize if needed on the X axis. More...
 
Element yflex (Element child)
 Expand/Minimize if possible/needed on the Y axis. More...
 
Element yflex_grow (Element child)
 Expand if possible on the Y axis. More...
 
Element yflex_shrink (Element child)
 Minimize if needed on the Y axis. More...
 
Element notflex (Element child)
 Make the element not flexible. More...
 
Element filler ()
 An element that will take expand proportionnally to the space left in a container. More...
 
Decorator size (Direction direction, Constraint constraint, int value)
 Apply a constraint on the size of an element. More...
 
Decorator reflect (Box &box)
 
Element frame (Element child)
 Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container. In this case only a smaller portion is displayed. The view is scrollable to make the focused element visible. More...
 
Element xframe (Element)
 
Element yframe (Element)
 
Element focus (Element)
 
Element select (Element)
 
Element hcenter (Element child)
 Center an element horizontally. More...
 
Element vcenter (Element child)
 Center an element vertically. More...
 
Element center (Element child)
 Center an element horizontally and vertically. More...
 
Element align_right (Element child)
 Align an element on the right side. More...
 
Element nothing (Element element)
 A decoration doing absolutely nothing. More...
 
Element clear_under (Element child)
 Before drawing |child|, clear the pixels below. This is useful in. More...
 
void Render (Screen &screen, const Element &element)
 Display an element on a ftxui::Screen. More...
 
void Render (Screen &screen, Node *node)
 Display an element on a ftxui::Screen. More...
 
ColorInfo GetColorInfo (Color::Palette256 index)
 
ColorInfo GetColorInfo (Color::Palette16 index)
 
int wchar_width (wchar_t)
 
int wstring_width (const std::wstring &)
 
std::string to_string (const std::wstring &s)
 Convert a UTF8 std::string into a std::wstring. More...
 
std::wstring to_wstring (const std::string &s)
 Convert a std::wstring into a UTF8 std::string. More...
 
template<typename T >
std::wstring to_wstring (T s)
 
int string_width (const std::string &)
 
std::vector< std::string > Utf8ToGlyphs (const std::string &input)
 
Component CatchEvent (Component child, std::function< bool(Event event)> on_event)
 Return a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise. More...
 
template Component Slider (ConstStringRef label, int *value, int min, int max, int increment)
 
template Component Slider (ConstStringRef label, float *value, float min, float max, float increment)
 
template Component Slider (ConstStringRef label, long *value, long min, long max, long increment)
 

Enumerations

enum  Direction { WIDTH, HEIGHT }
 
enum  Constraint { LESS_THAN, EQUAL, GREATER_THAN }
 

Typedefs

using CapturedMouse = std::unique_ptr< CapturedMouseInterface >
 
using Component = std::shared_ptr< ComponentBase >
 
using Components = std::vector< Component >
 
template<class T >
using Sender = std::unique_ptr< SenderImpl< T > >
 
template<class T >
using Receiver = std::unique_ptr< ReceiverImpl< T > >
 
using Element = std::shared_ptr< Node >
 
using Elements = std::vector< Element >
 
using Decorator = std::function< Element(Element)>
 
using GraphFunction = std::function< std::vector< int >(int, int)>
 

Data Structures

class  AutoReset
 Assign a value to a variable, reset its old value when going out of scope. More...
 
struct  Box
 
struct  ButtonOption
 Option for the Button component. More...
 
class  CapturedMouseInterface
 
struct  CheckboxOption
 Option for the Checkbox component. More...
 
class  Color
 A class representing terminal colors. More...
 
struct  ColorInfo
 
class  ComponentBase
 It implement rendering itself as ftxui::Element. It implement keyboard navigation by responding to ftxui::Event. More...
 
class  ConstRef
 An adapter. Own or reference an immutable object. More...
 
class  ConstStringListRef
 An adapter. Reference a list of strings. More...
 
class  ConstStringRef
 An adapter. Own or reference a constant string. For convenience, this class convert multiple immutable string toward a shared representation. More...
 
struct  Dimensions
 
struct  Event
 Represent an event. It can be key press event, a terminal resize, or more ... More...
 
struct  InputOption
 Option for the Input component. More...
 
struct  MenuEntryOption
 Option for the MenuEntry component. More...
 
struct  MenuOption
 Option for the Menu component. More...
 
struct  Mouse
 A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift, ctrl, meta). More...
 
class  Node
 
class  NodeDecorator
 
struct  Pixel
 A unicode character and its associated style. More...
 
struct  RadioboxOption
 Option for the Radiobox component. More...
 
class  ReceiverImpl
 
class  Ref
 An adapter. Own or reference an mutable object. More...
 
struct  Requirement
 
class  Screen
 A rectangular grid of Pixel. More...
 
class  ScreenInteractive
 
class  SenderImpl
 
class  StringRef
 An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation. More...
 
class  TerminalInputParser
 
struct  ToggleOption
 Option for the Toggle component. More...
 
class  WideStringRef
 An adapter. Own or reference a constant string. For convenience, this class convert multiple mutable string toward a shared representation. More...
 

Namespaces

 box_helper
 
 Container
 
 Dimension
 Define how the Screen's dimensions should look like.
 
 Terminal
 

Variables

const ColorInfo palette256 []
 

Data Structure Documentation

◆ ftxui::ButtonOption

struct ftxui::ButtonOption

Option for the Button component.

Examples
examples/component/button.cpp, and examples/component/composition.cpp.

Definition at line 38 of file component_options.hpp.

Data Fields
bool border Whether to show a border around the button.

◆ ftxui::CheckboxOption

struct ftxui::CheckboxOption

Option for the Checkbox component.

Definition at line 45 of file component_options.hpp.

Data Fields
string style_checked Prefix for a "checked" state.
string style_unchecked Prefix for a "unchecked" state.
Decorator style_normal style.
Decorator style_focused Style when focused.
Decorator style_selected Style when selected.
Decorator style_selected_focused Style when selected and focused.
function< void()> on_change Called when the user change the state.

◆ ftxui::ColorInfo

struct ftxui::ColorInfo

Definition at line 9 of file color_info.hpp.

Data Fields
const char * name
uint8_t index_256
uint8_t index_16
uint8_t red
uint8_t green
uint8_t blue
uint8_t hue
uint8_t saturation
uint8_t value

◆ ftxui::Dimensions

struct ftxui::Dimensions

Definition at line 5 of file terminal.hpp.

Data Fields
int dimx
int dimy

◆ ftxui::InputOption

struct ftxui::InputOption

Option for the Input component.

Examples
examples/component/homescreen.cpp, and examples/component/input.cpp.

Definition at line 60 of file component_options.hpp.

Data Fields
function< void()> on_change Called when the content changes.
function< void()> on_enter Called when the user presses enter.
Ref< bool > password Obscure the input content using '*'.
Ref< int > cursor_position

When set different from -1, this attributes is used to store the cursor position.

◆ ftxui::MenuEntryOption

struct ftxui::MenuEntryOption

Option for the MenuEntry component.

Examples
examples/component/menu_entries.cpp.

Definition at line 28 of file component_options.hpp.

Data Fields
Decorator style_normal style.
Decorator style_focused Style when focused.
Decorator style_selected Style when selected.
Decorator style_selected_focused Style when selected and focused.

◆ ftxui::MenuOption

struct ftxui::MenuOption

Option for the Menu component.

Examples
examples/component/menu.cpp, examples/component/menu2.cpp, and examples/component/menu_style.cpp.

Definition at line 11 of file component_options.hpp.

Data Fields
Decorator style_normal style.
Decorator style_focused Style when focused.
Decorator style_selected Style when selected.
Decorator style_selected_focused Style when selected and focused.
function< void()> on_change Called when the selected entry changes.
function< void()> on_enter Called when the user presses enter.
Ref< int > focused_entry

◆ ftxui::RadioboxOption

struct ftxui::RadioboxOption

Option for the Radiobox component.

Definition at line 76 of file component_options.hpp.

Data Fields
string style_checked Prefix for a "checked" state.
string style_unchecked Prefix for a "unchecked" state.
Decorator style_normal style.
Decorator style_focused Style when focused.
Decorator style_selected Style when selected.
Decorator style_selected_focused Style when selected and focused.
function< void()> on_change Called when the selected entry changes.
Ref< int > focused_entry

◆ ftxui::ToggleOption

struct ftxui::ToggleOption

Option for the Toggle component.

Definition at line 93 of file component_options.hpp.

Data Fields
Decorator style_normal style.
Decorator style_focused Style when focused.
Decorator style_selected Style when selected.
Decorator style_selected_focused Style when selected and focused.
function< void()> on_change Called when the selected entry changes.
function< void()> on_enter Called when the user presses enter.
Ref< int > focused_entry

Typedef Documentation

◆ CapturedMouse

using CapturedMouse = std::unique_ptr<CapturedMouseInterface>

Definition at line 11 of file captured_mouse.hpp.

◆ Component

typedef std::shared_ptr< ComponentBase > Component

Definition at line 17 of file component_base.hpp.

◆ Components

using Components = std::vector<Component>

Definition at line 18 of file component_base.hpp.

◆ Sender

using Sender = std::unique_ptr<SenderImpl<T> >

Definition at line 44 of file receiver.hpp.

◆ Receiver

using Receiver = std::unique_ptr<ReceiverImpl<T> >

Definition at line 45 of file receiver.hpp.

◆ Element

typedef std::shared_ptr< Node > Element

Definition at line 15 of file elements.hpp.

◆ Elements

typedef std::vector< Element > Elements

Definition at line 16 of file elements.hpp.

◆ Decorator

using Decorator = std::function<Element(Element)>
Examples
examples/component/menu_entries.cpp.

Definition at line 17 of file elements.hpp.

◆ GraphFunction

using GraphFunction = std::function<std::vector<int>(int, int)>

Definition at line 18 of file elements.hpp.

Enumeration Type Documentation

◆ Direction

enum Direction
Enumerator
WIDTH 
HEIGHT 

Definition at line 79 of file elements.hpp.

◆ Constraint

enum Constraint
Enumerator
LESS_THAN 
EQUAL 
GREATER_THAN 

Definition at line 80 of file elements.hpp.

Function Documentation

◆ Make()

std::shared_ptr<T> ftxui::Make ( Args &&...  args)

Definition at line 24 of file component.hpp.

◆ Button()

Component Button ( ConstStringRef  label,
std::function< void()>  on_click,
Ref< ButtonOption option 
)

Draw a button. Execute a function when clicked.

Parameters
labelThe label of the button.
on_clickThe action to execute when clicked.
optionAdditional optional parameters.
See also
ButtonBase

Example

std::string label = "Click to quit";
Component button = Button(&label, screen.ExitLoopClosure());
screen.Loop(button)

Output

┌─────────────┐
│Click to quit│
└─────────────┘
Examples
examples/component/button.cpp, examples/component/composition.cpp, examples/component/gallery.cpp, examples/component/modal_dialog.cpp, examples/component/nested_screen.cpp, and examples/component/renderer.cpp.

Definition at line 90 of file button.cpp.

◆ Checkbox()

Component Checkbox ( ConstStringRef  label,
bool *  checked,
Ref< CheckboxOption option 
)

Draw checkable element.

Parameters
labelThe label of the checkbox.
checkedWhether the checkbox is checked or not.
optionAdditional optional parameters.
See also
CheckboxBase

Example

std::string label = "Make a sandwidth";
bool checked = false;
Component checkbox = Checkbox(&label, &checked);
screen.Loop(checkbox)

Output

☐ Make a sandwitch
Examples
examples/component/checkbox.cpp, examples/component/checkbox_in_frame.cpp, examples/component/gallery.cpp, and examples/component/homescreen.cpp.

Definition at line 112 of file checkbox.cpp.

◆ Input() [1/2]

Component Input ( StringRef  content,
ConstStringRef  placeholder,
Ref< InputOption option 
)

An input box for editing text.

Parameters
contentThe editable content.
placeholderThe text displayed when content is still empty.
optionAdditional optional parameters.
See also
InputBase

Example

std::string content= "";
std::string placeholder = "placeholder";
Component input = Input(&content, &placeholder);
screen.Loop(input);

Output

placeholder
Examples
examples/component/gallery.cpp, examples/component/homescreen.cpp, and examples/component/input.cpp.

Definition at line 241 of file input.cpp.

◆ Menu()

Component Menu ( ConstStringListRef  entries,
int *  selected,
Ref< MenuOption option 
)

A list of text. The focused element is selected.

Parameters
entriesThe list of entries in the menu.
selectedThe index of the currently selected element.
optionAdditional optional parameters.
See also
MenuBase

Example

std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Menu(&entries, &selected);
screen.Loop(menu);

Output

> entry 1
entry 2
entry 3
Examples
examples/component/gallery.cpp, examples/component/homescreen.cpp, examples/component/menu.cpp, examples/component/menu2.cpp, examples/component/menu_in_frame.cpp, examples/component/menu_multiple.cpp, examples/component/menu_style.cpp, and examples/component/tab_vertical.cpp.

Definition at line 173 of file menu.cpp.

◆ MenuEntry()

Component MenuEntry ( ConstStringRef  label,
Ref< MenuEntryOption option = {} 
)
Examples
examples/component/menu_entries.cpp.

Definition at line 179 of file menu.cpp.

◆ Radiobox()

Component Radiobox ( ConstStringListRef  entries,
int *  selected,
Ref< RadioboxOption option 
)

A list of element, where only one can be selected.

Parameters
entriesThe list of entries in the list.
selectedThe index of the currently selected element.
optionAdditional optional parameters.
See also
RadioboxBase

Example

std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Radiobox(&entries, &selected);
screen.Loop(menu);

Output

◉ entry 1
○ entry 2
○ entry 3
Examples
examples/component/gallery.cpp, examples/component/homescreen.cpp, examples/component/radiobox.cpp, examples/component/radiobox_in_frame.cpp, examples/component/tab_horizontal.cpp, and examples/component/tab_vertical.cpp.

Definition at line 193 of file radiobox.cpp.

◆ Toggle()

Component Toggle ( ConstStringListRef  entries,
int *  selected,
Ref< ToggleOption option 
)

An horizontal list of elements. The user can navigate through them.

Parameters
entriesThe list of selectable entries to display.
selectedReference the selected entry.
optionAdditional optional parameters.
Examples
examples/component/gallery.cpp, examples/component/homescreen.cpp, examples/component/tab_horizontal.cpp, and examples/component/toggle.cpp.

Definition at line 126 of file toggle.cpp.

◆ Slider() [1/4]

Component Slider ( ConstStringRef  label,
T *  value,
min,
max,
increment 
)

An horizontal slider.

Parameters
labelThe name of the slider.
valueThe current value of the slider.
minThe minimum value.
maxThe maximum value.
incrementThe increment when used by the cursor.

Example

int value = 50;
auto slider = Slider("Value:", &value, 0, 100, 1);
screen.Loop(slider);

Output

Value:[██████████████████████████ ]
Examples
examples/component/gallery.cpp, examples/component/slider.cpp, and examples/component/slider_rgb.cpp.

Definition at line 123 of file slider.cpp.

◆ ResizableSplitLeft()

Component ResizableSplitLeft ( Component  main,
Component  back,
int *  main_size 
)

An horizontal split in between two components, configurable using the mouse.

Parameters
mainThe main component of size |main_size|, on the left.
backThe back component taking the remaining size, on the right.
main_sizeThe size of the |main| component.

Example

int left_size = 10;
auto left = Renderer([] { return text("Left") | center;});
auto right = Renderer([] { return text("right") | center;});
auto split = ResizableSplitLeft(left, right, &left_size);
screen.Loop(split);

Output

left │ right
Examples
examples/component/resizable_split.cpp.

Definition at line 266 of file resizable_split.cpp.

◆ ResizableSplitRight()

Component ResizableSplitRight ( Component  main,
Component  back,
int *  main_size 
)

An horizontal split in between two components, configurable using the mouse.

Parameters
mainThe main component of size |main_size|, on the right.
backThe back component taking the remaining size, on the left.
main_sizeThe size of the |main| component.

Example

int right_size = 10;
auto left = Renderer([] { return text("Left") | center;});
auto right = Renderer([] { return text("right") | center;});
auto split = ResizableSplitRight(right, left, &right_size);
screen.Loop(split);

Output

left │ right
Examples
examples/component/resizable_split.cpp.

Definition at line 296 of file resizable_split.cpp.

◆ ResizableSplitTop()

Component ResizableSplitTop ( Component  main,
Component  back,
int *  main_size 
)

An vertical split in between two components, configurable using the mouse.

Parameters
mainThe main component of size |main_size|, on the top.
backThe back component taking the remaining size, on the bottom.
main_sizeThe size of the |main| component.

Example

int top_size = 1;
auto top = Renderer([] { return text("Top") | center;});
auto bottom = Renderer([] { return text("Bottom") | center;});
auto split = ResizableSplitTop(top, bottom, &top_size);
screen.Loop(split);

Output

top
────────────
bottom
Examples
examples/component/resizable_split.cpp.

Definition at line 326 of file resizable_split.cpp.

◆ ResizableSplitBottom()

Component ResizableSplitBottom ( Component  main,
Component  back,
int *  main_size 
)

An vertical split in between two components, configurable using the mouse.

Parameters
mainThe main component of size |main_size|, on the bottom.
backThe back component taking the remaining size, on the top.
main_sizeThe size of the |main| component.

Example

int bottom_size = 1;
auto top = Renderer([] { return text("Top") | center;});
auto bottom = Renderer([] { return text("Bottom") | center;});
auto split = ResizableSplit::Bottom(bottom, top, &bottom_size);
screen.Loop(split);

Output

top
────────────
bottom
Examples
examples/component/resizable_split.cpp.

Definition at line 356 of file resizable_split.cpp.

◆ Renderer() [1/3]

◆ Renderer() [2/3]

Component Renderer ( std::function< Element()>  render)

Return a component, using |render| to render its interface.

Parameters
renderThe function drawing the interface.

Example

auto renderer = Renderer([] {
return text("My interface");
});
screen.Loop(renderer);

Definition at line 28 of file renderer.cpp.

◆ Renderer() [3/3]

Component Renderer ( std::function< Element(bool)>  render)

Return a focusable component, using |render| to render its interface.

Parameters
renderThe function drawing the interface, taking a boolean telling whether the component is focused or not.

Example

auto renderer = Renderer([] (bool focused) {
if (focused)
return text("My interface") | inverted;
else
return text("My interface");
});
screen.Loop(renderer);

Definition at line 82 of file renderer.cpp.

◆ CatchEvent() [1/2]

Component ftxui::CatchEvent ( Component  child,
std::function< bool(Event)>   
)

◆ Input() [2/2]

Component Input ( WideStringRef  content,
ConstStringRef  placeholder,
Ref< InputOption option 
)

. An input box for editing text.

Parameters
contentThe editable content.
placeholderThe text displayed when content is still empty.
optionAdditional optional parameters.
See also
InputBase

Example

std::string content= "";
std::string placeholder = "placeholder";
Component input = Input(&content, &placeholder);
screen.Loop(input);

Output

placeholder

Definition at line 269 of file input.cpp.

◆ MakeReceiver()

Receiver< T > MakeReceiver ( )

Definition at line 117 of file receiver.hpp.

◆ text() [1/2]

◆ vtext() [1/2]

Element vtext ( std::wstring  text)

Display a piece unicode text vertically.

See also
ftxui::to_wstring

Example

Element document = vtext(L"Hello world!");

Output

H
e
l
l
o
w
o
r
l
d
!

Definition at line 166 of file text.cpp.

◆ paragraph() [1/2]

Elements paragraph ( std::wstring  the_text)

Return a vector of ftxui::text for every word of the string. This is useful combined with ftxui::hflow.

Parameters
the_textThe string to be splitted.
See also
hflow.
Examples
examples/dom/html_like.cpp, and examples/dom/paragraph.cpp.

Definition at line 14 of file paragraph.cpp.

◆ operator|() [1/3]

Element operator| ( Element  element,
Decorator  decorator 
)

From an element, apply a decorator.

Returns
the decorated element.

Example

Both of these are equivalent:

bold(text("Hello"));
text("Hello") | bold;

Definition at line 64 of file util.cpp.

◆ operator|() [2/3]

Elements operator| ( Elements  elements,
Decorator  decorator 
)

From a set of element, apply a decorator to every elements.

Returns
the set of decorated element.

Definition at line 44 of file util.cpp.

◆ operator|() [3/3]

Decorator operator| ( Decorator  a,
Decorator  b 
)

Compose two decorator into one.

Example

auto decorator = bold | blink;

Definition at line 37 of file util.cpp.

◆ text() [2/2]

Element text ( std::string  text)

Display a piece of UTF8 encoded unicode text.

See also
ftxui::to_wstring

Example

Element document = text("Hello world!");

Output

Hello world!

Definition at line 87 of file text.cpp.

◆ vtext() [2/2]

Element vtext ( std::string  text)

Display a piece of unicode text vertically.

See also
ftxui::to_wstring

Example

Element document = vtext("Hello world!");

Output

H
e
l
l
o
w
o
r
l
d
!

Definition at line 136 of file text.cpp.

◆ separator() [1/2]

◆ separator() [2/2]

Element separator ( Pixel  pixel)

Definition at line 58 of file separator.cpp.

◆ gauge()

Element gauge ( float  progress)

Draw a high definition progress bar.

Parameters
progressThe proportion of the area to be filled. Belong to [0,1].

Example

A gauge. It can be used to represent a progress bar.

Output

┌──────────────────────────────────────────────────────────────────────────┐
│█████████████████████████████████████ │
└──────────────────────────────────────────────────────────────────────────┘
Examples
examples/component/button.cpp, examples/component/homescreen.cpp, examples/component/menu2.cpp, examples/dom/gauge.cpp, and examples/dom/package_manager.cpp.

Definition at line 75 of file gauge.cpp.

◆ border()

◆ borderWith()

Decorator borderWith ( Pixel  pixel)

Same as border but with a constant Pixel around the element.

See also
border

Definition at line 170 of file border.cpp.

◆ window()

Element window ( Element  title,
Element  content 
)

Draw window with a title and a border around the element.

Parameters
titleThe title of the window.
contentThe element to be wrapped.
See also
border

Example

Element document = window(text("Title"),
text("content")
);

Output

┌Title──┐
│content│
└───────┘
Examples
examples/component/homescreen.cpp, examples/component/menu_multiple.cpp, examples/component/print_key_press.cpp, examples/dom/color_truecolor_RGB.cpp, examples/dom/hflow.cpp, examples/dom/package_manager.cpp, and examples/dom/size.cpp.

Definition at line 163 of file border.cpp.

◆ spinner()

Element spinner ( int  charset_index,
size_t  image_index 
)

Useful to represent the effect of time and/or events. This display an ASCII art "video".

Parameters
charset_indexThe type of "video".
image_indexThe "frame" of the video. You need to increase this for every "step".
Examples
examples/component/homescreen.cpp, examples/dom/html_like.cpp, and examples/dom/spinner.cpp.

Definition at line 255 of file spinner.cpp.

◆ paragraph() [2/2]

Elements paragraph ( std::string  the_text)

Return a vector of ftxui::text for every word of the string. This is useful combined with ftxui::hflow.

Parameters
the_textThe string to be splitted.
See also
hflow.

Definition at line 28 of file paragraph.cpp.

◆ graph()

Element graph ( GraphFunction  graph_function)

Draw a graph using a GraphFunction.

Parameters
graph_functionthe function to be called to get the data.
Examples
examples/component/homescreen.cpp, examples/dom/graph.cpp, and examples/dom/window.cpp.

Definition at line 59 of file graph.cpp.

◆ bold()

◆ dim()

◆ inverted()

Element inverted ( Element  child)

Add a filter that will invert the foreground and the background colors.

Examples
examples/component/menu_entries.cpp, examples/dom/graph.cpp, examples/dom/style_gallery.cpp, and examples/dom/style_inverted.cpp.

Definition at line 29 of file inverted.cpp.

◆ underlined()

Element underlined ( Element  child)

Make the underlined element to be underlined.

Examples
examples/dom/html_like.cpp, examples/dom/style_gallery.cpp, and examples/dom/style_underlined.cpp.

Definition at line 28 of file underlined.cpp.

◆ blink()

Element blink ( Element  child)

The text drawn alternates in between visible and hidden.

Examples
examples/dom/style_blink.cpp, and examples/dom/style_gallery.cpp.

Definition at line 28 of file blink.cpp.

◆ color() [1/2]

◆ bgcolor() [1/2]

◆ color() [2/2]

Element color ( Color  color,
Element  child 
)

Set the foreground color of an element.

Parameters
colorThe color of the output element.
childThe input element.
Returns
The output element colored.

Example

Element document = color(Color::Green, text("Success")),

Definition at line 57 of file color.cpp.

◆ bgcolor() [2/2]

Element bgcolor ( Color  color,
Element  child 
)

Set the background color of an element.

Parameters
colorThe color of the output element.
childThe input element.
Returns
The output element colored.

Example

Element document = bgcolor(Color::Green, text("Success")),

Definition at line 72 of file color.cpp.

◆ hbox()

◆ vbox()

◆ dbox()

Element dbox ( Elements  children_)

Stack several element on top of each other.

Parameters
children_The input element.
Returns
The right aligned element.
Examples
examples/component/modal_dialog.cpp, and examples/dom/dbox.cpp.

Definition at line 50 of file dbox.cpp.

◆ gridbox()

Element gridbox ( std::vector< Elements lines)

A container displaying a grid of elements.

Parameters
linesA list of lines, each line being a list of elements.
Returns
The container.

Example

auto cell = [](const char* t) { return text(t) | border; };
auto document = gridbox({
{cell("north-west") , cell("north") , cell("north-east")} ,
{cell("west") , cell("center") , cell("east")} ,
{cell("south-west") , cell("south") , cell("south-east")} ,
});

Output:

╭──────────╮╭──────╮╭──────────╮
│north-west││north ││north-east│
╰──────────╯╰──────╯╰──────────╯
╭──────────╮╭──────╮╭──────────╮
│west ││center││east │
╰──────────╯╰──────╯╰──────────╯
╭──────────╮╭──────╮╭──────────╮
│south-west││south ││south-east│
╰──────────╯╰──────╯╰──────────╯
Examples
examples/dom/gridbox.cpp.

Definition at line 153 of file gridbox.cpp.

◆ hflow()

Element hflow ( Elements  children)

A container displaying elements horizontally one by one.

Parameters
childrenThe elements in the container
Returns
The container.

Example

text("Left"),
text("Right"),
});
Examples
examples/component/homescreen.cpp, examples/dom/hflow.cpp, examples/dom/html_like.cpp, and examples/dom/paragraph.cpp.

Definition at line 75 of file hflow.cpp.

◆ flex()

Element flex ( Element  child)

Make a child element to expand proportionnally to the space left in a container.

Examples:

text("left") | border ,
text("middle") | border | flex,
text("right") | border,
});

Output:

┌────┐┌─────────────────────────────────────────────────────────┐┌─────┐
│left││middle ││right│
└────┘└─────────────────────────────────────────────────────────┘└─────┘
Examples
examples/component/homescreen.cpp, examples/component/menu_multiple.cpp, examples/component/menu_style.cpp, examples/dom/gauge.cpp, examples/dom/graph.cpp, examples/dom/paragraph.cpp, and examples/dom/separator.cpp.

Definition at line 119 of file flex.cpp.

◆ flex_grow()

Element flex_grow ( Element  child)

Expand if possible.

Examples
examples/component/homescreen.cpp.

Definition at line 137 of file flex.cpp.

◆ flex_shrink()

Element flex_shrink ( Element  child)

Minimize if needed.

Definition at line 155 of file flex.cpp.

◆ xflex()

Element xflex ( Element  child)

Expand/Minimize if possible/needed on the X axis.

Examples
examples/component/gallery.cpp, and examples/component/slider_rgb.cpp.

Definition at line 125 of file flex.cpp.

◆ xflex_grow()

Element xflex_grow ( Element  child)

Expand if possible on the X axis.

Definition at line 143 of file flex.cpp.

◆ xflex_shrink()

Element xflex_shrink ( Element  child)

Minimize if needed on the X axis.

Definition at line 161 of file flex.cpp.

◆ yflex()

Element yflex ( Element  child)

Expand/Minimize if possible/needed on the Y axis.

Definition at line 131 of file flex.cpp.

◆ yflex_grow()

Element yflex_grow ( Element  child)

Expand if possible on the Y axis.

Definition at line 149 of file flex.cpp.

◆ yflex_shrink()

Element yflex_shrink ( Element  child)

Minimize if needed on the Y axis.

Definition at line 167 of file flex.cpp.

◆ notflex()

Element notflex ( Element  child)

Make the element not flexible.

Definition at line 173 of file flex.cpp.

◆ filler()

Element filler ( )

An element that will take expand proportionnally to the space left in a container.

Examples
examples/component/homescreen.cpp, examples/component/modal_dialog.cpp, examples/dom/package_manager.cpp, examples/dom/spinner.cpp, examples/dom/style_color.cpp, and examples/dom/vbox_hbox.cpp.

Definition at line 94 of file flex.cpp.

◆ size()

Decorator size ( Direction  direction,
Constraint  constraint,
int  value 
)

◆ reflect()

Decorator reflect ( Box box)

Definition at line 38 of file reflect.cpp.

◆ frame()

Element frame ( Element  child)

Allow an element to be displayed inside a 'virtual' area. It size can be larger than its container. In this case only a smaller portion is displayed. The view is scrollable to make the focused element visible.

See also
focus
Examples
examples/component/checkbox_in_frame.cpp, examples/component/homescreen.cpp, examples/component/menu_entries.cpp, examples/component/menu_in_frame.cpp, and examples/component/radiobox_in_frame.cpp.

Definition at line 138 of file frame.cpp.

◆ xframe()

Element xframe ( Element  child)

Definition at line 142 of file frame.cpp.

◆ yframe()

Element yframe ( Element  child)

Definition at line 146 of file frame.cpp.

◆ focus()

Element focus ( Element  child)

Definition at line 79 of file frame.cpp.

◆ select()

Element select ( Element  child)

Definition at line 38 of file frame.cpp.

◆ hcenter()

Element hcenter ( Element  child)

Center an element horizontally.

Parameters
childThe decorated element.
Returns
The centered element.
Examples
examples/component/homescreen.cpp, examples/component/menu2.cpp, examples/dom/hflow.cpp, and examples/dom/size.cpp.

Definition at line 12 of file composite_decorator.cpp.

◆ vcenter()

Element vcenter ( Element  child)

Center an element vertically.

Parameters
childThe decorated element.
Returns
The centered element.

Definition at line 20 of file composite_decorator.cpp.

◆ center()

Element center ( Element  child)

Center an element horizontally and vertically.

Parameters
childThe decorated element.
Returns
The centered element.
Examples
examples/component/modal_dialog.cpp, examples/component/renderer.cpp, examples/component/resizable_split.cpp, examples/dom/dbox.cpp, and examples/dom/separator.cpp.

Definition at line 28 of file composite_decorator.cpp.

◆ align_right()

Element align_right ( Element  child)

Align an element on the right side.

Parameters
childThe decorated element.
Returns
The right aligned element.

Definition at line 36 of file composite_decorator.cpp.

◆ nothing()

Element nothing ( Element  element)

A decoration doing absolutely nothing.

Definition at line 25 of file util.cpp.

◆ clear_under()

Element clear_under ( Element  child)

Before drawing |child|, clear the pixels below. This is useful in.

See also
ftxui::dbox
Examples
examples/component/modal_dialog.cpp.

Definition at line 32 of file clear_under.cpp.

◆ Render() [1/2]

◆ Render() [2/2]

void Render ( Screen screen,
Node node 
)

Display an element on a ftxui::Screen.

Definition at line 40 of file node.cpp.

◆ GetColorInfo() [1/2]

ColorInfo GetColorInfo ( Color::Palette256  index)

Definition at line 266 of file color_info.cpp.

◆ GetColorInfo() [2/2]

ColorInfo GetColorInfo ( Color::Palette16  index)

Definition at line 270 of file color_info.cpp.

◆ wchar_width()

int wchar_width ( wchar_t  ucs)

Definition at line 210 of file string.cpp.

◆ wstring_width()

int wstring_width ( const std::wstring &  text)

Definition at line 214 of file string.cpp.

◆ to_string()

◆ to_wstring() [1/2]

std::wstring to_wstring ( const std::string &  s)

Convert a std::wstring into a UTF8 std::string.

Definition at line 303 of file string.cpp.

◆ to_wstring() [2/2]

std::wstring ftxui::to_wstring ( s)

Definition at line 12 of file string.hpp.

◆ string_width()

int string_width ( const std::string &  input)

Definition at line 226 of file string.cpp.

◆ Utf8ToGlyphs()

std::vector< std::string > Utf8ToGlyphs ( const std::string &  input)

Definition at line 250 of file string.cpp.

◆ CatchEvent() [2/2]

Component ftxui::CatchEvent ( Component  child,
std::function< bool(Event event)>  on_event 
)

Return a component, using |on_event| to catch events. This function must returns true when the event has been handled, false otherwise.

Parameters
childThe wrapped component.
on_eventThe function drawing the interface.

Example

auto renderer = Renderer([] {
return text("My interface");
});
screen.Loop(renderer);

Definition at line 44 of file catch_event.cpp.

◆ Slider() [2/4]

template Component ftxui::Slider ( ConstStringRef  label,
int *  value,
int  min,
int  max,
int  increment 
)

◆ Slider() [3/4]

template Component ftxui::Slider ( ConstStringRef  label,
float *  value,
float  min,
float  max,
float  increment 
)

◆ Slider() [4/4]

template Component ftxui::Slider ( ConstStringRef  label,
long *  value,
long  min,
long  max,
long  increment 
)

Variable Documentation

◆ palette256

const ColorInfo palette256[]

Definition at line 7 of file color_info.cpp.

ftxui::border
Element border(Element)
Draw a border around the element.
Definition: border.cpp:138
ftxui::center
Element center(Element)
Center an element horizontally and vertically.
Definition: composite_decorator.cpp:28
ftxui::Color::Green
@ Green
Definition: color.hpp:42
ftxui::window
Element window(Element title, Element content)
Draw window with a title and a border around the element.
Definition: border.cpp:163
ftxui::Color::Red
@ Red
Definition: color.hpp:41
ftxui::ResizableSplitRight
Component ResizableSplitRight(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
Definition: resizable_split.cpp:296
ftxui::Component
std::shared_ptr< ComponentBase > Component
Definition: component_base.hpp:17
ftxui::vtext
Element vtext(std::wstring text)
Display a piece unicode text vertically.
Definition: text.cpp:166
ftxui::inverted
Element inverted(Element)
Add a filter that will invert the foreground and the background colors.
Definition: inverted.cpp:29
ftxui::ScreenInteractive::FitComponent
static ScreenInteractive FitComponent()
Definition: screen_interactive.cpp:260
ftxui::color
Decorator color(Color)
Decorate using a foreground color.
Definition: color.cpp:86
ftxui::bold
Element bold(Element)
Use a bold font, for elements with more emphasis.
Definition: bold.cpp:28
ftxui::ResizableSplitLeft
Component ResizableSplitLeft(Component main, Component back, int *main_size)
An horizontal split in between two components, configurable using the mouse.
Definition: resizable_split.cpp:266
ftxui::hbox
Element hbox(Elements)
A container displaying elements horizontally one by one.
Definition: hbox.cpp:75
ftxui::flex
Element flex(Element)
Make a child element to expand proportionnally to the space left in a container.
Definition: flex.cpp:119
ftxui::Renderer
Component Renderer(Component child, std::function< Element()>)
Return a new Component, similar to |child|, but using |render| as the Component::Render() event.
Definition: renderer.cpp:59
ftxui::ScreenInteractive::Fullscreen
static ScreenInteractive Fullscreen()
Definition: screen_interactive.cpp:250
ftxui::Checkbox
Component Checkbox(ConstStringRef label, bool *checked, Ref< CheckboxOption > option={})
Draw checkable element.
Definition: checkbox.cpp:112
ftxui::gauge
Element gauge(float ratio)
Draw a high definition progress bar.
Definition: gauge.cpp:75
ftxui::Slider
Component Slider(ConstStringRef label, T *value, T min, T max, T increment)
An horizontal slider.
Definition: slider.cpp:123
ftxui::Element
std::shared_ptr< Node > Element
Definition: elements.hpp:15
ftxui::bgcolor
Decorator bgcolor(Color)
Decorate using a background color.
Definition: color.cpp:100
ftxui::ScreenInteractive::TerminalOutput
static ScreenInteractive TerminalOutput()
Definition: screen_interactive.cpp:255
ftxui::blink
Element blink(Element)
The text drawn alternates in between visible and hidden.
Definition: blink.cpp:28
ftxui::vbox
Element vbox(Elements)
A container displaying elements vertically one by one.
Definition: vbox.cpp:76
ftxui::ResizableSplitTop
Component ResizableSplitTop(Component main, Component back, int *main_size)
An vertical split in between two components, configurable using the mouse.
Definition: resizable_split.cpp:326
ftxui::Button
Component Button(ConstStringRef label, std::function< void()> on_click, Ref< ButtonOption >={})
Draw a button. Execute a function when clicked.
Definition: button.cpp:90
ftxui::Radiobox
Component Radiobox(ConstStringListRef entries, int *selected_, Ref< RadioboxOption > option={})
A list of element, where only one can be selected.
Definition: radiobox.cpp:193
ftxui::Menu
Component Menu(ConstStringListRef entries, int *selected_, Ref< MenuOption >={})
A list of text. The focused element is selected.
Definition: menu.cpp:173
ftxui::gridbox
Element gridbox(std::vector< Elements > lines)
A container displaying a grid of elements.
Definition: gridbox.cpp:153
ftxui::Input
Component Input(StringRef content, ConstStringRef placeholder, Ref< InputOption > option={})
An input box for editing text.
Definition: input.cpp:241
ftxui::text
Element text(std::wstring text)
Display a piece of unicode text.
Definition: text.cpp:106