diff options
Diffstat (limited to 'include/cru/ui/control.hpp')
-rw-r--r-- | include/cru/ui/control.hpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/include/cru/ui/control.hpp b/include/cru/ui/control.hpp index 15eeb6fa..f78557a3 100644 --- a/include/cru/ui/control.hpp +++ b/include/cru/ui/control.hpp @@ -1,6 +1,6 @@ #pragma once -#include "cru/common/base.hpp" #include "base.hpp" +#include "cru/common/base.hpp" #include "cru/platform/native/basic_types.hpp" #include "event/ui_event.hpp" @@ -58,6 +58,10 @@ class Control : public Object { bool HasFocus(); + //*************** region: focus *************** + public: + bool IsMouseOver() const { return is_mouse_over_; } + //*************** region: events *************** public: // Raised when mouse enter the control. @@ -130,9 +134,19 @@ class Control : public Object { protected: virtual void OnMouseClickBegin(platform::native::MouseButton button); virtual void OnMouseClickEnd(platform::native::MouseButton button); + virtual void OnMouseClickCancel(platform::native::MouseButton button); private: Window* window_ = nullptr; Control* parent_ = nullptr; + + private: + bool is_mouse_over_ = false; + + struct { + bool left; + bool middle; + bool right; + } click_map_; }; } // namespace cru::ui |