FTXUI
6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
requirement.hpp
Go to the documentation of this file.
1
// Copyright 2020 Arthur Sonzogni. All rights reserved.
2
// 本原始碼受 MIT 授權條款保護,詳情請參閱 LICENSE 檔案。
3
#ifndef FTXUI_DOM_REQUIREMENT_HPP
4
#define FTXUI_DOM_REQUIREMENT_HPP
5
6
#include "
ftxui/screen/box.hpp
"
7
#include "
ftxui/screen/screen.hpp
"
8
9
namespace
ftxui
{
10
class
Node;
11
12
/// @brief Requirement 是一個結構,定義了終端使用者介面中節點的佈局要求。
13
///
14
/// 它指定了完全繪製元素所需的最小尺寸。
15
/// @ingroup dom
16
struct
Requirement
{
17
// 完全繪製元素所需的尺寸。
18
int
min_x
= 0;
19
int
min_y
= 0;
20
21
// 元件的彈性程度。
22
int
flex_grow_x
= 0;
23
int
flex_grow_y
= 0;
24
int
flex_shrink_x
= 0;
25
int
flex_shrink_y
= 0;
26
27
// 焦點管理,支援frame/focus/select元素。
28
struct
Focused
{
29
bool
enabled
=
false
;
30
Box
box
;
31
Node
*
node
=
nullptr
;
32
Screen::Cursor::Shape
cursor_shape
=
Screen::Cursor::Shape::Hidden
;
33
34
// 內部用於與元件互動。
35
bool
component_active
=
false
;
36
37
// 返回此需求是否應優先於另一個。
38
bool
Prefer
(
const
Focused
& other)
const
{
39
if
(!other.
enabled
) {
40
return
false
;
41
}
42
if
(!
enabled
) {
43
return
true
;
44
}
45
46
return
other.
component_active
&& !
component_active
;
47
}
48
};
49
Focused
focused
;
50
};
51
52
}
// namespace ftxui
53
54
#endif
// FTXUI_DOM_REQUIREMENT_HPP
box.hpp
ftxui::Requirement::flex_grow_y
int flex_grow_y
Definition
requirement.hpp:23
ftxui::Requirement::min_y
int min_y
Definition
requirement.hpp:19
ftxui::Requirement::flex_grow_x
int flex_grow_x
Definition
requirement.hpp:22
ftxui::Requirement::min_x
int min_x
Definition
requirement.hpp:18
ftxui::Requirement::focused
Focused focused
Definition
requirement.hpp:49
ftxui::Requirement::flex_shrink_y
int flex_shrink_y
Definition
requirement.hpp:25
ftxui::Requirement::flex_shrink_x
int flex_shrink_x
Definition
requirement.hpp:24
ftxui::Node
節點是DOM樹中所有元素的基底類別。
Definition
node.hpp:34
ftxui::Requirement
Requirement 是一個結構,定義了終端使用者介面中節點的佈局要求。
Definition
requirement.hpp:16
ftxui::Box
Box 是一個表示二維空間中矩形區域的結構。
Definition
box.hpp:14
ftxui
FTXUI 的 ftxui:: 命名空間
Definition
animation.hpp:10
screen.hpp
ftxui::Requirement::Focused
Definition
requirement.hpp:28
ftxui::Requirement::Focused::cursor_shape
Screen::Cursor::Shape cursor_shape
Definition
requirement.hpp:32
ftxui::Requirement::Focused::enabled
bool enabled
Definition
requirement.hpp:29
ftxui::Requirement::Focused::Prefer
bool Prefer(const Focused &other) const
Definition
requirement.hpp:38
ftxui::Requirement::Focused::box
Box box
Definition
requirement.hpp:30
ftxui::Requirement::Focused::node
Node * node
Definition
requirement.hpp:31
ftxui::Requirement::Focused::component_active
bool component_active
Definition
requirement.hpp:35
ftxui::Screen::Cursor::Shape
Shape
Definition
screen.hpp:53
ftxui::Screen::Cursor::Hidden
@ Hidden
Definition
screen.hpp:54