Files
wagic/projects/mtg/src/TranslateKeys.cpp
T
jean.chalard 436da6fcc0 J :
* Very small addition to the key bindings menu.
2010-02-17 15:24:14 +00:00

76 lines
2.4 KiB
C++

#include <map>
#include "../include/Translate.h"
#include "../include/WResourceManager.h"
#include "../include/TranslateKeys.h"
using std::string;
using std::map;
static map<const LocalKeySym, KeyRep const*> fattable;
static map<const JButton, KeyRep const*> slimtable;
KeyRep::KeyRep(JQuad* icon, string text) : icon(icon), text(text) {}
#ifdef LINUX
const KeyRep& translateKey(LocalKeySym key) {
{
map<const LocalKeySym, KeyRep const*>::iterator res;
if ((res = fattable.find(key)) != fattable.end())
return *(res->second);
}
char* str = XKeysymToString(key);
if (!str)
{
str = new char[11];
sprintf(str, "%lu", key);
}
KeyRep* k = new KeyRep(NULL, str);
fattable[key] = k;
return *k;
}
#else
const KeyRep& translateKey(LocalKeySym key) {
{
map<const LocalKeySym, KeyRep const*>::iterator res;
if ((res = fattable.find(key)) != fattable.end())
return *(res->second);
}
// Here goes PSP button-to-image code :
// k->icon = resources.RetrieveQuad("iconspsp.png", (float)4*32, 0, 32, 32, "", RETRIEVE_NORMAL);
char* str = new char[11];
sprintf(str, "%d", key);
KeyRep* k = new KeyRep(NULL, str);
fattable[key] = k;
return *k;
}
#endif
const KeyRep& translateKey(JButton key) {
{
map<const JButton, KeyRep const*>::iterator res;
if ((res = slimtable.find(key)) != slimtable.end())
return *(res->second);
}
slimtable[JGE_BTN_NONE] = new KeyRep(NULL, _("None"));
slimtable[JGE_BTN_QUIT] = new KeyRep(NULL, _("Quit"));
slimtable[JGE_BTN_MENU] = new KeyRep(NULL, _("Menu"));
slimtable[JGE_BTN_CTRL] = new KeyRep(NULL, _("Control"));
slimtable[JGE_BTN_POWER] = new KeyRep(NULL, _("Power"));
slimtable[JGE_BTN_SOUND] = new KeyRep(NULL, _("Sound"));
slimtable[JGE_BTN_RIGHT] = new KeyRep(NULL, _("Right"));
slimtable[JGE_BTN_LEFT] = new KeyRep(NULL, _("Left"));
slimtable[JGE_BTN_UP] = new KeyRep(NULL, _("Up"));
slimtable[JGE_BTN_DOWN] = new KeyRep(NULL, _("Down"));
slimtable[JGE_BTN_OK] = new KeyRep(NULL, _("Ok"));
slimtable[JGE_BTN_CANCEL] = new KeyRep(NULL, _("Cancel"));
slimtable[JGE_BTN_PRI] = new KeyRep(NULL, _("Primary"));
slimtable[JGE_BTN_SEC] = new KeyRep(NULL, _("Secondary"));
slimtable[JGE_BTN_PREV] = new KeyRep(NULL, _("Next phase/Previous item"));
slimtable[JGE_BTN_NEXT] = new KeyRep(NULL, _("Open hand/Next item"));
return *slimtable[key];
}