FTXUI 7.0.3
C++ functional terminal UI.
Loading...
Searching...
No Matches
ftxui/component

Detailed Description

Veuillez consulter le tutoriel du module ftxui/component.

Functions

 FTXUI_EXPORT (COMPONENT) void RequestAnimationFrame()
 RequestAnimationFrame est une fonction qui demande à ce qu'une nouvelle trame soit dessinée lors du prochain cycle d'animation.
 
class FTXUI_EXPORT (COMPONENT) ComponentBase = {})
 Il implémente son propre rendu en tant que ftxui::Element. Il implémente la navigation au clavier en répondant à ftxui::Event.
 
Component Button (ButtonOption option)
 Dessine un bouton. Exécute une fonction lorsqu'il est cliqué.
 
Component Button (ConstStringRef label, std::function< void()> on_click, ButtonOption option)
 Dessine un bouton. Exécute une fonction lorsqu'il est cliqué.
 
Component CatchEvent (Component child, std::function< bool(Event event)> on_event)
 Retourne un composant, utilisant |on_event| pour intercepter les événements. Cette fonction doit retourner true lorsque l'événement a été traité, false sinon.
 
ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
 Décore un composant, utilisant |on_event| pour intercepter les événements. Cette fonction doit retourner true lorsque l'événement a été traité, false sinon.
 
Component Checkbox (CheckboxOption option)
 Dessine un élément cochable.
 
Component Checkbox (ConstStringRef label, bool *checked, CheckboxOption option)
 Dessine un élément cochable.
 
Component Vertical (Components children)
 Une liste de composants, dessinés un par un verticalement et navigués verticalement en utilisant les flèches haut/bas ou les touches 'j'/'k'.
 
Component Vertical (Components children, int *selector)
 Une liste de composants, dessinés les uns après les autres verticalement et navigables verticalement en utilisant les touches flèche haut/bas ou 'j'/'k'. Ceci est utile pour implémenter un Menu par exemple.
 
Component Horizontal (Components children)
 Une liste de composants, dessinés les uns après les autres horizontalement et navigables horizontalement en utilisant les touches flèche gauche/droite ou 'h'/'l'.
 
Component Horizontal (Components children, int *selector)
 Une liste de composants, dessinés un par un horizontalement et navigués horizontalement en utilisant les flèches gauche/droite ou les touches 'h'/'l'.
 
Component Tab (Components children, int *selector)
 Une liste de composants, où un seul est dessiné et interagit avec à la fois. Le |selector| donne l'index du composant sélectionné. Ceci est utile pour implémenter des onglets.
 
Component Stacked (Components children)
 Une liste de composants à empiler les uns sur les autres. Les événements sont propagés au premier composant, puis au second s'il n'est pas géré, etc. Les composants sont dessinés dans l'ordre inverse de leur insertion. Lorsqu'un composant prend le focus, il est placé au premier plan, sans modifier l'ordre relatif des autres éléments.
 
Component Dropdown (ConstStringListRef entries, int *selected)
 Un menu déroulant.
 
Component Dropdown (DropdownOption option)
 Un menu déroulant.
 
Component Hoverable (Component component, bool *hover)
 Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
 
Component Hoverable (Component component, std::function< void()> on_enter, std::function< void()> on_leave)
 Encapsule un composant. Utilise des callbacks.
 
ComponentDecorator Hoverable (bool *hover)
 Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
 
ComponentDecorator Hoverable (std::function< void()> on_enter, std::function< void()> on_leave)
 Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
 
Component Hoverable (Component component, std::function< void(bool)> on_change)
 Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
 
ComponentDecorator Hoverable (std::function< void(bool)> on_change)
 Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
 
Component Input (InputOption option)
 Une boîte de saisie pour éditer du texte.
 
Component Input (StringRef content, InputOption option)
 Une boîte de saisie pour éditer du texte.
 
Component Input (StringRef content, StringRef placeholder, InputOption option)
 Une boîte de saisie pour éditer du texte.
 
Component Maybe (Component child, std::function< bool()> show)
 Décore un composant |child|. Il est affiché uniquement lorsque |show| retourne vrai.
 
ComponentDecorator Maybe (std::function< bool()> show)
 Décore un composant. Il est affiché uniquement lorsque la fonction |show| retourne vrai.
 
Component Maybe (Component child, const bool *show)
 Décore un composant |child|. Il est affiché uniquement lorsque |show| est vrai.
 
ComponentDecorator Maybe (const bool *show)
 Décore un composant. Il est affiché uniquement lorsque |show| est vrai.
 
Component Menu (MenuOption option)
 Une liste de texte. L'élément focalisé est sélectionné.
 
Component Menu (ConstStringListRef entries, int *selected, MenuOption option)
 Une liste de texte. L'élément focalisé est sélectionné.
 
Component Toggle (ConstStringListRef entries, int *selected)
 Une liste horizontale d'éléments. L'utilisateur peut naviguer à travers eux.
 
Component MenuEntry (ConstStringRef label, MenuEntryOption option)
 Une entrée de menu spécifique. Elles peuvent être placées dans un Container::Vertical pour former un menu.
 
Component MenuEntry (MenuEntryOption option)
 Une entrée de menu spécifique. Elles peuvent être placées dans un Container::Vertical pour former un menu.
 
FTXUI_EXPORT(COMPONENT) ComponentDecorator Maybe(std Component Modal (Component main, Component modal, const bool *show_modal)
 
ComponentDecorator Modal (Component modal, const bool *show_modal)
 
Component Radiobox (RadioboxOption option)
 Une liste d'éléments, où un seul peut être sélectionné.
 
Component Radiobox (ConstStringListRef entries, int *selected, RadioboxOption option)
 Une liste d'éléments, où un seul peut être sélectionné.
 
Component Renderer (std::function< Element()> render)
 Retourne un composant, utilisant |render| pour dessiner son interface.
 
Component Renderer (Component child, std::function< Element()> render)
 Retourne un nouveau Component, similaire à |child|, mais utilisant |render| comme événement Component::Render().
 
FTXUI_EXPORT(COMPONENT) Component Renderer(std Component Renderer (std::function< Element(bool)> render)
 Retourne un composant focalisable, utilisant |render| pour dessiner son interface.
 
ComponentDecorator Renderer (ElementDecorator decorator)
 Décore un composant, en décorant ce qu'il dessine.
 
Component ResizableSplitLeft (Component main, Component back, int *main_size)
 Une division horizontale entre deux composants, configurable en utilisant la souris.
 
Component ResizableSplitRight (Component main, Component back, int *main_size)
 Une division horizontale entre deux composants, configurable en utilisant la souris.
 
Component ResizableSplitTop (Component main, Component back, int *main_size)
 Une division verticale entre deux composants, configurable en utilisant la souris.
 
Component ResizableSplitBottom (Component main, Component back, int *main_size)
 Une division verticale entre deux composants, configurable en utilisant la souris.
 
Component Slider (ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)
 Un curseur horizontal.
 

Function Documentation

◆ FTXUI_EXPORT() [1/2]

class FTXUI_EXPORT ( COMPONENT )

RequestAnimationFrame est une fonction qui demande à ce qu'une nouvelle trame soit dessinée lors du prochain cycle d'animation.

Note
Cette fonction est typiquement appelée par les composants qui ont besoin de mettre à jour leur état ou leur apparence au fil du temps, comme les animations ou les transitions. Ceci est utile lorsque le changement ne dépend pas des événements vus par le terminal, mais plutôt du temps qui passe.

Les composants qui n'ont pas terminé leur animation peuvent appeler cette fonction pour demander à ce qu'une nouvelle trame soit dessinée plus tard.

Lorsqu'il n'y a pas de nouveaux événements et pas d'animations à compléter, aucune nouvelle trame n'est dessinée.

La durée que représente cette étape d'animation.

La durée que représente cette étape d'animation.

Definition at line 27 of file animation.hpp.

◆ FTXUI_EXPORT() [2/2]

template FTXUI_EXPORT ( COMPONENT ) = {})

Il implémente son propre rendu en tant que ftxui::Element. Il implémente la navigation au clavier en répondant à ftxui::Event.

Un événement de souris. Il contient les coordonnées de la souris, le bouton pressé et le modificateur (shift, ctrl, méta).

Loop est une classe qui gère la boucle d'événements d'un composant.

Représente un événement. Il peut s'agir d'un événement de touche, d'un redimensionnement de terminal, ou plus encore...

Option pour le composant Dropdown.

Un menu déroulant est une case à cocher qui ouvre/ferme une radiobox.

État passé à la fonction de rendu du composant Window.

Option pour le composant Radiobox.

Option pour le composant Input.

Utilisé pour définir le style du composant Input.

Option pour le composant Checkbox.

Option pour le composant AnimatedButton.

Option pour le composant Menu.

Option pour le composant MenuEntry.

Option concernant une couleur potentiellement animée.

Option pour l'effet de soulignement.

arguments pour la transformation depuis |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|.

Par exemple :

  • Un caractère imprimable peut être créé en utilisant Event::Character('a').
  • Certains événements spéciaux sont prédéfinis, comme Event::ArrowLeft.
  • On peut trouver un code arbitraire pour les événements spéciaux en utilisant : ./example/util/print_key_press Par exemple, CTLR+A correspond à Event::Special({1}) ;

Documentation utile sur la spécification xterm : https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

Elle est responsable de l'exécution du composant, de la gestion des événements, et de la mise à jour de l'écran.

La classe Loop est conçue pour être utilisée avec un objet App, qui représente l'écran du terminal.

Exemple

int main() {
auto screen = ftxui::App::TerminalOutput();
auto component = ftxui::Button("Click me", [] { ... });
ftxui::Loop loop(screen.get(), component);
// Soit
loop.Run(); // Bloquant jusqu'à ce que le composant se termine.
// Soit
loop.RunOnce(); // Non bloquant, retourne immédiatement.
// Soit
loop.RunOnceBlocking(); // Bloquant jusqu'au traitement d'un événement.
// Soit dans une boucle :
while (!loop.HasQuitted()) {
loop.RunOnce();
// Faire autre chose comme exécuter une autre fonction de boucle de bibliothèque.
}
}
Component Button(ConstStringRef label, std::function< void()> on_click, ButtonOption options=ButtonOption::Simple())
Dessine un bouton. Exécute une fonction lorsqu'il est cliqué.

< Le libellé à afficher.

< L'état du bouton/checkbox/radiobox

< Indique si l'entrée est active.

< Indique si l'entrée est celle sur laquelle l'utilisateur a le focus.

< Index de l'entrée lorsqu'applicable ou -1.

‍La liste des entrées.

‍L'index de l'entrée sélectionnée.

‍Appelé lorsque l'entrée sélectionnée change.

‍Appelé lorsque l'utilisateur appuie sur Entrée.

Appelé lorsque l'utilisateur change l'état.

< Indique si l'entrée est survolée par la souris.

< Indique si l'entrée a le focus de l'utilisateur.

< Indique si l'entrée est vide et affiche le texte de substitution (placeholder).

Crée le style d'entrée par défaut:

Un style blanc sur noir avec des marges élevées:

Le contenu de l'entrée.

Le contenu de l'entrée lorsqu'elle est vide.

< Obscurcit le contenu de l'entrée en utilisant '*'.

< Indique si l'entrée peut être multiligne.

< Mode d'insertion ou de remplacement des caractères.

Appelé lorsque le contenu change.

Appelé lorsque l'utilisateur appuie sur Entrée.

Appelé lorsque l'entrée sélectionnée change.

< L'élément enveloppé à l'intérieur de cette fenêtre.

< Le titre de la fenêtre.

< Indique si la fenêtre est active.

< Indique si la fenêtre est en cours de déplacement.

< Indique si la fenêtre est en cours de redimensionnement.

< Indique si le côté gauche redimensionnable est survolé.

< Indique si le côté droit redimensionnable est survolé.

< Indique si le côté supérieur redimensionnable est survolé.

< Indique si le côté inférieur redimensionnable est survolé.

< Le composant enveloppé par cette fenêtre.

< Le titre affiché par cette fenêtre.

< La position du côté gauche de la fenêtre.

< La position du côté supérieur de la fenêtre.

< La largeur de la fenêtre.

< La hauteur de la fenêtre.

< Le côté gauche peut-il être redimensionné ?

< Le côté droit peut-il être redimensionné ?

< Le côté supérieur peut-il être redimensionné ?

< Le côté inférieur peut-il être redimensionné ?

Une fonction optionnelle pour personnaliser l'apparence de la fenêtre :

Indique si le menu déroulant est ouvert ou fermé :

Supporté par le terminal uniquement.

Supporté par le terminal uniquement.

< Le libellé à afficher.

< L'état du bouton/checkbox/radiobox

< Indique si l'entrée est active.

< Indique si l'entrée est celle sur laquelle l'utilisateur a le focus.

< Index de l'entrée lorsqu'applicable ou -1.

‍La liste des entrées.

‍L'index de l'entrée sélectionnée.

‍Appelé lorsque l'entrée sélectionnée change.

‍Appelé lorsque l'utilisateur appuie sur Entrée.

Appelé lorsque l'utilisateur change l'état.

< Indique si l'entrée est survolée par la souris.

< Indique si l'entrée a le focus de l'utilisateur.

< Indique si l'entrée est vide et affiche le texte de substitution (placeholder).

Crée le style d'entrée par défaut:

Un style blanc sur noir avec des marges élevées:

Le contenu de l'entrée.

Le contenu de l'entrée lorsqu'elle est vide.

< Obscurcit le contenu de l'entrée en utilisant '*'.

< Indique si l'entrée peut être multiligne.

< Mode d'insertion ou de remplacement des caractères.

Appelé lorsque le contenu change.

Appelé lorsque l'utilisateur appuie sur Entrée.

Appelé lorsque l'entrée sélectionnée change.

< L'élément enveloppé à l'intérieur de cette fenêtre.

< Le titre de la fenêtre.

< Indique si la fenêtre est active.

< Indique si la fenêtre est en cours de déplacement.

< Indique si la fenêtre est en cours de redimensionnement.

< Indique si le côté gauche redimensionnable est survolé.

< Indique si le côté droit redimensionnable est survolé.

< Indique si le côté supérieur redimensionnable est survolé.

< Indique si le côté inférieur redimensionnable est survolé.

< Le composant enveloppé par cette fenêtre.

< Le titre affiché par cette fenêtre.

< La position du côté gauche de la fenêtre.

< La position du côté supérieur de la fenêtre.

< La largeur de la fenêtre.

< La hauteur de la fenêtre.

< Le côté gauche peut-il être redimensionné ?

< Le côté droit peut-il être redimensionné ?

< Le côté supérieur peut-il être redimensionné ?

< Le côté inférieur peut-il être redimensionné ?

Une fonction optionnelle pour personnaliser l'apparence de la fenêtre :

Indique si le menu déroulant est ouvert ou fermé :

Supporté par le terminal uniquement.

Supporté par le terminal uniquement.

Definition at line 1 of file captured_mouse.hpp.

◆ Button() [1/2]

Component Button ( ButtonOption option)

Dessine un bouton. Exécute une fonction lorsqu'il est cliqué.

Parameters
optionParamètres optionnels supplémentaires.
See also
ButtonBase

Exemple

auto screen = App::FitComponent();
Component button = Button({
.label = "Click to quit",
.on_click = screen.ExitLoopClosure(),
});
screen.Loop(button)
std::shared_ptr< ComponentBase > Component
Definition app.hpp:23

Sortie

┌─────────────┐
│Click to quit│
└─────────────┘

Definition at line 174 of file src/ftxui/component/button.cpp.

◆ Button() [2/2]

Component Button ( ConstStringRef label,
std::function< void()> on_click,
ButtonOption option )

Dessine un bouton. Exécute une fonction lorsqu'il est cliqué.

Parameters
labelLe libellé du bouton.
on_clickL'action à exécuter lorsqu'il est cliqué.
optionParamètres optionnels supplémentaires.
See also
ButtonBase

Exemple

auto screen = App::FitComponent();
std::string label = "Click to quit";
Component button = Button(&label, screen.ExitLoopClosure());
screen.Loop(button)

Sortie

┌─────────────┐
│Click to quit│
└─────────────┘

Definition at line 202 of file src/ftxui/component/button.cpp.

◆ CatchEvent() [1/2]

Component CatchEvent ( Component child,
std::function< bool(Event event)> on_event )

Retourne un composant, utilisant |on_event| pour intercepter les événements. Cette fonction doit retourner true lorsque l'événement a été traité, false sinon.

Parameters
childLe composant enveloppé.
on_eventLa fonction dessinant l'interface.

Exemple

auto screen = App::TerminalOutput();
auto renderer = Renderer([] {
return text("My interface");
});
auto component = CatchEvent(renderer, [&](Event event) {
if (event == Event::Character('q')) {
screen.ExitLoopClosure()();
return true;
}
return false;
});
screen.Loop(component);
Component Renderer(Component child, std::function< Element()>)
Retourne un nouveau Component, similaire à |child|, mais utilisant |render| comme événement Component...
Element text(std::string_view text)
Affiche un morceau de texte unicode encodé en UTF8.
Component CatchEvent(Component child, std::function< bool(Event)>)

Definition at line 58 of file catch_event.cpp.

◆ CatchEvent() [2/2]

ComponentDecorator CatchEvent ( std::function< bool(Event)> on_event)

Décore un composant, utilisant |on_event| pour intercepter les événements. Cette fonction doit retourner true lorsque l'événement a été traité, false sinon.

Parameters
on_eventLa fonction dessinant l'interface.

Exemple

auto screen = App::TerminalOutput();
auto renderer = Renderer([] { return text("Hello world"); });
renderer |= CatchEvent([&](Event event) {
if (event == Event::Character('q')) {
screen.ExitLoopClosure()();
return true;
}
return false;
});
screen.Loop(renderer);

Definition at line 84 of file catch_event.cpp.

◆ Checkbox() [1/2]

Component Checkbox ( CheckboxOption option)

Dessine un élément cochable.

Parameters
optionParamètres optionnels supplémentaires.
See also
CheckboxBase

Exemple

auto screen = App::FitComponent();
CheckboxOption option;
option.label = "Make a sandwidth";
option.checked = false;
Component checkbox = Checkbox(option);
screen.Loop(checkbox)
Component Checkbox(ConstStringRef label, bool *checked, CheckboxOption options=CheckboxOption::Simple())
Dessine un élément cochable.

Sortie

☐ Make a sandwich

Definition at line 111 of file src/ftxui/component/checkbox.cpp.

◆ Checkbox() [2/2]

Component Checkbox ( ConstStringRef label,
bool * checked,
CheckboxOption option )

Dessine un élément cochable.

Parameters
labelLe libellé de la case à cocher.
checkedIndique si la case est cochée ou non.
optionParamètres optionnels supplémentaires.
See also
CheckboxBase

Exemple

auto screen = App::FitComponent();
std::string label = "Make a sandwidth";
bool checked = false;
Component checkbox = Checkbox(&label, &checked);
screen.Loop(checkbox)

Sortie

☐ Make a sandwich

Definition at line 138 of file src/ftxui/component/checkbox.cpp.

◆ Vertical() [1/2]

Component Vertical ( Components children)

Une liste de composants, dessinés un par un verticalement et navigués verticalement en utilisant les flèches haut/bas ou les touches 'j'/'k'.

Parameters
childrenla liste des composants.
See also
ContainerBase

Exemple

auto container = Container::Vertical({
children_1,
children_2,
children_3,
children_4,
});
Component Vertical(Components children)
Une liste de composants, dessinés un par un verticalement et navigués verticalement en utilisant les ...

Definition at line 331 of file container.cpp.

◆ Vertical() [2/2]

Component Vertical ( Components children,
int * selector )

Une liste de composants, dessinés les uns après les autres verticalement et navigables verticalement en utilisant les touches flèche haut/bas ou 'j'/'k'. Ceci est utile pour implémenter un Menu par exemple.

Parameters
childrenla liste des composants.
selectorUne référence vers l'index de l'enfant sélectionné.
See also
ContainerBase

Exemple

int selected_children = 2;
auto container = Container::Vertical({
children_1,
children_2,
children_3,
children_4,
}, &selected_children);

Definition at line 354 of file container.cpp.

◆ Horizontal() [1/2]

Component Horizontal ( Components children)

Une liste de composants, dessinés les uns après les autres horizontalement et navigables horizontalement en utilisant les touches flèche gauche/droite ou 'h'/'l'.

Parameters
childrenla liste des composants.
See also
ContainerBase

Exemple

auto container = Container::Horizontal({
children_1,
children_2,
children_3,
children_4,
});
Component Horizontal(Components children, int *selector)
Une liste de composants, dessinés un par un horizontalement et navigués horizontalement en utilisant ...

Definition at line 374 of file container.cpp.

◆ Horizontal() [2/2]

Component Horizontal ( Components children,
int * selector )

Une liste de composants, dessinés un par un horizontalement et navigués horizontalement en utilisant les flèches gauche/droite ou les touches 'h'/'l'.

Parameters
childrenla liste des composants.
selectorUne référence à l'index de l'enfant sélectionné.
See also
ContainerBase

Exemple

int selected_children = 2;
auto container = Container::Horizontal({
children_1,
children_2,
children_3,
children_4,
}, selected_children);

Definition at line 396 of file container.cpp.

◆ Tab()

Component Tab ( Components children,
int * selector )

Une liste de composants, où un seul est dessiné et interagit avec à la fois. Le |selector| donne l'index du composant sélectionné. Ceci est utile pour implémenter des onglets.

Parameters
childrenLa liste des composants.
selectorL'index de l'enfant dessiné.
See also
ContainerBase

Exemple

int tab_drawn = 0;
auto container = Container::Tab({
children_1,
children_2,
children_3,
children_4,
}, &tab_drawn);
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...

Definition at line 419 of file container.cpp.

◆ Stacked()

Component Stacked ( Components children)

Une liste de composants à empiler les uns sur les autres. Les événements sont propagés au premier composant, puis au second s'il n'est pas géré, etc. Les composants sont dessinés dans l'ordre inverse de leur insertion. Lorsqu'un composant prend le focus, il est placé au premier plan, sans modifier l'ordre relatif des autres éléments.

Ceci devrait être utilisé avec le composant Window.

Parameters
childrenLa liste des composants.
See also
Window

Exemple

auto container = Container::Stacked({
children_1,
children_2,
children_3,
children_4,
});
Component Stacked(Components children)
Une liste de composants à empiler les uns sur les autres. Les événements sont propagés au premier com...

Definition at line 446 of file container.cpp.

◆ Dropdown() [1/2]

Component Dropdown ( ConstStringListRef entries,
int * selected )

Un menu déroulant.

Parameters
entriesLa liste des entrées à afficher.
selectedL'index de l'entrée sélectionnée.

Definition at line 22 of file src/ftxui/component/dropdown.cpp.

◆ Dropdown() [2/2]

Component Dropdown ( DropdownOption option)

Un menu déroulant.

Parameters
optionLes options du menu déroulant.

Definition at line 33 of file src/ftxui/component/dropdown.cpp.

◆ Hoverable() [1/6]

Component Hoverable ( Component component,
bool * hover )

Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.

Parameters
componentLe composant encapsulé.
hoverLa valeur pour refléter si le composant est survolé ou non.

Exemple

auto button = Button("exit", screen.ExitLoopClosure());
bool hover = false;
auto button_hover = Hoverable(button, &hover);
Component Hoverable(Component component, bool *hover)
Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.
Definition hoverable.cpp:33

Definition at line 33 of file hoverable.cpp.

◆ Hoverable() [2/6]

Component Hoverable ( Component component,
std::function< void()> on_enter,
std::function< void()> on_leave )

Encapsule un composant. Utilise des callbacks.

Parameters
componentLe composant encapsulé.
on_enterCallback OnEnter
on_leaveCallback OnLeave

Exemple

auto button = Button("exit", screen.ExitLoopClosure());
bool hover = false;
auto button_hover = Hoverable(button, &hover);

Definition at line 76 of file hoverable.cpp.

◆ Hoverable() [3/6]

ComponentDecorator Hoverable ( bool * hover)

Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.

Parameters
hoverLa valeur pour refléter si le composant est survolé ou non.

Exemple

bool hover = false;
auto button = Button("exit", screen.ExitLoopClosure());
button |= Hoverable(&hover);

Definition at line 131 of file hoverable.cpp.

◆ Hoverable() [4/6]

ComponentDecorator Hoverable ( std::function< void()> on_enter,
std::function< void()> on_leave )

Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.

Parameters
on_enterest appelé lorsque la souris survole le composant.
on_leaveest appelé lorsque la souris quitte le composant.

Exemple

auto button = Button("exit", screen.ExitLoopClosure());
int on_enter_cnt = 0;
int on_leave_cnt = 0;
button |= Hoverable(
[&]{ on_enter_cnt++; },
[&]{ on_leave_cnt++; }
);

Definition at line 155 of file hoverable.cpp.

◆ Hoverable() [5/6]

Component Hoverable ( Component component,
std::function< void(bool)> on_change )

Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.

Parameters
componentle composant encapsulé.
on_changeest appelé lorsque la souris entre ou quitte le composant.

Exemple

auto button = Button("exit", screen.ExitLoopClosure());
bool hovered = false;
auto button_hoverable = Hoverable(button,
[&](bool hover) { hovered = hover;});

Definition at line 178 of file hoverable.cpp.

◆ Hoverable() [6/6]

ComponentDecorator Hoverable ( std::function< void(bool)> on_change)

Encapsule un composant. Donne la possibilité de savoir s'il est survolé par la souris.

Parameters
on_changeest appelé lorsque la souris entre ou quitte le composant.

Exemple

auto button = Button("exit", screen.ExitLoopClosure());
bool hovered = false;
button |= Hoverable([&](bool hover) { hovered = hover;});

Definition at line 199 of file hoverable.cpp.

◆ Input() [1/3]

Component Input ( InputOption option)

Une boîte de saisie pour éditer du texte.

Parameters
optionParamètres optionnels supplémentaires.
See also
InputBase

Exemple

auto screen = App::FitComponent();
std::string content= "";
std::string placeholder = "placeholder";
Component input = Input({
.content = &content,
.placeholder = &placeholder,
})
screen.Loop(input);
Component Input(StringRef content, InputOption options={})
Une boîte de saisie pour éditer du texte.

Sortie

placeholder

Definition at line 590 of file src/ftxui/component/input.cpp.

◆ Input() [2/3]

Component Input ( StringRef content,
InputOption option )

Une boîte de saisie pour éditer du texte.

Parameters
contentLe contenu éditable.
optionParamètres optionnels supplémentaires.
See also
InputBase

Exemple

auto screen = App::FitComponent();
std::string content= "";
std::string placeholder = "placeholder";
Component input = Input(content, {
.placeholder = &placeholder,
.password = true,
})
screen.Loop(input);

Sortie

placeholder

Definition at line 618 of file src/ftxui/component/input.cpp.

◆ Input() [3/3]

Component Input ( StringRef content,
StringRef placeholder,
InputOption option )

Une boîte de saisie pour éditer du texte.

Parameters
contentLe contenu éditable.
placeholderLe texte d'espace réservé.
optionParamètres optionnels supplémentaires.
See also
InputBase

Exemple

auto screen = App::FitComponent();
std::string content= "";
std::string placeholder = "placeholder";
Component input = Input(content, placeholder);
screen.Loop(input);

Sortie

placeholder

Definition at line 645 of file src/ftxui/component/input.cpp.

◆ Maybe() [1/4]

Component Maybe ( Component child,
std::function< bool()> show )

Décore un composant |child|. Il est affiché uniquement lorsque |show| retourne vrai.

Parameters
childle composant à décorer.
showune fonction retournant si |child| doit être affiché.

Definition at line 21 of file src/ftxui/component/maybe.cpp.

◆ Maybe() [2/4]

ComponentDecorator Maybe ( std::function< bool()> show)

Décore un composant. Il est affiché uniquement lorsque la fonction |show| retourne vrai.

Parameters
showune fonction retournant si le composant décoré doit être affiché.

Exemple

auto component = Renderer([]{ return text("Hello World!"); });
auto maybe_component = component | Maybe([&]{ return counter == 42; });
Component Maybe(Component child, std::function< bool()> show)
Décore un composant |child|. Il est affiché uniquement lorsque |show| retourne vrai.

Definition at line 57 of file src/ftxui/component/maybe.cpp.

◆ Maybe() [3/4]

Component Maybe ( Component child,
const bool * show )

Décore un composant |child|. Il est affiché uniquement lorsque |show| est vrai.

Parameters
childle composant à décorer.
showun booléen. |child| est affiché lorsque |show| est vrai.

Exemple

auto component = Renderer([]{ return text("Hello World!"); });
auto maybe_component = Maybe(component, &show);
const bool * show

Definition at line 74 of file src/ftxui/component/maybe.cpp.

◆ Maybe() [4/4]

ComponentDecorator Maybe ( const bool * show)

Décore un composant. Il est affiché uniquement lorsque |show| est vrai.

Parameters
showun booléen. |child| est affiché lorsque |show| est vrai.

Exemple

auto component = Renderer([]{ return text("Hello World!"); });
auto maybe_component = component | Maybe(&show);

Definition at line 88 of file src/ftxui/component/maybe.cpp.

◆ Menu() [1/2]

Component Menu ( MenuOption option)

Une liste de texte. L'élément focalisé est sélectionné.

Parameters
optionune structure contenant tous les paramètres.

Exemple

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Menu({
.entries = &entries,
.selected = &selected,
});
screen.Loop(menu);
Component Menu(ConstStringListRef entries, int *selected_, MenuOption options=MenuOption::Vertical())
Une liste de texte. L'élément focalisé est sélectionné.

Sortie

> entry 1
entry 2
entry 3

Definition at line 505 of file src/ftxui/component/menu.cpp.

◆ Menu() [2/2]

Component Menu ( ConstStringListRef entries,
int * selected,
MenuOption option )

Une liste de texte. L'élément focalisé est sélectionné.

Parameters
entriesLa liste des entrées du menu.
selectedL'index de l'élément actuellement sélectionné.
optionParamètres optionnels supplémentaires.

Exemple

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Menu(&entries, &selected);
screen.Loop(menu);

Sortie

> entry 1
entry 2
entry 3

Definition at line 536 of file src/ftxui/component/menu.cpp.

◆ Toggle()

Component Toggle ( ConstStringListRef entries,
int * selected )

Une liste horizontale d'éléments. L'utilisateur peut naviguer à travers eux.

Parameters
entriesLa liste des entrées sélectionnables à afficher.
selectedRéférence l'entrée sélectionnée. Voir aussi |Menu|.

Definition at line 547 of file src/ftxui/component/menu.cpp.

◆ MenuEntry() [1/2]

Component MenuEntry ( ConstStringRef label,
MenuEntryOption option )

Une entrée de menu spécifique. Elles peuvent être placées dans un Container::Vertical pour former un menu.

Parameters
labelLe texte dessiné représentant cet élément.
optionParamètres optionnels supplémentaires.

Exemple

auto screen = App::TerminalOutput();
int selected = 0;
auto menu = Container::Vertical({
MenuEntry("entry 1"),
MenuEntry("entry 2"),
MenuEntry("entry 3"),
}, &selected);
screen.Loop(menu);
Component MenuEntry(ConstStringRef label, MenuEntryOption options={})
Une entrée de menu spécifique. Elles peuvent être placées dans un Container::Vertical pour former un ...

Sortie

> entry 1
entry 2
entry 3

Definition at line 577 of file src/ftxui/component/menu.cpp.

◆ MenuEntry() [2/2]

Component MenuEntry ( MenuEntryOption option)

Une entrée de menu spécifique. Elles peuvent être placées dans un Container::Vertical pour former un menu.

Parameters
optionLes paramètres.

Exemple

auto screen = App::TerminalOutput();
int selected = 0;
auto menu = Container::Vertical({
MenuEntry({.label = "entry 1"}),
MenuEntry({.label = "entry 2"}),
MenuEntry({.label = "entry 3"}),
}, &selected);
screen.Loop(menu);

Sortie

> entry 1
entry 2
entry 3

Definition at line 607 of file src/ftxui/component/menu.cpp.

◆ Modal() [1/2]

Component Modal ( Component main,
Component modal,
const bool * show_modal )

Definition at line 18 of file modal.cpp.

◆ Modal() [2/2]

ComponentDecorator Modal ( Component modal,
const bool * show_modal )

Definition at line 58 of file modal.cpp.

◆ Radiobox() [1/2]

Component Radiobox ( RadioboxOption option)

Une liste d'éléments, où un seul peut être sélectionné.

Parameters
optionLes paramètres
See also
RadioboxBase

Exemple

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Radiobox({
.entries = entries,
.selected = &selected,
});
screen.Loop(menu);
Component Radiobox(ConstStringListRef entries, int *selected_, RadioboxOption options={})
Une liste d'éléments, où un seul peut être sélectionné.

Sortie

◉ entry 1
○ entry 2
○ entry 3

NOLINTNEXTLINE

Definition at line 205 of file src/ftxui/component/radiobox.cpp.

◆ Radiobox() [2/2]

Component Radiobox ( ConstStringListRef entries,
int * selected,
RadioboxOption option )

Une liste d'éléments, où un seul peut être sélectionné.

Parameters
entriesLa liste des entrées dans la liste.
selectedL'index de l'élément actuellement sélectionné.
optionParamètres optionnels supplémentaires.
See also
RadioboxBase

Exemple

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Radiobox(&entries, &selected);
screen.Loop(menu);

Sortie

◉ entry 1
○ entry 2
○ entry 3

Definition at line 237 of file src/ftxui/component/radiobox.cpp.

◆ Renderer() [1/4]

Component Renderer ( std::function< Element()> render)

Retourne un composant, utilisant |render| pour dessiner son interface.

Parameters
renderLa fonction dessinant l'interface.

Exemple

auto screen = App::TerminalOutput();
auto renderer = Renderer([] {
return text("My interface");
});
screen.Loop(renderer);

Definition at line 29 of file src/ftxui/component/renderer.cpp.

◆ Renderer() [2/4]

Component Renderer ( Component child,
std::function< Element()> render )

Retourne un nouveau Component, similaire à |child|, mais utilisant |render| comme événement Component::Render().

Parameters
childLe composant vers lequel transférer les événements.
renderLa fonction dessinant l'interface.

Exemple

auto screen = App::TerminalOutput();
std::string label = "Click to quit";
auto button = Button(&label, screen.ExitLoopClosure());
auto renderer = Renderer(button, [&] {
return hbox({
text("A button:"),
button->Render(),
});
});
screen.Loop(renderer);
Element hbox(Elements children)
Un conteneur affichant les éléments horizontalement un par un.
Definition hbox.cpp:94

Definition at line 61 of file src/ftxui/component/renderer.cpp.

◆ Renderer() [3/4]

Component Renderer ( std::function< Element(bool)> render)

Retourne un composant focalisable, utilisant |render| pour dessiner son interface.

Parameters
renderLa fonction dessinant l'interface, prenant un booléen indiquant si le composant est focalisé ou non.

Exemple

auto screen = App::TerminalOutput();
auto renderer = Renderer([] (bool focused) {
if (focused)
return text("My interface") | inverted;
else
return text("My interface");
});
screen.Loop(renderer);
Element inverted(Element child)
Ajoute un filtre qui inversera les couleurs de premier plan et d'arrière-plan.
Definition inverted.cpp:33

Definition at line 84 of file src/ftxui/component/renderer.cpp.

◆ Renderer() [4/4]

ComponentDecorator Renderer ( ElementDecorator decorator)

Décore un composant, en décorant ce qu'il dessine.

Parameters
decoratorla fonction modifiant l'élément qu'il dessine.

Exemple

auto screen = App::TerminalOutput();
auto renderer =
Renderer([] { return text("Hello"); })
| Renderer(bold)
| Renderer(inverted);
screen.Loop(renderer);

Definition at line 125 of file src/ftxui/component/renderer.cpp.

◆ ResizableSplitLeft()

Component ResizableSplitLeft ( Component main,
Component back,
int * main_size )

Une division horizontale entre deux composants, configurable en utilisant la souris.

Parameters
mainLe composant principal de taille |main_size|, à gauche.
backLe composant arrière prenant la taille restante, à droite.
main_sizeLa taille du composant |main|.

Exemple

auto screen = App::Fullscreen();
int left_size = 10;
auto left = Renderer([] { return text("Left") | center;});
auto right = Renderer([] { return text("right") | center;});
auto split = ResizableSplitLeft(left, right, &left_size);
screen.Loop(split);
Component ResizableSplitLeft(Component main, Component back, int *main_size)
Une division horizontale entre deux composants, configurable en utilisant la souris.
Element center(Element child)
Centre un élément horizontalement et verticalement.
std::uint8_t left
Definition screen.cpp:147
std::uint8_t right
Definition screen.cpp:149

Sortie

│
left │ right
│

Definition at line 199 of file src/ftxui/component/resizable_split.cpp.

◆ ResizableSplitRight()

Component ResizableSplitRight ( Component main,
Component back,
int * main_size )

Une division horizontale entre deux composants, configurable en utilisant la souris.

Parameters
mainLe composant principal de taille |main_size|, à droite.
backLe composant arrière prenant la taille restante, à gauche.
main_sizeLa taille du composant |main|.

Exemple

auto screen = App::Fullscreen();
int right_size = 10;
auto left = Renderer([] { return text("Left") | center;});
auto right = Renderer([] { return text("right") | center;});
auto split = ResizableSplitRight(right, left, &right_size)
screen.Loop(split);
Component ResizableSplitRight(Component main, Component back, int *main_size)
Une division horizontale entre deux composants, configurable en utilisant la souris.

Sortie

│
left │ right
│

Definition at line 233 of file src/ftxui/component/resizable_split.cpp.

◆ ResizableSplitTop()

Component ResizableSplitTop ( Component main,
Component back,
int * main_size )

Une division verticale entre deux composants, configurable en utilisant la souris.

Parameters
mainLe composant principal de taille |main_size|, en haut.
backLe composant arrière prenant la taille restante, en bas.
main_sizeLa taille du composant |main|.

Exemple

auto screen = App::Fullscreen();
int top_size = 1;
auto top = Renderer([] { return text("Top") | center;});
auto bottom = Renderer([] { return text("Bottom") | center;});
auto split = ResizableSplitTop(top, bottom, &top_size)
screen.Loop(split);
Component ResizableSplitTop(Component main, Component back, int *main_size)
Une division verticale entre deux composants, configurable en utilisant la souris.
std::uint8_t top
Definition screen.cpp:148

Sortie

top
────────────
bottom

Definition at line 267 of file src/ftxui/component/resizable_split.cpp.

◆ ResizableSplitBottom()

Component ResizableSplitBottom ( Component main,
Component back,
int * main_size )

Une division verticale entre deux composants, configurable en utilisant la souris.

Parameters
mainLe composant principal de taille |main_size|, en bas.
backLe composant arrière prenant la taille restante, en haut.
main_sizeLa taille du composant |main|.

Exemple

auto screen = App::Fullscreen();
int bottom_size = 1;
auto top = Renderer([] { return text("Top") | center;});
auto bottom = Renderer([] { return text("Bottom") | center;});
auto split = ResizableSplit::Bottom(bottom, top, &bottom_size)
screen.Loop(split);

Sortie

top
────────────
bottom

Definition at line 301 of file src/ftxui/component/resizable_split.cpp.

◆ Slider()

Component Slider ( ConstStringRef label,
Ref< int > value,
ConstRef< int > min,
ConstRef< int > max,
ConstRef< int > increment )

Un curseur horizontal.

Parameters
labelLe nom du curseur.
valueLa valeur actuelle du curseur.
minLa valeur minimale.
maxLa valeur maximale.
incrementL'incrément utilisé par le curseur.

Exemple

auto screen = App::TerminalOutput();
int value = 50;
auto slider = Slider("Value:", &value, 0, 100, 1);
screen.Loop(slider);
Component Slider(SliderOption< T > options)
Un curseur dans n'importe quelle direction.
int value
Definition elements.hpp:195

Sortie

Value:[██████████████████████████ ]

Definition at line 258 of file src/ftxui/component/slider.cpp.