18class DBox :
public Node {
20 explicit DBox(
Elements children) : Node(std::move(children)) {}
22 void ComputeRequirement()
override {
23 requirement_ = Requirement{};
24 for (
auto& child : children_) {
25 child->ComputeRequirement();
28 if (requirement_.focused.Prefer(child->requirement().focused)) {
29 requirement_.focused = child->requirement().focused;
34 std::max(requirement_.min_x, child->requirement().min_x);
36 std::max(requirement_.min_y, child->requirement().min_y);
40 void SetBox(Box box)
override {
43 for (
auto& child : children_) {
55 return std::make_shared<DBox>(std::move(children_));
virtual void SetBox(Box box)
為元素分配繪圖位置和尺寸。
Element dbox(Elements)
將多個元素堆疊在一起。
std::shared_ptr< Node > Element
std::vector< Element > Elements