48 static void kbGetInput(
int key,
int modifiers,
bool release,
int x,
int y )
56 keyBindings[modifiers][key].
function( keyBindings[modifiers][key].data,
PRESS );
58 keyBindings[modifiers][key].
function( keyBindings[modifiers][key].data,
RELEASE );
69 static const char _lomap[] =
"0123456789-=\';/.,`\\";
70 static const char _himap[] =
")!@#$%^&*(_+\":?><~|";
74 if ( ch == (ch&0xFF) ) {
75 const char *
c = strchr(
_lomap, ch );
85 if ( ch == (ch&0xFF) ) {
86 const char *
c = strchr(
_himap, ch );
101 void setActiveModifiersSDL( SDLMod mask )
104 ( ( mask&(KMOD_LSHIFT|KMOD_RSHIFT) ) ?
KB_MOD_SHIFT : 0 )
105 |( ( mask&(KMOD_LCTRL|KMOD_RCTRL) ) ?
KB_MOD_CTRL : 0 )
106 |( ( mask&(KMOD_LALT|KMOD_RALT) ) ?
KB_MOD_ALT : 0 ) );
116 setActiveModifiersSDL( SDL_GetModState() );
122 if (mod_name[0] ==
'\0')
125 if ( strstr( mod_name,
"shift" ) || strstr( mod_name,
"uppercase" ) || strstr( mod_name,
"caps" ) )
127 if ( strstr( mod_name,
"ctrl" ) || strstr( mod_name,
"cntrl" ) || strstr( mod_name,
"control" ) )
129 if ( strstr( mod_name,
"alt" ) || strstr( mod_name,
"alternate" ) )
135 return cntrlon ? KB_MOD_CTRL : ( alton ?
KB_MOD_ALT : (shifton ? KB_MOD_SHIFT : 0) );
139 bool shifton =
false;
149 modmask &= ~KB_MOD_SHIFT;
159 (shifton ? KB_MOD_SHIFT : 0)
161 |(ctrlon ? KB_MOD_CTRL : 0) );
163 int curmod =
getModifier( alton, ctrlon, shifton )&modmask;
215 keyBindings[mod][key].
function = handler;
216 keyBindings[mod][key].
data = data;
218 handler( std::string(),
RESET );