aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/control.hpp
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-08-11 01:09:49 +0800
committer杨宇千 <crupest@outlook.com>2019-08-11 01:09:49 +0800
commit0e35b2c022599bca2df61488945f07e4d6b4eb35 (patch)
tree71daef6f9725a250b9fcaf97fdecc9bdf46bd6e3 /include/cru/ui/control.hpp
parent9eed31954c14f2d60c906adb5b49b58fbee4ff7f (diff)
downloadcru-0e35b2c022599bca2df61488945f07e4d6b4eb35.tar.gz
cru-0e35b2c022599bca2df61488945f07e4d6b4eb35.tar.bz2
cru-0e35b2c022599bca2df61488945f07e4d6b4eb35.zip
...
Diffstat (limited to 'include/cru/ui/control.hpp')
-rw-r--r--include/cru/ui/control.hpp16
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