15class Unselectable :
public NodeDecorator {
19 void Select(Selection& ignored)
override {
20 std::ignore = ignored;
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),
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),
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_,
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_};
147 if (parent_ !=
this) {
152 if (parts_.str().empty()) {
158 parts_ <<
'\n' << part;
162 if (x_ ==
left + 1) {
NodeDecorator(Element child)
const Box & GetBox() const
選択範囲のボックスを取得します。
void AddPart(const std::string &part, int y, int left, int right)
Selection SaturateVertical(Box box)
選択範囲をボックス内に収めます。 これはvboxによって、選択範囲をその子に伝播するために呼び出されます。
Selection SaturateHorizontal(Box box)
選択範囲をボックス内に収めます。 これはhboxによって、選択範囲をその子に伝播するために呼び出されます。
ターミナルユーザーインターフェースにおける選択範囲を表します。
bool Contain(int x, int y) const
Boxは、2D空間における矩形領域を表す構造体です。