FTXUI 7.0.3
C++ functional terminal UI.
Loading...
Searching...
No Matches
tab_horizontal.cpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// Use of this source code is governed by the MIT license that can be found in
3// the LICENSE file.
4#include <memory> // for allocator, __shared_ptr_access, shared_ptr
5#include <string> // for string, basic_string
6#include <vector> // for vector
7
8#include "ftxui/component/app.hpp" // for App
9#include "ftxui/component/captured_mouse.hpp" // for ftxui
10#include "ftxui/component/component.hpp" // for Radiobox, Renderer, Tab, Toggle, Vertical
11#include "ftxui/component/component_base.hpp" // for ComponentBase
12#include "ftxui/dom/elements.hpp" // for Element, separator, operator|, vbox, border
13
14using namespace ftxui;
15
16int main() {
17 std::vector<std::string> tab_values{
18 "tab_1",
19 "tab_2",
20 "tab_3",
21 };
22 int tab_selected = 0;
23 auto tab_toggle = Toggle(&tab_values, &tab_selected);
24
25 std::vector<std::string> tab_1_entries{
26 "Forest",
27 "Water",
28 "I don't know",
29 };
30 int tab_1_selected = 0;
31
32 std::vector<std::string> tab_2_entries{
33 "Hello",
34 "Hi",
35 "Hay",
36 };
37 int tab_2_selected = 0;
38
39 std::vector<std::string> tab_3_entries{
40 "Table",
41 "Nothing",
42 "Is",
43 "Empty",
44 };
45 int tab_3_selected = 0;
46 auto tab_container = Container::Tab(
47 {
48 Radiobox(&tab_1_entries, &tab_1_selected),
49 Radiobox(&tab_2_entries, &tab_2_selected),
50 Radiobox(&tab_3_entries, &tab_3_selected),
51 },
52 &tab_selected);
53
54 auto container = Container::Vertical({
55 tab_toggle,
56 tab_container,
57 });
58
59 auto renderer = Renderer(container, [&] {
60 return vbox({
61 tab_toggle->Render(),
62 separator(),
63 tab_container->Render(),
64 }) |
65 border;
66 });
67
68 auto screen = App::TerminalOutput();
69 screen.Loop(renderer);
70}
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 Radiobox(ConstStringListRef entries, int *selected_, RadioboxOption options={})
Une liste d'éléments, où un seul peut être sélectionné.
Element separator()
Dessine une séparation verticale ou horizontale entre deux autres éléments.
Element vbox(Elements children)
Un conteneur affichant les éléments verticalement un par un.
Definition vbox.cpp:96
L'espace de noms FTXUI ftxui::
Definition animation.hpp:11
int main()