Add dead key support by exposing the "unknown" key

This commit is contained in:
Bart van Strien
2011-01-26 16:06:14 +01:00
parent 1c7e34715b
commit db1a2d12ff
4 changed files with 18 additions and 14 deletions
+2
View File
@@ -228,6 +228,8 @@ namespace event
{"power", love::keyboard::Keyboard::KEY_POWER},
{"euro", love::keyboard::Keyboard::KEY_EURO},
{"undo", love::keyboard::Keyboard::KEY_UNDO},
{"unknown", love::keyboard::Keyboard::KEY_UNKNOWN},
};
StringMap<love::keyboard::Keyboard::Key, love::keyboard::Keyboard::KEY_MAX_ENUM> Event::keys(Event::keyEntries, sizeof(Event::keyEntries));
+3 -1
View File
@@ -117,7 +117,7 @@ namespace sdl
case Event::TYPE_KEY_PRESSED:
e.type = SDL_KEYDOWN;
e.key.keysym.unicode = (Uint16)m.keyboard.u;
return keys.find(m.keyboard.k, e.key.keysym.sym);;
return keys.find(m.keyboard.k, e.key.keysym.sym);
case Event::TYPE_KEY_RELEASED:
e.type = SDL_KEYUP;
return keys.find(m.keyboard.k, e.key.keysym.sym);
@@ -290,6 +290,8 @@ namespace sdl
{ love::keyboard::Keyboard::KEY_POWER, SDLK_POWER },
{ love::keyboard::Keyboard::KEY_EURO, SDLK_EURO },
{ love::keyboard::Keyboard::KEY_UNDO, SDLK_UNDO },
{ love::keyboard::Keyboard::KEY_UNKNOWN, SDLK_UNKNOWN },
};
EnumMap<love::keyboard::Keyboard::Key, SDLKey, love::keyboard::Keyboard::KEY_MAX_ENUM> Event::keys(Event::keyEntries, sizeof(Event::keyEntries));
+4 -4
View File
@@ -1,14 +1,14 @@
/**
* Copyright (c) 2006-2011 LOVE Development Team
*
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
@@ -197,4 +197,4 @@ namespace keyboard
} // keyboard
} // love
#endif // LOVE_KEYBOARD_KEYBOARD_H
#endif // LOVE_KEYBOARD_KEYBOARD_H
+9 -9
View File
@@ -1,14 +1,14 @@
/**
* Copyright (c) 2006-2011 LOVE Development Team
*
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
@@ -34,14 +34,14 @@ namespace sdl
bool Keyboard::isDown(Key key) const
{
SDLKey k;
if(keys.find(key, k))
{
{
Uint8 * keystate = SDL_GetKeyState(0);
return keystate[(unsigned)k] == 1;
return keystate[(unsigned)k] == 1;
}
return false;
return false;
}
void Keyboard::setKeyRepeat(int delay, int interval) const
@@ -58,7 +58,7 @@ namespace sdl
SDL_GetKeyRepeat(&delay, &interval);
return delay;
}
int Keyboard::getKeyRepeatInterval() const
{
int delay, interval = 0;
@@ -66,7 +66,7 @@ namespace sdl
return interval;
}
EnumMap<Keyboard::Key, SDLKey, Keyboard::KEY_MAX_ENUM>::Entry Keyboard::keyEntries[] =
EnumMap<Keyboard::Key, SDLKey, Keyboard::KEY_MAX_ENUM>::Entry Keyboard::keyEntries[] =
{
{ Keyboard::KEY_BACKSPACE, SDLK_BACKSPACE},
{ Keyboard::KEY_TAB, SDLK_TAB},