19 return Renderer(component, [name, component] {
23 component->Render() |
xflex,
30 auto screen = App::FitComponent();
34 const std::vector<std::string> menu_entries = {
40 int menu_selected = 0;
41 auto menu =
Menu(&menu_entries, &menu_selected);
42 menu =
Wrap(
"Menu", menu);
45 int toggle_selected = 0;
46 std::vector<std::string> toggle_entries = {
50 auto toggle =
Toggle(&toggle_entries, &toggle_selected);
51 toggle =
Wrap(
"Toggle", toggle);
54 bool checkbox_1_selected =
false;
55 bool checkbox_2_selected =
false;
56 bool checkbox_3_selected =
false;
57 bool checkbox_4_selected =
false;
59 auto checkboxes = Container::Vertical({
60 Checkbox(
"checkbox1", &checkbox_1_selected),
61 Checkbox(
"checkbox2", &checkbox_2_selected),
62 Checkbox(
"checkbox3", &checkbox_3_selected),
63 Checkbox(
"checkbox4", &checkbox_4_selected),
65 checkboxes =
Wrap(
"Checkbox", checkboxes);
68 int radiobox_selected = 0;
69 std::vector<std::string> radiobox_entries = {
75 auto radiobox =
Radiobox(&radiobox_entries, &radiobox_selected);
76 radiobox =
Wrap(
"Radiobox", radiobox);
79 std::string input_label;
80 auto input =
Input(&input_label,
"placeholder");
81 input =
Wrap(
"Input", input);
84 std::string button_label =
"Quit";
85 std::function<void()> on_button_clicked_;
86 auto button =
Button(&button_label, screen.ExitLoopClosure());
87 button =
Wrap(
"Button", button);
90 int slider_value_1 = 12;
91 int slider_value_2 = 56;
92 int slider_value_3 = 128;
93 auto sliders = Container::Vertical({
94 Slider(
"R:", &slider_value_1, 0, 256, 1),
95 Slider(
"G:", &slider_value_2, 0, 256, 1),
96 Slider(
"B:", &slider_value_3, 0, 256, 1),
98 sliders =
Wrap(
"Slider", sliders);
103 text(
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. "),
104 text(
"Sed do eiusmod tempor incididunt ut labore et dolore magna "
106 text(
"Ut enim ad minim veniam, quis nostrud exercitation ullamco "
107 "laboris nisi ut aliquip ex ea commodo consequat. "),
108 text(
"Duis aute irure dolor in reprehenderit in voluptate velit esse "
109 "cillum dolore eu fugiat nulla pariatur. "),
110 text(
"Excepteur sint occaecat cupidatat non proident, sunt in culpa "
111 "qui officia deserunt mollit anim id est laborum. "),
115 lorel_ipsum =
Wrap(
"Lorel Ipsum", lorel_ipsum);
119 auto layout = Container::Vertical({
130 auto component =
Renderer(layout, [&] {
136 checkboxes->Render(),
146 lorel_ipsum->Render(),
151 screen.Loop(component);
Component Wrap(std::string name, Component component)
Component Button(ConstStringRef label, std::function< void()> on_click, ButtonOption options=ButtonOption::Simple())
Dessine un bouton. Exécute une fonction lorsqu'il est cliqué.
Component Toggle(ConstStringListRef entries, int *selected)
Une liste horizontale d'éléments. L'utilisateur peut naviguer à travers eux.
Component Renderer(Component child, std::function< Element()>)
Retourne un nouveau Component, similaire à |child|, mais utilisant |render| comme événement Component...
Component Checkbox(ConstStringRef label, bool *checked, CheckboxOption options=CheckboxOption::Simple())
Dessine un élément cochable.
Component Input(StringRef content, InputOption options={})
Une boîte de saisie pour éditer du texte.
Component Radiobox(ConstStringListRef entries, int *selected_, RadioboxOption options={})
Une liste d'éléments, où un seul peut être sélectionné.
Component Menu(ConstStringListRef entries, int *selected_, MenuOption options=MenuOption::Vertical())
Une liste de texte. L'élément focalisé est sélectionné.
Element text(std::string_view text)
Affiche un morceau de texte unicode encodé en UTF8.
Element xflex(Element)
Développer/Réduire si possible/nécessaire sur l'axe X.
Decorator size(WidthOrHeight direction, Constraint constraint, int value)
Applique une contrainte sur la taille d'un élément.
Element separator()
Dessine une séparation verticale ou horizontale entre deux autres éléments.
Element border(Element child)
Dessine une bordure autour de l'élément.
Element vbox(Elements children)
Un conteneur affichant les éléments verticalement un par un.
L'espace de noms FTXUI ftxui::
Element hbox(Elements children)
Un conteneur affichant les éléments horizontalement un par un.
Component Slider(SliderOption< T > options)
Un curseur dans n'importe quelle direction.
std::shared_ptr< ComponentBase > Component