15class HBox :
public Node {
19 void ComputeRequirement()
override {
27 child->ComputeRequirement();
40 void SetBox(Box box)
override {
43 std::vector<box_helper::Element> elements(
children_.size());
44 for (
size_t i = 0; i <
children_.size(); ++i) {
45 auto& element = elements[i];
51 int target_size = box.x_max - box.x_min + 1;
55 for (
size_t i = 0; i <
children_.size(); ++i) {
57 box.x_max = x + elements[i].size - 1;
77 return std::make_shared<HBox>(std::move(children));
virtual void SetBox(Box box)
Assign a position and a dimension to an element for drawing.
Requirement requirement()
void Compute(std::vector< Element > *elements, int target_size)
std::shared_ptr< Node > Element
Element hbox(Elements)
A container displaying elements horizontally one by one.
std::vector< Element > Elements