diff options
author | 杨宇千 <crupest@outlook.com> | 2019-08-12 01:03:02 +0800 |
---|---|---|
committer | 杨宇千 <crupest@outlook.com> | 2019-08-12 01:03:02 +0800 |
commit | 04367ead7027e9f0359d24681f5cc0dd916b934d (patch) | |
tree | f2a277ac9d53863c9f4efc8099450138974bdb4d /include/cru/ui/click_detector.hpp | |
parent | 86e776eaebf7c45a269001ca7da0dfafba069d0a (diff) | |
download | cru-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.hpp | 8 |
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 { |