15class Unselectable :
public NodeDecorator {
19 void Select(Selection& ignored)
override {
20 std::ignore = ignored;
27Selection::Selection() =
default;
34Selection::Selection(
int start_x,
int start_y,
int end_x,
int end_y)
40 std::min(start_x, end_x),
41 std::max(start_x, end_x),
42 std::min(start_y, end_y),
43 std::max(start_y, end_y),
47Selection::Selection(
int start_x,
57 std::min(start_x, end_x),
58 std::max(start_x, end_x),
59 std::min(start_y, end_y),
60 std::max(start_y, end_y),
67const Box& Selection::GetBox()
const {
75Selection Selection::SaturateHorizontal(Box box) {
76 int start_x = start_x_;
77 int start_y = start_y_;
81 const bool start_outside = !box.Contain(start_x, start_y);
82 const bool end_outside = !box.Contain(end_x, end_y);
83 const bool properly_ordered =
84 start_y < end_y || (start_y == end_y && start_x <= end_x);
85 if (properly_ordered) {
105 start_x, start_y, end_x, end_y, parent_,
113Selection Selection::SaturateVertical(Box box) {
114 int start_x = start_x_;
115 int start_y = start_y_;
119 const bool start_outside = !box.Contain(start_x, start_y);
120 const bool end_outside = !box.Contain(end_x, end_y);
121 const bool properly_ordered =
122 start_y < end_y || (start_y == end_y && start_x <= end_x);
124 if (properly_ordered) {
143 return {start_x, start_y, end_x, end_y, parent_};
146void Selection::AddPart(std::string_view part,
int y,
int left,
int right) {
147 if (parent_ !=
this) {
152 if (parts_.str().empty()) {
158 parts_ <<
'\n' << part;
162 if (x_ ==
left + 1) {
NodeDecorator(Element child)
The FTXUI ftxui:: namespace.