Nicer formatting of key names
parent
eec6041104
commit
601a58ea31
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
#include <libintl.h>
|
#include <libintl.h>
|
||||||
#include <SDL_keyboard.h>
|
#include <SDL_keyboard.h>
|
||||||
|
#include <boost/regex.hpp>
|
||||||
|
|
||||||
const char* stringsText[RT_MAX] = { nullptr };
|
const char* stringsText[RT_MAX] = { nullptr };
|
||||||
const char* stringsEvent[EVENT_STD_MAX] = { nullptr };
|
const char* stringsEvent[EVENT_STD_MAX] = { nullptr };
|
||||||
|
@ -814,31 +815,6 @@ static const char* GetResourceBase(ResType type, int num)
|
||||||
str = stringsCbot[num];
|
str = stringsCbot[num];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RES_KEY:
|
|
||||||
|
|
||||||
if (static_cast<unsigned int>(num) == KEY_INVALID)
|
|
||||||
return "";
|
|
||||||
else if (num == VIRTUAL_KMOD_CTRL)
|
|
||||||
return "Ctrl";
|
|
||||||
else if (num == VIRTUAL_KMOD_SHIFT)
|
|
||||||
return "Shift";
|
|
||||||
else if (num == VIRTUAL_KMOD_ALT)
|
|
||||||
return "Alt";
|
|
||||||
else if (num == VIRTUAL_KMOD_META)
|
|
||||||
return "Win";
|
|
||||||
else if (num > VIRTUAL_JOY(0))
|
|
||||||
{
|
|
||||||
// TODO: temporary fix
|
|
||||||
static std::string sstr;
|
|
||||||
sstr = gettext("Button %1");
|
|
||||||
sstr = StrUtils::Replace(sstr, "%1", StrUtils::ToString<int>(1 + num - VIRTUAL_JOY(0)));
|
|
||||||
return sstr.c_str();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
str = SDL_GetKeyName(static_cast<SDLKey>(num));
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
|
@ -850,15 +826,43 @@ static const char* GetResourceBase(ResType type, int num)
|
||||||
|
|
||||||
bool GetResource(ResType type, int num, std::string& text)
|
bool GetResource(ResType type, int num, std::string& text)
|
||||||
{
|
{
|
||||||
const char *tmpl = GetResourceBase(type, num);
|
if(type != RES_KEY)
|
||||||
|
|
||||||
if (!tmpl)
|
|
||||||
{
|
{
|
||||||
text.clear();
|
const char *tmpl = GetResourceBase(type, num);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
PutKeyName(text, tmpl);
|
if (!tmpl)
|
||||||
return true;
|
{
|
||||||
|
text.clear();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
PutKeyName(text, tmpl);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (static_cast<unsigned int>(num) == KEY_INVALID)
|
||||||
|
text.clear();
|
||||||
|
else if (num == VIRTUAL_KMOD_CTRL)
|
||||||
|
text = "Ctrl";
|
||||||
|
else if (num == VIRTUAL_KMOD_SHIFT)
|
||||||
|
text = "Shift";
|
||||||
|
else if (num == VIRTUAL_KMOD_ALT)
|
||||||
|
text = "Alt";
|
||||||
|
else if (num == VIRTUAL_KMOD_META)
|
||||||
|
text = "Win";
|
||||||
|
else if (num > VIRTUAL_JOY(0))
|
||||||
|
{
|
||||||
|
text = gettext("Button %1");
|
||||||
|
text = StrUtils::Replace(text, "%1", StrUtils::ToString<int>(1 + num - VIRTUAL_JOY(0)));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text = SDL_GetKeyName(static_cast<SDLKey>(num));
|
||||||
|
text = boost::regex_replace(text, boost::regex("\\[(.*)\\]"), "\\1");
|
||||||
|
text[0] = toupper(text[0]);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@ bool CKey::EventProcess(const Event &event)
|
||||||
|
|
||||||
bool CKey::TestKey(unsigned int key)
|
bool CKey::TestKey(unsigned int key)
|
||||||
{
|
{
|
||||||
if (key == KEY(PAUSE) || key == KEY(PRINT) || key == KEY(ESCAPE)) return true; // blocked key
|
if (key == KEY(PAUSE) || key == KEY(PRINT)) return true; // blocked key
|
||||||
|
|
||||||
for (int i = 0; i < INPUT_SLOT_MAX; i++)
|
for (int i = 0; i < INPUT_SLOT_MAX; i++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue