summaryrefslogtreecommitdiff
path: root/Runtime/Export/EventBindings.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Export/EventBindings.txt')
-rw-r--r--Runtime/Export/EventBindings.txt1066
1 files changed, 1066 insertions, 0 deletions
diff --git a/Runtime/Export/EventBindings.txt b/Runtime/Export/EventBindings.txt
new file mode 100644
index 0000000..fe49b68
--- /dev/null
+++ b/Runtime/Export/EventBindings.txt
@@ -0,0 +1,1066 @@
+C++RAW
+
+#include "UnityPrefix.h"
+#include "Runtime/IMGUI/IMGUIUtils.h"
+#include "Runtime/Scripting/ScriptingUtility.h"
+#include "Runtime/Scripting/ScriptingObjectWithIntPtrField.h"
+
+/*
+ Mono defines a bool as either 1 or 2 bytes.
+ On windows a bool on the C++ side needs to be 2 bytes.
+ We use the typemap to map bool's to short's.
+ When using the C++ keyword and you want to export a bool value
+ to mono you have to use a short on the C++ side.
+*/
+
+
+void PauseEditor ();
+using namespace std;
+
+CSRAW
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Collections;
+
+namespace UnityEngine
+{
+
+C++RAW
+ static void CleanupInputEvent(void* inputEvent){ delete (InputEvent*)inputEvent; };
+
+// A UnityGUI event.
+CSRAW [StructLayout (LayoutKind.Sequential)]
+CLASS Event
+
+CSRAW
+ // *undocumented
+ public Event () {
+ Init ();
+ }
+ THREAD_SAFE
+ CUSTOM private void Init () {
+ InputEvent* newEvent = new InputEvent ();
+ self.SetPtr(newEvent,CleanupInputEvent);
+ newEvent->Init();
+ }
+
+ // Copy an event
+ CSRAW public Event (Event other) {
+ if (other == null)
+ throw new ArgumentException ("Event to copy from is null.");
+ InitCopy (other);
+ }
+
+ // *undocumented
+ CSRAW private Event (IntPtr ptr) {
+ InitPtr (ptr);
+ }
+
+ // *undocumented
+ CSRAW ~Event () {
+ Cleanup ();
+ }
+ THREAD_SAFE
+ CUSTOM private void Cleanup () {
+ CleanupInputEvent(self.GetPtr());
+ }
+
+ THREAD_SAFE
+ CUSTOM private void InitCopy (Event other)
+ {
+ self.SetPtr(new InputEvent (*other), CleanupInputEvent);
+ }
+
+ THREAD_SAFE
+ CUSTOM private void InitPtr (IntPtr ptr)
+ {
+ self.SetPtr((InputEvent*)ptr, CleanupInputEvent);
+ }
+
+
+CSRAW
+ [System.NonSerialized] [NotRenamed]
+ internal IntPtr m_Ptr;
+
+ CUSTOM_PROP EventType rawType
+ { return self->type; }
+
+ // The type of event.
+ CUSTOM_PROP EventType type
+ { return IMGUI::GetEventType (GetGUIState(), *self); }
+ { self->type = value; }
+
+ CUSTOM EventType GetTypeForControl (int controlID)
+ { return IMGUI::GetEventTypeForControl (GetGUIState(), *self, controlID); }
+
+
+ /// Information about the current mouse or touch event, available during On*Event series of callbacks.
+ CONDITIONAL ENABLE_NEW_EVENT_SYSTEM
+ CUSTOM_PROP Touch touch { return self->touch; }
+
+ // The mouse position.
+ CSRAW public Vector2 mousePosition { get {
+ Vector2 tmp; Internal_GetMousePosition(out tmp); return tmp; }
+ set { Internal_SetMousePosition (value); }
+ }
+ CUSTOM private void Internal_SetMousePosition (Vector2 value)
+ {
+#if ENABLE_NEW_EVENT_SYSTEM
+ self->touch.pos = value;
+#else
+ self->mousePosition = value;
+#endif
+ }
+ CUSTOM private void Internal_GetMousePosition (out Vector2 value)
+ {
+#if ENABLE_NEW_EVENT_SYSTEM
+ *value = self->touch.pos;
+#else
+ *value = self->mousePosition;
+#endif
+ }
+
+
+ // The relative movement of the mouse compared to last event.
+ CSRAW public Vector2 delta { get {
+ Vector2 tmp; Internal_GetMouseDelta(out tmp); return tmp; }
+ set { Internal_SetMouseDelta (value); }
+ }
+ CUSTOM private void Internal_SetMouseDelta (Vector2 value)
+ {
+#if ENABLE_NEW_EVENT_SYSTEM
+ self->touch.deltaPos = value;
+#else
+ self->delta = value;
+#endif
+ }
+ CUSTOM private void Internal_GetMouseDelta (out Vector2 value)
+ {
+#if ENABLE_NEW_EVENT_SYSTEM
+ *value = self->touch.deltaPos;
+#else
+ *value = self->delta;
+#endif
+ }
+
+ OBSOLETE error Use HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
+ CSRAW public Ray mouseRay { get { return new Ray (Vector3.up, Vector3.up); } set { }}
+
+ // Which mouse button was pressed.
+ CUSTOM_PROP int button
+ { return self->button; }
+ { self->button = value; }
+
+ // Which modifier keys are held down.
+ CUSTOM_PROP EventModifiers modifiers
+ { return self->modifiers; }
+ { self->modifiers = value; }
+
+ // *undocumented*
+ CUSTOM_PROP float pressure
+ { return self->pressure; }
+ { self->pressure = value; }
+
+ // How many consecutive mouse clicks have we received.
+ // Detects consecutive clicks and prints them.
+ //
+ CUSTOM_PROP int clickCount
+ { return self->clickCount; }
+ { self->clickCount = value; }
+
+ // The character typed.
+ // Detects characters pressed and prints them.
+ //
+ CUSTOM_PROP char character
+ { return self->character; }
+ { self->character = value; }
+
+ // The name of an ExecuteCommand or ValidateCommand Event
+ CUSTOM_PROP string commandName
+ {
+ char* commandString = self->commandString;
+ return scripting_string_new(commandString == NULL ? "" : commandString);
+ }
+ {
+#if ENABLE_MONO
+ char* oldPtr = reinterpret_cast<char*>(self->commandString);
+ delete[] oldPtr;
+ char *str = mono_string_to_utf8 (value.str);
+ self->commandString = new char[strlen (str) + 1];
+ strcpy (self->commandString, str);
+#endif
+ }
+
+ // The raw key code for keyboard events.
+ CUSTOM_PROP KeyCode keyCode
+ { return self->keycode; }
+ { self->keycode = value; }
+
+ // Is Shift held down? (RO)
+ CSRAW public bool shift { get {
+ return (modifiers & EventModifiers.Shift) != 0; }
+ set { if (!value) modifiers &= ~EventModifiers.Shift; else modifiers |= EventModifiers.Shift; }
+ }
+
+ // Is Control key held down? (RO)
+ CSRAW public bool control { get {
+ return (modifiers & EventModifiers.Control) != 0; }
+ set { if (!value) modifiers &= ~EventModifiers.Control; else modifiers |= EventModifiers.Control; }
+ }
+
+ // Is Alt/Option key held down? (RO)
+ CSRAW public bool alt { get {
+ return (modifiers & EventModifiers.Alt) != 0; }
+ set { if (!value) modifiers &= ~EventModifiers.Alt; else modifiers |= EventModifiers.Alt; } }
+
+
+ // Is Command/Windows key held down? (RO)
+ CSRAW public bool command { get {
+ return (modifiers & EventModifiers.Command) != 0; }
+ set { if (!value) modifiers &= ~EventModifiers.Command; else modifiers |= EventModifiers.Command; }
+ }
+
+ // Is Caps Lock on? (RO)
+ CSRAW public bool capsLock { get {
+ return (modifiers & EventModifiers.CapsLock) != 0; }
+ set { if (!value) modifiers &= ~EventModifiers.CapsLock; else modifiers |= EventModifiers.CapsLock; }
+ }
+
+ // Is the current keypress on the numeric keyboard? (RO)
+ CSRAW public bool numeric { get {
+ return (modifiers & EventModifiers.Numeric) != 0; }
+ set { if (!value) modifiers &= ~EventModifiers.Shift; else modifiers |= EventModifiers.Shift; }
+ }
+
+ // Is the current keypress a function key? (RO)
+ CSRAW public bool functionKey { get { return (modifiers & EventModifiers.FunctionKey) != 0; } }
+
+ // The current event that's being processed right now.
+ // TODO: set this to null outside the event loop.
+ //
+ CSRAW public static Event current { get {
+ // return null if Event.current is queried outside OnGUI
+ // Only in editor because of backwards compat.
+ #if UNITY_EDITOR
+ if (GUIUtility.Internal_GetGUIDepth () > 0)
+ return s_Current;
+ else
+ return null;
+ #else
+ return s_Current;
+ #endif
+ }
+ set
+ {
+ if (value != null)
+ s_Current = value;
+ else
+ s_Current = s_MasterEvent;
+ Internal_SetNativeEvent (s_Current.m_Ptr);
+ }
+ }
+ CSRAW static Event s_Current;
+ CSRAW static Event s_MasterEvent;
+
+ CUSTOM static private void Internal_SetNativeEvent (IntPtr ptr)
+ {
+ GetGUIState().Internal_SetManagedEvent (ptr);
+ }
+
+ CSRAW static private void Internal_MakeMasterEventCurrent ()
+ {
+ if (s_MasterEvent == null)
+ s_MasterEvent = new Event ();
+ s_Current = s_MasterEvent;
+ Internal_SetNativeEvent (s_MasterEvent.m_Ptr);
+ }
+
+ // Use this event.
+ CUSTOM void Use () { self->Use(); }
+
+ // Is this event a keyboard event? (RO)
+ CSRAW public bool isKey { get {
+ EventType t = type; return t == EventType.KeyDown || t == EventType.KeyUp; }
+ }
+
+ // Is this event a mouse event? (RO)
+ CSRAW public bool isMouse { get {
+ EventType t = type; return t == EventType.MouseMove || t == EventType.MouseDown || t == EventType.MouseUp || t == EventType.MouseDrag; }
+ }
+
+ // Create a keyboard event.
+ CSRAW public static Event KeyboardEvent (string key) {
+ Event evt = new Event ();
+ evt.type = EventType.KeyDown;
+ // Can't use string.IsNullOrEmpty because it's not supported in NET 1.1
+ if (key == null || key == String.Empty)
+ return evt;
+ int startIdx = 0;
+ bool found = false;
+ do {
+ found = true;
+ if (startIdx >= key.Length)
+ { found = false; break; }
+ switch (key[startIdx]) {
+ case '&': // Alt
+ evt.modifiers |= EventModifiers.Alt; startIdx++;
+ break;
+ case '^': // Ctrl
+ evt.modifiers |= EventModifiers.Control; startIdx++;
+ break;
+ case '%':
+ evt.modifiers |= EventModifiers.Command; startIdx++;
+ break;
+ case '#':
+ evt.modifiers |= EventModifiers.Shift; startIdx++;
+ break;
+ default:
+ found = false;
+ break;
+ }
+ } while (found);
+ string subStr = key.Substring (startIdx, key.Length - startIdx).ToLower();
+ switch (subStr) {
+ case "[0]": evt.character = '0'; evt.keyCode = KeyCode.Keypad0; break;
+ case "[1]": evt.character = '1'; evt.keyCode = KeyCode.Keypad1; break;
+ case "[2]": evt.character = '2'; evt.keyCode = KeyCode.Keypad2; break;
+ case "[3]": evt.character = '3'; evt.keyCode = KeyCode.Keypad3; break;
+ case "[4]": evt.character = '4'; evt.keyCode = KeyCode.Keypad4; break;
+ case "[5]": evt.character = '5'; evt.keyCode = KeyCode.Keypad5; break;
+ case "[6]": evt.character = '6'; evt.keyCode = KeyCode.Keypad6; break;
+ case "[7]": evt.character = '7'; evt.keyCode = KeyCode.Keypad7; break;
+ case "[8]": evt.character = '8'; evt.keyCode = KeyCode.Keypad8; break;
+ case "[9]": evt.character = '9'; evt.keyCode = KeyCode.Keypad9; break;
+ case "[.]": evt.character = '.'; evt.keyCode = KeyCode.KeypadPeriod; break;
+ case "[/]": evt.character = '/'; evt.keyCode = KeyCode.KeypadDivide; break;
+ case "[-]": evt.character = '-'; evt.keyCode = KeyCode.KeypadMinus; break;
+ case "[+]": evt.character = '+'; evt.keyCode = KeyCode.KeypadPlus; break;
+ case "[=]": evt.character = '='; evt.keyCode = KeyCode.KeypadEquals; break;
+ case "[equals]": evt.character = '='; evt.keyCode = KeyCode.KeypadEquals; break;
+ case "[enter]": evt.character = '\n'; evt.keyCode = KeyCode.KeypadEnter; break;
+ case "up": /*evt.character = (char)63232; */evt.keyCode = KeyCode.UpArrow; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "down": /*evt.character = (char)63233; */evt.keyCode = KeyCode.DownArrow; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "left": /*evt.character = (char)63234; */evt.keyCode = KeyCode.LeftArrow; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "right": /*evt.character = (char)63235; */evt.keyCode = KeyCode.RightArrow; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "insert": evt.keyCode = KeyCode.Insert; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "home": /*evt.character = (char)63273; */evt.keyCode = KeyCode.Home; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "end": /*evt.character = (char)63275; */evt.keyCode = KeyCode.End; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "pgup": /*evt.character = (char)63276; */evt.keyCode = KeyCode.PageDown; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "page up": /*evt.character = (char)63276; */evt.keyCode = KeyCode.PageUp; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "pgdown": /*evt.character = (char)63277; */evt.keyCode = KeyCode.PageUp; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "page down": /*evt.character = (char)63277; */evt.keyCode = KeyCode.PageDown; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "backspace": /*evt.character = (char)127; */evt.keyCode = KeyCode.Backspace; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "delete": /*evt.character = (char)63272; */evt.keyCode = KeyCode.Delete; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "tab": /*evt.character = (char)9; */evt.keyCode = KeyCode.Tab; break;
+ case "f1": /*evt.character = (char)63236; */evt.keyCode = KeyCode.F1; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f2": /*evt.character = (char)63237; */evt.keyCode = KeyCode.F2; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f3": /*evt.character = (char)63238; */evt.keyCode = KeyCode.F3; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f4": /*evt.character = (char)63239; */evt.keyCode = KeyCode.F4; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f5": /*evt.character = (char)63240; */evt.keyCode = KeyCode.F5; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f6": /*evt.character = (char)63241; */evt.keyCode = KeyCode.F6; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f7": /*evt.character = (char)63242; */evt.keyCode = KeyCode.F7; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f8": /*evt.character = (char)63243; */evt.keyCode = KeyCode.F8; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f9": /*evt.character = (char)63244; */evt.keyCode = KeyCode.F9; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f10": /*evt.character = (char)63245; */evt.keyCode = KeyCode.F10; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f11": /*evt.character = (char)63246; */evt.keyCode = KeyCode.F11; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f12": /*evt.character = (char)63247; */evt.keyCode = KeyCode.F12; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f13": /*evt.character = (char)63248; */evt.keyCode = KeyCode.F13; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f14": /*evt.character = (char)63249; */evt.keyCode = KeyCode.F14; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "f15": /*evt.character = (char)63250; */evt.keyCode = KeyCode.F15; evt.modifiers |= EventModifiers.FunctionKey; break;
+ case "[esc]": evt.keyCode = KeyCode.Escape; break;
+ case "return": evt.character = '\n'; evt.keyCode = KeyCode.Return; evt.modifiers &= ~EventModifiers.FunctionKey; break;
+ case "space": evt.keyCode = KeyCode.Space; evt.character = ' '; evt.modifiers &= ~EventModifiers.FunctionKey; break;
+ default:
+ if (subStr.Length != 1)
+ {
+ // soren: try this first
+ try {
+ evt.keyCode = (KeyCode)Enum.Parse(typeof(KeyCode), subStr, true);
+ }
+ catch (ArgumentException)
+ {
+ Debug.LogError (UnityString.Format ("Unable to find key name that matches '{0}'", subStr));
+ }
+ }
+ else
+ {
+ evt.character = subStr.ToLower()[0];
+ evt.keyCode = (KeyCode)evt.character;
+ if ((int)evt.modifiers != 0)
+ evt.character = (char)0;
+ }
+ break;
+ }
+ return evt;
+ }
+
+ // Calculate the hash code
+ CSRAW public override int GetHashCode( ) {
+ int hc = 1;
+ if (isKey)
+ hc = (ushort)keyCode;
+ if (isMouse)
+ hc = mousePosition.GetHashCode ();
+ hc = hc*37 | (int)modifiers;
+// Debug.Log (hc + " GetHashCode of " + ToString());
+ return hc;
+ }
+
+
+ CSRAW public override bool Equals (object obj) {
+ if (obj == null)
+ return false;
+ if (Object.ReferenceEquals (this, obj))
+ return true;
+ if (obj.GetType () != GetType())
+ return false;
+
+
+ Event rhs = (Event)obj;
+ if (type != rhs.type || modifiers != rhs.modifiers)
+ return false;
+ if (isKey)
+ return keyCode == rhs.keyCode && modifiers == rhs.modifiers;
+ if (isMouse)
+ return mousePosition == rhs.mousePosition;
+ return false;
+ }
+
+
+
+ CSRAW public override string ToString( )
+ {
+ if (isKey) {
+ if ((int)character == 0)
+ return UnityString.Format ("Event:{0} Character:\\0 Modifiers:{1} KeyCode:{2}", type, modifiers, keyCode);
+ else {
+ return UnityString.Format ("Event:" +type + " Character:" + (int)(character) + " Modifiers:" + modifiers + " KeyCode:" + keyCode);
+ }
+ }
+ if (isMouse)
+ return UnityString.Format ("Event: {0} Position: {1} Modifiers: {2}", type, mousePosition, modifiers);
+
+ if (type == EventType.ExecuteCommand || type == EventType.ValidateCommand)
+ return UnityString.Format ("Event: {0} \"{1}\"", type, commandName);
+
+ return "" + type;
+ }
+C++RAW
+
+
+END
+
+
+// Key codes returned by Event.keyCode. These map directly to a physical key on the keyboard.
+ENUM KeyCode
+ // Not assigned (never returned as the result of a keystroke)
+ None = 0,
+ // The backspace key
+ Backspace = 8,
+ // The forward delete key
+ Delete = 127,
+ // The tab key
+ Tab = 9,
+ // The Clear key
+ Clear = 12,
+ // Return key
+ Return = 13,
+ // Pause on PC machines
+ Pause = 19,
+ // Escape key
+ Escape = 27,
+ // Space key
+ Space = 32,
+
+ // Numeric keypad 0
+ Keypad0 = 256,
+ // Numeric keypad 1
+ Keypad1 = 257,
+ // Numeric keypad 2
+ Keypad2 = 258,
+ // Numeric keypad 3
+ Keypad3 = 259,
+ // Numeric keypad 4
+ Keypad4 = 260,
+ // Numeric keypad 5
+ Keypad5 = 261,
+ // Numeric keypad 6
+ Keypad6 = 262,
+ // Numeric keypad 7
+ Keypad7 = 263,
+ // Numeric keypad 8
+ Keypad8 = 264,
+ // Numeric keypad 9
+ Keypad9 = 265,
+ // Numeric keypad '.'
+ KeypadPeriod = 266,
+ // Numeric keypad '/'
+ KeypadDivide = 267,
+ // Numeric keypad '*'
+ KeypadMultiply = 268,
+ // Numeric keypad '-'
+ KeypadMinus = 269,
+ // Numeric keypad '+'
+ KeypadPlus = 270,
+ // Numeric keypad enter
+ KeypadEnter = 271,
+ // Numeric keypad '='
+ KeypadEquals = 272,
+
+ // Up arrow key
+ UpArrow = 273,
+ // Down arrow key
+ DownArrow = 274,
+ // Right arrow key
+ RightArrow = 275,
+ // Left arrow key
+ LeftArrow = 276,
+ // Insert key key
+ Insert = 277,
+ // Home key
+ Home = 278,
+ // End key
+ End = 279,
+ // Page up
+ PageUp = 280,
+ // Page down
+ PageDown = 281,
+
+ // F1 function key
+ F1 = 282,
+ // F2 function key
+ F2 = 283,
+ // F3 function key
+ F3 = 284,
+ // F4 function key
+ F4 = 285,
+ // F5 function key
+ F5 = 286,
+ // F6 function key
+ F6 = 287,
+ // F7 function key
+ F7 = 288,
+ // F8 function key
+ F8 = 289,
+ // F9 function key
+ F9 = 290,
+ // F10 function key
+ F10 = 291,
+ // F11 function key
+ F11 = 292,
+ // F12 function key
+ F12 = 293,
+ // F13 function key
+ F13 = 294,
+ // F14 function key
+ F14 = 295,
+ // F15 function key
+ F15 = 296,
+
+ // The '0' key on the top of the alphanumeric keyboard.
+ Alpha0 = 48,
+ // The '1' key on the top of the alphanumeric keyboard.
+ Alpha1 = 49,
+ // The '2' key on the top of the alphanumeric keyboard.
+ Alpha2 = 50,
+ // The '3' key on the top of the alphanumeric keyboard.
+ Alpha3 = 51,
+ // The '4' key on the top of the alphanumeric keyboard.
+ Alpha4 = 52,
+ // The '5' key on the top of the alphanumeric keyboard.
+ Alpha5 = 53,
+ // The '6' key on the top of the alphanumeric keyboard.
+ Alpha6 = 54,
+ // The '7' key on the top of the alphanumeric keyboard.
+ Alpha7 = 55,
+ // The '8' key on the top of the alphanumeric keyboard.
+ Alpha8 = 56,
+ // The '9' key on the top of the alphanumeric keyboard.
+ Alpha9 = 57,
+
+ // Exclamation mark key '!'
+ Exclaim = 33,
+ // Double quote key '"'
+ DoubleQuote = 34,
+ // Hash key '#'
+ Hash = 35,
+ // Dollar sign key '$'
+ Dollar = 36,
+ // Ampersand key '&'
+ Ampersand = 38,
+ // Quote key '
+ Quote = 39,
+ // Left Parenthesis key '('
+ LeftParen = 40,
+ // Right Parenthesis key ')'
+ RightParen = 41,
+ // Asterisk key '*'
+ Asterisk = 42,
+ // Plus key '+'
+ Plus = 43,
+ // Comma ',' key
+ Comma = 44,
+
+ // Minus '-' key
+ Minus = 45,
+ // Period '.' key
+ Period = 46,
+ // Slash '/' key
+ Slash = 47,
+
+ // Colon ':' key
+ Colon = 58,
+ // Semicolon ';' key
+ Semicolon = 59,
+ // Less than '<' key
+ Less = 60,
+ // Equals '=' key
+ Equals = 61,
+ // Greater than '>' key
+ Greater = 62,
+ // Question mark '?' key
+ Question = 63,
+ // At key '@'
+ At = 64,
+
+ // Left square bracket key '['
+ LeftBracket = 91,
+ // Backslash key '\'
+ Backslash = 92,
+ // Right square bracket key ']'
+ RightBracket = 93,
+ // Caret key '^'
+ Caret = 94,
+ // Underscore '_' key
+ Underscore = 95,
+ // Back quote key '`'
+ BackQuote = 96,
+
+ // 'a' key
+ A = 97,
+ // 'b' key
+ B = 98,
+ // 'c' key
+ C = 99,
+ // 'd' key
+ D = 100,
+ // 'e' key
+ E = 101,
+ // 'f' key
+ F = 102,
+ // 'g' key
+ G = 103,
+ // 'h' key
+ H = 104,
+ // 'i' key
+ I = 105,
+ // 'j' key
+ J = 106,
+ // 'k' key
+ K = 107,
+ // 'l' key
+ L = 108,
+ // 'm' key
+ M = 109,
+ // 'n' key
+ N = 110,
+ // 'o' key
+ O = 111,
+ // 'p' key
+ P = 112,
+ // 'q' key
+ Q = 113,
+ // 'r' key
+ R = 114,
+ // 's' key
+ S = 115,
+ // 't' key
+ T = 116,
+ // 'u' key
+ U = 117,
+ // 'v' key
+ V = 118,
+ // 'w' key
+ W = 119,
+ // 'x' key
+ X = 120,
+ // 'y' key
+ Y = 121,
+ // 'z' key
+ Z = 122,
+
+ // Numlock key
+ Numlock = 300,
+ // Capslock key
+ CapsLock = 301,
+ // Scroll lock key
+ ScrollLock = 302,
+ // Right shift key
+ RightShift = 303,
+ // Left shift key
+ LeftShift = 304,
+ // Right Control key
+ RightControl = 305,
+ // Left Control key
+ LeftControl = 306,
+ // Right Alt key
+ RightAlt = 307,
+ // Left Alt key
+ LeftAlt = 308,
+
+ // Left Command key
+ LeftCommand = 310,
+ // Left Command key
+ LeftApple = 310,
+ // Left Windows key
+ LeftWindows = 311,
+ // Right Command key
+ RightCommand = 309,
+ // Right Command key
+ RightApple = 309,
+ // Right Windows key
+ RightWindows = 312,
+ // Alt Gr key
+ AltGr = 313,
+
+ // Help key
+ Help = 315,
+ // Print key
+ Print = 316,
+ // Sys Req key
+ SysReq = 317,
+ // Break key
+ Break = 318,
+ // Menu key
+ Menu = 319,
+
+ // First (primary) mouse button
+ Mouse0 = 323,
+ // Second (secondary) mouse button
+ Mouse1 = 324,
+ // Third mouse button
+ Mouse2 = 325,
+ // Fourth mouse button
+ Mouse3 = 326,
+ // Fifth mouse button
+ Mouse4 = 327,
+ // Sixth mouse button
+ Mouse5 = 328,
+ // Seventh mouse button
+ Mouse6 = 329,
+
+ // Button 0 on any joystick
+ JoystickButton0 = 330,
+ // Button 1 on any joystick
+ JoystickButton1 = 331,
+ // Button 2 on any joystick
+ JoystickButton2 = 332,
+ // Button 3 on any joystick
+ JoystickButton3 = 333,
+ // Button 4 on any joystick
+ JoystickButton4 = 334,
+ // Button 5 on any joystick
+ JoystickButton5 = 335,
+ // Button 6 on any joystick
+ JoystickButton6 = 336,
+ // Button 7 on any joystick
+ JoystickButton7 = 337,
+ // Button 8 on any joystick
+ JoystickButton8 = 338,
+ // Button 9 on any joystick
+ JoystickButton9 = 339,
+ // Button 10 on any joystick
+ JoystickButton10 = 340,
+ // Button 11 on any joystick
+ JoystickButton11 = 341,
+ // Button 12 on any joystick
+ JoystickButton12 = 342,
+ // Button 13 on any joystick
+ JoystickButton13 = 343,
+ // Button 14 on any joystick
+ JoystickButton14 = 344,
+ // Button 15 on any joystick
+ JoystickButton15 = 345,
+ // Button 16 on any joystick
+ JoystickButton16 = 346,
+ // Button 17 on any joystick
+ JoystickButton17 = 347,
+ // Button 18 on any joystick
+ JoystickButton18 = 348,
+ // Button 19 on any joystick
+ JoystickButton19 = 349,
+
+ // Button 0 on first joystick
+ Joystick1Button0 = 350,
+ // Button 1 on first joystick
+ Joystick1Button1 = 351,
+ // Button 2 on first joystick
+ Joystick1Button2 = 352,
+ // Button 3 on first joystick
+ Joystick1Button3 = 353,
+ // Button 4 on first joystick
+ Joystick1Button4 = 354,
+ // Button 5 on first joystick
+ Joystick1Button5 = 355,
+ // Button 6 on first joystick
+ Joystick1Button6 = 356,
+ // Button 7 on first joystick
+ Joystick1Button7 = 357,
+ // Button 8 on first joystick
+ Joystick1Button8 = 358,
+ // Button 9 on first joystick
+ Joystick1Button9 = 359,
+ // Button 10 on first joystick
+ Joystick1Button10 = 360,
+ // Button 11 on first joystick
+ Joystick1Button11 = 361,
+ // Button 12 on first joystick
+ Joystick1Button12 = 362,
+ // Button 13 on first joystick
+ Joystick1Button13 = 363,
+ // Button 14 on first joystick
+ Joystick1Button14 = 364,
+ // Button 15 on first joystick
+ Joystick1Button15 = 365,
+ // Button 16 on first joystick
+ Joystick1Button16 = 366,
+ // Button 17 on first joystick
+ Joystick1Button17 = 367,
+ // Button 18 on first joystick
+ Joystick1Button18 = 368,
+ // Button 19 on first joystick
+ Joystick1Button19 = 369,
+
+ // Button 0 on second joystick
+ Joystick2Button0 = 370,
+ // Button 1 on second joystick
+ Joystick2Button1 = 371,
+ // Button 2 on second joystick
+ Joystick2Button2 = 372,
+ // Button 3 on second joystick
+ Joystick2Button3 = 373,
+ // Button 4 on second joystick
+ Joystick2Button4 = 374,
+ // Button 5 on second joystick
+ Joystick2Button5 = 375,
+ // Button 6 on second joystick
+ Joystick2Button6 = 376,
+ // Button 7 on second joystick
+ Joystick2Button7 = 377,
+ // Button 8 on second joystick
+ Joystick2Button8 = 378,
+ // Button 9 on second joystick
+ Joystick2Button9 = 379,
+ // Button 10 on second joystick
+ Joystick2Button10 = 380,
+ // Button 11 on second joystick
+ Joystick2Button11 = 381,
+ // Button 12 on second joystick
+ Joystick2Button12 = 382,
+ // Button 13 on second joystick
+ Joystick2Button13 = 383,
+ // Button 14 on second joystick
+ Joystick2Button14 = 384,
+ // Button 15 on second joystick
+ Joystick2Button15 = 385,
+ // Button 16 on second joystick
+ Joystick2Button16 = 386,
+ // Button 17 on second joystick
+ Joystick2Button17 = 387,
+ // Button 18 on second joystick
+ Joystick2Button18 = 388,
+ // Button 19 on second joystick
+ Joystick2Button19 = 389,
+
+ // Button 0 on third joystick
+ Joystick3Button0 = 390,
+ // Button 1 on third joystick
+ Joystick3Button1 = 391,
+ // Button 2 on third joystick
+ Joystick3Button2 = 392,
+ // Button 3 on third joystick
+ Joystick3Button3 = 393,
+ // Button 4 on third joystick
+ Joystick3Button4 = 394,
+ // Button 5 on third joystick
+ Joystick3Button5 = 395,
+ // Button 6 on third joystick
+ Joystick3Button6 = 396,
+ // Button 7 on third joystick
+ Joystick3Button7 = 397,
+ // Button 8 on third joystick
+ Joystick3Button8 = 398,
+ // Button 9 on third joystick
+ Joystick3Button9 = 399,
+ // Button 10 on third joystick
+ Joystick3Button10 = 400,
+ // Button 11 on third joystick
+ Joystick3Button11 = 401,
+ // Button 12 on third joystick
+ Joystick3Button12 = 402,
+ // Button 13 on third joystick
+ Joystick3Button13 = 403,
+ // Button 14 on third joystick
+ Joystick3Button14 = 404,
+ // Button 15 on third joystick
+ Joystick3Button15 = 405,
+ // Button 16 on third joystick
+ Joystick3Button16 = 406,
+ // Button 17 on third joystick
+ Joystick3Button17 = 407,
+ // Button 18 on third joystick
+ Joystick3Button18 = 408,
+ // Button 19 on third joystick
+ Joystick3Button19 = 409,
+
+ // Button 0 on forth joystick
+ Joystick4Button0 = 410,
+ // Button 1 on forth joystick
+ Joystick4Button1 = 411,
+ // Button 2 on forth joystick
+ Joystick4Button2 = 412,
+ // Button 3 on forth joystick
+ Joystick4Button3 = 413,
+ // Button 4 on forth joystick
+ Joystick4Button4 = 414,
+ // Button 5 on forth joystick
+ Joystick4Button5 = 415,
+ // Button 6 on forth joystick
+ Joystick4Button6 = 416,
+ // Button 7 on forth joystick
+ Joystick4Button7 = 417,
+ // Button 8 on forth joystick
+ Joystick4Button8 = 418,
+ // Button 9 on forth joystick
+ Joystick4Button9 = 419,
+ // Button 10 on forth joystick
+ Joystick4Button10 = 420,
+ // Button 11 on forth joystick
+ Joystick4Button11 = 421,
+ // Button 12 on forth joystick
+ Joystick4Button12 = 422,
+ // Button 13 on forth joystick
+ Joystick4Button13 = 423,
+ // Button 14 on forth joystick
+ Joystick4Button14 = 424,
+ // Button 15 on forth joystick
+ Joystick4Button15 = 425,
+ // Button 16 on forth joystick
+ Joystick4Button16 = 426,
+ // Button 17 on forth joystick
+ Joystick4Button17 = 427,
+ // Button 18 on forth joystick
+ Joystick4Button18 = 428,
+ // Button 19 on forth joystick
+ Joystick4Button19 = 429,
+
+ // We could expose all 10 joysticks here, but I think that a user would rarely want to explicitly
+ // specify a fifth or higher joystick (and they still can using the string version of Input.KeyDown).
+ // Four joysticks, however, are a common setup (especially on consoles), and we've had a bug report
+ // for only exposing three, so I added a forth.
+END
+
+
+
+// Types of UnityGUI input and processing events.
+ENUM EventType
+ // Mouse button was pressed.
+ MouseDown = 0,
+ // Mouse button was released.
+ MouseUp = 1,
+ // Mouse was moved (editor views only).
+ MouseMove = 2,
+ // Mouse was dragged.
+ MouseDrag = 3,
+ // A keyboard key was pressed.
+ KeyDown = 4,
+ // A keyboard key was released.
+ KeyUp = 5,
+ // The scroll wheel was moved.
+ ScrollWheel = 6,
+ // A repaint event. One is sent every frame.
+ Repaint = 7,
+ // A layout event.
+ Layout = 8,
+
+ // Editor only: drag & drop operation updated.
+ DragUpdated = 9,
+ // Editor only: drag & drop operation performed.
+ DragPerform = 10,
+ // Editor only: drag & drop operation exited.
+ DragExited = 15,
+
+ // [[Event]] should be ignored.
+ Ignore = 11,
+
+ // Already processed event.
+ Used = 12,
+
+ // Validates a special command (e.g. copy & paste)
+ ValidateCommand = 13,
+
+ // Execute a special command (eg. copy & paste)
+ ExecuteCommand = 14,
+
+ // User has right-clicked (or control-clicked on the mac).
+ ContextClick = 16,
+
+ OBSOLETE planned Please use EventType.MouseDown (with a capital M)
+ mouseDown = 0,
+ OBSOLETE planned Please use EventType.MouseUp (with a capital M)
+ mouseUp = 1,
+ OBSOLETE planned Please use EventType.MouseMove (with a capital M)
+ mouseMove = 2,
+ OBSOLETE planned Please use EventType.MouseDrag (with a capital M)
+ mouseDrag = 3,
+ OBSOLETE planned Please use EventType.KeyDown (with a capital K)
+ keyDown = 4,
+ OBSOLETE planned Please use EventType.KeyUp (with a capital K)
+ keyUp = 5,
+ OBSOLETE planned Please use EventType.ScrollWheel (with a capital S)
+ scrollWheel = 6,
+ OBSOLETE planned Please use EventType.Repaint (with a capital R)
+ repaint = 7,
+ OBSOLETE planned Please use EventType.Layout (with a capital L)
+ layout = 8,
+
+ OBSOLETE planned Please use EventType.DragUpdated (with a capital D)
+ dragUpdated = 9,
+ OBSOLETE planned Please use EventType.DragPerform (with a capital D)
+ dragPerform = 10,
+
+ OBSOLETE planned Please use EventType.Ignore (with a capital I)
+ ignore = 11,
+
+ OBSOLETE planned Please use EventType.Used (with a capital U)
+ used = 12
+END
+
+// Types of modifier key that can be active during a keystroke event.
+CSRAW [Flags]
+ENUM EventModifiers
+ // Shift key
+ Shift = 1,
+
+ // Control key
+ Control = 2,
+
+ // Alt key
+ Alt = 4,
+
+ // Command key (Mac)
+ Command = 8,
+
+ // Num lock key
+ Numeric = 16,
+
+ // Caps lock key
+ CapsLock = 32,
+
+ // Function key
+ FunctionKey = 64
+END
+
+
+CSRAW }