FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
screen.hpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// このソースコードの使用は、LICENSEファイルにあるMITライセンスに準拠します。
3#ifndef FTXUI_SCREEN_SCREEN_HPP
4#define FTXUI_SCREEN_SCREEN_HPP
5
6#include <cstdint> // for uint8_t
7#include <functional> // for function
8#include <string> // for string, basic_string, allocator
9#include <vector> // for vector
10
11#include "ftxui/screen/image.hpp" // for Pixel, Image
12#include "ftxui/screen/terminal.hpp" // for Dimensions
13
14namespace ftxui {
15
16/// @brief スクリーンがどのように見えるべきかを定義します。
17/// @ingroup screen
18namespace Dimension {
21} // namespace Dimension
22
23/// @brief ピクセルの長方形グリッド。
24/// @ingroup screen
25class Screen : public Image {
26 public:
27 // コンストラクタ:
28 Screen(int dimx, int dimy);
29 static Screen Create(Dimensions dimension);
30 static Screen Create(Dimensions width, Dimensions height);
31
32 // デストラクタ:
33 ~Screen() override = default;
34
35 std::string ToString() const;
36
37 // スクリーンをターミナルに表示します。
38 void Print() const;
39
40 // スクリーンをスペースで埋め、ハイパーリンクやカーソルなどのスクリーン状態をリセットします。
41 void Clear();
42
43 // ターミナルカーソルをn行上に移動します。n = dimy()です。
44 std::string ResetPosition(bool clear = false) const;
45
46 void ApplyShader();
47
48 struct Cursor {
49 int x = 0;
50 int y = 0;
51
62 };
63
64 Cursor cursor() const { return cursor_; }
66
67 // スクリーンにハイパーリンクを保存します。ハイパーリンクのIDを返します。このIDは、ユーザーがクリックしたときにハイパーリンクを識別するために使用されます。
68 uint8_t RegisterHyperlink(const std::string& link);
69 const std::string& Hyperlink(uint8_t id) const;
70
71 using SelectionStyle = std::function<void(Pixel&)>;
72 const SelectionStyle& GetSelectionStyle() const;
73 void SetSelectionStyle(SelectionStyle decorator);
74
75 protected:
77 std::vector<std::string> hyperlinks_ = {""};
78
79 // 現在の選択スタイル。これは様々なDOM要素によって上書きされます。
81 pixel.inverted ^= true;
82 };
83};
84
85} // namespace ftxui
86
87#endif // FTXUI_SCREEN_SCREEN_HPP
std::function< void(Pixel &)> SelectionStyle
Definition screen.hpp:71
void ApplyShader()
Definition screen.cpp:499
const SelectionStyle & GetSelectionStyle() const
現在の選択スタイルを返します。
Definition screen.cpp:548
const std::string & Hyperlink(uint8_t id) const
Definition screen.cpp:539
int dimy() const
Definition image.hpp:36
std::string ToString() const
Definition screen.cpp:410
void SetCursor(Cursor cursor)
Definition screen.hpp:65
~Screen() override=default
static Screen Create(Dimensions dimension)
指定された次元を持つスクリーンを作成します。
Definition screen.cpp:394
uint8_t RegisterHyperlink(const std::string &link)
Definition screen.cpp:526
Screen(int dimx, int dimy)
Definition screen.cpp:398
Cursor cursor() const
Definition screen.hpp:64
std::string ResetPosition(bool clear=false) const
カーソル位置を画面の先頭にリセットするために出力する文字列を返します。
Definition screen.cpp:468
Cursor cursor_
Definition screen.hpp:76
void Clear()
画面からすべてのピクセルをクリアします。
Definition screen.cpp:487
SelectionStyle selection_style_
Definition screen.hpp:80
void SetSelectionStyle(SelectionStyle decorator)
現在の選択スタイルを設定します。
Definition screen.cpp:554
std::vector< std::string > hyperlinks_
Definition screen.hpp:77
void Print() const
Definition screen.cpp:447
int dimx() const
Definition image.hpp:35
ピクセルの長方形グリッド。
Definition image.hpp:17
ピクセルの長方形グリッド。
Definition screen.hpp:25
Dimensionsは、ターミナルのサイズを表す構造体です。
Definition terminal.hpp:10
Unicode文字とそれに関連付けられたスタイル。
Definition pixel.hpp:14
FTXUI ftxui::Dimension::名前空間
Dimensions Fixed(int)
Dimensions Full()
FTXUI ftxui:: 名前空間
Definition animation.hpp:9