FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
examples/component/collapsible.cpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. 全著作権所有。
2// このソースコードの使用は、LICENSEファイルにあるMITライセンスに従います。
3#include <memory> // for allocator, make_shared, __shared_ptr_access
4#include <utility> // for move
5#include <vector> // for vector
6
7#include "ftxui/component/captured_mouse.hpp" // for ftxui
8#include "ftxui/component/component.hpp" // for Collapsible, Renderer, Vertical
9#include "ftxui/component/component_base.hpp" // for ComponentBase
10#include "ftxui/component/screen_interactive.hpp" // for Component, ScreenInteractive
11#include "ftxui/dom/elements.hpp" // for text, hbox, Element
12
13using namespace ftxui;
14
15// コンポーネントのリストを受け取り、それらを垂直に、1列右にシフトして表示します。
16Component Inner(std::vector<Component> children) {
17 Component vlist = Container::Vertical(std::move(children));
18 return Renderer(vlist, [vlist] {
19 return hbox({
20 text(" "),
21 vlist->Render(),
22 });
23 });
24}
25
27 return std::make_shared<ComponentBase>();
28}
29
30int main() {
31 auto component =
32 Collapsible("Collapsible 1",
33 Inner({
34 Collapsible("Collapsible 1.1",
35 Inner({
36 Collapsible("Collapsible 1.1.1", Empty()),
37 Collapsible("Collapsible 1.1.2", Empty()),
38 Collapsible("Collapsible 1.1.3", Empty()),
39 })),
40 Collapsible("Collapsible 1.2",
41 Inner({
42 Collapsible("Collapsible 1.2.1", Empty()),
43 Collapsible("Collapsible 1.2.2", Empty()),
44 Collapsible("Collapsible 1.2.3", Empty()),
45 })),
46 Collapsible("Collapsible 1.3",
47 Inner({
48 Collapsible("Collapsible 1.3.1", Empty()),
49 Collapsible("Collapsible 1.3.2", Empty()),
50 Collapsible("Collapsible 1.3.3", Empty()),
51 })),
52 }));
53
55}
Component Inner(std::vector< Component > children)
Component Empty()
Element Render()
コンポーネントを描画します。 このftxui::ComponentBaseを表すftxui::Screen上に描画されるftxui::Elementを構築します。レンダリングを変更するにはOnRende...
static ScreenInteractive FitComponent()
描画されるコンポーネントの幅と高さに一致するScreenInteractiveを作成します。
void Loop(Component)
メインループを実行します。
Component Renderer(Component child, std::function< Element()>)
|child|に似ていますが、|render|をComponentRender()イベントとして使用する新しいコンポーネントを返します。
Element text(std::wstring text)
ユニコードテキストを表示します。
Definition text.cpp:160
FTXUI ftxui:: 名前空間
Definition animation.hpp:9
Element hbox(Elements)
要素を水平方向に1つずつ表示するコンテナ。
Definition hbox.cpp:93
Component Collapsible(ConstStringRef label, Component child, Ref< bool > show=false)
折りたたみ可能なコンポーネント。矢印付きのチェックボックスを表示します。アクティブ化されると、子が 表示されます。
std::shared_ptr< ComponentBase > Component