FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
slider_rgb.cpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// このソースコードの使用は、LICENSE ファイルにある MIT ライセンスによって管理されています。
3#include <memory> // for allocator, shared_ptr, __shared_ptr_access
4#include <string> // for char_traits, operator+, to_string
5
6#include "ftxui/component/captured_mouse.hpp" // for ftxui
7#include "ftxui/component/component.hpp" // for Slider, Renderer, Vertical
8#include "ftxui/component/component_base.hpp" // for ComponentBase
9#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
10#include "ftxui/dom/elements.hpp" // for separator, operator|, Element, size, text, vbox, xflex, bgcolor, hbox, GREATER_THAN, WIDTH, border, HEIGHT, LESS_THAN
11#include "ftxui/screen/color.hpp" // for Color
12
13using namespace ftxui;
14
15Element ColorTile(int red, int green, int blue) {
16 return text("") | size(WIDTH, GREATER_THAN, 14) |
17 size(HEIGHT, GREATER_THAN, 7) | bgcolor(Color::RGB(red, green, blue));
18}
19
20Element ColorString(int red, int green, int blue) {
21 return text("RGB = (" + //
22 std::to_string(red) + "," + //
23 std::to_string(green) + "," + //
24 std::to_string(blue) + ")" //
25 );
26}
27
28int main() {
29 int red = 128;
30 int green = 25;
31 int blue = 100;
32 auto slider_red = Slider("Red :", &red, 0, 255, 1);
33 auto slider_green = Slider("Green:", &green, 0, 255, 1);
34 auto slider_blue = Slider("Blue :", &blue, 0, 255, 1);
35
36 auto container = Container::Vertical({
37 slider_red,
38 slider_green,
39 slider_blue,
40 });
41
42 auto renderer = Renderer(container, [&] {
43 return hbox({
44 ColorTile(red, green, blue),
45 separator(),
46 vbox({
47 slider_red->Render(),
48 separator(),
49 slider_green->Render(),
50 separator(),
51 slider_blue->Render(),
52 separator(),
53 ColorString(red, green, blue),
54 }) | xflex,
55 }) |
56 border | size(WIDTH, LESS_THAN, 80);
57 });
59 screen.Loop(renderer);
60}
static ScreenInteractive TerminalOutput()
ターミナル出力の幅に一致し、描画されるコンポーネントの高さに一致するScreenInteractiveを作成します。
Component Renderer(Component child, std::function< Element()>)
|child|に似ていますが、|render|をComponentRender()イベントとして使用する新しいコンポーネントを返します。
virtual void Render(Screen &screen)
要素をftxui::Screenに表示します。
Definition node.cpp:59
Decorator bgcolor(Color)
背景色を使用して装飾します。
Element text(std::wstring text)
ユニコードテキストを表示します。
Definition text.cpp:160
Element vbox(Elements)
要素を縦に一つずつ表示するコンテナ。
Definition vbox.cpp:94
static Color RGB(uint8_t red, uint8_t green, uint8_t blue)
RGB表現から色を構築します。 https://en.wikipedia.org/wiki/RGB_color_model.
FTXUI ftxui:: 名前空間
Definition animation.hpp:9
std::shared_ptr< Node > Element
Definition elements.hpp:21
Element hbox(Elements)
要素を水平方向に1つずつ表示するコンテナ。
Definition hbox.cpp:93
Component Slider(SliderOption< T > options)
どの方向にも対応するスライダー。
Element separator()
@ LESS_THAN
Definition elements.hpp:157
@ GREATER_THAN
Definition elements.hpp:157
Element ColorTile(int red, int green, int blue)
Element ColorString(int red, int green, int blue)
int main()
return size
Definition string.cpp:1516