FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
component.hpp
Aller à la documentation de ce fichier.
1// Copyright 2021 Arthur Sonzogni. Tous droits réservés.
2// L'utilisation de ce code source est régie par la licence MIT que l'on peut trouver dans
3// le fichier LICENSE.
4#ifndef FTXUI_COMPONENT_HPP
5#define FTXUI_COMPONENT_HPP
6
7#include <functional> // for function
8#include <memory> // for make_shared, shared_ptr
9#include <utility> // for forward
10
12#include "ftxui/component/component_base.hpp" // for Component, Components
13#include "ftxui/component/component_options.hpp" // for ButtonOption, CheckboxOption, MenuOption
14#include "ftxui/dom/elements.hpp" // for Element
15#include "ftxui/util/ref.hpp" // for ConstRef, Ref, ConstStringRef, ConstStringListRef, StringRef
16
17namespace ftxui {
18struct ButtonOption;
19struct CheckboxOption;
20struct Event;
21struct InputOption;
22struct MenuOption;
23struct RadioboxOption;
24struct MenuEntryOption;
25
26template <class T, class... Args>
27std::shared_ptr<T> Make(Args&&... args) {
28 return std::make_shared<T>(std::forward<Args>(args)...);
29}
30
31// Opérateur pipe pour décorer les composants.
32using ComponentDecorator = std::function<Component(Component)>;
33using ElementDecorator = std::function<Element(Element)>;
35Component operator|(Component component, ElementDecorator decorator);
36Component& operator|=(Component& component, ComponentDecorator decorator);
37Component& operator|=(Component& component, ElementDecorator decorator);
38
39namespace Container {
41Component Vertical(Components children, int* selector);
43Component Horizontal(Components children, int* selector);
44Component Tab(Components children, int* selector);
46} // namespace Container
47
50 std::function<void()> on_click,
52
55 bool* checked,
57
58Component Input(InputOption options = {});
59Component Input(StringRef content, InputOption options = {});
60Component Input(StringRef content,
61 StringRef placeholder,
62 InputOption options = {});
63
64Component Menu(MenuOption options);
65Component Menu(ConstStringListRef entries,
66 int* selected_,
67 MenuOption options = MenuOption::Vertical());
68Component MenuEntry(MenuEntryOption options);
69Component MenuEntry(ConstStringRef label, MenuEntryOption options = {});
70
71Component Radiobox(RadioboxOption options);
72Component Radiobox(ConstStringListRef entries,
73 int* selected_,
74 RadioboxOption options = {});
75
76Component Dropdown(ConstStringListRef entries, int* selected);
77Component Dropdown(DropdownOption options);
78
79Component Toggle(ConstStringListRef entries, int* selected);
80
81// Constructeur de curseur général :
82template <typename T>
83Component Slider(SliderOption<T> options);
84
85// Raccourci sans le constructeur `SliderOption` :
86Component Slider(ConstStringRef label,
87 Ref<int> value,
88 ConstRef<int> min = 0,
89 ConstRef<int> max = 100,
90 ConstRef<int> increment = 5);
91Component Slider(ConstStringRef label,
92 Ref<float> value,
93 ConstRef<float> min = 0.f,
94 ConstRef<float> max = 100.f,
95 ConstRef<float> increment = 5.f);
96Component Slider(ConstStringRef label,
97 Ref<long> value,
98 ConstRef<long> min = 0L,
99 ConstRef<long> max = 100L,
100 ConstRef<long> increment = 5L);
101
102Component ResizableSplit(ResizableSplitOption options);
105Component ResizableSplitTop(Component main, Component back, int* main_size);
107
108Component Renderer(Component child, std::function<Element()>);
109Component Renderer(std::function<Element()>);
110Component Renderer(std::function<Element(bool /* focused */)>);
112
113Component CatchEvent(Component child, std::function<bool(Event)>);
114ComponentDecorator CatchEvent(std::function<bool(Event)> on_event);
115
116Component Maybe(Component, const bool* show);
117Component Maybe(Component, std::function<bool()>);
118ComponentDecorator Maybe(const bool* show);
119ComponentDecorator Maybe(std::function<bool()>);
120
121Component Modal(Component main, Component modal, const bool* show_modal);
122ComponentDecorator Modal(Component modal, const bool* show_modal);
123
125 Component child,
126 Ref<bool> show = false);
127
128Component Hoverable(Component component, bool* hover);
130 std::function<void()> on_enter,
131 std::function<void()> on_leave);
132Component Hoverable(Component component, //
133 std::function<void(bool)> on_change);
134ComponentDecorator Hoverable(bool* hover);
135ComponentDecorator Hoverable(std::function<void()> on_enter,
136 std::function<void()> on_leave);
137ComponentDecorator Hoverable(std::function<void(bool)> on_change);
138
140
141} // namespace ftxui
142
143#endif /* end of include guard: FTXUI_COMPONENT_HPP */
Un adaptateur. Possède ou référence une chaîne constante. Par commodité, cette classe convertit plusi...
Definition ref.hpp:94
Un adaptateur. Possède ou référence un objet mutable.
Definition ref.hpp:46
static CheckboxOption Simple()
Option pour une case à cocher standard.
static ButtonOption Simple()
Crée une ButtonOption, inversée lorsqu'elle est sélectionnée.
static MenuOption Vertical()
Options standard pour un menu vertical. Cela peut être utile pour implémenter une liste d'éléments sé...
Component Horizontal(Components children)
Une liste de composants, dessinés un par un horizontalement et navigués horizontalement en utilisant ...
Component Maybe(Component, const bool *show)
Décore un composant |child|. Il est affiché uniquement lorsque |show| est vrai.
Component ResizableSplitTop(Component main, Component back, int *main_size)
Une séparation verticale entre deux composants, configurable à l'aide de la souris.
Component Menu(MenuOption options)
Une liste de texte. L'élément sélectionné est mis en évidence.
Component MenuEntry(MenuEntryOption options)
Une entrée de menu spécifique. Elles peuvent être placées dans un Container::Vertical pour former un ...
Component Toggle(ConstStringListRef entries, int *selected)
Une liste horizontale d'éléments. L'utilisateur peut naviguer à travers eux.
Component Radiobox(RadioboxOption options)
Une liste d'éléments, où un seul peut être sélectionné.
Component Button(ButtonOption options)
Dessine un bouton. Exécute une fonction lors d'un clic.
Component Modal(Component main, Component modal, const bool *show_modal)
Definition modal.cpp:18
Component Renderer(Component child, std::function< Element()>)
Renvoie un nouveau composant, similaire à |child|, mais utilisant |render| comme événement Component:...
Component Hoverable(Component component, bool *hover)
Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
Definition hoverable.cpp:43
Component Vertical(Components children)
Une liste de composants, dessinés un par un verticalement et navigués verticalement en utilisant les ...
Component Input(InputOption options={})
Une zone de saisie pour éditer du texte.
Component ResizableSplitRight(Component main, Component back, int *main_size)
Une séparation horizontale entre deux composants, configurable à l'aide de la souris.
Component Dropdown(ConstStringListRef entries, int *selected)
Un menu déroulant.
Component Stacked(Components children)
Une liste de composants à empiler les uns sur les autres. Les événements sont propagés au premier com...
Component ResizableSplitBottom(Component main, Component back, int *main_size)
Une séparation verticale entre deux composants, configurable à l'aide de la souris.
Component Checkbox(CheckboxOption options)
Dessine un élément à cocher.
Component ResizableSplitLeft(Component main, Component back, int *main_size)
Une séparation horizontale entre deux composants, configurable à l'aide de la souris.
Component Tab(Components children, int *selector)
Une liste de composants, où un seul est dessiné et interagit avec à la fois. Le |selector| donne l'in...
Option pour le composant AnimatedButton.
Option pour le composant Checkbox.
Représente un événement. Il peut s'agir d'un événement de touche, d'un redimensionnement de terminal,...
Definition event.hpp:28
Option pour le composant Input.
L'espace de noms FTXUI ftxui::Container::
L'espace de noms FTXUI ftxui::
Definition animation.hpp:10
std::shared_ptr< T > Make(Args &&... args)
Definition component.hpp:27
std::shared_ptr< Node > Element
Definition elements.hpp:22
std::function< Element(Element)> ElementDecorator
Definition component.hpp:33
std::vector< Component > Components
Component ResizableSplit(ResizableSplitOption options)
Une séparation entre deux composants.
Component Window(WindowOptions option)
Component operator|(Component component, ComponentDecorator decorator)
Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
Un composant repliable. Il affiche une case à cocher avec une flèche. Une fois activé,...
Component Slider(SliderOption< T > options)
Un curseur dans n'importe quelle direction.
Component & operator|=(Component &component, ComponentDecorator decorator)
std::function< Component(Component)> ComponentDecorator
Definition component.hpp:32
std::shared_ptr< ComponentBase > Component
Component CatchEvent(Component child, std::function< bool(Event)>)