aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/click_detector.hpp
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-08-12 01:03:02 +0800
committer杨宇千 <crupest@outlook.com>2019-08-12 01:03:02 +0800
commit04367ead7027e9f0359d24681f5cc0dd916b934d (patch)
treef2a277ac9d53863c9f4efc8099450138974bdb4d /include/cru/ui/click_detector.hpp
parent86e776eaebf7c45a269001ca7da0dfafba069d0a (diff)
downloadcru-04367ead7027e9f0359d24681f5cc0dd916b934d.tar.gz
cru-04367ead7027e9f0359d24681f5cc0dd916b934d.tar.bz2
cru-04367ead7027e9f0359d24681f5cc0dd916b934d.zip
...
Diffstat (limited to 'include/cru/ui/click_detector.hpp')
-rw-r--r--include/cru/ui/click_detector.hpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/cru/ui/click_detector.hpp b/include/cru/ui/click_detector.hpp
index e7d5e417..3806dd82 100644
--- a/include/cru/ui/click_detector.hpp
+++ b/include/cru/ui/click_detector.hpp
@@ -47,7 +47,7 @@ class ClickDetector : public Object {
// Return a union of buttons being pressed. Return 0 if no button is being
// pressed.
- MouseButton IsPressing() const {
+ MouseButton GetPressingButton() const {
unsigned result = 0;
if (click_map_.left.has_value()) result |= MouseButton::Left;
if (click_map_.middle.has_value()) result |= MouseButton::Middle;
@@ -57,6 +57,9 @@ class ClickDetector : public Object {
IEvent<ClickEventArgs>* ClickEvent() { return &event_; }
+ IEvent<MouseButton>* ClickBeginEvent() { return &begin_event_; }
+ IEvent<MouseButton>* ClickEndEvent() { return &end_event_; }
+
private:
std::optional<Point>& FromButton(MouseButton button) {
switch (button) {
@@ -76,6 +79,9 @@ class ClickDetector : public Object {
Event<ClickEventArgs> event_;
+ Event<MouseButton> begin_event_;
+ Event<MouseButton> end_event_;
+
std::forward_list<EventRevokerGuard> event_rovoker_guards_;
struct {