30 class Impl :
public NodeDecorator {
32 Impl(
Element child,
float x,
float y)
33 : NodeDecorator(std::move(child)), x_(x), y_(
y) {}
35 void ComputeRequirement()
override {
36 NodeDecorator::ComputeRequirement();
37 requirement_.focused.enabled =
true;
38 requirement_.focused.node =
this;
39 requirement_.focused.box.x_min = int(
float(requirement_.min_x) * x_);
40 requirement_.focused.box.y_min = int(
float(requirement_.min_y) * y_);
41 requirement_.focused.box.x_max = int(
float(requirement_.min_x) * x_);
42 requirement_.focused.box.y_max = int(
float(requirement_.min_y) * y_);
51 return std::make_shared<Impl>(std::move(child), x,
y);
67 class Impl :
public NodeDecorator {
70 : NodeDecorator(std::move(child)), x_(x), y_(
y) {}
72 void ComputeRequirement()
override {
73 NodeDecorator::ComputeRequirement();
74 requirement_.focused.enabled =
false;
76 Box& box = requirement_.focused.box;
89 return std::make_shared<Impl>(std::move(child), x,
y);