uint32 FHTML5Misc::GetKeyMap(uint16* KeyCodes, FString* KeyNames, uint32 MaxMappings) { #define ADDKEYMAP(KeyCode, KeyName) if (NumMappings<MaxMappings) { KeyCodes[NumMappings]=KeyCode; KeyNames[NumMappings]=KeyName; ++NumMappings; }; uint32 NumMappings = 0; if (KeyCodes && KeyNames && (MaxMappings > 0)) { ADDKEYMAP(SDL_SCANCODE_BACKSPACE, TEXT("BackSpace")); ADDKEYMAP(SDL_SCANCODE_TAB, TEXT("Tab")); ADDKEYMAP(SDL_SCANCODE_RETURN, TEXT("Enter")); ADDKEYMAP(SDL_SCANCODE_RETURN2, TEXT("Enter")); ADDKEYMAP(SDL_SCANCODE_KP_ENTER, TEXT("Enter")); ADDKEYMAP(SDL_SCANCODE_PAUSE, TEXT("Pause")); ADDKEYMAP(SDL_SCANCODE_ESCAPE, TEXT("Escape")); ADDKEYMAP(SDL_SCANCODE_SPACE, TEXT("SpaceBar")); ADDKEYMAP(SDL_SCANCODE_PAGEUP, TEXT("PageUp")); ADDKEYMAP(SDL_SCANCODE_PAGEDOWN, TEXT("PageDown")); ADDKEYMAP(SDL_SCANCODE_END, TEXT("End")); ADDKEYMAP(SDL_SCANCODE_HOME, TEXT("Home")); ADDKEYMAP(SDL_SCANCODE_LEFT, TEXT("Left")); ADDKEYMAP(SDL_SCANCODE_UP, TEXT("Up")); ADDKEYMAP(SDL_SCANCODE_RIGHT, TEXT("Right")); ADDKEYMAP(SDL_SCANCODE_DOWN, TEXT("Down")); ADDKEYMAP(SDL_SCANCODE_INSERT, TEXT("Insert")); ADDKEYMAP(SDL_SCANCODE_DELETE, TEXT("Delete")); ADDKEYMAP(SDL_SCANCODE_F1, TEXT("F1")); ADDKEYMAP(SDL_SCANCODE_F2, TEXT("F2")); ADDKEYMAP(SDL_SCANCODE_F3, TEXT("F3")); ADDKEYMAP(SDL_SCANCODE_F4, TEXT("F4")); ADDKEYMAP(SDL_SCANCODE_F5, TEXT("F5")); ADDKEYMAP(SDL_SCANCODE_F6, TEXT("F6")); ADDKEYMAP(SDL_SCANCODE_F7, TEXT("F7")); ADDKEYMAP(SDL_SCANCODE_F8, TEXT("F8")); ADDKEYMAP(SDL_SCANCODE_F9, TEXT("F9")); ADDKEYMAP(SDL_SCANCODE_F10, TEXT("F10")); ADDKEYMAP(SDL_SCANCODE_F11, TEXT("F11")); ADDKEYMAP(SDL_SCANCODE_F12, TEXT("F12")); ADDKEYMAP(SDL_SCANCODE_CAPSLOCK, TEXT("CapsLock")); ADDKEYMAP(SDL_SCANCODE_LCTRL, TEXT("LeftControl")); ADDKEYMAP(SDL_SCANCODE_LSHIFT, TEXT("LeftShift")); ADDKEYMAP(SDL_SCANCODE_LALT, TEXT("LeftAlt")); ADDKEYMAP(SDL_SCANCODE_RCTRL, TEXT("RightControl")); ADDKEYMAP(SDL_SCANCODE_RSHIFT, TEXT("RightShift")); ADDKEYMAP(SDL_SCANCODE_RALT, TEXT("RightAlt")); } check(NumMappings < MaxMappings); return NumMappings; return NumMappings; }
uint32 FGenericPlatformMisc::GetStandardPrintableKeyMap(uint16* KeyCodes, std::tstring* KeyNames, uint32 MaxMappings, bool bMapUppercaseKeys, bool bMapLowercaseKeys) { uint32 NumMappings = 0; #define ADDKEYMAP(KeyCode, KeyName) if (NumMappings<MaxMappings) { KeyCodes[NumMappings]=KeyCode; KeyNames[NumMappings]=KeyName; ++NumMappings; }; ADDKEYMAP( '0', TEXT("Zero") ); ADDKEYMAP( '1', TEXT("One") ); ADDKEYMAP( '2', TEXT("Two") ); ADDKEYMAP( '3', TEXT("Three") ); ADDKEYMAP( '4', TEXT("Four") ); ADDKEYMAP( '5', TEXT("Five") ); ADDKEYMAP( '6', TEXT("Six") ); ADDKEYMAP( '7', TEXT("Seven") ); ADDKEYMAP( '8', TEXT("Eight") ); ADDKEYMAP( '9', TEXT("Nine") ); // we map both upper and lower if (bMapUppercaseKeys) { ADDKEYMAP( 'A', TEXT("A") ); ADDKEYMAP( 'B', TEXT("B") ); ADDKEYMAP( 'C', TEXT("C") ); ADDKEYMAP( 'D', TEXT("D") ); ADDKEYMAP( 'E', TEXT("E") ); ADDKEYMAP( 'F', TEXT("F") ); ADDKEYMAP( 'G', TEXT("G") ); ADDKEYMAP( 'H', TEXT("H") ); ADDKEYMAP( 'I', TEXT("I") ); ADDKEYMAP( 'J', TEXT("J") ); ADDKEYMAP( 'K', TEXT("K") ); ADDKEYMAP( 'L', TEXT("L") ); ADDKEYMAP( 'M', TEXT("M") ); ADDKEYMAP( 'N', TEXT("N") ); ADDKEYMAP( 'O', TEXT("O") ); ADDKEYMAP( 'P', TEXT("P") ); ADDKEYMAP( 'Q', TEXT("Q") ); ADDKEYMAP( 'R', TEXT("R") ); ADDKEYMAP( 'S', TEXT("S") ); ADDKEYMAP( 'T', TEXT("T") ); ADDKEYMAP( 'U', TEXT("U") ); ADDKEYMAP( 'V', TEXT("V") ); ADDKEYMAP( 'W', TEXT("W") ); ADDKEYMAP( 'X', TEXT("X") ); ADDKEYMAP( 'Y', TEXT("Y") ); ADDKEYMAP( 'Z', TEXT("Z") ); } if (bMapLowercaseKeys) { ADDKEYMAP( 'a', TEXT("A") ); ADDKEYMAP( 'b', TEXT("B") ); ADDKEYMAP( 'c', TEXT("C") ); ADDKEYMAP( 'd', TEXT("D") ); ADDKEYMAP( 'e', TEXT("E") ); ADDKEYMAP( 'f', TEXT("F") ); ADDKEYMAP( 'g', TEXT("G") ); ADDKEYMAP( 'h', TEXT("H") ); ADDKEYMAP( 'i', TEXT("I") ); ADDKEYMAP( 'j', TEXT("J") ); ADDKEYMAP( 'k', TEXT("K") ); ADDKEYMAP( 'l', TEXT("L") ); ADDKEYMAP( 'm', TEXT("M") ); ADDKEYMAP( 'n', TEXT("N") ); ADDKEYMAP( 'o', TEXT("O") ); ADDKEYMAP( 'p', TEXT("P") ); ADDKEYMAP( 'q', TEXT("Q") ); ADDKEYMAP( 'r', TEXT("R") ); ADDKEYMAP( 's', TEXT("S") ); ADDKEYMAP( 't', TEXT("T") ); ADDKEYMAP( 'u', TEXT("U") ); ADDKEYMAP( 'v', TEXT("V") ); ADDKEYMAP( 'w', TEXT("W") ); ADDKEYMAP( 'x', TEXT("X") ); ADDKEYMAP( 'y', TEXT("Y") ); ADDKEYMAP( 'z', TEXT("Z") ); } ADDKEYMAP( ';', TEXT("Semicolon") ); ADDKEYMAP( '=', TEXT("Equals") ); ADDKEYMAP( ',', TEXT("Comma") ); ADDKEYMAP( '-', TEXT("Underscore") ); ADDKEYMAP( '.', TEXT("Period") ); ADDKEYMAP( '/', TEXT("Slash") ); ADDKEYMAP( '`', TEXT("Tilde") ); ADDKEYMAP( '[', TEXT("LeftBracket") ); ADDKEYMAP( '\\', TEXT("Backslash") ); ADDKEYMAP( ']', TEXT("RightBracket") ); ADDKEYMAP( '\'', TEXT("Quote") ); ADDKEYMAP( ' ', TEXT("SpaceBar") ); return NumMappings; }
uint32 FWinRTMisc::GetKeyMap(uint16* KeyCodes, FString* KeyNames, uint32 MaxMappings) { #define ADDKEYMAP(KeyCode, KeyName) if (NumMappings<MaxMappings) { KeyCodes[NumMappings]=KeyCode; KeyNames[NumMappings]=KeyName; ++NumMappings; }; uint32 NumMappings = 0; if ( KeyCodes && KeyNames && (MaxMappings > 0) ) { ADDKEYMAP(VK_LBUTTON, TEXT("LeftMouseButton")); ADDKEYMAP(VK_RBUTTON, TEXT("RightMouseButton")); ADDKEYMAP(VK_MBUTTON, TEXT("MiddleMouseButton")); ADDKEYMAP(VK_XBUTTON1, TEXT("ThumbMouseButton")); ADDKEYMAP(VK_XBUTTON2, TEXT("ThumbMouseButton2")); ADDKEYMAP(VK_BACK, TEXT("BackSpace")); ADDKEYMAP(VK_TAB, TEXT("Tab")); ADDKEYMAP(VK_RETURN, TEXT("Enter")); ADDKEYMAP(VK_PAUSE, TEXT("Pause")); ADDKEYMAP(VK_CAPITAL, TEXT("CapsLock")); ADDKEYMAP(VK_ESCAPE, TEXT("Escape")); ADDKEYMAP(VK_SPACE, TEXT("SpaceBar")); ADDKEYMAP(VK_PRIOR, TEXT("PageUp")); ADDKEYMAP(VK_NEXT, TEXT("PageDown")); ADDKEYMAP(VK_END, TEXT("End")); ADDKEYMAP(VK_HOME, TEXT("Home")); ADDKEYMAP(VK_LEFT, TEXT("Left")); ADDKEYMAP(VK_UP, TEXT("Up")); ADDKEYMAP(VK_RIGHT, TEXT("Right")); ADDKEYMAP(VK_DOWN, TEXT("Down")); ADDKEYMAP(VK_INSERT, TEXT("Insert")); ADDKEYMAP(VK_DELETE, TEXT("Delete")); ADDKEYMAP(VK_NUMPAD0, TEXT("NumPadZero")); ADDKEYMAP(VK_NUMPAD1, TEXT("NumPadOne")); ADDKEYMAP(VK_NUMPAD2, TEXT("NumPadTwo")); ADDKEYMAP(VK_NUMPAD3, TEXT("NumPadThree")); ADDKEYMAP(VK_NUMPAD4, TEXT("NumPadFour")); ADDKEYMAP(VK_NUMPAD5, TEXT("NumPadFive")); ADDKEYMAP(VK_NUMPAD6, TEXT("NumPadSix")); ADDKEYMAP(VK_NUMPAD7, TEXT("NumPadSeven")); ADDKEYMAP(VK_NUMPAD8, TEXT("NumPadEight")); ADDKEYMAP(VK_NUMPAD9, TEXT("NumPadNine")); ADDKEYMAP(VK_MULTIPLY, TEXT("Multiply")); ADDKEYMAP(VK_ADD, TEXT("Add")); ADDKEYMAP(VK_SUBTRACT, TEXT("Subtract")); ADDKEYMAP(VK_DECIMAL, TEXT("Decimal")); ADDKEYMAP(VK_DIVIDE, TEXT("Divide")); ADDKEYMAP(VK_F1, TEXT("F1")); ADDKEYMAP(VK_F2, TEXT("F2")); ADDKEYMAP(VK_F3, TEXT("F3")); ADDKEYMAP(VK_F4, TEXT("F4")); ADDKEYMAP(VK_F5, TEXT("F5")); ADDKEYMAP(VK_F6, TEXT("F6")); ADDKEYMAP(VK_F7, TEXT("F7")); ADDKEYMAP(VK_F8, TEXT("F8")); ADDKEYMAP(VK_F9, TEXT("F9")); ADDKEYMAP(VK_F10, TEXT("F10")); ADDKEYMAP(VK_F11, TEXT("F11")); ADDKEYMAP(VK_F12, TEXT("F12")); ADDKEYMAP(VK_NUMLOCK, TEXT("NumLock")); ADDKEYMAP(VK_SCROLL, TEXT("ScrollLock")); ADDKEYMAP(VK_LSHIFT, TEXT("LeftShift")); ADDKEYMAP(VK_RSHIFT, TEXT("RightShift")); ADDKEYMAP(VK_LCONTROL, TEXT("LeftControl")); ADDKEYMAP(VK_RCONTROL, TEXT("RightControl")); ADDKEYMAP(VK_LMENU, TEXT("LeftAlt")); ADDKEYMAP(VK_RMENU, TEXT("RightAlt")); } check(NumMappings < MaxMappings); return NumMappings; }