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// Use of this source code is governed by the MIT license that can be found in
3// the LICENSE file.
4#ifndef FTXUI_SCREEN_SCREEN_HPP
5#define FTXUI_SCREEN_SCREEN_HPP
6
7#include <cstdint> // for uint8_t
8#include <functional> // for function
9#include <string> // for string, basic_string, allocator
10#include <vector> // for vector
11
12#include "ftxui/screen/image.hpp" // for Pixel, Image
13#include "ftxui/screen/terminal.hpp" // for Dimensions
14
15namespace ftxui {
16
17/// @brief 定義螢幕的維度外觀。
18/// @ingroup screen
19namespace Dimension {
22} // namespace Dimension
23
24/// @brief 像素的矩形網格。
25/// @ingroup screen
26class Screen : public Image {
27 public:
28 // 建構函式:
29 Screen(int dimx, int dimy);
30 static Screen Create(Dimensions dimension);
31 static Screen Create(Dimensions width, Dimensions height);
32
33 // 解構函式:
34 ~Screen() override = default;
35
36 std::string ToString() const;
37
38 // 在終端機上印出螢幕。
39 void Print() const;
40
41 // 用空白填充螢幕並重置所有螢幕狀態,例如超連結和游標
42 void Clear();
43
44 // 將終端機游標向上移動 n 行,其中 n = dimy()。
45 std::string ResetPosition(bool clear = false) const;
46
47 void ApplyShader();
48
49 struct Cursor {
50 int x = 0;
51 int y = 0;
52
63 };
64
65 Cursor cursor() const { return cursor_; }
67
68 // 在螢幕中儲存一個超連結。返回超連結的 ID。當使用者點擊超連結時,該 ID 用於識別超連結。
69 uint8_t RegisterHyperlink(const std::string& link);
70 const std::string& Hyperlink(uint8_t id) const;
71
72 using SelectionStyle = std::function<void(Pixel&)>;
73 const SelectionStyle& GetSelectionStyle() const;
74 void SetSelectionStyle(SelectionStyle decorator);
75
76 protected:
78 std::vector<std::string> hyperlinks_ = {""};
79
80 // 當前的選擇樣式。這會被各種 DOM 元素覆寫。
82 pixel.inverted ^= true;
83 };
84};
85
86} // namespace ftxui
87
88#endif // FTXUI_SCREEN_SCREEN_HPP
std::function< void(Pixel &)> SelectionStyle
Definition screen.hpp:72
void ApplyShader()
Definition screen.cpp:501
const SelectionStyle & GetSelectionStyle() const
返回當前選擇樣式。
Definition screen.cpp:550
const std::string & Hyperlink(uint8_t id) const
Definition screen.cpp:541
int dimy() const
Definition image.hpp:36
std::string ToString() const
Definition screen.cpp:412
void SetCursor(Cursor cursor)
Definition screen.hpp:66
~Screen() override=default
static Screen Create(Dimensions dimension)
創建具有給定尺寸的螢幕。
Definition screen.cpp:395
uint8_t RegisterHyperlink(const std::string &link)
Definition screen.cpp:528
Screen(int dimx, int dimy)
Definition screen.cpp:399
Cursor cursor() const
Definition screen.hpp:65
std::string ResetPosition(bool clear=false) const
返回一個字串,用於將游標位置重置到螢幕的開頭。
Definition screen.cpp:470
Cursor cursor_
Definition screen.hpp:77
void Clear()
清除螢幕上的所有像素。
Definition screen.cpp:489
SelectionStyle selection_style_
Definition screen.hpp:81
void SetSelectionStyle(SelectionStyle decorator)
設置當前選擇樣式。
Definition screen.cpp:556
std::vector< std::string > hyperlinks_
Definition screen.hpp:78
void Print() const
Definition screen.cpp:449
int dimx() const
Definition image.hpp:35
像素的矩形網格。
Definition image.hpp:17
像素的矩形網格。
Definition screen.hpp:26
Dimensions 是一個表示終端機大小的結構
Definition terminal.hpp:11
一個 Unicode 字元及其相關樣式。
Definition pixel.hpp:14
FTXUI 的 ftxui::Dimension:: 命名空間
Dimensions Fixed(int)
Dimensions Full()
FTXUI 的 ftxui:: 命名空間
Definition animation.hpp:10