25 child->ComputeRequirement();
32 for (
size_t i = 1; i <
children_.size(); ++i) {
34 children_[i]->requirement().focused.enabled) {
54 child->Select(selection);
59 for (
auto& child : children_) {
65 for (
auto& child : children_) {
71std::string Node::GetSelectedContent(
Selection& selection) {
74 for (
auto& child : children_) {
75 content += child->GetSelectedContent(selection);
99 box.x_max =
screen.dimx() - 1;
100 box.y_max =
screen.dimy() - 1;
103 node->Check(&status);
104 const int max_iterations = 20;
105 while (status.need_iteration && status.iteration < max_iterations) {
107 node->ComputeRequirement();
113 status.need_iteration =
false;
115 node->Check(&status);
119 if (!selection.IsEmpty()) {
120 node->Select(selection);
123 if (node->requirement().focused.enabled
124#
if defined(FTXUI_MICROSOFT_TERMINAL_FALLBACK)
144 node->requirement().focused.cursor_shape != Screen::Cursor::Shape::Hidden
147 screen.SetCursor(Screen::Cursor{
148 node->requirement().focused.node->box_.x_max,
149 node->requirement().focused.node->box_.y_max,
150 node->requirement().focused.cursor_shape,
153 screen.SetCursor(Screen::Cursor{
156 Screen::Cursor::Shape::Hidden,
170 Selection& selection) {
174 box.x_max =
screen.dimx() - 1;
175 box.y_max =
screen.dimy() - 1;
178 node->Check(&status);
179 const int max_iterations = 20;
180 while (status.need_iteration && status.iteration < max_iterations) {
182 node->ComputeRequirement();
188 status.need_iteration =
false;
190 node->Check(&status);
194 node->Select(selection);
197 return node->GetSelectedContent(selection);
const Box & GetBox() const
Récupère la boîte de sélection.
virtual void Select(Selection &selection)
Calcule la sélection d'un élément.
virtual void SetBox(Box box)
Assigne une position et une dimension à un élément pour le dessin.
virtual void ComputeRequirement()
Calcule l'espace nécessaire à un élément.
Représente une sélection dans une interface utilisateur de terminal.
void Render(Screen &screen, const Element &element)
Affiche un élément sur un ftxui::Screen.
static auto Intersection(Box a, Box b) -> Box
Box est une structure qui représente une zone rectangulaire dans un espace 2D.
L'espace de noms FTXUI ftxui::
std::vector< Element > Elements
std::string GetNodeSelectedContent(Screen &screen, Node *node, Selection &selection)