summaryrefslogtreecommitdiffstats
path: root/Common/NativeApp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-05-18 05:27:06 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-05-18 05:27:06 +0000
commit670ec0dfe7b0449c6305e601a34fca6bbebaf58b (patch)
tree2f8724ab32f4e202dcb74c1cb94a1bf01497b100 /Common/NativeApp
parentUpdated samples (fixed input controller issue on UWP) (diff)
downloadDiligentEngine-670ec0dfe7b0449c6305e601a34fca6bbebaf58b.tar.gz
DiligentEngine-670ec0dfe7b0449c6305e601a34fca6bbebaf58b.zip
NativeAppMacOS: enabled shift/ctrl/alt press handling
Diffstat (limited to 'Common/NativeApp')
-rw-r--r--Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm20
-rw-r--r--Common/NativeApp/include/MacOS/MacOSAppBase.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm b/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm
index 0df734b..6af9c4c 100644
--- a/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm
+++ b/Common/NativeApp/Apple/Source/Classes/OSX/ViewController.mm
@@ -136,6 +136,26 @@
[super keyUp:theEvent];
}
+// Informs the receiver that the user has pressed or released a
+// modifier key (Shift, Control, and so on)
+- (void)flagsChanged:(NSEvent *)event
+{
+ auto modifierFlags = [event modifierFlags];
+ {
+ auto* view = (ViewBase*)self.view;
+ auto* theApp = [view lockApp];
+ if(theApp)
+ {
+ theApp->OnFlagsChanged(modifierFlags & NSEventModifierFlagShift,
+ modifierFlags & NSEventModifierFlagControl,
+ modifierFlags & NSEventModifierFlagOption);
+ }
+ [view unlockApp];
+ }
+
+ [super flagsChanged:event];
+}
+
- (BOOL)acceptsFirstResponder {
return YES;
}
diff --git a/Common/NativeApp/include/MacOS/MacOSAppBase.h b/Common/NativeApp/include/MacOS/MacOSAppBase.h
index 2922ac9..a242b8e 100644
--- a/Common/NativeApp/include/MacOS/MacOSAppBase.h
+++ b/Common/NativeApp/include/MacOS/MacOSAppBase.h
@@ -40,6 +40,7 @@ public:
virtual void OnMouseMove(int x, int y){}
virtual void OnKeyPressed(int key){}
virtual void OnKeyReleased(int key){}
+ virtual void OnFlagsChanged(bool ShiftPressed, bool ControlPressed, bool AltPressed){}
protected:
Timer timer;