| 167 | |
| 168 | |
| 169 | wxString KeyNameFromKeyCode( int aKeycode, bool* aIsFound ) |
| 170 | { |
| 171 | wxString keyname, modifier, fullkeyname; |
| 172 | int ii; |
| 173 | bool found = false; |
| 174 | |
| 175 | if( aKeycode == WXK_CONTROL ) |
| 176 | return wxString( MODIFIER_CTRL ).BeforeFirst( '+' ); |
| 177 | else if( aKeycode == WXK_RAW_CONTROL ) |
| 178 | return wxString( MODIFIER_CTRL_BASE ).BeforeFirst( '+' ); |
| 179 | else if( aKeycode == WXK_SHIFT ) |
| 180 | return wxString( MODIFIER_SHIFT ).BeforeFirst( '+' ); |
| 181 | else if( aKeycode == WXK_ALT ) |
| 182 | return wxString( MODIFIER_ALT ).BeforeFirst( '+' ); |
| 183 | #ifdef WXK_WINDOWS_LEFT |
| 184 | else if( aKeycode == WXK_WINDOWS_LEFT || aKeycode == WXK_WINDOWS_RIGHT ) |
| 185 | return wxString( MODIFIER_WIN ).BeforeFirst( '+' ); |
| 186 | #endif |
| 187 | #ifdef WXK_META |
| 188 | else if( aKeycode == WXK_META ) |
| 189 | return wxString( MODIFIER_META ).BeforeFirst( '+' ); |
| 190 | #endif |
| 191 | |
| 192 | // Assume keycode of 0 is "unassigned" |
| 193 | if( (aKeycode & MD_CTRL) != 0 ) |
| 194 | modifier << MODIFIER_CTRL; |
| 195 | |
| 196 | if( (aKeycode & MD_ALT) != 0 ) |
| 197 | modifier << MODIFIER_ALT; |
| 198 | |
| 199 | if( (aKeycode & MD_SHIFT) != 0 ) |
| 200 | modifier << MODIFIER_SHIFT; |
| 201 | |
| 202 | if( (aKeycode & MD_META) != 0 ) |
| 203 | modifier << MODIFIER_META; |
| 204 | |
| 205 | if( (aKeycode & MD_SUPER) != 0 ) |
| 206 | modifier << MODIFIER_WIN; |
| 207 | |
| 208 | if( (aKeycode & MD_ALTGR) != 0 ) |
| 209 | modifier << MODIFIER_ALTGR; |
| 210 | |
| 211 | aKeycode &= ~MD_MODIFIER_MASK; |
| 212 | |
| 213 | if( (aKeycode > ' ') && (aKeycode < 0x7F ) ) |
| 214 | { |
| 215 | found = true; |
| 216 | keyname.Append( (wxChar)aKeycode ); |
| 217 | } |
| 218 | else |
| 219 | { |
| 220 | for( ii = 0; ; ii++ ) |
| 221 | { |
| 222 | if( hotkeyNameList[ii].m_KeyCode == KEY_NON_FOUND ) // End of list |
| 223 | { |
| 224 | keyname = wxT( "<unknown>" ); |
| 225 | break; |
| 226 | } |