4#ifndef FTXUI_DOM_NODE_HPP
5#define FTXUI_DOM_NODE_HPP
21using Element = std::shared_ptr<Node>;
22using Elements = std::vector<Element>;
35class FTXUI_EXPORT(DOM) Node {
38 explicit Node(Elements children);
39 Node(
const Node&) =
delete;
40 Node(
const Node&&) =
delete;
41 Node& operator=(
const Node&) =
delete;
42 Node& operator=(
const Node&&) =
delete;
49 virtual void ComputeRequirement();
50 Requirement requirement() {
return requirement_; }
54 virtual void SetBox(Box box);
58 virtual void Select(Selection& selection);
61 virtual void Render(Screen& screen);
63 virtual std::string GetSelectedContent(Selection& selection);
70 bool need_iteration =
false;
72 virtual void Check(Status* status);
75 virtual void Reserved1();
76 virtual void Reserved2();
77 virtual void Reserved3();
78 virtual void Reserved4();
79 virtual void Reserved5();
80 virtual void Reserved6();
81 virtual void Reserved7();
82 virtual void Reserved8();
84 friend FTXUI_EXPORT(DOM)
void Render(Screen& screen, Node* node, Selection& selection);
88 Requirement requirement_;
95void Render(Screen& screen, Node* node, Selection& selection);
97std::string GetNodeSelectedContent(Screen& screen,
99 Selection& selection);
#define FTXUI_EXPORT(component)
std::shared_ptr< Node > Element
std::vector< Element > Elements