@ -1304,7 +1304,7 @@ std::vector<OptionEntryBase *> LanguageOptions::GetEntries()
KeymapperOptions : : KeymapperOptions ( )
KeymapperOptions : : KeymapperOptions ( )
: OptionCategoryBase ( " Keymapping " , N_ ( " Keymapping " ) , N_ ( " Keymapping Settings " ) )
: OptionCategoryBase ( " Keymapping " , N_ ( " Keymapping " ) , N_ ( " Keymapping Settings " ) )
{
{
// Insert all supported keys: a-z, 0-9 and F1-F1 2.
// Insert all supported keys: a-z, 0-9 and F1-F24 .
keyIDToKeyName . reserve ( ( ' Z ' - ' A ' + 1 ) + ( ' 9 ' - ' 0 ' + 1 ) + 12 ) ;
keyIDToKeyName . reserve ( ( ' Z ' - ' A ' + 1 ) + ( ' 9 ' - ' 0 ' + 1 ) + 12 ) ;
for ( char c = ' A ' ; c < = ' Z ' ; + + c ) {
for ( char c = ' A ' ; c < = ' Z ' ; + + c ) {
keyIDToKeyName . emplace ( c , std : : string ( 1 , c ) ) ;
keyIDToKeyName . emplace ( c , std : : string ( 1 , c ) ) ;
@ -1315,12 +1315,18 @@ KeymapperOptions::KeymapperOptions()
for ( int i = 0 ; i < 12 ; + + i ) {
for ( int i = 0 ; i < 12 ; + + i ) {
keyIDToKeyName . emplace ( SDLK_F1 + i , StrCat ( " F " , i + 1 ) ) ;
keyIDToKeyName . emplace ( SDLK_F1 + i , StrCat ( " F " , i + 1 ) ) ;
}
}
for ( int i = 0 ; i < 12 ; + + i ) {
keyIDToKeyName . emplace ( SDLK_F13 + i , StrCat ( " F " , i + 13 ) ) ;
}
keyIDToKeyName . emplace ( SDLK_LALT , " LALT " ) ;
keyIDToKeyName . emplace ( SDLK_LALT , " LALT " ) ;
keyIDToKeyName . emplace ( SDLK_RALT , " RALT " ) ;
keyIDToKeyName . emplace ( SDLK_RALT , " RALT " ) ;
keyIDToKeyName . emplace ( SDLK_SPACE , " SPACE " ) ;
keyIDToKeyName . emplace ( SDLK_SPACE , " SPACE " ) ;
keyIDToKeyName . emplace ( SDLK_RCTRL , " RCONTROL " ) ;
keyIDToKeyName . emplace ( SDLK_RCTRL , " RCONTROL " ) ;
keyIDToKeyName . emplace ( SDLK_LCTRL , " LCONTROL " ) ;
keyIDToKeyName . emplace ( SDLK_LCTRL , " LCONTROL " ) ;
keyIDToKeyName . emplace ( SDLK_PRINTSCREEN , " PRINT " ) ;
keyIDToKeyName . emplace ( SDLK_PRINTSCREEN , " PRINT " ) ;
keyIDToKeyName . emplace ( SDLK_PAUSE , " PAUSE " ) ;
keyIDToKeyName . emplace ( SDLK_PAUSE , " PAUSE " ) ;
keyIDToKeyName . emplace ( SDLK_TAB , " TAB " ) ;
keyIDToKeyName . emplace ( SDLK_TAB , " TAB " ) ;
@ -1328,6 +1334,29 @@ KeymapperOptions::KeymapperOptions()
keyIDToKeyName . emplace ( SDL_BUTTON_X1 | KeymapperMouseButtonMask , " X1MOUSE " ) ;
keyIDToKeyName . emplace ( SDL_BUTTON_X1 | KeymapperMouseButtonMask , " X1MOUSE " ) ;
keyIDToKeyName . emplace ( SDL_BUTTON_X2 | KeymapperMouseButtonMask , " X2MOUSE " ) ;
keyIDToKeyName . emplace ( SDL_BUTTON_X2 | KeymapperMouseButtonMask , " X2MOUSE " ) ;
keyIDToKeyName . emplace ( SDLK_BACKQUOTE , " ` " ) ;
keyIDToKeyName . emplace ( SDLK_LEFTBRACKET , " [ " ) ;
keyIDToKeyName . emplace ( SDLK_RIGHTBRACKET , " ] " ) ;
keyIDToKeyName . emplace ( SDLK_BACKSLASH , " \\ " ) ;
keyIDToKeyName . emplace ( SDLK_SEMICOLON , " ; " ) ;
keyIDToKeyName . emplace ( SDLK_QUOTE , " ' " ) ;
keyIDToKeyName . emplace ( SDLK_COMMA , " , " ) ;
keyIDToKeyName . emplace ( SDLK_PERIOD , " . " ) ;
keyIDToKeyName . emplace ( SDLK_SLASH , " / " ) ;
keyIDToKeyName . emplace ( SDLK_BACKSPACE , " BACKSPACE " ) ;
keyIDToKeyName . emplace ( SDLK_CAPSLOCK , " CAPSLOCK " ) ;
keyIDToKeyName . emplace ( SDLK_SCROLLLOCK , " SCROLLLOCK " ) ;
keyIDToKeyName . emplace ( SDLK_INSERT , " INSERT " ) ;
keyIDToKeyName . emplace ( SDLK_DELETE , " DELETE " ) ;
keyIDToKeyName . emplace ( SDLK_HOME , " HOME " ) ;
keyIDToKeyName . emplace ( SDLK_END , " END " ) ;
keyIDToKeyName . emplace ( SDLK_KP_DIVIDE , " KEYPAD / " ) ;
keyIDToKeyName . emplace ( SDLK_KP_MULTIPLY , " KEYPAD * " ) ;
keyIDToKeyName . emplace ( SDLK_KP_ENTER , " KEYPAD ENTER " ) ;
keyIDToKeyName . emplace ( SDLK_KP_PERIOD , " KEYPAD DECIMAL " ) ;
keyNameToKeyID . reserve ( keyIDToKeyName . size ( ) ) ;
keyNameToKeyID . reserve ( keyIDToKeyName . size ( ) ) ;
for ( const auto & kv : keyIDToKeyName ) {
for ( const auto & kv : keyIDToKeyName ) {
keyNameToKeyID . emplace ( kv . second , kv . first ) ;
keyNameToKeyID . emplace ( kv . second , kv . first ) ;