hotkeys are now universally lowercase

This commit is contained in:
David Rose 2002-02-19 17:23:39 +00:00
parent 4e64da0311
commit f946e7b58b
5 changed files with 45 additions and 91 deletions

View File

@ -1399,18 +1399,18 @@ int framework_main(int argc, char *argv[]) {
event_handler.add_hook("l", event_l);
event_handler.add_hook("w", event_w);
event_handler.add_hook("b", event_b);
event_handler.add_hook("shift-R", event_R);
event_handler.add_hook("shift-r", event_R);
event_handler.add_hook("`", event_grave);
event_handler.add_hook("n", event_n);
event_handler.add_hook("c", event_c);
event_handler.add_hook("shift-D", event_D);
event_handler.add_hook("shift-d", event_D);
event_handler.add_hook("g", event_g);
event_handler.add_hook("shift-C", event_C);
event_handler.add_hook("shift-N", event_N);
event_handler.add_hook("shift-S", event_S);
event_handler.add_hook("shift-A", event_A);
event_handler.add_hook("shift-c", event_C);
event_handler.add_hook("shift-n", event_N);
event_handler.add_hook("shift-s", event_S);
event_handler.add_hook("shift-a", event_A);
event_handler.add_hook("p", event_p);
event_handler.add_hook("shift-P", event_P);
event_handler.add_hook("shift-p", event_P);
#ifdef USE_IPC
event_handler.add_hook("x", event_x);

View File

@ -1518,18 +1518,18 @@ int framework_main(int argc, char *argv[]) {
event_handler.add_hook("l", event_l);
event_handler.add_hook("w", event_w);
event_handler.add_hook("b", event_b);
event_handler.add_hook("shift-R", event_R);
event_handler.add_hook("shift-r", event_R);
event_handler.add_hook("`", event_grave);
event_handler.add_hook("n", event_n);
event_handler.add_hook("c", event_c);
event_handler.add_hook("shift-D", event_D);
event_handler.add_hook("shift-d", event_D);
event_handler.add_hook("g", event_g);
event_handler.add_hook("shift-C", event_C);
event_handler.add_hook("shift-N", event_N);
event_handler.add_hook("shift-S", event_S);
event_handler.add_hook("shift-A", event_A);
event_handler.add_hook("shift-c", event_C);
event_handler.add_hook("shift-n", event_N);
event_handler.add_hook("shift-s", event_S);
event_handler.add_hook("shift-a", event_A);
event_handler.add_hook("p", event_p);
event_handler.add_hook("shift-P", event_P);
event_handler.add_hook("shift-p", event_P);
#ifdef USE_IPC
event_handler.add_hook("x", event_x);

View File

@ -513,9 +513,9 @@ void demo_keys(EventHandler&) {
event_handler.add_hook("shift-f7", event_fkey);
event_handler.add_hook("shift-f8", event_fkey);
event_handler.add_hook("shift-f9", event_fkey);
event_handler.add_hook("shift-B", event_B);
event_handler.add_hook("shift-b", event_B);
event_handler.add_hook("shift-L", event_L);
event_handler.add_hook("shift-l", event_L);
event_handler.add_hook("k", event_k);
event_handler.add_hook("a", event_a);
event_handler.add_hook("v", event_v);

View File

@ -2721,44 +2721,21 @@ lookup_key(WPARAM wparam) const {
default:
int key = MapVirtualKey(wparam, 2);
if(isascii(key) && key != 0) {
bool bCapsLockDown=((GetKeyState(VK_CAPITAL) & 0x1)!=0);
bool bShiftUp = (GetKeyState(VK_SHIFT) >= 0);
if(bShiftUp) {
if(bCapsLockDown)
key = toupper(key);
else key = tolower(key);
} else {
switch(key) {
// these keys are unaffected by capslock
case '1': key = '!'; break;
case '2': key = '@'; break;
case '3': key = '#'; break;
case '4': key = '$'; break;
case '5': key = '%'; break;
case '6': key = '^'; break;
case '7': key = '&'; break;
case '8': key = '*'; break;
case '9': key = '('; break;
case '0': key = ')'; break;
case '-': key = '_'; break;
case '=': key = '+'; break;
case ',': key = '<'; break;
case '.': key = '>'; break;
case '/': key = '?'; break;
case ';': key = ':'; break;
case '\'': key = '"'; break;
case '[': key = '{'; break;
case ']': key = '}'; break;
case '\\': key = '|'; break;
case '`': key = '~'; break;
default:
if(bCapsLockDown)
key = tolower(key);
else key = toupper(key);
}
}
return KeyboardButton::ascii_key((uchar)key);
if (isascii(key) && key != 0) {
// We used to try to remap lowercase to uppercase keys
// here based on the state of the shift and/or caps lock
// keys. But that's a mistake, and doesn't allow for
// international or user-defined keyboards; let Windows
// do that mapping.
// Nowadays, we make a distinction between a "button"
// and a "keystroke". A button corresponds to a
// physical button on the keyboard and has a down and up
// event associated. A keystroke may or may not
// correspond to a physical button, but will be some
// Unicode character and will not have a corresponding
// up event.
return KeyboardButton::ascii_key(tolower(key));
}
break;
}

View File

@ -1983,43 +1983,20 @@ lookup_key(WPARAM wparam) const {
default:
int key = MapVirtualKey(wparam, 2);
if (isascii(key) && key != 0) {
bool bCapsLockDown=((GetKeyState(VK_CAPITAL) & 0x1)!=0);
bool bShiftUp = (GetKeyState(VK_SHIFT) >= 0);
if (bShiftUp) {
if (bCapsLockDown)
key = toupper(key);
else key = tolower(key);
} else {
switch(key) {
// these keys are unaffected by capslock
case '1': key = '!'; break;
case '2': key = '@'; break;
case '3': key = '#'; break;
case '4': key = '$'; break;
case '5': key = '%'; break;
case '6': key = '^'; break;
case '7': key = '&'; break;
case '8': key = '*'; break;
case '9': key = '('; break;
case '0': key = ')'; break;
case '-': key = '_'; break;
case '=': key = '+'; break;
case ',': key = '<'; break;
case '.': key = '>'; break;
case '/': key = '?'; break;
case ';': key = ':'; break;
case '\'': key = '"'; break;
case '[': key = '{'; break;
case ']': key = '}'; break;
case '\\': key = '|'; break;
case '`': key = '~'; break;
default:
if (bCapsLockDown)
key = tolower(key);
else key = toupper(key);
}
}
return KeyboardButton::ascii_key((uchar)key);
// We used to try to remap lowercase to uppercase keys
// here based on the state of the shift and/or caps lock
// keys. But that's a mistake, and doesn't allow for
// international or user-defined keyboards; let Windows
// do that mapping.
// Nowadays, we make a distinction between a "button"
// and a "keystroke". A button corresponds to a
// physical button on the keyboard and has a down and up
// event associated. A keystroke may or may not
// correspond to a physical button, but will be some
// Unicode character and will not have a corresponding
// up event.
return KeyboardButton::ascii_key(tolower(key));
}
break;
}