FTXUI/include/ftxui
ArthurSonzogni 08ee49f3e6 Add flex_grow and flex_shrink.
Two new elements:
- flex_grow  : Expand the element to occupy free space.
- flex_shrink: Minimize the element leave away missing space.

flex = flex_grow | flex_shrink.

Other changes:
- hbox and vbox are now non flexible by default.
- the vtext element has been added to help writting tests.
- Many new tests.
2020-06-07 02:30:45 +02:00
..
component Add Receiver->HasPending() 2020-05-25 03:12:09 +02:00
dom Add flex_grow and flex_shrink. 2020-06-07 02:30:45 +02:00
screen Use shared_ptr instead of unique_ptr for elements. 2020-05-20 20:51:20 +02:00
util Add automatic formatting and license. 2020-04-19 21:01:09 +02:00
README.md Update README.md 2020-02-04 11:48:01 +01:00

Level of abstractions:

  • Level 0: terminal output.
  • Level 1: ftxui::Screen
  • Level 2: ftxui::Node
  • Level 3: ftxui::Component

Level 0: terminal output.

This is std::cout. You can send text to it.

Level 1: ftxui::Screen

A rectangular grid of characters. Use Terminal::ToString() to append its content to the console (level 0).

Level 2: ftxui::Node

A hierarchial set of element. They handle layout and render themself on the screen (level 1) See elements.hpp

You can make implement your own.

Level 3: ftxui::Component

A hierarchical set of components. Components store some state and react to events:

  • keyboard
  • mouse
  • terminal event

Components renders themself by producing ftxui::Node (Level 2)

Implement your own!