17 class DBox :
public Node {
19 explicit DBox(
Elements children) : Node(std::move(children)) {}
21 void ComputeRequirement()
override {
22 requirement_.min_x = 0;
23 requirement_.min_y = 0;
24 requirement_.flex_grow_x = 0;
25 requirement_.flex_grow_y = 0;
26 requirement_.flex_shrink_x = 0;
27 requirement_.flex_shrink_y = 0;
29 for (
auto& child : children_) {
30 child->ComputeRequirement();
32 std::max(requirement_.min_x, child->requirement().min_x);
34 std::max(requirement_.min_y, child->requirement().min_y);
36 if (requirement_.selection < child->requirement().selection) {
37 requirement_.selection = child->requirement().selection;
38 requirement_.selected_box = child->requirement().selected_box;
43 void SetBox(Box box)
override {
46 for (
auto& child : children_) {
58 return std::make_shared<DBox>(std::move(children_));
virtual void SetBox(Box box)
Assign a position and a dimension to an element for drawing.
std::shared_ptr< Node > Element
std::vector< Element > Elements
Element dbox(Elements)
Stack several element on top of each other.