FTXUI 6.1.9
C++ functional terminal UI.
载入中...
搜索中...
未找到
toggle.cpp
浏览该文件的文档.
1// 版权所有 2020 Arthur Sonzogni。保留所有权利。
2// 此源代码的使用受 MIT 许可证的约束,该许可证可在以下文件中找到:
3// LICENSE 文件。
4#include <memory> // for allocator, __shared_ptr_access
5#include <string> // for string, basic_string
6#include <vector> // for vector
7
8#include "ftxui/component/captured_mouse.hpp" // for ftxui
9#include "ftxui/component/component.hpp" // for Toggle, Renderer, Vertical
10#include "ftxui/component/component_base.hpp" // for ComponentBase
11#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
12#include "ftxui/dom/elements.hpp" // for text, hbox, vbox, Element
13
14using namespace ftxui;
15
16int main() {
17 std::vector<std::string> toggle_1_entries = {
18 "On",
19 "Off",
20 };
21 std::vector<std::string> toggle_2_entries = {
22 "Enabled",
23 "Disabled",
24 };
25 std::vector<std::string> toggle_3_entries = {
26 "10€",
27 "0€",
28 };
29 std::vector<std::string> toggle_4_entries = {
30 "Nothing",
31 "One element",
32 "Several elements",
33 };
34
35 int toggle_1_selected = 0;
36 int toggle_2_selected = 0;
37 int toggle_3_selected = 0;
38 int toggle_4_selected = 0;
39 Component toggle_1 = Toggle(&toggle_1_entries, &toggle_1_selected);
40 Component toggle_2 = Toggle(&toggle_2_entries, &toggle_2_selected);
41 Component toggle_3 = Toggle(&toggle_3_entries, &toggle_3_selected);
42 Component toggle_4 = Toggle(&toggle_4_entries, &toggle_4_selected);
43
44 auto container = Container::Vertical({
45 toggle_1,
46 toggle_2,
47 toggle_3,
48 toggle_4,
49 });
50
51 auto renderer = Renderer(container, [&] {
52 return vbox({
53 text("Choose your options:"),
54 text(""),
55 hbox(text(" * Poweroff on startup : "), toggle_1->Render()),
56 hbox(text(" * Out of process : "), toggle_2->Render()),
57 hbox(text(" * Price of the information : "), toggle_3->Render()),
58 hbox(text(" * Number of elements : "), toggle_4->Render()),
59 });
60 });
61
63 screen.Loop(renderer);
64}
static ScreenInteractive TerminalOutput()
Element Render()
绘制组件。 构建一个 ftxui::Element,用于在表示此 ftxui::ComponentBase 的 ftxui::Screen 上绘制。 请覆盖 OnRender() 以修改渲染。
Component Toggle(ConstStringListRef entries, int *selected)
元素的水平列表。用戶可以瀏覽它們。
Component Renderer(Component child, std::function< Element()>)
返回一个新组件,类似于 |child|,但使用 |render| 作为 Component::Render() 事件。
Element text(std::wstring text)
显示一段Unicode文本。
Element vbox(Elements)
垂直一个接一个显示元素的容器。
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
Element hbox(Elements)
一个按水平顺序逐一显示元素的容器。
std::shared_ptr< ComponentBase > Component
int main()