Subversion Repositories Kolibri OS

Rev

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