38 std::vector<std::string> entries{
39 "Monkey",
"Dog",
"Cat",
"Bird",
"Elephant",
"Cat",
41 std::array<int, 12> selected = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
43 auto vmenu_1_ =
VMenu1(&entries, &selected[0]);
44 auto vmenu_2_ =
VMenu2(&entries, &selected[1]);
45 auto vmenu_3_ =
VMenu3(&entries, &selected[2]);
46 auto vmenu_4_ =
VMenu4(&entries, &selected[3]);
47 auto vmenu_5_ =
VMenu5(&entries, &selected[4]);
48 auto vmenu_6_ =
VMenu6(&entries, &selected[5]);
49 auto vmenu_7_ =
VMenu7(&entries, &selected[6]);
50 auto vmenu_8_ =
VMenu8(&entries, &selected[7]);
52 auto hmenu_1_ =
HMenu1(&entries, &selected[8]);
53 auto hmenu_2_ =
HMenu2(&entries, &selected[9]);
54 auto hmenu_3_ =
HMenu3(&entries, &selected[10]);
55 auto hmenu_4_ =
HMenu4(&entries, &selected[11]);
56 auto hmenu_5_ =
HMenu5(&entries, &selected[12]);
58 auto container = Container::Vertical({
59 Container::Horizontal({
76 auto renderer =
Renderer(container, [&] {
110 screen.Loop(renderer);
115 option.entries_option.transform = [](
EntryState state) {
116 state.label = (state.active ?
"> " :
" ") + state.label;
126 return Menu(entries, selected, option);
131 option.entries_option.transform = [](
EntryState state) {
132 state.label += (state.active ?
" <" :
" ");
142 return Menu(entries, selected, option);
147 option.entries_option.transform = [](
EntryState state) {
148 Element e = state.active ?
text(
"[" + state.label +
"]")
149 :
text(
" " + state.label +
" ");
162 return Menu(entries, selected, option);
167 option.entries_option.transform = [](
EntryState state) {
168 if (state.active && state.focused) {
182 return Menu(entries, selected, option);
187 option.entries_option.transform = [](
EntryState state) {
188 auto element =
text(state.label);
189 if (state.active && state.focused) {
196 return element |
bold;
200 return Menu(entries, selected, option);
207 option.underline.SetAnimationFunction(animation::easing::Linear);
208 return Menu(entries, selected, option);
213 option.entries_option.animated_colors.foreground.enabled =
true;
214 option.entries_option.animated_colors.background.enabled =
true;
215 option.entries_option.animated_colors.background.active =
Color::Red;
216 option.entries_option.animated_colors.background.inactive =
Color::Black;
217 option.entries_option.animated_colors.foreground.active =
Color::White;
218 option.entries_option.animated_colors.foreground.inactive =
Color::Red;
219 return Menu(entries, selected, option);
224 option.entries_option.animated_colors.foreground.Set(
226 return Menu(entries, selected, option);
239 option.elements_infix = [] {
return text(
" 🮣🮠 "); };
241 return Menu(entries, selected, option);
250 option.underline.SetAnimation(std::chrono::milliseconds(1500),
251 animation::easing::ElasticOut);
252 option.entries_option.transform = [](
EntryState state) {
254 if (state.active && state.focused) {
257 if (!state.focused && !state.active) {
264 return Menu(entries, selected, option);
static ScreenInteractive TerminalOutput()
ターミナル出力の幅に一致し、描画されるコンポーネントの高さに一致するScreenInteractiveを作成します。
static MenuOption Toggle()
セパレータ付き水平メニューの標準オプション。 これはタブバーの実装に役立ちます。
static MenuOption Horizontal()
水平メニューの標準オプション。 これはタブバーの実装に役立ちます。
static MenuOption VerticalAnimated()
アニメーション付き垂直メニューの標準オプション。 これは選択可能なアイテムのリストを実装するのに役立ちます。
static MenuOption Vertical()
垂直メニューの標準オプション。 これは選択可能なアイテムのリストを実装するのに役立ちます。
static MenuOption HorizontalAnimated()
アニメーション付き水平メニューの標準オプション。 これはタブバーの実装に役立ちます。
Component Menu(MenuOption options)
テキストのリスト。フォーカスされた要素が選択されます。
Component Renderer(Component child, std::function< Element()>)
|child|に似ていますが、|render|をComponentRender()イベントとして使用する新しいコンポーネントを返します。
virtual void Render(Screen &screen)
要素をftxui::Screenに表示します。
Decorator bgcolor(Color)
背景色を使用して装飾します。
Element flex(Element)
子要素をコンテナに残されたスペースに比例して拡大させます。
Element bold(Element)
より強調したい要素に、太字フォントを使用します。
Element text(std::wstring text)
ユニコードテキストを表示します。
Element filler()
コンテナに残されたスペースに比例して拡大する要素。
Element dim(Element)
強調を抑えたい要素に、明るいフォントを使用します。
Decorator color(Color)
前景色を使用して装飾します。
Element vbox(Elements)
要素を縦に一つずつ表示するコンテナ。
std::shared_ptr< Node > Element
Element hbox(Elements)
要素を水平方向に1つずつ表示するコンテナ。
Element borderDouble(Element)
std::shared_ptr< ComponentBase > Component
|ButtonOption|、|CheckboxOption|、|RadioboxOption|、|MenuEntryOption|、|MenuOption|からの変換の引数。