26 child->ComputeRequirement();
33 for (
size_t i = 1; i <
children_.size(); ++i) {
35 children_[i]->requirement().focused.enabled) {
57 child->Select(selection);
65 child->Render(screen);
80 content += child->GetSelectedContent(selection);
90 Render(screen, element.get(), selection);
97 Render(screen, node, selection);
108 node->
Check(&status);
109 const int max_iterations = 20;
120 node->
Check(&status);
129#
if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
182 node->
Check(&status);
183 const int max_iterations = 20;
194 node->
Check(&status);
virtual void Select(Selection &selection)
Compute the selection of an element.
virtual std::string GetSelectedContent(Selection &selection)
virtual void SetBox(Box box)
Assign a position and a dimension to an element for drawing.
Requirement requirement()
virtual void ComputeRequirement()
Compute how much space an elements needs.
virtual void Check(Status *status)
virtual void Render(Screen &screen)
Display an element on a ftxui::Screen.
friend void Render(Screen &screen, Node *node, Selection &selection)
A rectangular grid of Pixel.
void SetCursor(Cursor cursor)
Represent a selection in the terminal.
const Box & GetBox() const
Get the box of the selection.
std::string GetNodeSelectedContent(Screen &screen, Node *node, Selection &selection)
std::shared_ptr< Node > Element
std::vector< Element > Elements
void Render(Screen &screen, const Element &element)
Display an element on a ftxui::Screen.
static auto Intersection(Box a, Box b) -> Box
Screen::Cursor::Shape cursor_shape