summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowmacosx-objc.h
diff options
context:
space:
mode:
authorrider <rider@lindenlab.com>2015-11-06 14:12:30 -0800
committerrider <rider@lindenlab.com>2015-11-06 14:12:30 -0800
commitbd817f6f422991c2653493436c7845e75ea9d855 (patch)
treec0a7da3bf1cb6515ccc16b68534aa10c45a1ade6 /indra/llwindow/llwindowmacosx-objc.h
parentb1c3ec9c0049758afbe9e13d31cc2f60348ecffb (diff)
MAINT-5754: Basic keyboard functionality on the Mac. Still incomplete
Diffstat (limited to 'indra/llwindow/llwindowmacosx-objc.h')
-rwxr-xr-xindra/llwindow/llwindowmacosx-objc.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h
index e6e8f27f53..2455d6aeb9 100755
--- a/indra/llwindow/llwindowmacosx-objc.h
+++ b/indra/llwindow/llwindowmacosx-objc.h
@@ -46,6 +46,25 @@ typedef void *CursorRef;
typedef void *NSWindowRef;
typedef void *GLViewRef;
+
+struct NativeKeyEventData {
+ enum EventType {
+ KEYUNKNOWN,
+ KEYUP,
+ KEYDOWN,
+ KEYCHAR
+ };
+
+ EventType mKeyEvent;
+ uint32_t mKeyCode;
+ uint32_t mScanCode;
+ uint32_t mKeyModifiers;
+ uint32_t mKeyboardType;
+ wchar_t mCharacter;
+};
+
+typedef const NativeKeyEventData * NSKeyEventRef;
+
// These are defined in llappviewermacosx.cpp.
bool initViewer();
void handleQuit();
@@ -102,8 +121,8 @@ void setupInputWindow(NSWindowRef window, GLViewRef view);
// These are all implemented in llwindowmacosx.cpp.
// This is largely for easier interop between Obj-C and C++ (at least in the viewer's case due to the BOOL vs. BOOL conflict)
-bool callKeyUp(unsigned short key, unsigned int mask);
-bool callKeyDown(unsigned short key, unsigned int mask);
+bool callKeyUp(NSKeyEventRef event, unsigned short key, unsigned int mask);
+bool callKeyDown(NSKeyEventRef event, unsigned short key, unsigned int mask);
void callResetKeys();
bool callUnicodeCallback(wchar_t character, unsigned int mask);
void callRightMouseDown(float *pos, unsigned int mask);