Subversion Repositories Kolibri OS

Rev

Rev 6559 | Rev 6589 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6559 Rev 6561
Line 106... Line 106...
106
                                         filedata, filedata + read_bytes,
106
                                         filedata, filedata + read_bytes,
107
                                         0x00FF00, 0xbbddff, 0x000000, 0xFFFFFF, 0xFF0000));
107
                                         0x00FF00, 0xbbddff, 0x000000, 0xFFFFFF, 0xFF0000));
Line 108... Line 108...
108
 
108
 
109
    // try devices "/" - good
109
    // try devices "/" - good
110
    brows.folder_data = read_folderdata("/rd/1");
110
    brows.folder_data = read_folderdata("/rd/1");
Line -... Line 111...
-
 
111
    brows.select_panel_counter = 1;  // if want to show selection
-
 
112
 
-
 
113
kolibri_handle_event_redraw(main_window);
-
 
114
brows.all_redraw = 1;
-
 
115
(*filebrowse_draw)(&brows);
-
 
116
 
-
 
117
 
-
 
118
//???    set_os_keyb_mode(1); // needed for keyboard use in menu
111
    brows.select_panel_counter = 1;
119
 
112
 
120
    int extended_key = 0, act = 0;
113
    do  /* Start of main activity loop */
121
    do  /* Start of main activity loop */
114
    {
122
    {
115
        switch(gui_event)
123
        switch(gui_event)
Line 124... Line 132...
124
            break;
132
            break;
125
        case KOLIBRI_EVENT_NONE:
133
        case KOLIBRI_EVENT_NONE:
126
			break;
134
			break;
127
        case KOLIBRI_EVENT_KEY:
135
        case KOLIBRI_EVENT_KEY:
128
            keypress = get_key();
136
            keypress = get_key();
-
 
137
            if(keypress.state) break;
-
 
138
            if (keypress.code == 0xE0){ extended_key = 1; break; }
-
 
139
 
-
 
140
            act = 0;
-
 
141
            switch(keypress.ctrl_key)  // ascii scancode
-
 
142
            {
-
 
143
            case 80: // arrow down
-
 
144
                act = 1; break;
-
 
145
            case 72: // arrow up
-
 
146
                act = 2; break;
-
 
147
            case 81: // PageDown
-
 
148
                act = 3; break;
-
 
149
            case 73: // PageUp
-
 
150
                act = 4; break;
-
 
151
            case 71: // Home
-
 
152
                act = 5; break;
-
 
153
            case 79: // End
-
 
154
                act = 6; break;
-
 
155
            case 28: // Enter
-
 
156
                act = 7; break;
-
 
157
            case 82: // Insert
-
 
158
                act = 8; break;
-
 
159
            case 78: // NumPad+   select all
-
 
160
                act = 9; break;
-
 
161
            case 74: // NumPad-   deselct
-
 
162
                act = 10; break;
-
 
163
            case 55: // NumPad*  invert selection
-
 
164
                act = 11; break;
-
 
165
            default:
-
 
166
                act = 12; // search by letter
-
 
167
            }
-
 
168
            brows.key_action = act;
-
 
169
            brows.key_action_num = keypress.ctrl_key;
-
 
170
 
-
 
171
            debug_board_printf("key pressed [%X] %d, action %d, ext_flag = %d\n", keypress.val, brows.key_action_num, act, extended_key);
-
 
172
 
-
 
173
            if (extended_key) extended_key = 0;
-
 
174
            (*filebrowse_key)(&brows);
129
            kolibri_handle_event_key(main_window);
175
            //kolibri_handle_event_key(main_window);
130
			break;
176
			break;
131
        case KOLIBRI_EVENT_BUTTON:
177
        case KOLIBRI_EVENT_BUTTON:
132
            pressed_button = get_os_button();
178
            pressed_button = get_os_button();
133
            switch (pressed_button)
179
            switch (pressed_button)
134
            {
180
            {
Line 138... Line 184...
138
            }
184
            }
139
            break;
185
            break;
140
        case KOLIBRI_EVENT_MOUSE:
186
        case KOLIBRI_EVENT_MOUSE:
141
//            mouse_pos = get_mouse_pos(POS_WINDOW); // window relative
187
//            mouse_pos = get_mouse_pos(POS_WINDOW); // window relative
142
//            mouse_button = get_mouse_eventstate();
188
//            mouse_button = get_mouse_eventstate();
143
//brows.all_redraw = 1;
189
            brows.select_flag = 0;
144
            kolibri_handle_event_mouse(main_window);
190
            kolibri_handle_event_mouse(main_window);
Line 145... Line 191...
145
 
191
 
146
 
192
 
Line 181... Line 227...
181
                if (dlg_opensave->status != 2 && dlg_opensave->status != 0) // fail or cancel
227
                if (dlg_opensave->status != 2 && dlg_opensave->status != 0) // fail or cancel
182
                {
228
                {
183
                    (*path_show_prepare)(&pview);
229
                    (*path_show_prepare)(&pview);
184
                    free(brows.folder_data);
230
                    free(brows.folder_data);
185
                    brows.folder_data = read_folderdata(dlg_opensave->openfile_path);
231
                    brows.folder_data = read_folderdata(dlg_opensave->openfile_path);
-
 
232
                    brows.start_draw_line = brows.start_draw_cursor_line = 0;
186
                }
233
                }
187
                // we may redraw here, or just wait next redraw event
234
                // we may redraw here, or just wait next redraw event
188
                brows.all_redraw = 1;
235
                brows.all_redraw = 1;
189
                kolibri_handle_event_redraw(main_window);
236
                kolibri_handle_event_redraw(main_window);
190
                brows.all_redraw = 0;
237
                brows.all_redraw = 0;
Line 231... Line 278...
231
void* read_folderdata(char* name)
278
void* read_folderdata(char* name)
232
{
279
{
233
    struct fs_dirinfo di;
280
    struct fs_dirinfo di;
234
    struct fs_dirheader dhead;
281
    struct fs_dirheader dhead;
235
    assert(sizeof di == 25);
282
    assert(sizeof di == 25);
-
 
283
 
236
    memset(&di, 0, sizeof di);
284
    memset(&di, 0, sizeof di);
237
    di.ppath = name;
285
    di.ppath = name;
238
    di.retval = (uint32_t)&dhead;
286
    di.retval = (uint32_t)&dhead;
239
    int rc = sf_file(1, &di);  // read dir size
287
    int rc = sf_file(1, &di);  // read dir size
240
    if(rc) {
288
    if(rc) {
Line 253... Line 301...
253
    if(rc) {
301
    if(rc) {
254
        debug_board_printf("Error 2 reading dir size %s", name);
302
        debug_board_printf("Error 2 reading dir size %s", name);
255
        exit(1);
303
        exit(1);
256
    }
304
    }
Line -... Line 305...
-
 
305
 
-
 
306
    // manual clear mark flag (random junk in fname free space)
-
 
307
    int i;
-
 
308
    for (i = 0; i < dhead.totl_blocks; i++)
-
 
309
        ((struct fsBDFE*)(retdir+32))[i].fname[259] = 0;
257
 
310
 
Line 258... Line 311...
258
    debug_board_printf("Loaded dir [%s] etnries %d,\n first file [%s]\n", name, ((struct fs_dirheader*)(retdir))->curn_blocks, ((struct fsBDFE*)(retdir+32))->fname);
311
    debug_board_printf("Loaded dir [%s] etnries %d,\n first file [%s]\n", name, ((struct fs_dirheader*)(retdir))->curn_blocks, ((struct fsBDFE*)(retdir+32))->fname);
259
 
312