FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
elements.hpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// このソースコードの使用は、LICENSEファイルにあるMITライセンスによって管理されています。
3#ifndef FTXUI_DOM_ELEMENTS_HPP
4#define FTXUI_DOM_ELEMENTS_HPP
5
6#include <functional>
7#include <memory>
8
13#include "ftxui/dom/node.hpp"
14#include "ftxui/screen/box.hpp"
17#include "ftxui/util/ref.hpp"
18
19namespace ftxui {
20class Node;
21using Element = std::shared_ptr<Node>;
22using Elements = std::vector<Element>;
23using Decorator = std::function<Element(Element)>;
24using GraphFunction = std::function<std::vector<int>(int, int)>;
25
26/// @brief BorderStyleは、ターミナルUIの要素に適用できる様々なボーダースタイルを表す列挙型です。
27///
28/// BorderStyleは、ターミナルUIの要素に適用できる様々なボーダースタイルを表す列挙型です。
29/// ウィンドウ、フレーム、セパレータなどの要素の周囲の境界線の視覚的な外観を定義するために使用されます。
30/// @ingroup dom
39
40// 要素をデコレータにまとめてパイプします。
41// 例えば、次の行は同等です。
42// -> text("ftxui") | bold | underlined
43// -> underlined(bold(text("FTXUI")))
48
49// --- ウィジェット ---
50Element text(std::string text);
51Element vtext(std::string text);
62 float right,
63 Color unselected_color,
64 Color selected_color);
66 float down,
67 Color unselected_color,
68 Color selected_color);
69Element gauge(float progress);
70Element gaugeLeft(float progress);
71Element gaugeRight(float progress);
72Element gaugeUp(float progress);
73Element gaugeDown(float progress);
74Element gaugeDirection(float progress, Direction direction);
86Element window(Element title, Element content, BorderStyle border = ROUNDED);
87Element spinner(int charset_index, size_t image_index);
88Element paragraph(const std::string& text);
89Element paragraphAlignLeft(const std::string& text);
90Element paragraphAlignRight(const std::string& text);
91Element paragraphAlignCenter(const std::string& text);
92Element paragraphAlignJustify(const std::string& text);
96Element canvas(int width, int height, std::function<void(Canvas&)>);
97Element canvas(std::function<void(Canvas&)>);
98
99// -- デコレーター ---
116Decorator focusPosition(int x, int y);
117Decorator focusPositionRelative(float x, float y);
119Decorator hyperlink(std::string link);
120Element hyperlink(std::string link, Element child);
122Decorator selectionColor(Color foreground);
125Decorator selectionStyle(std::function<void(Pixel&)> style);
126
127// --- レイアウト
128// 水平、垂直、または積み重ねられた要素のセット。
133Element gridbox(std::vector<Elements> lines);
134
135Element hflow(Elements); // Helper: default flexbox with row direction.
136Element vflow(Elements); // Helper: default flexbox with column direction.
137
138// -- 柔軟性 ---
139// コンテナ内で全てのスペースが使用されない場合に、残りのスペースをどのように共有するかを定義します。
140Element flex(Element); // 可能/必要に応じて拡大/縮小します。
141Element flex_grow(Element); // 可能であれば要素を拡大します。
142Element flex_shrink(Element); // 必要であれば要素を最小化します。
143
144Element xflex(Element); // X軸上で可能/必要に応じて拡大/縮小します。
145Element xflex_grow(Element); // X軸上で可能であれば要素を拡大します。
146Element xflex_shrink(Element); // X軸上で必要であれば要素を最小化します。
147
148Element yflex(Element); // Y軸上で可能/必要に応じて拡大/縮小します。
149Element yflex_grow(Element); // Y軸上で可能であれば要素を拡大します。
150Element yflex_shrink(Element); // Y軸上で必要であれば要素を最小化します。
151
152Element notflex(Element); // flex属性をリセットします。
153Element filler(); // 空白の拡張可能な要素。
154
155// -- サイズのオーバーライド
159
160// --- フレーム ---
161// フレームはスクロール可能な領域です。内部領域は外部領域よりも大きくなる可能性があります。
162// フォーカスされた要素を見えるようにするために、内部領域がスクロールされます。
167Element select(Element e); // 非推奨 - focusのエイリアス。
168
169// --- カーソル ---
170// これらは`focus`に似ていますが、カーソルの形状も変更します。
177
178// --- その他 ---
181Decorator reflect(Box& box);
182// |element|を描画する前に、下のピクセルをクリアします。これはdboxとの組み合わせで役立ちます。
184
185// --- ユーティリティ --------------------------------------------------------------------
190Element nothing(Element element);
191
192namespace Dimension {
193Dimensions Fit(Element&, bool extend_beyond_screen = false);
194} // namespace Dimension
195
196} // namespace ftxui
197
198// Make container able to take any number of children as input.
199#include "ftxui/dom/take_any_args.hpp"
200
201// Include old definitions using wstring.
203#endif // FTXUI_DOM_ELEMENTS_HPP
アダプター。不変オブジェクトを所有または参照します。
Definition ref.hpp:16
Decorator bgcolor(Color)
背景色を使用して装飾します。
Element focusCursorBarBlinking(Element)
focus と同じですが、カーソル形状を点滅バーに設定します。
Definition frame.cpp:188
Element xflex(Element)
必要に応じてX軸上で拡大・縮小します。
Definition flex.cpp:126
Element gaugeDirection(float progress, Direction direction)
指定された方向に進行する高精細プログレスバーを描画します。
Decorator focusPositionRelative(float x, float y)
frame内で使用され、ビューを特定の位置にスクロールさせます。位置は要求されたサイズの割合で表されます。
Element separatorStyled(BorderStyle)
他の2つの要素の間に垂直または水平の区切り線を描画します。
Element xflex_grow(Element)
可能であればX軸上で拡大します。
Definition flex.cpp:144
Element underlinedDouble(Element)
テキストに二重下線を適用します。
Element clear_under(Element element)
|child|を描画する前に、下にあるピクセルをクリアします。これは、 dboxと組み合わせて使用すると便利です。
Element separatorEmpty()
他の2つの要素の間にEMPTYスタイルで垂直または水平の区切り線を描画します。
Element vscroll_indicator(Element)
右側に垂直スクロールバーを表示します。 色はコンテンツに従います。
Element nothing(Element element)
何も行わないデコレーションです。
Definition dom/util.cpp:28
Direction
Directionは、東西南北の4つの基本方向を表す列挙型です。
Definition direction.hpp:11
Element flex(Element)
子要素をコンテナに残されたスペースに比例して拡大させます。
Definition flex.cpp:120
Element paragraphAlignRight(const std::string &text)
段落を複数行にわたって右揃えで描画する要素を返します。
Element gaugeRight(float progress)
左から右へ進行する高精細プログレスバーを描画します。
Element focusCursorUnderlineBlinking(Element)
focus と同じですが、カーソル形状を点滅下線に設定します。
Definition frame.cpp:216
Element bold(Element)
より強調したい要素に、太字フォントを使用します。
Definition bold.cpp:33
Element spinner(int charset_index, size_t image_index)
時間やイベントの効果を表現するのに便利です。これはアスキーアートの「ビデオ」を表示します。
Element emptyElement()
Definition dom/util.cpp:140
Element yflex(Element)
必要に応じてY軸上で拡大・縮小します。
Definition flex.cpp:132
Element flex_shrink(Element)
必要であれば最小化します。
Definition flex.cpp:156
Element focusCursorBar(Element)
focus と同じですが、カーソル形状を静止ブロックに設定します。
Definition frame.cpp:174
Element focusCursorBlock(Element)
focus と同じですが、カーソル形状を静止ブロックに設定します。
Definition frame.cpp:146
Element underlined(Element)
指定された要素に下線を追加します。
Element center(Element)
要素を水平方向および垂直方向に中央揃えします。
Element focusCursorUnderline(Element)
focus と同じですが、カーソル形状を静止下線に設定します。
Definition frame.cpp:202
Element inverted(Element)
前景色と背景色を反転させるフィルターを追加します。
Definition inverted.cpp:32
Element paragraphAlignCenter(const std::string &text)
段落を複数行にわたって中央揃えで描画する要素を返します。
Element gaugeUp(float progress)
下から上へ進行する高精細プログレスバーを描画します。
Element text(std::wstring text)
ユニコードテキストを表示します。
Definition text.cpp:160
Element align_right(Element)
要素を右側に揃えます。
Decorator focusPosition(int x, int y)
frame内で使用され、ビューを特定の位置にスクロールさせます。位置はセル数で表されます。
Element yflex_grow(Element)
可能であればY軸上で拡大します。
Definition flex.cpp:150
Element hscroll_indicator(Element)
下部に水平スクロールバーを表示します。 色はコンテンツに従います。
Element flex_grow(Element)
可能であれば拡大します。
Definition flex.cpp:138
Element separatorDashed()
他の2つの要素の間にLIGHTスタイルで垂直または水平の区切り線を描画します。
Element notflex(Element)
要素を柔軟にしないようにします。
Definition flex.cpp:174
Element strikethrough(Element)
テキストに打ち消し線を適用します。
Element italic(Element)
テキストに斜体を適用します。
Definition italic.cpp:16
Element dbox(Elements)
複数の要素を重ねて表示します。
Element xflex_shrink(Element)
必要であればX軸上で最小化します。
Definition flex.cpp:162
Element gaugeLeft(float progress)
右から左へ進行する高精細プログレスバーを描画します。
Element vtext(std::wstring text)
ユニコードテキストを垂直に表示します。
Definition text.cpp:220
Element focus(Element)
子要素を兄弟要素の中でフォーカスされたものとして設定します。
Definition frame.cpp:101
Element paragraphAlignLeft(const std::string &text)
段落を複数行にわたって左揃えで描画する要素を返します。
Element filler()
コンテナに残されたスペースに比例して拡大する要素。
Definition flex.cpp:96
Element dim(Element)
強調を抑えたい要素に、明るいフォントを使用します。
Definition dim.cpp:33
Element automerge(Element child)
文字が近くの他の文字と自動的にマージされるようにします。
Definition automerge.cpp:16
Decorator hyperlink(std::string link)
ハイパーリンクを使用して装飾します。 ユーザーがクリックするとリンクが開きます。 これは、限られたターミナルエミュレータでのみサポートされています。 リスト: https://github....
Definition hyperlink.cpp:69
Element blink(Element)
描画されたテキストは、可視と非可視の間で交互に切り替わります。
Definition blink.cpp:33
Element vcenter(Element)
要素を垂直方向に中央揃えします。
Element separatorDouble()
他の2つの要素の間にHEAVYスタイルで垂直または水平の区切り線を描画します。
Element focusCursorBlockBlinking(Element)
focus と同じですが、カーソル形状を点滅ブロックに設定します。
Definition frame.cpp:160
Element gauge(float progress)
高精細プログレスバーを描画します。
Element paragraphAlignJustify(const std::string &text)
段落を複数行にわたって両端揃えで描画する要素を返します。 中央に。
Decorator color(Color)
前景色を使用して装飾します。
Element yflex_shrink(Element)
必要であればY軸上で最小化します。
Definition flex.cpp:168
Element hcenter(Element)
要素を水平方向に中央揃えします。
Element vbox(Elements)
要素を縦に一つずつ表示するコンテナ。
Definition vbox.cpp:94
BorderStyle
BorderStyleは、ターミナルUIの要素に適用できる様々なボーダースタイルを表す列挙型です。
Definition elements.hpp:31
Element gaugeDown(float progress)
上から下へ進行する高精細プログレスバーを描画します。
@ EMPTY
Definition elements.hpp:37
@ DOUBLE
Definition elements.hpp:35
@ HEAVY
Definition elements.hpp:34
@ ROUNDED
Definition elements.hpp:36
@ DASHED
Definition elements.hpp:33
@ LIGHT
Definition elements.hpp:32
Canvasは、描画操作に関連付けられた描画可能なバッファです。
Definition canvas.hpp:36
FlexboxConfigは、flexboxコンテナのレイアウトプロパティを定義する構成構造体です。
線形グラデーションカラー効果の設定を表すクラスです。
Colorは、ターミナルユーザーインターフェースにおける色を表すクラスです。
Definition color.hpp:25
Dimensionsは、ターミナルのサイズを表す構造体です。
Definition terminal.hpp:10
Unicode文字とそれに関連付けられたスタイル。
Definition pixel.hpp:14
FTXUI ftxui::Dimension::名前空間
Dimensions Fit(Element &, bool extend_beyond_screen=false)
FTXUI ftxui:: 名前空間
Definition animation.hpp:9
WidthOrHeight
Definition elements.hpp:156
std::function< Element(Element)> Decorator
Definition elements.hpp:23
Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
行/列に要素を表示し、一杯になると次の列/行に折り返すことができるコンテナ。
Definition flexbox.cpp:250
Element separatorVSelector(float up, float down, Color unselected_color, Color selected_color)
std::shared_ptr< Node > Element
Definition elements.hpp:21
Element xframe(Element)
frame と同じですが、x軸のみに適用されます。
Definition frame.cpp:125
Element hflow(Elements)
要素を左から右へ行で表示するコンテナ。一杯になると、下の新しい行から開始します。
Definition flexbox.cpp:267
Element separatorLight()
Decorator selectionStyle(std::function< void(Pixel &)> style)
要素が選択されたときのスタイルを設定します。
Element borderEmpty(Element)
Element separatorHSelector(float left, float right, Color unselected_color, Color selected_color)
Element hbox(Elements)
要素を水平方向に1つずつ表示するコンテナ。
Definition hbox.cpp:93
Element canvas(ConstRef< Canvas >)
CanvasまたはCanvasへの参照から要素を生成します。
std::vector< Element > Elements
Definition elements.hpp:22
Decorator selectionForegroundColor(Color foreground)
要素が選択されたときの描画色を設定します。 スタイルは既存のスタイルに重ねて適用されることに注意してください。
Element separatorCharacter(std::string)
Decorator selectionBackgroundColor(Color foreground)
要素が選択されたときの背景色を設定します。 スタイルは既存のスタイルに重ねて適用されることに注意してください。
Element borderHeavy(Element)
Element border(Element)
Element borderRounded(Element)
Element yframe(Element)
frame と同じですが、y軸のみに適用されます。
Definition frame.cpp:133
Element window(Element title, Element content, BorderStyle border=ROUNDED)
Decorator selectionColor(Color foreground)
要素が選択されたときの色を設定します。
Decorator borderStyled(BorderStyle)
Component operator|(Component component, ElementDecorator decorator)
Element select(Element e)
子要素を兄弟要素の中でフォーカスされたものとして設定します。
Definition frame.cpp:108
Element borderDashed(Element)
Element selectionStyleReset(Element)
要素の選択スタイルをリセットします。
Element borderDouble(Element)
Decorator reflect(Box &box)
Definition reflect.cpp:42
std::function< std::vector< int >(int, int)> GraphFunction
Definition elements.hpp:24
Element gridbox(std::vector< Elements > lines)
要素のグリッドを表示するコンテナ。
Element separator()
Decorator borderWith(const Pixel &)
Elements paragraph(std::wstring text)
Element frame(Element)
要素を「仮想」領域内に表示できるようにします。そのサイズはコンテナよりも大きくすることができます。 この場合、より小さい部分のみが表示されます。フォーカスされた要素を表示するためにビューはスクロール可能...
Definition frame.cpp:117
Component & operator|=(Component &component, ComponentDecorator decorator)
@ LESS_THAN
Definition elements.hpp:157
@ GREATER_THAN
Definition elements.hpp:157
Element vflow(Elements)
要素を上から下へ行で表示するコンテナ。一杯になると、右側の新しい列から開始します。
Definition flexbox.cpp:284
Element graph(GraphFunction)
GraphFunctionを使用してグラフを描画します。
Element borderLight(Element)
Element separatorHeavy()
std::uint8_t left
Definition screen.cpp:129
std::uint8_t down
Definition screen.cpp:132
std::uint8_t right
Definition screen.cpp:131
return size
Definition string.cpp:1516