4#ifndef FTXUI_DOM_NODE_HPP
5#define FTXUI_DOM_NODE_HPP
21using Element = std::shared_ptr<Node>;
22using Elements = std::vector<Element>;
38class FTXUI_EXPORT(DOM) Node {
41 explicit Node(Elements children);
42 Node(
const Node&) =
delete;
43 Node(
const Node&&) =
delete;
44 Node& operator=(
const Node&) =
delete;
45 Node& operator=(
const Node&&) =
delete;
52 virtual void ComputeRequirement();
53 Requirement requirement() {
return requirement_; }
57 virtual void SetBox(Box box);
61 virtual void Select(Selection& selection);
64 virtual void Render(Screen& screen);
66 virtual std::string GetSelectedContent(Selection& selection);
73 bool need_iteration =
false;
75 virtual void Check(Status* status);
78 virtual void Reserved1();
79 virtual void Reserved2();
80 virtual void Reserved3();
81 virtual void Reserved4();
82 virtual void Reserved5();
83 virtual void Reserved6();
84 virtual void Reserved7();
85 virtual void Reserved8();
87 friend void Render(Screen& screen, Node* node, Selection& selection);
91 Requirement requirement_;
98void Render(Screen& screen, Node* node, Selection& selection);
100std::string GetNodeSelectedContent(Screen& screen,
102 Selection& selection);
#define FTXUI_EXPORT(component)
The FTXUI ftxui:: namespace.
std::shared_ptr< Node > Element
std::vector< Element > Elements