Internally classify keys

This is useful later to split down that massive key list into more
logical chunks.
This commit is contained in:
Ilari Liusvaara 2012-04-07 18:07:33 +03:00
parent 036ce8dc0b
commit 29a1edd3e0
9 changed files with 488 additions and 472 deletions

View file

@ -214,10 +214,11 @@ public:
* Create a new key group.
*
* parameter name: Name of the key group.
* parameter _clazz: The key class.
* parameter t: Initial type of the key group.
* throws std::bad_alloc: Not enough memory.
*/
keygroup(const std::string& name, enum type t) throw(std::bad_alloc);
keygroup(const std::string& name, const std::string& _clazz, enum type t) throw(std::bad_alloc);
/**
* Destructor
*/
@ -331,6 +332,10 @@ public:
* Get status value.
*/
signed get_value();
/**
* Get class.
*/
const std::string& get_class();
private:
signed state;
enum type ktype;
@ -343,6 +348,7 @@ private:
double compensate2(double value);
void run_listeners(const modifier_set& modifiers, unsigned subkey, bool polarity, bool really, double x);
std::string keyname;
std::string clazz;
bool requests_hook;
};

View file

@ -257,6 +257,11 @@ std::string keygroup::name() throw(std::bad_alloc)
return keyname;
}
const std::string& keygroup::get_class()
{
return clazz;
}
struct keygroup::parameters keygroup::get_parameters()
{
parameters p;
@ -277,9 +282,10 @@ std::map<std::string, struct keygroup::parameters> keygroup::get_all_parameters(
return ret;
}
keygroup::keygroup(const std::string& name, enum type t) throw(std::bad_alloc)
keygroup::keygroup(const std::string& name, const std::string& _clazz, enum type t) throw(std::bad_alloc)
{
keygroups()[keyname = name] = this;
clazz = _clazz;
ktype = t;
state = 0;
last_rawval = 0;

View file

@ -93,7 +93,7 @@ namespace
std::ostringstream _name;
_name << "joystick" << joynum << "button" << buttonnum;
std::string name = _name.str();
keygroup* grp = new keygroup(name, keygroup::KT_KEY);
keygroup* grp = new keygroup(name, "joystick", keygroup::KT_KEY);
keygroups.insert(grp);
struct event_mapping evmap;
evmap.joystick = joynum;
@ -115,9 +115,9 @@ namespace
std::string name = _name.str();
keygroup* grp;
if(min < 0)
grp = new keygroup(name, keygroup::KT_AXIS_PAIR);
grp = new keygroup(name, "joystick", keygroup::KT_AXIS_PAIR);
else
grp = new keygroup(name, keygroup::KT_PRESSURE_MP);
grp = new keygroup(name, "joystick", keygroup::KT_PRESSURE_MP);
keygroups.insert(grp);
struct event_mapping evmap;
evmap.joystick = joynum;
@ -138,7 +138,7 @@ namespace
std::ostringstream _name;
_name << "joystick" << joynum << "hat" << hatnum;
std::string name = _name.str();
keygroup* grp = new keygroup(name, keygroup::KT_HAT);
keygroup* grp = new keygroup(name, "joystick", keygroup::KT_HAT);
keygroups.insert(grp);
struct event_mapping evmap1;
evmap1.joystick = joynum;

View file

@ -275,11 +275,11 @@ namespace
platform::queue(emu_handle_quit_signal, NULL, false);
}
keygroup mouse_x("mouse_x", keygroup::KT_MOUSE);
keygroup mouse_y("mouse_y", keygroup::KT_MOUSE);
keygroup mouse_l("mouse_left", keygroup::KT_KEY);
keygroup mouse_m("mouse_center", keygroup::KT_KEY);
keygroup mouse_r("mouse_right", keygroup::KT_KEY);
keygroup mouse_x("mouse_x", "mouse", keygroup::KT_MOUSE);
keygroup mouse_y("mouse_y", "mouse", keygroup::KT_MOUSE);
keygroup mouse_l("mouse_left", "mouse", keygroup::KT_KEY);
keygroup mouse_m("mouse_center", "mouse", keygroup::KT_KEY);
keygroup mouse_r("mouse_right", "mouse", keygroup::KT_KEY);
}
void notify_emulator_exit()

View file

@ -71,19 +71,19 @@ void joystick_plugin::init() throw()
unsigned num = 256 * i + k;
std::ostringstream x;
x << "joystick" << i << "axis" << k;
joyaxis[num] = new keygroup(x.str(), keygroup::KT_AXIS_PAIR);
joyaxis[num] = new keygroup(x.str(), "joystick", keygroup::KT_AXIS_PAIR);
}
for(int k = 0; k < SDL_JoystickNumButtons(j); k++) {
unsigned num = 256 * i + k;
std::ostringstream x;
x << "joystick" << i << "button" << k;
joybutton[num] = new keygroup(x.str(), keygroup::KT_KEY);
joybutton[num] = new keygroup(x.str(), "joystick", keygroup::KT_KEY);
}
for(int k = 0; k < SDL_JoystickNumHats(j); k++) {
unsigned num = 256 * i + k;
std::ostringstream x;
x << "joystick" << i << "hat" << k;
joyhat[num] = new keygroup(x.str(), keygroup::KT_HAT);
joyhat[num] = new keygroup(x.str(), "joystick", keygroup::KT_HAT);
}
}
}

View file

@ -34,239 +34,240 @@ namespace
struct sdl_key
{
const char* name;
const char* clazz;
unsigned symbol;
} keys_table[] = {
{"backspace", SDLK_BACKSPACE },
{"tab", SDLK_TAB },
{"clear", SDLK_CLEAR },
{"return", SDLK_RETURN },
{"pause", SDLK_PAUSE },
{"escape", SDLK_ESCAPE },
{"space", SDLK_SPACE },
{"exclaim", SDLK_EXCLAIM },
{"quotedbl", SDLK_QUOTEDBL },
{"hash", SDLK_HASH },
{"dollar", SDLK_DOLLAR },
{"ampersand", SDLK_AMPERSAND },
{"quote", SDLK_QUOTE },
{"leftparen", SDLK_LEFTPAREN },
{"rightparen", SDLK_RIGHTPAREN },
{"asterisk", SDLK_ASTERISK },
{"plus", SDLK_PLUS },
{"comma", SDLK_COMMA },
{"minus", SDLK_MINUS },
{"period", SDLK_PERIOD },
{"slash", SDLK_SLASH },
{"0", SDLK_0 },
{"1", SDLK_1 },
{"2", SDLK_2 },
{"3", SDLK_3 },
{"4", SDLK_4 },
{"5", SDLK_5 },
{"6", SDLK_6 },
{"7", SDLK_7 },
{"8", SDLK_8 },
{"9", SDLK_9 },
{"colon", SDLK_COLON },
{"semicolon", SDLK_SEMICOLON },
{"less", SDLK_LESS },
{"equals", SDLK_EQUALS },
{"greater", SDLK_GREATER },
{"question", SDLK_QUESTION },
{"at", SDLK_AT },
{"leftbracket", SDLK_LEFTBRACKET },
{"backslash", SDLK_BACKSLASH },
{"rightbracket", SDLK_RIGHTBRACKET },
{"caret", SDLK_CARET },
{"underscore", SDLK_UNDERSCORE },
{"backquote", SDLK_BACKQUOTE },
{"a", SDLK_a },
{"b", SDLK_b },
{"c", SDLK_c },
{"d", SDLK_d },
{"e", SDLK_e },
{"f", SDLK_f },
{"g", SDLK_g },
{"h", SDLK_h },
{"i", SDLK_i },
{"j", SDLK_j },
{"k", SDLK_k },
{"l", SDLK_l },
{"m", SDLK_m },
{"n", SDLK_n },
{"o", SDLK_o },
{"p", SDLK_p },
{"q", SDLK_q },
{"r", SDLK_r },
{"s", SDLK_s },
{"t", SDLK_t },
{"u", SDLK_u },
{"v", SDLK_v },
{"w", SDLK_w },
{"x", SDLK_x },
{"y", SDLK_y },
{"z", SDLK_z },
{"delete", SDLK_DELETE },
{"world_0", SDLK_WORLD_0 },
{"world_1", SDLK_WORLD_1 },
{"world_2", SDLK_WORLD_2 },
{"world_3", SDLK_WORLD_3 },
{"world_4", SDLK_WORLD_4 },
{"world_5", SDLK_WORLD_5 },
{"world_6", SDLK_WORLD_6 },
{"world_7", SDLK_WORLD_7 },
{"world_8", SDLK_WORLD_8 },
{"world_9", SDLK_WORLD_9 },
{"world_10", SDLK_WORLD_10 },
{"world_11", SDLK_WORLD_11 },
{"world_12", SDLK_WORLD_12 },
{"world_13", SDLK_WORLD_13 },
{"world_14", SDLK_WORLD_14 },
{"world_15", SDLK_WORLD_15 },
{"world_16", SDLK_WORLD_16 },
{"world_17", SDLK_WORLD_17 },
{"world_18", SDLK_WORLD_18 },
{"world_19", SDLK_WORLD_19 },
{"world_20", SDLK_WORLD_20 },
{"world_21", SDLK_WORLD_21 },
{"world_22", SDLK_WORLD_22 },
{"world_23", SDLK_WORLD_23 },
{"world_24", SDLK_WORLD_24 },
{"world_25", SDLK_WORLD_25 },
{"world_26", SDLK_WORLD_26 },
{"world_27", SDLK_WORLD_27 },
{"world_28", SDLK_WORLD_28 },
{"world_29", SDLK_WORLD_29 },
{"world_30", SDLK_WORLD_30 },
{"world_31", SDLK_WORLD_31 },
{"world_32", SDLK_WORLD_32 },
{"world_33", SDLK_WORLD_33 },
{"world_34", SDLK_WORLD_34 },
{"world_35", SDLK_WORLD_35 },
{"world_36", SDLK_WORLD_36 },
{"world_37", SDLK_WORLD_37 },
{"world_38", SDLK_WORLD_38 },
{"world_39", SDLK_WORLD_39 },
{"world_40", SDLK_WORLD_40 },
{"world_41", SDLK_WORLD_41 },
{"world_42", SDLK_WORLD_42 },
{"world_43", SDLK_WORLD_43 },
{"world_44", SDLK_WORLD_44 },
{"world_45", SDLK_WORLD_45 },
{"world_46", SDLK_WORLD_46 },
{"world_47", SDLK_WORLD_47 },
{"world_48", SDLK_WORLD_48 },
{"world_49", SDLK_WORLD_49 },
{"world_50", SDLK_WORLD_50 },
{"world_51", SDLK_WORLD_51 },
{"world_52", SDLK_WORLD_52 },
{"world_53", SDLK_WORLD_53 },
{"world_54", SDLK_WORLD_54 },
{"world_55", SDLK_WORLD_55 },
{"world_56", SDLK_WORLD_56 },
{"world_57", SDLK_WORLD_57 },
{"world_58", SDLK_WORLD_58 },
{"world_59", SDLK_WORLD_59 },
{"world_60", SDLK_WORLD_60 },
{"world_61", SDLK_WORLD_61 },
{"world_62", SDLK_WORLD_62 },
{"world_63", SDLK_WORLD_63 },
{"world_64", SDLK_WORLD_64 },
{"world_65", SDLK_WORLD_65 },
{"world_66", SDLK_WORLD_66 },
{"world_67", SDLK_WORLD_67 },
{"world_68", SDLK_WORLD_68 },
{"world_69", SDLK_WORLD_69 },
{"world_70", SDLK_WORLD_70 },
{"world_71", SDLK_WORLD_71 },
{"world_72", SDLK_WORLD_72 },
{"world_73", SDLK_WORLD_73 },
{"world_74", SDLK_WORLD_74 },
{"world_75", SDLK_WORLD_75 },
{"world_76", SDLK_WORLD_76 },
{"world_77", SDLK_WORLD_77 },
{"world_78", SDLK_WORLD_78 },
{"world_79", SDLK_WORLD_79 },
{"world_80", SDLK_WORLD_80 },
{"world_81", SDLK_WORLD_81 },
{"world_82", SDLK_WORLD_82 },
{"world_83", SDLK_WORLD_83 },
{"world_84", SDLK_WORLD_84 },
{"world_85", SDLK_WORLD_85 },
{"world_86", SDLK_WORLD_86 },
{"world_87", SDLK_WORLD_87 },
{"world_88", SDLK_WORLD_88 },
{"world_89", SDLK_WORLD_89 },
{"world_90", SDLK_WORLD_90 },
{"world_91", SDLK_WORLD_91 },
{"world_92", SDLK_WORLD_92 },
{"world_93", SDLK_WORLD_93 },
{"world_94", SDLK_WORLD_94 },
{"world_95", SDLK_WORLD_95 },
{"kp0", SDLK_KP0 },
{"kp1", SDLK_KP1 },
{"kp2", SDLK_KP2 },
{"kp3", SDLK_KP3 },
{"kp4", SDLK_KP4 },
{"kp5", SDLK_KP5 },
{"kp6", SDLK_KP6 },
{"kp7", SDLK_KP7 },
{"kp8", SDLK_KP8 },
{"kp9", SDLK_KP9 },
{"kp_period", SDLK_KP_PERIOD },
{"kp_divide", SDLK_KP_DIVIDE },
{"kp_multiply", SDLK_KP_MULTIPLY },
{"kp_minus", SDLK_KP_MINUS },
{"kp_plus", SDLK_KP_PLUS },
{"kp_enter", SDLK_KP_ENTER },
{"kp_equals", SDLK_KP_EQUALS },
{"up", SDLK_UP },
{"down", SDLK_DOWN },
{"right", SDLK_RIGHT },
{"left", SDLK_LEFT },
{"insert", SDLK_INSERT },
{"home", SDLK_HOME },
{"end", SDLK_END },
{"pageup", SDLK_PAGEUP },
{"pagedown", SDLK_PAGEDOWN },
{"f1", SDLK_F1 },
{"f2", SDLK_F2 },
{"f3", SDLK_F3 },
{"f4", SDLK_F4 },
{"f5", SDLK_F5 },
{"f6", SDLK_F6 },
{"f7", SDLK_F7 },
{"f8", SDLK_F8 },
{"f9", SDLK_F9 },
{"f10", SDLK_F10 },
{"f11", SDLK_F11 },
{"f12", SDLK_F12 },
{"f13", SDLK_F13 },
{"f14", SDLK_F14 },
{"f15", SDLK_F15 },
{"numlock", SDLK_NUMLOCK },
{"capslock", SDLK_CAPSLOCK },
{"scrollock", SDLK_SCROLLOCK },
{"rshift", SDLK_RSHIFT },
{"lshift", SDLK_LSHIFT },
{"rctrl", SDLK_RCTRL },
{"lctrl", SDLK_LCTRL },
{"ralt", SDLK_RALT },
{"lalt", SDLK_LALT },
{"rmeta", SDLK_RMETA },
{"lmeta", SDLK_LMETA },
{"lsuper", SDLK_LSUPER },
{"rsuper", SDLK_RSUPER },
{"mode", SDLK_MODE },
{"compose", SDLK_COMPOSE },
{"help", SDLK_HELP },
{"print", SDLK_PRINT },
{"sysreq", SDLK_SYSREQ },
{"break", SDLK_BREAK },
{"menu", SDLK_MENU },
{"power", SDLK_POWER },
{"euro", SDLK_EURO },
{"undo", SDLK_UNDO },
{"backspace", "editing", SDLK_BACKSPACE },
{"tab", "editing", SDLK_TAB },
{"clear", "editing", SDLK_CLEAR },
{"return", "editing", SDLK_RETURN },
{"pause", "special", SDLK_PAUSE },
{"escape", "editing", SDLK_ESCAPE },
{"space", "characters", SDLK_SPACE },
{"exclaim", "characters", SDLK_EXCLAIM },
{"quotedbl", "characters", SDLK_QUOTEDBL },
{"hash", "characters", SDLK_HASH },
{"dollar", "characters", SDLK_DOLLAR },
{"ampersand", "characters", SDLK_AMPERSAND },
{"quote", "characters", SDLK_QUOTE },
{"leftparen", "characters", SDLK_LEFTPAREN },
{"rightparen", "characters", SDLK_RIGHTPAREN },
{"asterisk", "characters", SDLK_ASTERISK },
{"plus", "characters", SDLK_PLUS },
{"comma", "characters", SDLK_COMMA },
{"minus", "characters", SDLK_MINUS },
{"period", "characters", SDLK_PERIOD },
{"slash", "characters", SDLK_SLASH },
{"0", "numeric", SDLK_0 },
{"1", "numeric", SDLK_1 },
{"2", "numeric", SDLK_2 },
{"3", "numeric", SDLK_3 },
{"4", "numeric", SDLK_4 },
{"5", "numeric", SDLK_5 },
{"6", "numeric", SDLK_6 },
{"7", "numeric", SDLK_7 },
{"8", "numeric", SDLK_8 },
{"9", "numeric", SDLK_9 },
{"colon", "characters", SDLK_COLON },
{"semicolon", "characters", SDLK_SEMICOLON },
{"less", "characters", SDLK_LESS },
{"equals", "characters", SDLK_EQUALS },
{"greater", "characters", SDLK_GREATER },
{"question", "characters", SDLK_QUESTION },
{"at", "characters", SDLK_AT },
{"leftbracket", "characters", SDLK_LEFTBRACKET },
{"backslash", "characters", SDLK_BACKSLASH },
{"rightbracket", "characters", SDLK_RIGHTBRACKET },
{"caret", "characters", SDLK_CARET },
{"underscore", "characters", SDLK_UNDERSCORE },
{"backquote", "characters", SDLK_BACKQUOTE },
{"a", "alphabetic", SDLK_a },
{"b", "alphabetic", SDLK_b },
{"c", "alphabetic", SDLK_c },
{"d", "alphabetic", SDLK_d },
{"e", "alphabetic", SDLK_e },
{"f", "alphabetic", SDLK_f },
{"g", "alphabetic", SDLK_g },
{"h", "alphabetic", SDLK_h },
{"i", "alphabetic", SDLK_i },
{"j", "alphabetic", SDLK_j },
{"k", "alphabetic", SDLK_k },
{"l", "alphabetic", SDLK_l },
{"m", "alphabetic", SDLK_m },
{"n", "alphabetic", SDLK_n },
{"o", "alphabetic", SDLK_o },
{"p", "alphabetic", SDLK_p },
{"q", "alphabetic", SDLK_q },
{"r", "alphabetic", SDLK_r },
{"s", "alphabetic", SDLK_s },
{"t", "alphabetic", SDLK_t },
{"u", "alphabetic", SDLK_u },
{"v", "alphabetic", SDLK_v },
{"w", "alphabetic", SDLK_w },
{"x", "alphabetic", SDLK_x },
{"y", "alphabetic", SDLK_y },
{"z", "alphabetic", SDLK_z },
{"delete", "editing", SDLK_DELETE },
{"world_0", "international",SDLK_WORLD_0 },
{"world_1", "international",SDLK_WORLD_1 },
{"world_2", "international",SDLK_WORLD_2 },
{"world_3", "international",SDLK_WORLD_3 },
{"world_4", "international",SDLK_WORLD_4 },
{"world_5", "international",SDLK_WORLD_5 },
{"world_6", "international",SDLK_WORLD_6 },
{"world_7", "international",SDLK_WORLD_7 },
{"world_8", "international",SDLK_WORLD_8 },
{"world_9", "international",SDLK_WORLD_9 },
{"world_10", "international",SDLK_WORLD_10 },
{"world_11", "international",SDLK_WORLD_11 },
{"world_12", "international",SDLK_WORLD_12 },
{"world_13", "international",SDLK_WORLD_13 },
{"world_14", "international",SDLK_WORLD_14 },
{"world_15", "international",SDLK_WORLD_15 },
{"world_16", "international",SDLK_WORLD_16 },
{"world_17", "international",SDLK_WORLD_17 },
{"world_18", "international",SDLK_WORLD_18 },
{"world_19", "international",SDLK_WORLD_19 },
{"world_20", "international",SDLK_WORLD_20 },
{"world_21", "international",SDLK_WORLD_21 },
{"world_22", "international",SDLK_WORLD_22 },
{"world_23", "international",SDLK_WORLD_23 },
{"world_24", "international",SDLK_WORLD_24 },
{"world_25", "international",SDLK_WORLD_25 },
{"world_26", "international",SDLK_WORLD_26 },
{"world_27", "international",SDLK_WORLD_27 },
{"world_28", "international",SDLK_WORLD_28 },
{"world_29", "international",SDLK_WORLD_29 },
{"world_30", "international",SDLK_WORLD_30 },
{"world_31", "international",SDLK_WORLD_31 },
{"world_32", "international",SDLK_WORLD_32 },
{"world_33", "international",SDLK_WORLD_33 },
{"world_34", "international",SDLK_WORLD_34 },
{"world_35", "international",SDLK_WORLD_35 },
{"world_36", "international",SDLK_WORLD_36 },
{"world_37", "international",SDLK_WORLD_37 },
{"world_38", "international",SDLK_WORLD_38 },
{"world_39", "international",SDLK_WORLD_39 },
{"world_40", "international",SDLK_WORLD_40 },
{"world_41", "international",SDLK_WORLD_41 },
{"world_42", "international",SDLK_WORLD_42 },
{"world_43", "international",SDLK_WORLD_43 },
{"world_44", "international",SDLK_WORLD_44 },
{"world_45", "international",SDLK_WORLD_45 },
{"world_46", "international",SDLK_WORLD_46 },
{"world_47", "international",SDLK_WORLD_47 },
{"world_48", "international",SDLK_WORLD_48 },
{"world_49", "international",SDLK_WORLD_49 },
{"world_50", "international",SDLK_WORLD_50 },
{"world_51", "international",SDLK_WORLD_51 },
{"world_52", "international",SDLK_WORLD_52 },
{"world_53", "international",SDLK_WORLD_53 },
{"world_54", "international",SDLK_WORLD_54 },
{"world_55", "international",SDLK_WORLD_55 },
{"world_56", "international",SDLK_WORLD_56 },
{"world_57", "international",SDLK_WORLD_57 },
{"world_58", "international",SDLK_WORLD_58 },
{"world_59", "international",SDLK_WORLD_59 },
{"world_60", "international",SDLK_WORLD_60 },
{"world_61", "international",SDLK_WORLD_61 },
{"world_62", "international",SDLK_WORLD_62 },
{"world_63", "international",SDLK_WORLD_63 },
{"world_64", "international",SDLK_WORLD_64 },
{"world_65", "international",SDLK_WORLD_65 },
{"world_66", "international",SDLK_WORLD_66 },
{"world_67", "international",SDLK_WORLD_67 },
{"world_68", "international",SDLK_WORLD_68 },
{"world_69", "international",SDLK_WORLD_69 },
{"world_70", "international",SDLK_WORLD_70 },
{"world_71", "international",SDLK_WORLD_71 },
{"world_72", "international",SDLK_WORLD_72 },
{"world_73", "international",SDLK_WORLD_73 },
{"world_74", "international",SDLK_WORLD_74 },
{"world_75", "international",SDLK_WORLD_75 },
{"world_76", "international",SDLK_WORLD_76 },
{"world_77", "international",SDLK_WORLD_77 },
{"world_78", "international",SDLK_WORLD_78 },
{"world_79", "international",SDLK_WORLD_79 },
{"world_80", "international",SDLK_WORLD_80 },
{"world_81", "international",SDLK_WORLD_81 },
{"world_82", "international",SDLK_WORLD_82 },
{"world_83", "international",SDLK_WORLD_83 },
{"world_84", "international",SDLK_WORLD_84 },
{"world_85", "international",SDLK_WORLD_85 },
{"world_86", "international",SDLK_WORLD_86 },
{"world_87", "international",SDLK_WORLD_87 },
{"world_88", "international",SDLK_WORLD_88 },
{"world_89", "international",SDLK_WORLD_89 },
{"world_90", "international",SDLK_WORLD_90 },
{"world_91", "international",SDLK_WORLD_91 },
{"world_92", "international",SDLK_WORLD_92 },
{"world_93", "international",SDLK_WORLD_93 },
{"world_94", "international",SDLK_WORLD_94 },
{"world_95", "international",SDLK_WORLD_95 },
{"kp0", "numeric", SDLK_KP0 },
{"kp1", "numeric", SDLK_KP1 },
{"kp2", "numeric", SDLK_KP2 },
{"kp3", "numeric", SDLK_KP3 },
{"kp4", "numeric", SDLK_KP4 },
{"kp5", "numeric", SDLK_KP5 },
{"kp6", "numeric", SDLK_KP6 },
{"kp7", "numeric", SDLK_KP7 },
{"kp8", "numeric", SDLK_KP8 },
{"kp9", "numeric", SDLK_KP9 },
{"kp_period", "characters", SDLK_KP_PERIOD },
{"kp_divide", "characters", SDLK_KP_DIVIDE },
{"kp_multiply", "characters", SDLK_KP_MULTIPLY },
{"kp_minus", "characters", SDLK_KP_MINUS },
{"kp_plus", "characters", SDLK_KP_PLUS },
{"kp_enter", "characters", SDLK_KP_ENTER },
{"kp_equals", "characters", SDLK_KP_EQUALS },
{"up", "editing", SDLK_UP },
{"down", "editing", SDLK_DOWN },
{"right", "editing", SDLK_RIGHT },
{"left", "editing", SDLK_LEFT },
{"insert", "editing", SDLK_INSERT },
{"home", "editing", SDLK_HOME },
{"end", "editing", SDLK_END },
{"pageup", "editing", SDLK_PAGEUP },
{"pagedown", "editing", SDLK_PAGEDOWN },
{"f1", "F-keys", SDLK_F1 },
{"f2", "F-keys", SDLK_F2 },
{"f3", "F-keys", SDLK_F3 },
{"f4", "F-keys", SDLK_F4 },
{"f5", "F-keys", SDLK_F5 },
{"f6", "F-keys", SDLK_F6 },
{"f7", "F-keys", SDLK_F7 },
{"f8", "F-keys", SDLK_F8 },
{"f9", "F-keys", SDLK_F9 },
{"f10", "F-keys", SDLK_F10 },
{"f11", "F-keys", SDLK_F11 },
{"f12", "F-keys", SDLK_F12 },
{"f13", "F-keys", SDLK_F13 },
{"f14", "F-keys", SDLK_F14 },
{"f15", "F-keys", SDLK_F15 },
{"numlock", "locks", SDLK_NUMLOCK },
{"capslock", "locks", SDLK_CAPSLOCK },
{"scrollock", "locks", SDLK_SCROLLOCK },
{"rshift", "modifiers", SDLK_RSHIFT },
{"lshift", "modifiers", SDLK_LSHIFT },
{"rctrl", "modifiers", SDLK_RCTRL },
{"lctrl", "modifiers", SDLK_LCTRL },
{"ralt", "modifiers", SDLK_RALT },
{"lalt", "modifiers", SDLK_LALT },
{"rmeta", "modifiers", SDLK_RMETA },
{"lmeta", "modifiers", SDLK_LMETA },
{"lsuper", "modifiers", SDLK_LSUPER },
{"rsuper", "modifiers", SDLK_RSUPER },
{"mode", "modifiers", SDLK_MODE },
{"compose", "modifiers", SDLK_COMPOSE },
{"help", "special", SDLK_HELP },
{"print", "special", SDLK_PRINT },
{"sysreq", "special", SDLK_SYSREQ },
{"break", "special", SDLK_BREAK },
{"menu", "special", SDLK_MENU },
{"power", "special", SDLK_POWER },
{"euro", "characters", SDLK_EURO },
{"undo", "special", SDLK_UNDO },
{NULL, 0 }
};
@ -366,13 +367,13 @@ void init_sdl_keys()
}
struct sdl_key* k = keys_table;
while(k->name) {
symbolkeys[k->symbol] = new keygroup(k->name, keygroup::KT_KEY);
symbolkeys[k->symbol] = new keygroup(k->name, k->clazz, keygroup::KT_KEY);
k++;
}
for(unsigned i = 0; i < 256; i++) {
std::ostringstream x;
x << "key" << i;
scancodekeys[i] = new keygroup(x.str(), keygroup::KT_KEY);
scancodekeys[i] = new keygroup(x.str(), "scancode", keygroup::KT_KEY);
}
}

View file

@ -21,6 +21,7 @@ namespace
void on_ok(wxCommandEvent& e);
void on_cancel(wxCommandEvent& e);
void on_clear(wxCommandEvent& e);
void on_classchange(wxCommandEvent& e);
std::string getkey();
private:
void set_mask(const std::string& mod);
@ -29,6 +30,7 @@ namespace
void (wxdialog_keyentry::*fn)(const std::string& mod));
void load_spec(const std::string& spec);
std::map<std::string, keyentry_mod_data> modifiers;
wxComboBox* mainclass;
wxComboBox* mainkey;
wxButton* ok;
wxButton* cancel;

View file

@ -33,226 +33,227 @@ namespace
{
int keynum;
const char* name;
const char* clazz;
keygroup* allocated;
} keys[] = {
{ WXK_BACK, "back", NULL },
{ WXK_TAB, "tab", NULL },
{ WXK_RETURN, "return", NULL },
{ WXK_ESCAPE, "escape", NULL },
{ WXK_SPACE, "space", NULL },
{ 33, "exclaim", NULL },
{ 34, "quotedbl", NULL },
{ 35, "hash", NULL },
{ 36, "dollar", NULL },
{ 37, "percent", NULL },
{ 38, "ampersand", NULL },
{ 39, "quote", NULL },
{ 40, "leftparen", NULL },
{ 41, "rightparen", NULL },
{ 42, "asterisk", NULL },
{ 43, "plus", NULL },
{ 44, "comma", NULL },
{ 45, "minus", NULL },
{ 46, "period", NULL },
{ 47, "slash", NULL },
{ 48, "0", NULL },
{ 49, "1", NULL },
{ 50, "2", NULL },
{ 51, "3", NULL },
{ 52, "4", NULL },
{ 53, "5", NULL },
{ 54, "6", NULL },
{ 55, "7", NULL },
{ 56, "8", NULL },
{ 57, "9", NULL },
{ 58, "colon", NULL },
{ 59, "semicolon", NULL },
{ 60, "less", NULL },
{ 61, "equals", NULL },
{ 62, "greater", NULL },
{ 63, "question", NULL },
{ 64, "at", NULL },
{ 65, "a", NULL },
{ 66, "b", NULL },
{ 67, "c", NULL },
{ 68, "d", NULL },
{ 69, "e", NULL },
{ 70, "f", NULL },
{ 71, "g", NULL },
{ 72, "h", NULL },
{ 73, "i", NULL },
{ 74, "j", NULL },
{ 75, "k", NULL },
{ 76, "l", NULL },
{ 77, "m", NULL },
{ 78, "n", NULL },
{ 79, "o", NULL },
{ 80, "p", NULL },
{ 81, "q", NULL },
{ 82, "r", NULL },
{ 83, "s", NULL },
{ 84, "t", NULL },
{ 85, "u", NULL },
{ 86, "v", NULL },
{ 87, "w", NULL },
{ 88, "x", NULL },
{ 89, "y", NULL },
{ 90, "z", NULL },
{ 91, "leftbracket", NULL },
{ 92, "backslash", NULL },
{ 93, "rightbracket", NULL },
{ 94, "caret", NULL },
{ 95, "underscore", NULL },
{ 96, "backquote", NULL },
{ 97, "a", NULL },
{ 98, "b", NULL },
{ 99, "c", NULL },
{ 100, "d", NULL },
{ 101, "e", NULL },
{ 102, "f", NULL },
{ 103, "g", NULL },
{ 104, "h", NULL },
{ 105, "i", NULL },
{ 106, "j", NULL },
{ 107, "k", NULL },
{ 108, "l", NULL },
{ 109, "m", NULL },
{ 110, "n", NULL },
{ 111, "o", NULL },
{ 112, "p", NULL },
{ 113, "q", NULL },
{ 114, "r", NULL },
{ 115, "s", NULL },
{ 116, "t", NULL },
{ 117, "u", NULL },
{ 118, "v", NULL },
{ 119, "w", NULL },
{ 120, "x", NULL },
{ 121, "y", NULL },
{ 122, "z", NULL },
{ 123, "leftcurly", NULL },
{ 124, "pipe", NULL },
{ 125, "rightcurly", NULL },
{ 126, "tilde", NULL },
{ WXK_DELETE, "delete", NULL },
{ WXK_START, "start", NULL },
{ WXK_LBUTTON, "lbutton", NULL },
{ WXK_RBUTTON, "rbutton", NULL },
{ WXK_CANCEL, "cancel", NULL },
{ WXK_MBUTTON, "mbutton", NULL },
{ WXK_CLEAR, "clear", NULL },
{ WXK_SHIFT, "shift", NULL },
{ WXK_ALT, "alt", NULL },
{ WXK_CONTROL, "control", NULL },
{ WXK_MENU, "menu", NULL },
{ WXK_PAUSE, "pause", NULL },
{ WXK_CAPITAL, "capital", NULL },
{ WXK_END, "end", NULL },
{ WXK_HOME, "home", NULL },
{ WXK_LEFT, "lefT", NULL },
{ WXK_UP, "up", NULL },
{ WXK_RIGHT, "right", NULL },
{ WXK_DOWN, "down", NULL },
{ WXK_SELECT, "select", NULL },
{ WXK_PRINT, "print", NULL },
{ WXK_EXECUTE, "execute", NULL },
{ WXK_SNAPSHOT, "snapshot", NULL },
{ WXK_INSERT, "insert", NULL },
{ WXK_HELP, "help", NULL },
{ WXK_NUMPAD0, "numpad0", NULL },
{ WXK_NUMPAD1, "numpad1", NULL },
{ WXK_NUMPAD2, "numpad2", NULL },
{ WXK_NUMPAD3, "numpad3", NULL },
{ WXK_NUMPAD4, "numpad4", NULL },
{ WXK_NUMPAD5, "numpad5", NULL },
{ WXK_NUMPAD6, "numpad6", NULL },
{ WXK_NUMPAD7, "numpad7", NULL },
{ WXK_NUMPAD8, "numpad8", NULL },
{ WXK_NUMPAD9, "numpad9", NULL },
{ WXK_MULTIPLY, "multiply", NULL },
{ WXK_ADD, "add", NULL },
{ WXK_SEPARATOR, "separator", NULL },
{ WXK_SUBTRACT, "subtract", NULL },
{ WXK_DECIMAL, "decimal", NULL },
{ WXK_DIVIDE, "divide", NULL },
{ WXK_F1, "f1", NULL },
{ WXK_F2, "f2", NULL },
{ WXK_F3, "f3", NULL },
{ WXK_F4, "f4", NULL },
{ WXK_F5, "f5", NULL },
{ WXK_F6, "f6", NULL },
{ WXK_F7, "f7", NULL },
{ WXK_F8, "f8", NULL },
{ WXK_F9, "f9", NULL },
{ WXK_F10, "f10", NULL },
{ WXK_F11, "f11", NULL },
{ WXK_F12, "f12", NULL },
{ WXK_F13, "f13", NULL },
{ WXK_F14, "f14", NULL },
{ WXK_F15, "f15", NULL },
{ WXK_F16, "f16", NULL },
{ WXK_F17, "f17", NULL },
{ WXK_F18, "f18", NULL },
{ WXK_F19, "f19", NULL },
{ WXK_F20, "f20", NULL },
{ WXK_F21, "f21", NULL },
{ WXK_F22, "f22", NULL },
{ WXK_F23, "f23", NULL },
{ WXK_F24, "f24", NULL },
{ WXK_NUMLOCK, "numlock", NULL },
{ WXK_SCROLL, "scroll", NULL },
{ WXK_PAGEUP, "pageup", NULL },
{ WXK_PAGEDOWN, "pagedown", NULL },
{ WXK_NUMPAD_SPACE, "numpad_space", NULL },
{ WXK_NUMPAD_TAB, "numpad_tab", NULL },
{ WXK_NUMPAD_ENTER, "numpad_enter", NULL },
{ WXK_NUMPAD_F1, "numpad_f1", NULL },
{ WXK_NUMPAD_F2, "numpad_f2", NULL },
{ WXK_NUMPAD_F3, "numpad_f3", NULL },
{ WXK_NUMPAD_F4, "numpad_f4", NULL },
{ WXK_NUMPAD_HOME, "numpad_home", NULL },
{ WXK_NUMPAD_LEFT, "numpad_left", NULL },
{ WXK_NUMPAD_UP, "numpad_up", NULL },
{ WXK_NUMPAD_RIGHT, "numpad_right", NULL },
{ WXK_NUMPAD_DOWN, "numpad_down", NULL },
{ WXK_NUMPAD_PAGEUP, "numpad_pageup", NULL },
{ WXK_NUMPAD_PAGEDOWN, "numpad_pagedown", NULL },
{ WXK_NUMPAD_END, "numpad_end", NULL },
{ WXK_NUMPAD_BEGIN, "numpad_begin", NULL },
{ WXK_NUMPAD_INSERT, "numpad_insert", NULL },
{ WXK_NUMPAD_DELETE, "numpad_delete", NULL },
{ WXK_NUMPAD_EQUAL, "numpad_equal", NULL },
{ WXK_NUMPAD_MULTIPLY, "numpad_multiply", NULL },
{ WXK_NUMPAD_ADD, "numpad_add", NULL },
{ WXK_NUMPAD_SEPARATOR, "numpad_separator", NULL },
{ WXK_NUMPAD_SUBTRACT, "numpad_subtract", NULL },
{ WXK_NUMPAD_DECIMAL, "numpad_decimal", NULL },
{ WXK_NUMPAD_DIVIDE, "numpad_divide", NULL },
{ WXK_WINDOWS_LEFT, "windows_left", NULL },
{ WXK_WINDOWS_RIGHT, "windows_right", NULL },
{ WXK_WINDOWS_MENU, "windows_menu", NULL },
{ WXK_COMMAND, "command", NULL },
{ WXK_SPECIAL1, "special1", NULL },
{ WXK_SPECIAL2, "special2", NULL },
{ WXK_SPECIAL3, "special3", NULL },
{ WXK_SPECIAL4, "special4", NULL },
{ WXK_SPECIAL5, "special5", NULL },
{ WXK_SPECIAL6, "special6", NULL },
{ WXK_SPECIAL7, "special7", NULL },
{ WXK_SPECIAL8, "special8", NULL },
{ WXK_SPECIAL9, "special9", NULL },
{ WXK_SPECIAL10, "special10", NULL },
{ WXK_SPECIAL11, "special11", NULL },
{ WXK_SPECIAL12, "special12", NULL },
{ WXK_SPECIAL13, "special13", NULL },
{ WXK_SPECIAL14, "special14", NULL },
{ WXK_SPECIAL15, "special15", NULL },
{ WXK_SPECIAL16, "special16", NULL },
{ WXK_SPECIAL17, "special17", NULL },
{ WXK_SPECIAL18, "special18", NULL },
{ WXK_SPECIAL19, "special19", NULL },
{ WXK_SPECIAL20, "special20", NULL },
{ 0, NULL, NULL }
{ WXK_BACK, "back", "editing", NULL },
{ WXK_TAB, "tab", "editing", NULL },
{ WXK_RETURN, "return", "editing", NULL },
{ WXK_ESCAPE, "escape", "editing", NULL },
{ WXK_SPACE, "space", "characters", NULL },
{ 33, "exclaim", "characters", NULL },
{ 34, "quotedbl", "characters", NULL },
{ 35, "hash", "characters", NULL },
{ 36, "dollar", "characters", NULL },
{ 37, "percent", "characters", NULL },
{ 38, "ampersand", "characters", NULL },
{ 39, "quote", "characters", NULL },
{ 40, "leftparen", "characters", NULL },
{ 41, "rightparen", "characters", NULL },
{ 42, "asterisk", "characters", NULL },
{ 43, "plus", "characters", NULL },
{ 44, "comma", "characters", NULL },
{ 45, "minus", "characters", NULL },
{ 46, "period", "characters", NULL },
{ 47, "slash", "characters", NULL },
{ 48, "0", "numeric", NULL },
{ 49, "1", "numeric", NULL },
{ 50, "2", "numeric", NULL },
{ 51, "3", "numeric", NULL },
{ 52, "4", "numeric", NULL },
{ 53, "5", "numeric", NULL },
{ 54, "6", "numeric", NULL },
{ 55, "7", "numeric", NULL },
{ 56, "8", "numeric", NULL },
{ 57, "9", "numeric", NULL },
{ 58, "colon", "characters", NULL },
{ 59, "semicolon", "characters", NULL },
{ 60, "less", "characters", NULL },
{ 61, "equals", "characters", NULL },
{ 62, "greater", "characters", NULL },
{ 63, "question", "characters", NULL },
{ 64, "at", "characters", NULL },
{ 65, "a", "alphabetic", NULL },
{ 66, "b", "alphabetic", NULL },
{ 67, "c", "alphabetic", NULL },
{ 68, "d", "alphabetic", NULL },
{ 69, "e", "alphabetic", NULL },
{ 70, "f", "alphabetic", NULL },
{ 71, "g", "alphabetic", NULL },
{ 72, "h", "alphabetic", NULL },
{ 73, "i", "alphabetic", NULL },
{ 74, "j", "alphabetic", NULL },
{ 75, "k", "alphabetic", NULL },
{ 76, "l", "alphabetic", NULL },
{ 77, "m", "alphabetic", NULL },
{ 78, "n", "alphabetic", NULL },
{ 79, "o", "alphabetic", NULL },
{ 80, "p", "alphabetic", NULL },
{ 81, "q", "alphabetic", NULL },
{ 82, "r", "alphabetic", NULL },
{ 83, "s", "alphabetic", NULL },
{ 84, "t", "alphabetic", NULL },
{ 85, "u", "alphabetic", NULL },
{ 86, "v", "alphabetic", NULL },
{ 87, "w", "alphabetic", NULL },
{ 88, "x", "alphabetic", NULL },
{ 89, "y", "alphabetic", NULL },
{ 90, "z", "alphabetic", NULL },
{ 91, "leftbracket", "characters", NULL },
{ 92, "backslash", "characters", NULL },
{ 93, "rightbracket", "characters", NULL },
{ 94, "caret", "characters", NULL },
{ 95, "underscore", "characters", NULL },
{ 96, "backquote", "characters", NULL },
{ 97, "a", "alphabetic", NULL },
{ 98, "b", "alphabetic", NULL },
{ 99, "c", "alphabetic", NULL },
{ 100, "d", "alphabetic", NULL },
{ 101, "e", "alphabetic", NULL },
{ 102, "f", "alphabetic", NULL },
{ 103, "g", "alphabetic", NULL },
{ 104, "h", "alphabetic", NULL },
{ 105, "i", "alphabetic", NULL },
{ 106, "j", "alphabetic", NULL },
{ 107, "k", "alphabetic", NULL },
{ 108, "l", "alphabetic", NULL },
{ 109, "m", "alphabetic", NULL },
{ 110, "n", "alphabetic", NULL },
{ 111, "o", "alphabetic", NULL },
{ 112, "p", "alphabetic", NULL },
{ 113, "q", "alphabetic", NULL },
{ 114, "r", "alphabetic", NULL },
{ 115, "s", "alphabetic", NULL },
{ 116, "t", "alphabetic", NULL },
{ 117, "u", "alphabetic", NULL },
{ 118, "v", "alphabetic", NULL },
{ 119, "w", "alphabetic", NULL },
{ 120, "x", "alphabetic", NULL },
{ 121, "y", "alphabetic", NULL },
{ 122, "z", "alphabetic", NULL },
{ 123, "leftcurly", "characters", NULL },
{ 124, "pipe", "characters", NULL },
{ 125, "rightcurly", "characters", NULL },
{ 126, "tilde", "characters", NULL },
{ WXK_DELETE, "delete", "editing", NULL },
{ WXK_START, "start", "special", NULL },
{ WXK_LBUTTON, "lbutton", "special", NULL },
{ WXK_RBUTTON, "rbutton", "special", NULL },
{ WXK_CANCEL, "cancel", "special", NULL },
{ WXK_MBUTTON, "mbutton", "special", NULL },
{ WXK_CLEAR, "clear", "editing", NULL },
{ WXK_SHIFT, "shift", "modifiers", NULL },
{ WXK_ALT, "alt", "modifiers", NULL },
{ WXK_CONTROL, "control", "modifiers", NULL },
{ WXK_MENU, "menu", "special", NULL },
{ WXK_PAUSE, "pause", "special", NULL },
{ WXK_CAPITAL, "capital", "locks", NULL },
{ WXK_END, "end", "editing", NULL },
{ WXK_HOME, "home", "editing", NULL },
{ WXK_LEFT, "lefT", "editing", NULL },
{ WXK_UP, "up", "editing", NULL },
{ WXK_RIGHT, "right", "editing", NULL },
{ WXK_DOWN, "down", "editing", NULL },
{ WXK_SELECT, "select", "special", NULL },
{ WXK_PRINT, "print", "special", NULL },
{ WXK_EXECUTE, "execute", "special", NULL },
{ WXK_SNAPSHOT, "snapshot", "special", NULL },
{ WXK_INSERT, "insert", "editing", NULL },
{ WXK_HELP, "help", "special", NULL },
{ WXK_NUMPAD0, "numpad0", "numeric", NULL },
{ WXK_NUMPAD1, "numpad1", "numeric", NULL },
{ WXK_NUMPAD2, "numpad2", "numeric", NULL },
{ WXK_NUMPAD3, "numpad3", "numeric", NULL },
{ WXK_NUMPAD4, "numpad4", "numeric", NULL },
{ WXK_NUMPAD5, "numpad5", "numeric", NULL },
{ WXK_NUMPAD6, "numpad6", "numeric", NULL },
{ WXK_NUMPAD7, "numpad7", "numeric", NULL },
{ WXK_NUMPAD8, "numpad8", "numeric", NULL },
{ WXK_NUMPAD9, "numpad9", "numeric", NULL },
{ WXK_MULTIPLY, "multiply", "characters", NULL },
{ WXK_ADD, "add", "characters", NULL },
{ WXK_SEPARATOR, "separator", "characters", NULL },
{ WXK_SUBTRACT, "subtract", "characters", NULL },
{ WXK_DECIMAL, "decimal", "characters", NULL },
{ WXK_DIVIDE, "divide", "characters", NULL },
{ WXK_F1, "f1", "F-keys", NULL },
{ WXK_F2, "f2", "F-keys", NULL },
{ WXK_F3, "f3", "F-keys", NULL },
{ WXK_F4, "f4", "F-keys", NULL },
{ WXK_F5, "f5", "F-keys", NULL },
{ WXK_F6, "f6", "F-keys", NULL },
{ WXK_F7, "f7", "F-keys", NULL },
{ WXK_F8, "f8", "F-keys", NULL },
{ WXK_F9, "f9", "F-keys", NULL },
{ WXK_F10, "f10", "F-keys", NULL },
{ WXK_F11, "f11", "F-keys", NULL },
{ WXK_F12, "f12", "F-keys", NULL },
{ WXK_F13, "f13", "F-keys", NULL },
{ WXK_F14, "f14", "F-keys", NULL },
{ WXK_F15, "f15", "F-keys", NULL },
{ WXK_F16, "f16", "F-keys", NULL },
{ WXK_F17, "f17", "F-keys", NULL },
{ WXK_F18, "f18", "F-keys", NULL },
{ WXK_F19, "f19", "F-keys", NULL },
{ WXK_F20, "f20", "F-keys", NULL },
{ WXK_F21, "f21", "F-keys", NULL },
{ WXK_F22, "f22", "F-keys", NULL },
{ WXK_F23, "f23", "F-keys", NULL },
{ WXK_F24, "f24", "F-keys", NULL },
{ WXK_NUMLOCK, "numlock", "locks", NULL },
{ WXK_SCROLL, "scroll", "locks", NULL },
{ WXK_PAGEUP, "pageup", "editing", NULL },
{ WXK_PAGEDOWN, "pagedown", "editing", NULL },
{ WXK_NUMPAD_SPACE, "numpad_space", "editing", NULL },
{ WXK_NUMPAD_TAB, "numpad_tab", "editing", NULL },
{ WXK_NUMPAD_ENTER, "numpad_enter", "editing", NULL },
{ WXK_NUMPAD_F1, "numpad_f1", "F-keys", NULL },
{ WXK_NUMPAD_F2, "numpad_f2", "F-keys", NULL },
{ WXK_NUMPAD_F3, "numpad_f3", "F-keys", NULL },
{ WXK_NUMPAD_F4, "numpad_f4", "F-keys", NULL },
{ WXK_NUMPAD_HOME, "numpad_home", "editing", NULL },
{ WXK_NUMPAD_LEFT, "numpad_left", "editing", NULL },
{ WXK_NUMPAD_UP, "numpad_up", "editing", NULL },
{ WXK_NUMPAD_RIGHT, "numpad_right", "editing", NULL },
{ WXK_NUMPAD_DOWN, "numpad_down", "editing", NULL },
{ WXK_NUMPAD_PAGEUP, "numpad_pageup", "editing", NULL },
{ WXK_NUMPAD_PAGEDOWN, "numpad_pagedown", "editing", NULL },
{ WXK_NUMPAD_END, "numpad_end", "editing", NULL },
{ WXK_NUMPAD_BEGIN, "numpad_begin", "editing", NULL },
{ WXK_NUMPAD_INSERT, "numpad_insert", "editing", NULL },
{ WXK_NUMPAD_DELETE, "numpad_delete", "editing", NULL },
{ WXK_NUMPAD_EQUAL, "numpad_equal", "characters", NULL },
{ WXK_NUMPAD_MULTIPLY, "numpad_multiply", "characters", NULL },
{ WXK_NUMPAD_ADD, "numpad_add", "characters", NULL },
{ WXK_NUMPAD_SEPARATOR, "numpad_separator", "characters", NULL },
{ WXK_NUMPAD_SUBTRACT, "numpad_subtract", "characters", NULL },
{ WXK_NUMPAD_DECIMAL, "numpad_decimal", "characters", NULL },
{ WXK_NUMPAD_DIVIDE, "numpad_divide", "characters", NULL },
{ WXK_WINDOWS_LEFT, "windows_left", "modifiers", NULL },
{ WXK_WINDOWS_RIGHT, "windows_right", "modifiers", NULL },
{ WXK_WINDOWS_MENU, "windows_menu", "modifiers", NULL },
{ WXK_COMMAND, "command", "special", NULL },
{ WXK_SPECIAL1, "special1", "special", NULL },
{ WXK_SPECIAL2, "special2", "special", NULL },
{ WXK_SPECIAL3, "special3", "special", NULL },
{ WXK_SPECIAL4, "special4", "special", NULL },
{ WXK_SPECIAL5, "special5", "special", NULL },
{ WXK_SPECIAL6, "special6", "special", NULL },
{ WXK_SPECIAL7, "special7", "special", NULL },
{ WXK_SPECIAL8, "special8", "special", NULL },
{ WXK_SPECIAL9, "special9", "special", NULL },
{ WXK_SPECIAL10, "special10", "special", NULL },
{ WXK_SPECIAL11, "special11", "special", NULL },
{ WXK_SPECIAL12, "special12", "special", NULL },
{ WXK_SPECIAL13, "special13", "special", NULL },
{ WXK_SPECIAL14, "special14", "special", NULL },
{ WXK_SPECIAL15, "special15", "special", NULL },
{ WXK_SPECIAL16, "special16", "special", NULL },
{ WXK_SPECIAL17, "special17", "special", NULL },
{ WXK_SPECIAL18, "special18", "special", NULL },
{ WXK_SPECIAL19, "special19", "special", NULL },
{ WXK_SPECIAL20, "special20", "special", NULL },
{ 0, NULL, NULL, NULL }
};
std::map<int, modifier*> modifier_map;
@ -333,7 +334,7 @@ void initialize_wx_keyboard()
key_entry* k = keys;
while(k->name) {
if(!keys_allocated.count(k->name)) {
k->allocated = new keygroup(k->name, keygroup::KT_KEY);
k->allocated = new keygroup(k->name, k->clazz, keygroup::KT_KEY);
key_map[k->keynum] = k->allocated;
keys_allocated[k->name] = k->keynum;
} else

View file

@ -147,12 +147,12 @@ namespace
emulation_thread->join();
}
keygroup mouse_x("mouse_x", keygroup::KT_MOUSE);
keygroup mouse_y("mouse_y", keygroup::KT_MOUSE);
keygroup mouse_l("mouse_left", keygroup::KT_KEY);
keygroup mouse_m("mouse_center", keygroup::KT_KEY);
keygroup mouse_r("mouse_right", keygroup::KT_KEY);
keygroup mouse_i("mouse_inwindow", keygroup::KT_KEY);
keygroup mouse_x("mouse_x", "mouse", keygroup::KT_MOUSE);
keygroup mouse_y("mouse_y", "mouse", keygroup::KT_MOUSE);
keygroup mouse_l("mouse_left", "mouse", keygroup::KT_KEY);
keygroup mouse_m("mouse_center", "mouse", keygroup::KT_KEY);
keygroup mouse_r("mouse_right", "mouse", keygroup::KT_KEY);
keygroup mouse_i("mouse_inwindow", "mouse", keygroup::KT_KEY);
void handle_wx_mouse(wxMouseEvent& e)
{