39 std::vector<std::string> entries{
40 "Monkey",
"Dog",
"Cat",
"Bird",
"Elephant",
"Cat",
42 std::array<int, 12> selected = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
44 auto vmenu_1_ =
VMenu1(&entries, &selected[0]);
45 auto vmenu_2_ =
VMenu2(&entries, &selected[1]);
46 auto vmenu_3_ =
VMenu3(&entries, &selected[2]);
47 auto vmenu_4_ =
VMenu4(&entries, &selected[3]);
48 auto vmenu_5_ =
VMenu5(&entries, &selected[4]);
49 auto vmenu_6_ =
VMenu6(&entries, &selected[5]);
50 auto vmenu_7_ =
VMenu7(&entries, &selected[6]);
51 auto vmenu_8_ =
VMenu8(&entries, &selected[7]);
53 auto hmenu_1_ =
HMenu1(&entries, &selected[8]);
54 auto hmenu_2_ =
HMenu2(&entries, &selected[9]);
55 auto hmenu_3_ =
HMenu3(&entries, &selected[10]);
56 auto hmenu_4_ =
HMenu4(&entries, &selected[11]);
57 auto hmenu_5_ =
HMenu5(&entries, &selected[12]);
59 auto container = Container::Vertical({
60 Container::Horizontal({
77 auto renderer =
Renderer(container, [&] {
116 option.entries_option.transform = [](
EntryState state) {
117 state.label = (state.active ?
"> " :
" ") + state.label;
127 return Menu(entries, selected, option);
132 option.entries_option.transform = [](
EntryState state) {
133 state.label += (state.active ?
" <" :
" ");
143 return Menu(entries, selected, option);
148 option.entries_option.transform = [](
EntryState state) {
149 Element e = state.active ?
text(
"[" + state.label +
"]")
150 :
text(
" " + state.label +
" ");
163 return Menu(entries, selected, option);
168 option.entries_option.transform = [](
EntryState state) {
169 if (state.active && state.focused) {
183 return Menu(entries, selected, option);
188 option.entries_option.transform = [](
EntryState state) {
189 auto element =
text(state.label);
190 if (state.active && state.focused) {
197 return element |
bold;
201 return Menu(entries, selected, option);
208 option.underline.SetAnimationFunction(animation::easing::Linear);
209 return Menu(entries, selected, option);
214 option.entries_option.animated_colors.foreground.enabled =
true;
215 option.entries_option.animated_colors.background.enabled =
true;
216 option.entries_option.animated_colors.background.active =
Color::Red;
217 option.entries_option.animated_colors.background.inactive =
Color::Black;
218 option.entries_option.animated_colors.foreground.active =
Color::White;
219 option.entries_option.animated_colors.foreground.inactive =
Color::Red;
220 return Menu(entries, selected, option);
225 option.entries_option.animated_colors.foreground.Set(
227 return Menu(entries, selected, option);
240 option.elements_infix = [] {
return text(
" 🮣🮠 "); };
242 return Menu(entries, selected, option);
251 option.underline.SetAnimation(std::chrono::milliseconds(1500),
252 animation::easing::ElasticOut);
253 option.entries_option.transform = [](
EntryState state) {
255 if (state.active && state.focused) {
258 if (!state.focused && !state.active) {
265 return Menu(entries, selected, option);
static ScreenInteractive TerminalOutput()
static MenuOption Toggle()
Options standard pour un menu horizontal avec un séparateur. Cela peut être utile pour implémenter un...
static MenuOption Horizontal()
Options standard pour un menu horizontal. Cela peut être utile pour implémenter une barre d'onglets.
static MenuOption VerticalAnimated()
Options standard pour un menu vertical animé. Cela peut être utile pour implémenter une liste d'éléme...
static MenuOption Vertical()
Options standard pour un menu vertical. Cela peut être utile pour implémenter une liste d'éléments sé...
static MenuOption HorizontalAnimated()
Options standard pour un menu horizontal animé. Cela peut être utile pour implémenter une barre d'ong...
Component Menu(MenuOption options)
Une liste de texte. L'élément sélectionné est mis en évidence.
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)
Decorator bgcolor(Color)
Décore en utilisant une couleur d'arrière-plan.
Element borderDouble(Element)
Dessine une double bordure autour de l'élément.
Element flex(Element)
Permet à un élément enfant de s'étendre proportionnellement à l'espace restant dans un conteneur.
Element bold(Element)
Utilise une police en gras, pour les éléments avec plus d'emphase.
Element text(std::wstring text)
Affiche un morceau de texte unicode.
Element separator()
Dessine une séparation verticale ou horizontale entre deux autres éléments.
Element filler()
Un élément qui occupera proportionnellement l'espace disponible dans un conteneur.
Element dim(Element)
Utilise une police de caractères claire, pour les éléments moins mis en valeur.
Element border(Element)
Dessine une bordure autour de l'élément.
Decorator color(Color)
Décore en utilisant une couleur de premier plan.
Element vbox(Elements)
Un conteneur affichant les éléments verticalement un par un.
L'espace de noms FTXUI ftxui::
std::shared_ptr< Node > Element
Element hbox(Elements)
Un conteneur affichant les éléments horizontalement un par un.
std::shared_ptr< ComponentBase > Component
arguments pour la transformation depuis |ButtonOption|, |CheckboxOption|, |RadioboxOption|,...