FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
examples/component/selection.cpp
Aller à la documentation de ce fichier.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// L'utilisation de ce code source est régie par la licence MIT qui peut être trouvée dans
3// le fichier LICENSE.
4#include <string> // pour char_traits, operator+, string, basic_string
5
6#include "ftxui/component/component.hpp" // pour Input, Renderer, Vertical
7#include "ftxui/component/component_base.hpp" // pour ComponentBase
8#include "ftxui/component/component_options.hpp" // pour InputOption
9#include "ftxui/component/screen_interactive.hpp" // pour Component, ScreenInteractive
10#include "ftxui/dom/elements.hpp" // pour text, hbox, separator, Element, operator|, vbox, border
11#include "ftxui/util/ref.hpp" // pour Ref
12
13using namespace ftxui;
14
16 return vbox({
17 text("FTXUI : Une bibliothèque puissante pour construire des interfaces utilisateur."),
18 text("Profitez d'un riche ensemble de composants et d'un style déclaratif."),
19 text("Créez des interfaces utilisateur belles et réactives avec un minimum d'effort."),
20 text("Rejoignez la communauté et découvrez la puissance de FTXUI."),
21 });
22}
23
24int main() {
26
27 auto quit =
28 Button("Quitter", screen.ExitLoopClosure(), ButtonOption::Animated());
29
30 int selection_change_counter = 0;
31 std::string selection_content = "";
32 screen.SelectionChange([&] {
33 selection_change_counter++;
34 selection_content = screen.GetSelection();
35 });
36
37 // Les composants :
38 auto renderer = Renderer(quit, [&] {
39 return vbox({
40 text("Sélection changée : " + std::to_string(selection_change_counter) +
41 " fois"),
42 text("Actuellement sélectionné : "),
43 paragraph(selection_content) | vscroll_indicator | frame | border |
44 size(HEIGHT, EQUAL, 10),
45 window(text("Séparation horizontale"), hbox({
46 LoremIpsum(),
47 separator(),
48 LoremIpsum(),
49 separator(),
50 LoremIpsum(),
51 })),
52 window(text("Séparation verticale"), vbox({
53 LoremIpsum(),
54 separator(),
55 LoremIpsum(),
56 separator(),
57 LoremIpsum(),
58 })),
59 window(text("Séparation en grille avec un style différent"),
60 vbox({
61 hbox({
62 LoremIpsum(),
63 separator(),
64 LoremIpsum() //
68 separator(),
70 }),
71 separator(),
72 hbox({
74 separator(),
75 LoremIpsum() | selectionStyle([](Pixel& pixel) {
76 pixel.underlined_double = true;
77 }),
78 separator(),
79 LoremIpsum(),
80 }),
81 })),
82 quit->Render(),
83 });
84 });
85
86 screen.Loop(renderer);
87}
auto screen
Element LoremIpsum()
static ButtonOption Animated()
Crée une ButtonOption, utilisant des couleurs animées.
static ScreenInteractive TerminalOutput()
Component Button(ButtonOption options)
Dessine un bouton. Exécute une fonction lors d'un clic.
Component Renderer(Component child, std::function< Element()>)
Renvoie un nouveau composant, similaire à |child|, mais utilisant |render| comme événement Component:...
virtual void Render(Screen &screen)
Element window(Element title, Element content, BorderStyle border=ROUNDED)
Dessine une fenêtre avec un titre et une bordure autour de l'élément.
Decorator size(WidthOrHeight, Constraint, int value)
Applique une contrainte sur la taille d'un élément.
Element text(std::wstring text)
Affiche un morceau de texte unicode.
Definition text.cpp:160
Element separator()
Dessine une séparation verticale ou horizontale entre deux autres éléments.
Element vbox(Elements)
Un conteneur affichant les éléments verticalement un par un.
Definition vbox.cpp:96
bool underlined_double
Definition pixel.hpp:34
Un caractère Unicode et son style associé.
Definition pixel.hpp:15
L'espace de noms FTXUI ftxui::
Definition animation.hpp:10
std::shared_ptr< Node > Element
Definition elements.hpp:22
Decorator selectionStyle(std::function< void(Pixel &)> style)
Définit le style d'un élément lorsqu'il est sélectionné.
Element hbox(Elements)
Un conteneur affichant les éléments horizontalement un par un.
Definition hbox.cpp:94
Decorator selectionBackgroundColor(Color foreground)
Définit la couleur d'arrière-plan d'un élément lorsqu'il est sélectionné. Notez que le style est appl...
Decorator selectionColor(Color foreground)
Définit la couleur d'un élément lorsqu'il est sélectionné.
Element selectionStyleReset(Element)
Réinitialise le style de sélection d'un élément.
Elements paragraph(std::wstring text)