diff --git a/libs/ui/include/psemek/ui/button.hpp b/libs/ui/include/psemek/ui/button.hpp index bb4b8b8f..f6009e85 100644 --- a/libs/ui/include/psemek/ui/button.hpp +++ b/libs/ui/include/psemek/ui/button.hpp @@ -10,6 +10,8 @@ namespace psemek::ui { react::source mouseover = {}; react::source mousedown = {}; + react::source on_mouseover = {}; + react::source on_mousedown = {}; }; } diff --git a/libs/ui/include/psemek/ui/impl/button_base.hpp b/libs/ui/include/psemek/ui/impl/button_base.hpp index cb52f0e1..0b8f0413 100644 --- a/libs/ui/include/psemek/ui/impl/button_base.hpp +++ b/libs/ui/include/psemek/ui/impl/button_base.hpp @@ -19,6 +19,8 @@ namespace psemek::ui::impl private: react::source mouseover_; react::source mousedown_; + react::source on_mouseover_; + react::source on_mousedown_; bool is_mouseover_ = false; bool is_mousedown_ = false; diff --git a/libs/ui/source/impl/button_base.cpp b/libs/ui/source/impl/button_base.cpp index 06a4e865..f15a3115 100644 --- a/libs/ui/source/impl/button_base.cpp +++ b/libs/ui/source/impl/button_base.cpp @@ -15,6 +15,7 @@ namespace psemek::ui::impl { is_mouseover_ = mouseover; mouseover_.set(is_mouseover_); + on_mouseover_.set(is_mouseover_); } return false; @@ -30,6 +31,7 @@ namespace psemek::ui::impl { is_mousedown_ = mousedown; mousedown_.set(is_mousedown_); + on_mousedown_.set(is_mousedown_); } return is_mouseover_ && is_mousedown_; @@ -43,6 +45,9 @@ namespace psemek::ui::impl mouseover_ = value.mouseover; mousedown_ = value.mousedown; + on_mouseover_ = value.on_mouseover; + on_mousedown_ = value.on_mousedown; + mouseover_.set(is_mouseover_); mousedown_.set(is_mousedown_); }