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. (日本語訳: Arthur Sonzogni. 全著作権所有。)
2
// Use of this source code is governed by the MIT license that can be found in
3
// the LICENSE file. (日本語訳: このソースコードの使用は、LICENSEファイルにあるMITライセンスに従います。)
4
#ifndef FTXUI_DOM_REQUIREMENT_HPP
5
#define FTXUI_DOM_REQUIREMENT_HPP
6
7
#include "
ftxui/screen/box.hpp
"
8
#include "
ftxui/screen/screen.hpp
"
9
10
namespace
ftxui
{
11
class
Node;
12
13
/// @brief Requirementは、ターミナルユーザーインターフェースにおけるNodeのレイアウト要件を定義する構造体です。
14
///
15
/// 要素を完全に描画するために必要な最小サイズを指定します。
16
/// @ingroup dom
17
struct
Requirement
{
18
// 要素を完全に描画するために必要なサイズ。
19
int
min_x
= 0;
20
int
min_y
= 0;
21
22
// コンポーネントに与えられる柔軟性。
23
int
flex_grow_x
= 0;
24
int
flex_grow_y
= 0;
25
int
flex_shrink_x
= 0;
26
int
flex_shrink_y
= 0;
27
28
// Focus management to support the frame/focus/select element.
29
struct
Focused
{
30
bool
enabled
=
false
;
31
Box
box
;
32
Node
*
node
=
nullptr
;
33
Screen::Cursor::Shape
cursor_shape
=
Screen::Cursor::Shape::Hidden
;
34
35
// コンポーネントとのインタラクション用内部設定。
36
bool
component_active
=
false
;
37
38
// この要件が他の要件よりも優先されるべきかどうかを返します。
39
bool
Prefer
(
const
Focused
& other)
const
{
40
if
(!other.
enabled
) {
41
return
false
;
42
}
43
if
(!
enabled
) {
44
return
true
;
45
}
46
47
return
other.
component_active
&& !
component_active
;
48
}
49
};
50
Focused
focused
;
51
};
52
53
}
// namespace ftxui
54
55
#endif
// FTXUI_DOM_REQUIREMENT_HPP
box.hpp
ftxui::Requirement::flex_grow_y
int flex_grow_y
Definition
requirement.hpp:24
ftxui::Requirement::min_y
int min_y
Definition
requirement.hpp:20
ftxui::Requirement::flex_grow_x
int flex_grow_x
Definition
requirement.hpp:23
ftxui::Requirement::min_x
int min_x
Definition
requirement.hpp:19
ftxui::Requirement::focused
Focused focused
Definition
requirement.hpp:50
ftxui::Requirement::flex_shrink_y
int flex_shrink_y
Definition
requirement.hpp:26
ftxui::Requirement::flex_shrink_x
int flex_shrink_x
Definition
requirement.hpp:25
ftxui::Node
NodeはDOMツリー内のすべての要素の基底クラスです。
Definition
node.hpp:36
ftxui::Requirement
Requirementは、ターミナルユーザーインターフェースにおけるNodeのレイアウト要件を定義する構造体です。
Definition
requirement.hpp:17
ftxui::Box
Boxは、2D空間における矩形領域を表す構造体です。
Definition
box.hpp:14
ftxui
FTXUI ftxui:: 名前空間
Definition
animation.hpp:9
screen.hpp
ftxui::Requirement::Focused
Definition
requirement.hpp:29
ftxui::Requirement::Focused::cursor_shape
Screen::Cursor::Shape cursor_shape
Definition
requirement.hpp:33
ftxui::Requirement::Focused::enabled
bool enabled
Definition
requirement.hpp:30
ftxui::Requirement::Focused::Prefer
bool Prefer(const Focused &other) const
Definition
requirement.hpp:39
ftxui::Requirement::Focused::box
Box box
Definition
requirement.hpp:31
ftxui::Requirement::Focused::node
Node * node
Definition
requirement.hpp:32
ftxui::Requirement::Focused::component_active
bool component_active
Definition
requirement.hpp:36
ftxui::Screen::Cursor::Shape
Shape
Definition
screen.hpp:52
ftxui::Screen::Cursor::Hidden
@ Hidden
Definition
screen.hpp:53