86 std::function<
void()> on_enter,
87 std::function<
void()> on_leave) {
91 std::function<
void()> on_enter,
92 std::function<
void()> on_leave)
93 : component_(std::move(component)),
94 on_enter_(std::move(on_enter)),
95 on_leave_(std::move(on_leave)) {
101 return ComponentBase::OnRender() | reflect(box_);
104 bool OnEvent(
Event event)
override {
106 const bool hover = box_.Contain(event.
mouse().
x, event.
mouse().
y) &&
108 if (hover != hover_) {
109 Post(hover ? on_enter_ : on_leave_);
114 return ComponentBase::OnEvent(event);
120 std::function<void()> on_enter_;
121 std::function<void()> on_leave_;
124 return Make<Impl>(std::move(component), std::move(on_enter),
125 std::move(on_leave));