00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __WEBKEYBOARDEVENT_H__
00009 #define __WEBKEYBOARDEVENT_H__
00010
00011 #if defined(__APPLE__)
00012 #ifdef __OBJC__
00013 @class NSEvent;
00014 #else
00015 class NSEvent;
00016 #endif
00017 #endif
00018
00019 namespace Awesomium {
00020
00021 #if defined(__WIN32__) || defined(_WIN32)
00022
00023 #include <windows.h>
00024
00025 typedef wchar_t WebUChar;
00026
00027 #elif defined(__APPLE__)
00028
00029 typedef unsigned short WebUChar;
00030
00031 #endif
00032
00037 class _OSMExport WebKeyboardEvent
00038 {
00039 public:
00044 WebKeyboardEvent();
00045
00046 #if defined(__WIN32__) || defined(_WIN32)
00047
00059 WebKeyboardEvent(UINT msg, WPARAM wparam, LPARAM lparam);
00060 #elif defined(__APPLE__)
00061
00064 WebKeyboardEvent(NSEvent* event);
00065 #endif
00066
00068 enum Type
00069 {
00070 TYPE_KEY_DOWN,
00071 TYPE_KEY_UP,
00072 TYPE_CHAR
00073 };
00074
00076 enum Modifiers
00077 {
00078 MOD_SHIFT_KEY = 1 << 0,
00079 MOD_CONTROL_KEY = 1 << 1,
00080 MOD_ALT_KEY = 1 << 2,
00081 MOD_META_KEY = 1 << 3,
00082 MOD_IS_KEYPAD = 1 << 4,
00083 MOD_IS_AUTOREPEAT = 1 << 5,
00084 };
00085
00087 Type type;
00088
00090 int modifiers;
00091
00097 int virtualKeyCode;
00098
00104 int nativeKeyCode;
00105
00111 char keyIdentifier[20];
00112
00117 WebUChar text[4];
00118
00124 WebUChar unmodifiedText[4];
00125
00131 bool isSystemKey;
00132 };
00133
00141 void _OSMExport getKeyIdentifierFromVirtualKeyCode(int virtualKeyCode, char** keyIdentifierResult);
00142
00143 }
00144
00145 #endif