* Processes extended key sequences. * * Return KEY_NONE if no key pressed. */
| 85 | * Return KEY_NONE if no key pressed. |
| 86 | */ |
| 87 | int CKeycode::add(int c) |
| 88 | { |
| 89 | #ifdef __WIN32 |
| 90 | if(m_count != 0) { |
| 91 | int cp = m_buffer[0]; |
| 92 | reset(); |
| 93 | if(cp == 0x00) |
| 94 | switch(c) { |
| 95 | case 0x3B: |
| 96 | return KEY_F1; |
| 97 | case 0x3C: |
| 98 | return KEY_F2; |
| 99 | case 0x3D: |
| 100 | return KEY_F3; |
| 101 | case 0x3E: |
| 102 | return KEY_F4; |
| 103 | case 0x3F: |
| 104 | return KEY_F5; |
| 105 | case 0x40: |
| 106 | return KEY_F6; |
| 107 | case 0x41: |
| 108 | return KEY_F7; |
| 109 | case 0x42: |
| 110 | return KEY_F8; |
| 111 | case 0x43: |
| 112 | return KEY_F9; |
| 113 | case 0x44: |
| 114 | return KEY_F10; |
| 115 | case 0x45: |
| 116 | return KEY_F11; |
| 117 | case 0x46: |
| 118 | return KEY_F12; |
| 119 | default: |
| 120 | return KEY_NONE; |
| 121 | } |
| 122 | |
| 123 | if(cp == 0xE0) |
| 124 | switch(c) { |
| 125 | case 0x47: |
| 126 | return KEY_HOME; |
| 127 | case 0x52: |
| 128 | return KEY_INS; |
| 129 | case 0x53: |
| 130 | return KEY_DEL; |
| 131 | case 0x4F: |
| 132 | return KEY_END; |
| 133 | case 0x49: |
| 134 | return KEY_PGUP; |
| 135 | case 0x51: |
| 136 | return KEY_PGDN; |
| 137 | case 0x48: |
| 138 | return KEY_UP; |
| 139 | case 0x50: |
| 140 | return KEY_DOWN; |
| 141 | case 0x4B: |
| 142 | return KEY_LEFT; |
| 143 | case 0x4D: |
| 144 | return KEY_RIGHT; |