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 |