Rev 6589 | Rev 8581 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6589 | Rev 6612 | ||
---|---|---|---|
Line 224... | Line 224... | ||
224 | 224 | ||
225 | extern void (*filebrowse_draw)(filebrowser *) __attribute__((__stdcall__)); |
225 | extern void (*filebrowse_draw)(filebrowser *) __attribute__((__stdcall__)); |
226 | extern void (*filebrowse_key)(filebrowser *) __attribute__((__stdcall__)); |
226 | extern void (*filebrowse_key)(filebrowser *) __attribute__((__stdcall__)); |
Line -... | Line 227... | ||
- | 227 | extern void (*filebrowse_mouse)(filebrowser *) __attribute__((__stdcall__)); |
|
- | 228 | ||
- | 229 | __attribute__((__stdcall__)) static inline void filebrowser_key(filebrowser *fb, oskey_t keypress) |
|
- | 230 | /// wrapper for key, translate keypress (ASCII mode) to action for browser |
|
- | 231 | { |
|
- | 232 | // if (!fb->select_flag) return; // same reaction as other controls |
|
- | 233 | ||
- | 234 | int extended_key = 0, act = 0; |
|
- | 235 | ||
- | 236 | if(keypress.state) return; |
|
- | 237 | if (keypress.code == 0xE0){ extended_key = 1; return; } |
|
- | 238 | ||
- | 239 | act = 0; |
|
- | 240 | switch(keypress.ctrl_key) // ascii scancode |
|
- | 241 | { |
|
- | 242 | case 80: // arrow down |
|
- | 243 | act = 1; break; |
|
- | 244 | case 72: // arrow up |
|
- | 245 | act = 2; break; |
|
- | 246 | case 81: // PageDown |
|
- | 247 | act = 3; break; |
|
- | 248 | case 73: // PageUp |
|
- | 249 | act = 4; break; |
|
- | 250 | case 71: // Home |
|
- | 251 | act = 5; break; |
|
- | 252 | case 79: // End |
|
- | 253 | act = 6; break; |
|
- | 254 | case 28: // Enter |
|
- | 255 | act = 7; break; |
|
- | 256 | case 82: // Insert |
|
- | 257 | act = 8; break; |
|
- | 258 | case 78: // NumPad+ select all |
|
- | 259 | act = 9; break; |
|
- | 260 | case 74: // NumPad- deselct |
|
- | 261 | act = 10; break; |
|
- | 262 | case 55: // NumPad* invert selection |
|
- | 263 | act = 11; break; |
|
- | 264 | default: |
|
- | 265 | act = 12; // search by letter |
|
- | 266 | } |
|
- | 267 | fb->key_action = act; |
|
- | 268 | fb->key_action_num = keypress.ctrl_key; |
|
- | 269 | ||
- | 270 | // debug_board_printf("key pressed [%X] %d, action %d, ext_flag = %d\n", keypress.val, brows.key_action_num, act, extended_key); |
|
- | 271 | ||
- | 272 | if (extended_key) extended_key = 0; |
|
- | 273 | (*filebrowse_key)(fb); |
|
- | 274 | } |
|
227 | extern void (*filebrowse_mouse)(filebrowser *) __attribute__((__stdcall__)); |
275 |