aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/ui_event.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/ui/ui_event.hpp')
-rw-r--r--include/cru/ui/ui_event.hpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/include/cru/ui/ui_event.hpp b/include/cru/ui/ui_event.hpp
index d7ab4543..a9d6028a 100644
--- a/include/cru/ui/ui_event.hpp
+++ b/include/cru/ui/ui_event.hpp
@@ -2,6 +2,7 @@
#include "base.hpp"
#include "cru/common/event.hpp"
+#include "cru/platform/native/keyboard.hpp"
#include <memory>
#include <optional>
@@ -93,11 +94,17 @@ class MouseEventArgs : public UiEventArgs {
class MouseButtonEventArgs : public MouseEventArgs {
public:
MouseButtonEventArgs(Object* sender, Object* original_sender,
- const Point& point, const MouseButton button)
- : MouseEventArgs(sender, original_sender, point), button_(button) {}
+ const Point& point, const MouseButton button,
+ platform::native::KeyModifier key_modifier)
+ : MouseEventArgs(sender, original_sender, point),
+ button_(button),
+ key_modifier_(key_modifier) {}
MouseButtonEventArgs(Object* sender, Object* original_sender,
- const MouseButton button)
- : MouseEventArgs(sender, original_sender), button_(button) {}
+ const MouseButton button,
+ platform::native::KeyModifier key_modifier)
+ : MouseEventArgs(sender, original_sender),
+ button_(button),
+ key_modifier_(key_modifier) {}
MouseButtonEventArgs(const MouseButtonEventArgs& other) = default;
MouseButtonEventArgs(MouseButtonEventArgs&& other) = default;
MouseButtonEventArgs& operator=(const MouseButtonEventArgs& other) = default;
@@ -105,9 +112,11 @@ class MouseButtonEventArgs : public MouseEventArgs {
~MouseButtonEventArgs() override = default;
MouseButton GetButton() const { return button_; }
+ platform::native::KeyModifier GetKeyModifier() const { return key_modifier_; }
private:
MouseButton button_;
+ platform::native::KeyModifier key_modifier_;
};
class MouseWheelEventArgs : public MouseEventArgs {
@@ -182,18 +191,24 @@ class ToggleEventArgs : public UiEventArgs {
class KeyEventArgs : public UiEventArgs {
public:
- KeyEventArgs(Object* sender, Object* original_sender, int virtual_code)
- : UiEventArgs(sender, original_sender), virtual_code_(virtual_code) {}
+ KeyEventArgs(Object* sender, Object* original_sender,
+ platform::native::KeyCode key_code,
+ platform::native::KeyModifier key_modifier)
+ : UiEventArgs(sender, original_sender),
+ key_code_(key_code),
+ key_modifier_(key_modifier) {}
KeyEventArgs(const KeyEventArgs& other) = default;
KeyEventArgs(KeyEventArgs&& other) = default;
KeyEventArgs& operator=(const KeyEventArgs& other) = default;
KeyEventArgs& operator=(KeyEventArgs&& other) = default;
~KeyEventArgs() override = default;
- int GetVirtualCode() const { return virtual_code_; }
+ platform::native::KeyCode GetKeyCode() const { return key_code_; }
+ platform::native::KeyModifier GetKeyModifier() const { return key_modifier_; }
private:
- int virtual_code_;
+ platform::native::KeyCode key_code_;
+ platform::native::KeyModifier key_modifier_;
};
class CharEventArgs : public UiEventArgs {