87 std::function<
void()> on_enter,
88 std::function<
void()> on_leave) {
92 std::function<
void()> on_enter,
93 std::function<
void()> on_leave)
94 : component_(std::move(component)),
95 on_enter_(std::move(on_enter)),
96 on_leave_(std::move(on_leave)) {
102 return ComponentBase::OnRender() |
reflect(box_);
105 bool OnEvent(
Event event)
override {
107 const bool hover = box_.Contain(event.
mouse().
x, event.
mouse().
y) &&
109 if (hover != hover_) {
110 Post(hover ? on_enter_ : on_leave_);
115 return ComponentBase::OnEvent(event);
121 std::function<void()> on_enter_;
122 std::function<void()> on_leave_;
125 return Make<Impl>(std::move(component), std::move(on_enter),
126 std::move(on_leave));