Rev 8932 | Rev 8984 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8932 | Rev 8960 | ||
---|---|---|---|
Line 14... | Line 14... | ||
14 | max_width = 255 |
14 | max_width = 255 |
15 | min_height = 8 |
15 | min_height = 8 |
16 | max_height = 255 |
16 | max_height = 255 |
Line 17... | Line 17... | ||
17 | 17 | ||
- | 18 | include '../../../KOSfuncs.inc' |
|
18 | include '../../../KOSfuncs.inc' |
19 | include '../../../macros.inc' |
19 | include 'lang.inc' |
20 | include 'lang.inc' |
20 | include 'font.inc' |
21 | include 'font.inc' |
21 | include 'sort.inc' |
22 | include 'sort.inc' |
22 | include 'kglobals.inc' |
23 | include 'kglobals.inc' |
Line 25... | Line 26... | ||
25 | include 'viewer.inc' |
26 | include 'viewer.inc' |
26 | include 'editor.inc' |
27 | include 'editor.inc' |
27 | include 'tools.inc' |
28 | include 'tools.inc' |
28 | include 'filetool.inc' |
29 | include 'filetool.inc' |
Line -... | Line 30... | ||
- | 30 | ||
- | 31 | struct PanelData |
|
- | 32 | left dd ? |
|
- | 33 | top dd ? |
|
- | 34 | width dd ? |
|
- | 35 | height dd ? |
|
- | 36 | index dd ? |
|
- | 37 | start dd ? |
|
- | 38 | colsz dd ? |
|
- | 39 | colst dd ? |
|
- | 40 | sortmode db ? |
|
- | 41 | rb 3 |
|
- | 42 | nfa dd ? |
|
- | 43 | numfiles dd ? |
|
- | 44 | files dd ? |
|
- | 45 | hPlugin dd ? |
|
- | 46 | hFile dd ? |
|
- | 47 | parents dd ? |
|
- | 48 | parents_sz dd ? |
|
- | 49 | parents_alloc dd ? |
|
- | 50 | colmode dd ? |
|
- | 51 | colwidths rd 16+1 |
|
- | 52 | total_num dd ? |
|
- | 53 | total_size dq ? |
|
- | 54 | selected_num dd ? |
|
- | 55 | selected_size dq ? |
|
- | 56 | ;plugin_info: |
|
- | 57 | plugin_flags dd ? |
|
- | 58 | dir rb 1024 |
|
- | 59 | ends |
|
29 | 60 | ||
30 | cursor_normal_size = (font_height*15+50)/100 |
61 | cursor_normal_size = (font_height*15+50)/100 |
Line 31... | Line 62... | ||
31 | cursor_big_size = font_height |
62 | cursor_big_size = font_height |
32 | 63 | ||
Line 124... | Line 155... | ||
124 | push SSF_SET_INPUT_MODE |
155 | push SSF_SET_INPUT_MODE |
125 | pop ebx |
156 | pop ebx |
126 | mov ecx, ebx |
157 | mov ecx, ebx |
127 | int 40h ; set keyboard mode to scancodes |
158 | int 40h ; set keyboard mode to scancodes |
128 | mov eax, 200 |
159 | mov eax, 200 |
129 | mov [panel1_nfa], eax |
160 | mov [panel1.nfa], eax |
130 | mov [panel2_nfa], eax |
161 | mov [panel2.nfa], eax |
131 | mov ecx, 200*4 + 32 + 200*304 |
162 | mov ecx, 200*4 + 32 + 200*304 |
132 | call pgalloc |
163 | call pgalloc |
133 | mov [panel1_files], eax |
164 | mov [panel1.files], eax |
134 | call pgalloc |
165 | call pgalloc |
135 | mov [panel2_files], eax |
166 | mov [panel2.files], eax |
136 | test eax, eax |
167 | test eax, eax |
137 | jz exit |
168 | jz exit |
138 | xor eax, eax |
169 | xor eax, eax |
139 | cmp [panel1_files], eax |
170 | cmp [panel1.files], eax |
140 | jz exit |
171 | jz exit |
141 | mov [panel1_hPlugin], eax |
172 | mov [panel1.hPlugin], eax |
142 | mov [panel1_parents], eax |
173 | mov [panel1.parents], eax |
143 | mov [panel1_parents_sz], eax |
174 | mov [panel1.parents_sz], eax |
144 | mov [panel1_parents_alloc], eax |
175 | mov [panel1.parents_alloc], eax |
145 | mov [panel2_hPlugin], eax |
176 | mov [panel2.hPlugin], eax |
146 | mov [panel2_parents], eax |
177 | mov [panel2.parents], eax |
147 | mov [panel2_parents_sz], eax |
178 | mov [panel2.parents_sz], eax |
148 | mov [panel2_parents_alloc], eax |
179 | mov [panel2.parents_alloc], eax |
149 | mov [panel1_sortmode], al ; sort by name |
180 | mov [panel1.sortmode], al ; sort by name |
150 | mov [panel2_sortmode], al |
181 | mov [panel2.sortmode], al |
151 | mov al, 2 ; "á।¨©" ä®à¬ â |
182 | mov al, 2 ; "á।¨©" ä®à¬ â |
152 | mov [panel1_colmode], eax |
183 | mov [panel1.colmode], eax |
153 | mov [panel2_colmode], eax |
184 | mov [panel2.colmode], eax |
154 | mov [num_screens], 1 |
185 | mov [num_screens], 1 |
155 | mov ecx, 0x1000 |
186 | mov ecx, 0x1000 |
156 | call pgalloc |
187 | call pgalloc |
157 | mov [screens], eax |
188 | mov [screens], eax |
158 | test eax, eax |
189 | test eax, eax |
Line 193... | Line 224... | ||
193 | call [ini.get_int] |
224 | call [ini.get_int] |
194 | cmp eax, 1 |
225 | cmp eax, 1 |
195 | jb @f |
226 | jb @f |
196 | cmp eax, 4 |
227 | cmp eax, 4 |
197 | ja @f |
228 | ja @f |
198 | mov [panel1_colmode], eax |
229 | mov [panel1.colmode], eax |
199 | @@: |
230 | @@: |
200 | push 2 |
231 | push 2 |
201 | push aRightViewMode |
232 | push aRightViewMode |
202 | push aPanels |
233 | push aPanels |
203 | push app_path |
234 | push app_path |
204 | call [ini.get_int] |
235 | call [ini.get_int] |
205 | cmp eax, 1 |
236 | cmp eax, 1 |
206 | jb @f |
237 | jb @f |
207 | cmp eax, 4 |
238 | cmp eax, 4 |
208 | ja @f |
239 | ja @f |
209 | mov [panel2_colmode], eax |
240 | mov [panel2.colmode], eax |
210 | @@: |
241 | @@: |
211 | push 0 |
242 | push 0 |
212 | push aLeftSortMode |
243 | push aLeftSortMode |
213 | push aPanels |
244 | push aPanels |
214 | push app_path |
245 | push app_path |
215 | call [ini.get_int] |
246 | call [ini.get_int] |
216 | cmp eax, 14 |
247 | cmp eax, 14 |
217 | jae @f |
248 | jae @f |
218 | mov [panel1_sortmode], al |
249 | mov [panel1.sortmode], al |
219 | @@: |
250 | @@: |
220 | push 0 |
251 | push 0 |
221 | push aRightSortMode |
252 | push aRightSortMode |
222 | push aPanels |
253 | push aPanels |
223 | push app_path |
254 | push app_path |
224 | call [ini.get_int] |
255 | call [ini.get_int] |
225 | cmp eax, 14 |
256 | cmp eax, 14 |
226 | jae @f |
257 | jae @f |
227 | mov [panel2_sortmode], al |
258 | mov [panel2.sortmode], al |
228 | @@: |
259 | @@: |
229 | push nullstr |
260 | push nullstr |
230 | push 512 |
261 | push 512 |
231 | push saved_file_name |
262 | push saved_file_name |
232 | push aEolStyle |
263 | push aEolStyle |
Line 363... | Line 394... | ||
363 | imul eax, max_height |
394 | imul eax, max_height |
364 | add eax, editor_data.basesize + 0xFFF |
395 | add eax, editor_data.basesize + 0xFFF |
365 | shr eax, 12 |
396 | shr eax, 12 |
366 | mov [EditDataSize], eax |
397 | mov [EditDataSize], eax |
367 | mov esi, def_left_dir |
398 | mov esi, def_left_dir |
368 | mov edi, panel1_dir |
399 | mov edi, panel1.dir |
369 | @@: |
400 | @@: |
370 | lodsb |
401 | lodsb |
371 | stosb |
402 | stosb |
372 | test al, al |
403 | test al, al |
373 | jnz @b |
404 | jnz @b |
374 | mov esi, def_right_dir |
405 | mov esi, def_right_dir |
375 | mov edi, panel2_dir |
406 | mov edi, panel2.dir |
376 | @@: |
407 | @@: |
377 | lodsb |
408 | lodsb |
378 | stosb |
409 | stosb |
379 | test al, al |
410 | test al, al |
380 | jnz @b |
411 | jnz @b |
381 | call draw_keybar |
412 | call draw_keybar |
382 | call draw_cmdbar |
413 | call draw_cmdbar |
383 | mov [prev_dir], 0 |
414 | mov [prev_dir], 0 |
384 | mov ebp, panel1_data |
415 | mov ebp, panel1 |
385 | call calc_colwidths |
416 | call calc_colwidths |
386 | call read_folder |
417 | call read_folder |
387 | call draw_panel |
418 | call draw_panel |
388 | mov [bSilentFolderMode], 1 |
419 | mov [bSilentFolderMode], 1 |
389 | mov ebp, panel2_data |
420 | mov ebp, panel2 |
390 | call calc_colwidths |
421 | call calc_colwidths |
391 | call read_folder |
422 | call read_folder |
392 | call draw_panel |
423 | call draw_panel |
393 | event: |
424 | event: |
394 | call get_event |
425 | call get_event |
Line 425... | Line 456... | ||
425 | pop esi ecx |
456 | pop esi ecx |
426 | jmp .unload |
457 | jmp .unload |
427 | .unload_done: |
458 | .unload_done: |
428 | cmp [ini.set_int], aIniSetInt |
459 | cmp [ini.set_int], aIniSetInt |
429 | jz .nosave |
460 | jz .nosave |
430 | push [panel1_colmode] |
461 | push [panel1.colmode] |
431 | push aLeftViewMode |
462 | push aLeftViewMode |
432 | push aPanels |
463 | push aPanels |
433 | push app_path |
464 | push app_path |
434 | call [ini.set_int] |
465 | call [ini.set_int] |
435 | push [panel2_colmode] |
466 | push [panel2.colmode] |
436 | push aRightViewMode |
467 | push aRightViewMode |
437 | push aPanels |
468 | push aPanels |
438 | push app_path |
469 | push app_path |
439 | call [ini.set_int] |
470 | call [ini.set_int] |
440 | movzx eax, [panel1_sortmode] |
471 | movzx eax, [panel1.sortmode] |
441 | push eax |
472 | push eax |
442 | push aLeftSortMode |
473 | push aLeftSortMode |
443 | push aPanels |
474 | push aPanels |
444 | push app_path |
475 | push app_path |
445 | call [ini.set_int] |
476 | call [ini.set_int] |
446 | movzx eax, [panel2_sortmode] |
477 | movzx eax, [panel2.sortmode] |
447 | push eax |
478 | push eax |
448 | push aRightSortMode |
479 | push aRightSortMode |
449 | push aPanels |
480 | push aPanels |
450 | push app_path |
481 | push app_path |
451 | call [ini.set_int] |
482 | call [ini.set_int] |
452 | .nosave: |
483 | .nosave: |
453 | if CHECK_FOR_LEAKS |
484 | if CHECK_FOR_LEAKS |
454 | mov ecx, [panel1_files] |
485 | mov ecx, [panel1.files] |
455 | call pgfree |
486 | call pgfree |
456 | mov ecx, [panel2_files] |
487 | mov ecx, [panel2.files] |
457 | call pgfree |
488 | call pgfree |
458 | mov ecx, [screens] |
489 | mov ecx, [screens] |
459 | call pgfree |
490 | call pgfree |
460 | mov ecx, [associations] |
491 | mov ecx, [associations] |
461 | call pgfree |
492 | call pgfree |
Line 475... | Line 506... | ||
475 | @@: |
506 | @@: |
476 | mov ecx, eax |
507 | mov ecx, eax |
477 | call pgfree |
508 | call pgfree |
478 | mov ecx, [plugins] |
509 | mov ecx, [plugins] |
479 | call pgfree |
510 | call pgfree |
480 | mov ecx, [panel1_parents] |
511 | mov ecx, [panel1.parents] |
481 | call pgfree |
512 | call pgfree |
482 | mov ecx, [panel2_parents] |
513 | mov ecx, [panel2.parents] |
483 | call pgfree |
514 | call pgfree |
484 | .nofreefs: |
515 | .nofreefs: |
485 | mov eax, [numallocatedregions] |
516 | mov eax, [numallocatedregions] |
486 | test eax, eax |
517 | test eax, eax |
487 | jz @f |
518 | jz @f |
Line 779... | Line 810... | ||
779 | and [ctrlstate], not 0x20 |
810 | and [ctrlstate], not 0x20 |
780 | jmp .keybar |
811 | jmp .keybar |
Line 781... | Line 812... | ||
781 | 812 | ||
782 | align 16 |
813 | align 16 |
- | 814 | mouse: |
|
- | 815 | cmp dword[num_screens],1 |
|
783 | mouse: |
816 | jg event |
784 | mov eax,SF_MOUSE_GET |
817 | mov eax,SF_MOUSE_GET |
785 | mov ebx,SSF_BUTTON_EXT |
818 | mov ebx,SSF_BUTTON_EXT |
786 | int 0x40 |
819 | int 0x40 |
787 | bt eax,8 |
820 | bt eax,8 |
Line 790... | Line 823... | ||
790 | mov eax,SF_MOUSE_GET |
823 | mov eax,SF_MOUSE_GET |
791 | mov ebx,SSF_WINDOW_POSITION |
824 | mov ebx,SSF_WINDOW_POSITION |
792 | int 0x40 |
825 | int 0x40 |
793 | cmp ax, word[skinh] |
826 | cmp ax, word[skinh] |
794 | jl event |
827 | jl event |
- | 828 | sub ax, word[skinh] |
|
- | 829 | xor dx,dx |
|
- | 830 | mov bx, font_height |
|
- | 831 | div bx |
|
- | 832 | movzx edx,ax |
|
- | 833 | dec edx ;¢¥àåïï à ¬ª |
|
- | 834 | dec edx ;§ £®«®¢ª¨ |
|
795 | shr eax,16 |
835 | shr eax,16 |
- | 836 | ||
- | 837 | cmp edx, 0 |
|
- | 838 | jl .no_ch_pos |
|
- | 839 | mov ebx, [cur_height] |
|
- | 840 | sub ebx, 7 |
|
- | 841 | cmp edx, ebx |
|
- | 842 | jge .no_ch_pos |
|
- | 843 | ||
- | 844 | push edx eax |
|
- | 845 | mov ecx, [cur_width] |
|
- | 846 | imul ecx, font_width/4 |
|
- | 847 | xor dx,dx |
|
- | 848 | sub ax, 5 ;window border |
|
- | 849 | div cx |
|
- | 850 | bt ax, 0 |
|
- | 851 | jnc @f |
|
- | 852 | add [esp+4], ebx ;¥á«¨ 2-© á⮫¡¥æ |
|
- | 853 | @@: |
|
- | 854 | pop eax ;edx in stack |
|
- | 855 | jmp @f |
|
- | 856 | .no_ch_pos: |
|
- | 857 | push -1 ;edx = -1 - no change position |
|
- | 858 | @@: |
|
- | 859 | ||
796 | mov ebx, [cur_width] |
860 | mov ebx, [cur_width] |
797 | imul ebx, font_width/2 |
861 | imul ebx, font_width/2 |
798 | add ebx, 5 ;window border |
862 | add ebx, 5 ;window border |
799 | cmp eax,ebx |
863 | cmp eax,ebx |
800 | jg @f |
864 | jg @f |
801 | cmp [active_panel], panel1_data |
865 | cmp [active_panel], panel1 |
802 | je event |
866 | je .move |
803 | jmp .tab |
867 | jmp .tab |
804 | @@: |
868 | @@: |
805 | cmp [active_panel], panel2_data |
869 | cmp [active_panel], panel2 |
806 | je event |
870 | je .move |
807 | .tab: |
871 | .tab: |
808 | xor [active_panel], panel1_data xor panel2_data |
872 | xor [active_panel], panel1 xor panel2 |
809 | call draw_cmdbar |
873 | call draw_cmdbar |
810 | mov ebp, [active_panel] |
874 | mov ebp, [active_panel] |
811 | xor ebp, panel1_data xor panel2_data |
875 | xor ebp, panel1 xor panel2 |
812 | call draw_panel |
876 | call draw_panel |
- | 877 | .move: |
|
813 | mov ebp, [active_panel] |
878 | mov ebp, [active_panel] |
- | 879 | pop edx |
|
- | 880 | mov eax, [ebp + PanelData.numfiles] |
|
- | 881 | add edx, [ebp + PanelData.start] ;ç¨á«® ¯à®ªàãç¥ëå ä ©«®¢ |
|
- | 882 | dec eax |
|
- | 883 | cmp edx, eax |
|
- | 884 | jle @f |
|
- | 885 | mov edx, eax |
|
- | 886 | @@: |
|
- | 887 | cmp edx, 0 |
|
- | 888 | jl @f |
|
- | 889 | mov [ebp + PanelData.index], edx |
|
- | 890 | @@: |
|
814 | call draw_panel |
891 | call draw_panel |
815 | jmp event |
892 | jmp event |
Line 816... | Line 893... | ||
816 | 893 | ||
817 | align 16 |
894 | align 16 |
Line 1320... | Line 1397... | ||
1320 | push 0 |
1397 | push 0 |
1321 | push QuickSearchDlg |
1398 | push QuickSearchDlg |
1322 | call HideDialogBox |
1399 | call HideDialogBox |
1323 | @@: |
1400 | @@: |
1324 | mov ebp, [active_panel] |
1401 | mov ebp, [active_panel] |
1325 | mov ecx, [ebp + panel1_index - panel1_data] |
1402 | mov ecx, [ebp + PanelData.index] |
1326 | mov edx, [ebp + panel1_start - panel1_data] |
1403 | mov edx, [ebp + PanelData.start] |
1327 | mov ebx, [ebp + panel1_colst - panel1_data] |
1404 | mov ebx, [ebp + PanelData.colst] |
1328 | add ebx, edx |
1405 | add ebx, edx |
1329 | mov esi, panels_ctrlkeys |
1406 | mov esi, panels_ctrlkeys |
1330 | call process_ctrl_keys |
1407 | call process_ctrl_keys |
1331 | jc .nostdkey |
1408 | jc .nostdkey |
1332 | mov [bQuickSearchMode], 0 |
1409 | mov [bQuickSearchMode], 0 |
Line 1414... | Line 1491... | ||
1414 | jnc @f |
1491 | jnc @f |
1415 | mov byte [quick_search_buf + 12], 0 |
1492 | mov byte [quick_search_buf + 12], 0 |
1416 | and dword [quick_search_buf + 4], 0 |
1493 | and dword [quick_search_buf + 4], 0 |
1417 | @@: |
1494 | @@: |
1418 | mov ebx, QuickSearchDlg |
1495 | mov ebx, QuickSearchDlg |
1419 | mov eax, [ebp + panel1_left - panel1_data] |
1496 | mov eax, [ebp + PanelData.left] |
1420 | add eax, 10 |
1497 | add eax, 10 |
1421 | mov edx, [cur_width] |
1498 | mov edx, [cur_width] |
1422 | sub edx, 21 |
1499 | sub edx, 21 |
1423 | cmp eax, edx |
1500 | cmp eax, edx |
1424 | jb @f |
1501 | jb @f |
1425 | mov eax, edx |
1502 | mov eax, edx |
1426 | @@: |
1503 | @@: |
1427 | mov [ebx + dlgtemplate.x], eax |
1504 | mov [ebx + dlgtemplate.x], eax |
1428 | mov eax, [ebp + panel1_top - panel1_data] |
1505 | mov eax, [ebp + PanelData.top] |
1429 | add eax, [ebp + panel1_height - panel1_data] |
1506 | add eax, [ebp + PanelData.height] |
1430 | mov edx, [cur_height] |
1507 | mov edx, [cur_height] |
1431 | sub edx, 2 |
1508 | sub edx, 2 |
1432 | cmp eax, edx |
1509 | cmp eax, edx |
1433 | jb @f |
1510 | jb @f |
1434 | mov eax, edx |
1511 | mov eax, edx |
Line 1443... | Line 1520... | ||
1443 | .ret: |
1520 | .ret: |
1444 | ret |
1521 | ret |
1445 | .up: |
1522 | .up: |
1446 | jecxz .ret |
1523 | jecxz .ret |
1447 | dec ecx |
1524 | dec ecx |
1448 | mov [ebp + panel1_index - panel1_data], ecx |
1525 | mov [ebp + PanelData.index], ecx |
1449 | cmp ecx, edx |
1526 | cmp ecx, edx |
1450 | jae .done_redraw |
1527 | jae .done_redraw |
1451 | mov [ebp + panel1_start - panel1_data], ecx |
1528 | mov [ebp + PanelData.start], ecx |
1452 | .done_redraw: |
1529 | .done_redraw: |
1453 | ; call draw_panel |
1530 | ; call draw_panel |
1454 | ; ret |
1531 | ; ret |
1455 | jmp draw_panel |
1532 | jmp draw_panel |
1456 | .insert: |
1533 | .insert: |
1457 | lea eax, [ecx*4] |
1534 | lea eax, [ecx*4] |
1458 | add eax, [ebp + panel1_files - panel1_data] |
1535 | add eax, [ebp + PanelData.files] |
1459 | mov eax, [eax] |
1536 | mov eax, [eax] |
1460 | cmp word [eax+40], '..' |
1537 | cmp word [eax+40], '..' |
1461 | jnz @f |
1538 | jnz @f |
1462 | cmp byte [eax+42], 0 |
1539 | cmp byte [eax+42], 0 |
1463 | jz .insert.down |
1540 | jz .insert.down |
Line 1465... | Line 1542... | ||
1465 | xor byte [eax+303], 1 |
1542 | xor byte [eax+303], 1 |
1466 | mov edx, [eax+32] |
1543 | mov edx, [eax+32] |
1467 | test byte [eax+303], 1 |
1544 | test byte [eax+303], 1 |
1468 | mov eax, [eax+36] |
1545 | mov eax, [eax+36] |
1469 | jnz .insert.increase |
1546 | jnz .insert.increase |
1470 | sub dword [ebp + panel1_selected_size - panel1_data], edx |
1547 | sub dword [ebp + PanelData.selected_size], edx |
1471 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], eax |
1548 | sbb dword [ebp + PanelData.selected_size+4], eax |
1472 | dec [ebp + panel1_selected_num - panel1_data] |
1549 | dec [ebp + PanelData.selected_num] |
1473 | jmp .insert.down |
1550 | jmp .insert.down |
1474 | .insert.increase: |
1551 | .insert.increase: |
1475 | add dword [ebp + panel1_selected_size - panel1_data], edx |
1552 | add dword [ebp + PanelData.selected_size], edx |
1476 | adc dword [ebp + panel1_selected_size+4 - panel1_data], eax |
1553 | adc dword [ebp + PanelData.selected_size+4], eax |
1477 | inc [ebp + panel1_selected_num - panel1_data] |
1554 | inc [ebp + PanelData.selected_num] |
1478 | .insert.down: |
1555 | .insert.down: |
1479 | inc ecx |
1556 | inc ecx |
1480 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1557 | cmp ecx, [ebp + PanelData.numfiles] |
1481 | jae .done_redraw |
1558 | jae .done_redraw |
1482 | jmp @f |
1559 | jmp @f |
1483 | .down: |
1560 | .down: |
1484 | inc ecx |
1561 | inc ecx |
1485 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1562 | cmp ecx, [ebp + PanelData.numfiles] |
1486 | jae .ret |
1563 | jae .ret |
1487 | @@: |
1564 | @@: |
1488 | mov [ebp + panel1_index - panel1_data], ecx |
1565 | mov [ebp + PanelData.index], ecx |
1489 | cmp ecx, ebx |
1566 | cmp ecx, ebx |
1490 | jb .done_redraw |
1567 | jb .done_redraw |
1491 | sub ecx, [ebp + panel1_colst - panel1_data] |
1568 | sub ecx, [ebp + PanelData.colst] |
1492 | inc ecx |
1569 | inc ecx |
1493 | mov [ebp + panel1_start - panel1_data], ecx |
1570 | mov [ebp + PanelData.start], ecx |
1494 | jmp .done_redraw |
1571 | jmp .done_redraw |
1495 | .left: |
1572 | .left: |
1496 | test ecx, ecx |
1573 | test ecx, ecx |
1497 | jnz @f |
1574 | jnz @f |
1498 | ret |
1575 | ret |
1499 | @@: |
1576 | @@: |
1500 | mov eax, [ebp + panel1_colsz - panel1_data] |
1577 | mov eax, [ebp + PanelData.colsz] |
1501 | sub ecx, eax |
1578 | sub ecx, eax |
1502 | jae @f |
1579 | jae @f |
1503 | xor ecx, ecx |
1580 | xor ecx, ecx |
1504 | @@: |
1581 | @@: |
1505 | mov [ebp + panel1_index - panel1_data], ecx |
1582 | mov [ebp + PanelData.index], ecx |
1506 | .finalize_left: |
1583 | .finalize_left: |
1507 | cmp ecx, edx |
1584 | cmp ecx, edx |
1508 | jae .done_redraw |
1585 | jae .done_redraw |
1509 | sub edx, eax |
1586 | sub edx, eax |
1510 | jae @f |
1587 | jae @f |
1511 | xor edx, edx |
1588 | xor edx, edx |
1512 | @@: |
1589 | @@: |
1513 | mov [ebp + panel1_start - panel1_data], edx |
1590 | mov [ebp + PanelData.start], edx |
1514 | jmp .done_redraw |
1591 | jmp .done_redraw |
1515 | .pgup: |
1592 | .pgup: |
1516 | mov eax, [ebp + panel1_colst - panel1_data] |
1593 | mov eax, [ebp + PanelData.colst] |
1517 | dec eax |
1594 | dec eax |
1518 | jnz @f |
1595 | jnz @f |
1519 | inc eax |
1596 | inc eax |
1520 | @@: |
1597 | @@: |
1521 | test ecx, ecx |
1598 | test ecx, ecx |
Line 1524... | Line 1601... | ||
1524 | @@: |
1601 | @@: |
1525 | sub ecx, eax |
1602 | sub ecx, eax |
1526 | jae @f |
1603 | jae @f |
1527 | xor ecx, ecx |
1604 | xor ecx, ecx |
1528 | @@: |
1605 | @@: |
1529 | mov [ebp + panel1_index - panel1_data], ecx |
1606 | mov [ebp + PanelData.index], ecx |
1530 | dec ecx |
1607 | dec ecx |
1531 | jmp .finalize_left |
1608 | jmp .finalize_left |
1532 | .right: |
1609 | .right: |
1533 | mov eax, [ebp + panel1_colsz - panel1_data] |
1610 | mov eax, [ebp + PanelData.colsz] |
1534 | add ecx, eax |
1611 | add ecx, eax |
1535 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1612 | cmp ecx, [ebp + PanelData.numfiles] |
1536 | jb @f |
1613 | jb @f |
1537 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1614 | mov ecx, [ebp + PanelData.numfiles] |
1538 | dec ecx |
1615 | dec ecx |
1539 | @@: |
1616 | @@: |
1540 | mov [ebp + panel1_index - panel1_data], ecx |
1617 | mov [ebp + PanelData.index], ecx |
1541 | .finalize_right: |
1618 | .finalize_right: |
1542 | cmp ecx, ebx |
1619 | cmp ecx, ebx |
1543 | jb .done_redraw |
1620 | jb .done_redraw |
1544 | add ebx, eax |
1621 | add ebx, eax |
1545 | cmp ebx, [ebp + panel1_numfiles - panel1_data] |
1622 | cmp ebx, [ebp + PanelData.numfiles] |
1546 | jbe @f |
1623 | jbe @f |
1547 | mov ebx, [ebp + panel1_numfiles - panel1_data] |
1624 | mov ebx, [ebp + PanelData.numfiles] |
1548 | @@: |
1625 | @@: |
1549 | sub ebx, [ebp + panel1_colst - panel1_data] |
1626 | sub ebx, [ebp + PanelData.colst] |
1550 | jae @f |
1627 | jae @f |
1551 | xor ebx, ebx |
1628 | xor ebx, ebx |
1552 | @@: |
1629 | @@: |
1553 | mov [ebp + panel1_start - panel1_data], ebx |
1630 | mov [ebp + PanelData.start], ebx |
1554 | jmp .done_redraw |
1631 | jmp .done_redraw |
1555 | .pgdn: |
1632 | .pgdn: |
1556 | mov eax, [ebp + panel1_colst - panel1_data] |
1633 | mov eax, [ebp + PanelData.colst] |
1557 | dec eax |
1634 | dec eax |
1558 | jnz @f |
1635 | jnz @f |
1559 | inc eax |
1636 | inc eax |
1560 | @@: |
1637 | @@: |
1561 | add ecx, eax |
1638 | add ecx, eax |
1562 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
1639 | cmp ecx, [ebp + PanelData.numfiles] |
1563 | jb @f |
1640 | jb @f |
1564 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
1641 | mov ecx, [ebp + PanelData.numfiles] |
1565 | dec ecx |
1642 | dec ecx |
1566 | @@: |
1643 | @@: |
1567 | mov [ebp + panel1_index - panel1_data], ecx |
1644 | mov [ebp + PanelData.index], ecx |
1568 | inc ecx |
1645 | inc ecx |
1569 | jmp .finalize_right |
1646 | jmp .finalize_right |
1570 | .tab: |
1647 | .tab: |
1571 | xor [active_panel], panel1_data xor panel2_data |
1648 | xor [active_panel], panel1 xor panel2 |
1572 | call draw_cmdbar |
1649 | call draw_cmdbar |
1573 | call draw_panel |
1650 | call draw_panel |
1574 | mov ebp, [active_panel] |
1651 | mov ebp, [active_panel] |
1575 | jmp .done_redraw |
1652 | jmp .done_redraw |
1576 | .home: |
1653 | .home: |
1577 | and [ebp + panel1_start - panel1_data], 0 |
1654 | and [ebp + PanelData.start], 0 |
1578 | and [ebp + panel1_index - panel1_data], 0 |
1655 | and [ebp + PanelData.index], 0 |
1579 | jmp .done_redraw |
1656 | jmp .done_redraw |
1580 | .end: |
1657 | .end: |
1581 | mov eax, [ebp + panel1_numfiles - panel1_data] |
1658 | mov eax, [ebp + PanelData.numfiles] |
1582 | dec eax |
1659 | dec eax |
1583 | mov [ebp + panel1_index - panel1_data], eax |
1660 | mov [ebp + PanelData.index], eax |
1584 | inc eax |
1661 | inc eax |
1585 | sub eax, [ebp + panel1_colst - panel1_data] |
1662 | sub eax, [ebp + PanelData.colst] |
1586 | jae @f |
1663 | jae @f |
1587 | xor eax, eax |
1664 | xor eax, eax |
1588 | @@: |
1665 | @@: |
1589 | mov [ebp + panel1_start - panel1_data], eax |
1666 | mov [ebp + PanelData.start], eax |
1590 | jmp .done_redraw |
1667 | jmp .done_redraw |
1591 | .enter: |
1668 | .enter: |
1592 | cmp [bQuickSearchMode], 0 |
1669 | cmp [bQuickSearchMode], 0 |
1593 | jz @f |
1670 | jz @f |
1594 | call draw_image |
1671 | call draw_image |
1595 | @@: |
1672 | @@: |
1596 | call get_curfile_folder_entry |
1673 | call get_curfile_folder_entry |
1597 | test byte [ecx], 10h |
1674 | test byte [ecx], 10h |
1598 | jnz .enter_folder |
1675 | jnz .enter_folder |
1599 | ; todo: add |
1676 | ; todo: add |
1600 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
1677 | cmp [ebp + PanelData.hPlugin], 0 |
1601 | jnz .ret |
1678 | jnz .ret |
1602 | ; generate full file name |
1679 | ; generate full file name |
1603 | lea esi, [ebp + panel1_dir - panel1_data] |
1680 | lea esi, [ebp + PanelData.dir] |
1604 | mov edi, execdata |
1681 | mov edi, execdata |
1605 | @@: |
1682 | @@: |
1606 | lodsb |
1683 | lodsb |
1607 | test al, al |
1684 | test al, al |
1608 | jz @f |
1685 | jz @f |
Line 1658... | Line 1735... | ||
1658 | add edx, PluginInfo.size |
1735 | add edx, PluginInfo.size |
1659 | dec ecx |
1736 | dec ecx |
1660 | js .plugdone |
1737 | js .plugdone |
1661 | pushad |
1738 | pushad |
1662 | push execdata |
1739 | push execdata |
1663 | push [ebp+panel1_hFile-panel1_data] |
1740 | push [ebp+ PanelData.hFile] |
1664 | push [ebp+panel1_hPlugin-panel1_data] |
1741 | push [ebp+ PanelData.hPlugin] |
1665 | push edi |
1742 | push edi |
1666 | push filedata_buffer |
1743 | push filedata_buffer |
1667 | call get_curfile_folder_entry |
1744 | call get_curfile_folder_entry |
1668 | push ecx |
1745 | push ecx |
1669 | push esi |
1746 | push esi |
Line 1685... | Line 1762... | ||
1685 | lodsb |
1762 | lodsb |
1686 | test al, al |
1763 | test al, al |
1687 | jnz @b |
1764 | jnz @b |
1688 | sub esi, execdata-9 |
1765 | sub esi, execdata-9 |
1689 | ; allocate esi bytes in buffer 'parents' |
1766 | ; allocate esi bytes in buffer 'parents' |
1690 | mov ecx, [ebp + panel1_parents_sz - panel1_data] |
1767 | mov ecx, [ebp + PanelData.parents_sz] |
1691 | add ecx, esi |
1768 | add ecx, esi |
1692 | cmp ecx, [ebp + panel1_parents_alloc - panel1_data] |
1769 | cmp ecx, [ebp + PanelData.parents_alloc] |
1693 | jbe .enter.norealloc |
1770 | jbe .enter.norealloc |
1694 | push edx |
1771 | push edx |
1695 | mov edx, [ebp + panel1_parents - panel1_data] |
1772 | mov edx, [ebp + PanelData.parents] |
1696 | call xpgrealloc |
1773 | call xpgrealloc |
1697 | pop edx |
1774 | pop edx |
1698 | test eax, eax |
1775 | test eax, eax |
1699 | jnz @f |
1776 | jnz @f |
1700 | push edi |
1777 | push edi |
1701 | call [edx+PluginInfo.ClosePlugin] |
1778 | call [edx+PluginInfo.ClosePlugin] |
1702 | ret |
1779 | ret |
1703 | @@: |
1780 | @@: |
1704 | mov [ebp + panel1_parents - panel1_data], eax |
1781 | mov [ebp + PanelData.parents], eax |
1705 | .enter.norealloc: |
1782 | .enter.norealloc: |
1706 | mov [ebp + panel1_parents_sz - panel1_data], ecx |
1783 | mov [ebp + PanelData.parents_sz], ecx |
1707 | ; save current state to the end of buffer |
1784 | ; save current state to the end of buffer |
1708 | sub ecx, esi |
1785 | sub ecx, esi |
1709 | add ecx, [ebp + panel1_parents - panel1_data] |
1786 | add ecx, [ebp + PanelData.parents] |
1710 | xchg edx, [ebp + panel1_hPlugin - panel1_data] |
1787 | xchg edx, [ebp + PanelData.hPlugin] |
1711 | mov [ecx], edx |
1788 | mov [ecx], edx |
1712 | xchg edi, [ebp + panel1_hFile - panel1_data] |
1789 | xchg edi, [ebp + PanelData.hFile] |
1713 | mov [ecx+4], edi |
1790 | mov [ecx+4], edi |
1714 | mov byte [ecx+8], 0 |
1791 | mov byte [ecx+8], 0 |
1715 | lea edi, [ecx+9] |
1792 | lea edi, [ecx+9] |
1716 | lea ecx, [esi-9] |
1793 | lea ecx, [esi-9] |
1717 | mov esi, execdata |
1794 | mov esi, execdata |
1718 | rep movsb |
1795 | rep movsb |
1719 | mov word [ebp + panel1_dir - panel1_data], '/' |
1796 | mov word [ebp + PanelData.dir], '/' |
1720 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
1797 | mov eax, [ebp + PanelData.hPlugin] |
1721 | lea ebx, [ebp + panel1_plugin_info - panel1_data] |
1798 | lea ebx, [ebp + PanelData.plugin_flags] ;plugin_info |
1722 | and dword [ebx], 0 |
1799 | and dword [ebx], 0 |
1723 | push ebp |
1800 | push ebp |
1724 | push ebx |
1801 | push ebx |
1725 | push [ebp + panel1_hFile - panel1_data] |
1802 | push [ebp + PanelData.hFile] |
1726 | call [eax+PluginInfo.GetOpenPluginInfo] |
1803 | call [eax+PluginInfo.GetOpenPluginInfo] |
1727 | pop ebp |
1804 | pop ebp |
1728 | call get_curfile_folder_entry |
1805 | call get_curfile_folder_entry |
1729 | mov esi, ecx |
1806 | mov esi, ecx |
1730 | mov edi, left_dotdot_entry |
1807 | mov edi, left_dotdot_entry |
1731 | cmp ebp, panel1_data |
1808 | cmp ebp, panel1 |
1732 | jz @f |
1809 | jz @f |
1733 | add edi, right_dotdot_entry-left_dotdot_entry |
1810 | add edi, right_dotdot_entry-left_dotdot_entry |
1734 | @@: |
1811 | @@: |
1735 | mov ecx, 10 |
1812 | mov ecx, 10 |
1736 | rep movsd |
1813 | rep movsd |
Line 1771... | Line 1848... | ||
1771 | jmp .dorun |
1848 | jmp .dorun |
1772 | .run_app: |
1849 | .run_app: |
1773 | mov [execptr], execdata |
1850 | mov [execptr], execdata |
1774 | and [execparams], 0 |
1851 | and [execparams], 0 |
1775 | .dorun: |
1852 | .dorun: |
1776 | lea esi, [ebp + panel1_dir - panel1_data] |
1853 | lea esi, [ebp + PanelData.dir] |
1777 | mov edi, execdata |
1854 | mov edi, execdata |
1778 | @@: |
1855 | @@: |
1779 | lodsb |
1856 | lodsb |
1780 | test al, al |
1857 | test al, al |
1781 | jz @f |
1858 | jz @f |
Line 1913... | Line 1990... | ||
1913 | .bigcmdline: |
1990 | .bigcmdline: |
1914 | mov eax, aCmdLineTooBig |
1991 | mov eax, aCmdLineTooBig |
1915 | jmp .l2 |
1992 | jmp .l2 |
1916 | .bigfoldername2: |
1993 | .bigfoldername2: |
1917 | mov esi, prev_dir |
1994 | mov esi, prev_dir |
1918 | lea edi, [ebp + panel1_dir - panel1_data] |
1995 | lea edi, [ebp + PanelData.dir] |
1919 | @@: |
1996 | @@: |
1920 | lodsb |
1997 | lodsb |
1921 | stosb |
1998 | stosb |
1922 | test al, al |
1999 | test al, al |
1923 | jnz @b |
2000 | jnz @b |
Line 1930... | Line 2007... | ||
1930 | jnz @f |
2007 | jnz @f |
1931 | cmp byte [esi+2], 0 |
2008 | cmp byte [esi+2], 0 |
1932 | jz .dotdot |
2009 | jz .dotdot |
1933 | @@: |
2010 | @@: |
1934 | push esi |
2011 | push esi |
1935 | lea esi, [ebp + panel1_dir - panel1_data] |
2012 | lea esi, [ebp + PanelData.dir] |
1936 | mov edi, prev_dir |
2013 | mov edi, prev_dir |
1937 | @@: |
2014 | @@: |
1938 | lodsb |
2015 | lodsb |
1939 | stosb |
2016 | stosb |
1940 | test al, al |
2017 | test al, al |
1941 | jnz @b |
2018 | jnz @b |
1942 | lea edi, [esi-1] |
2019 | lea edi, [esi-1] |
1943 | lea edx, [ebp + panel1_dir - panel1_data + 1024] |
2020 | lea edx, [ebp + PanelData.dir + 1024] |
1944 | cmp esi, edx |
2021 | cmp esi, edx |
1945 | pop esi |
2022 | pop esi |
1946 | jae .bigfoldername |
2023 | jae .bigfoldername |
1947 | mov al, '/' |
2024 | mov al, '/' |
1948 | cmp [edi-1], al |
2025 | cmp [edi-1], al |
Line 1953... | Line 2030... | ||
1953 | cmp edi, edx |
2030 | cmp edi, edx |
1954 | jae .bigfoldername2 |
2031 | jae .bigfoldername2 |
1955 | stosb |
2032 | stosb |
1956 | test al, al |
2033 | test al, al |
1957 | jnz @b |
2034 | jnz @b |
1958 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2035 | mov eax, [ebp + PanelData.hPlugin] |
1959 | test eax, eax |
2036 | test eax, eax |
1960 | jz .reread |
2037 | jz .reread |
1961 | push ebp |
2038 | push ebp |
1962 | lea esi, [ebp + panel1_dir - panel1_data] |
2039 | lea esi, [ebp + PanelData.dir] |
1963 | push esi |
2040 | push esi |
1964 | add ecx, 40 |
2041 | add ecx, 40 |
1965 | push ecx |
2042 | push ecx |
1966 | push [ebp + panel1_hFile - panel1_data] |
2043 | push [ebp + PanelData.hFile] |
1967 | call [eax+PluginInfo.SetFolder] |
2044 | call [eax+PluginInfo.SetFolder] |
1968 | pop ebp |
2045 | pop ebp |
1969 | test al, al |
2046 | test al, al |
1970 | jnz .reread |
2047 | jnz .reread |
1971 | mov esi, prev_dir |
2048 | mov esi, prev_dir |
1972 | lea edi, [ebp + panel1_dir - panel1_data] |
2049 | lea edi, [ebp + PanelData.dir] |
1973 | @@: |
2050 | @@: |
1974 | lodsb |
2051 | lodsb |
1975 | stosb |
2052 | stosb |
1976 | test al, al |
2053 | test al, al |
1977 | jnz @b |
2054 | jnz @b |
Line 1981... | Line 2058... | ||
1981 | call read_folder |
2058 | call read_folder |
1982 | .done_cmdbar: |
2059 | .done_cmdbar: |
1983 | call draw_cmdbar |
2060 | call draw_cmdbar |
1984 | jmp .done_redraw |
2061 | jmp .done_redraw |
1985 | .dotdot: |
2062 | .dotdot: |
1986 | lea edi, [ebp + panel1_dir - panel1_data] |
2063 | lea edi, [ebp + PanelData.dir] |
1987 | cmp word [edi], '/' |
2064 | cmp word [edi], '/' |
1988 | jnz .dotdot_noroot |
2065 | jnz .dotdot_noroot |
1989 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2066 | cmp [ebp + PanelData.hPlugin], 0 |
1990 | jz .retd |
2067 | jz .retd |
1991 | call close_plugin_panel |
2068 | call close_plugin_panel |
1992 | jmp .dotdot |
2069 | jmp .dotdot |
1993 | .dotdot_noroot: |
2070 | .dotdot_noroot: |
1994 | mov edx, edi |
2071 | mov edx, edi |
Line 2006... | Line 2083... | ||
2006 | inc edi |
2083 | inc edi |
2007 | @@: |
2084 | @@: |
2008 | push dword [edi] |
2085 | push dword [edi] |
2009 | mov byte [edi], 0 |
2086 | mov byte [edi], 0 |
2010 | push edi |
2087 | push edi |
2011 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2088 | mov eax, [ebp + PanelData.hPlugin] |
2012 | test eax, eax |
2089 | test eax, eax |
2013 | jz .dotdot_native |
2090 | jz .dotdot_native |
2014 | push ebp |
2091 | push ebp |
2015 | lea esi, [ebp + panel1_dir - panel1_data] |
2092 | lea esi, [ebp + PanelData.dir] |
2016 | push esi |
2093 | push esi |
2017 | push aDotDot |
2094 | push aDotDot |
2018 | push [ebp + panel1_hFile - panel1_data] |
2095 | push [ebp + PanelData.hFile] |
2019 | call [eax+PluginInfo.SetFolder] |
2096 | call [eax+PluginInfo.SetFolder] |
2020 | pop ebp |
2097 | pop ebp |
2021 | test al, al |
2098 | test al, al |
2022 | jnz .dotdot_native |
2099 | jnz .dotdot_native |
2023 | pop edi |
2100 | pop edi |
Line 2030... | Line 2107... | ||
2030 | push edi |
2107 | push edi |
2031 | cmp byte [edi], '/' |
2108 | cmp byte [edi], '/' |
2032 | jnz @f |
2109 | jnz @f |
2033 | inc edi |
2110 | inc edi |
2034 | @@: |
2111 | @@: |
2035 | mov edx, [ebp + panel1_files - panel1_data] |
2112 | mov edx, [ebp + PanelData.files] |
2036 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2113 | mov ecx, [ebp + PanelData.numfiles] |
2037 | .scanloop: |
2114 | .scanloop: |
2038 | mov esi, [edx] |
2115 | mov esi, [edx] |
2039 | add esi, 40 |
2116 | add esi, 40 |
2040 | push esi edi |
2117 | push esi edi |
2041 | @@: |
2118 | @@: |
Line 2050... | Line 2127... | ||
2050 | jz .scanfound |
2127 | jz .scanfound |
2051 | add edx, 4 |
2128 | add edx, 4 |
2052 | loop .scanloop |
2129 | loop .scanloop |
2053 | jmp .scandone |
2130 | jmp .scandone |
2054 | .scanfound: |
2131 | .scanfound: |
2055 | sub edx, [ebp + panel1_files - panel1_data] |
2132 | sub edx, [ebp + PanelData.files] |
2056 | shr edx, 2 |
2133 | shr edx, 2 |
2057 | mov [ebp + panel1_index - panel1_data], edx |
2134 | mov [ebp + PanelData.index], edx |
2058 | sub edx, [ebp + panel1_colst - panel1_data] |
2135 | sub edx, [ebp + PanelData.colst] |
2059 | jb .scandone |
2136 | jb .scandone |
2060 | inc edx |
2137 | inc edx |
2061 | mov [ebp + panel1_start - panel1_data], edx |
2138 | mov [ebp + PanelData.start], edx |
2062 | .scandone: |
2139 | .scandone: |
2063 | pop edi |
2140 | pop edi |
2064 | mov byte [edi], 0 |
2141 | mov byte [edi], 0 |
2065 | jmp .done_cmdbar |
2142 | jmp .done_cmdbar |
2066 | .ctrl_f39: |
2143 | .ctrl_f39: |
2067 | sub al, 0x3D |
2144 | sub al, 0x3D |
2068 | add al, al |
2145 | add al, al |
2069 | mov ah, [ebp + panel1_sortmode - panel1_data] |
2146 | mov ah, [ebp + PanelData.sortmode] |
2070 | and ah, 0xFE |
2147 | and ah, 0xFE |
2071 | cmp al, ah |
2148 | cmp al, ah |
2072 | jnz @f |
2149 | jnz @f |
2073 | and [ebp + panel1_sortmode - panel1_data], 1 |
2150 | and [ebp + PanelData.sortmode], 1 |
2074 | or al, [ebp + panel1_sortmode - panel1_data] |
2151 | or al, [ebp + PanelData.sortmode] |
2075 | xor al, 1 |
2152 | xor al, 1 |
2076 | @@: |
2153 | @@: |
2077 | mov [ebp + panel1_sortmode - panel1_data], al |
2154 | mov [ebp + PanelData.sortmode], al |
2078 | mov eax, [ebp + panel1_index - panel1_data] |
2155 | mov eax, [ebp + PanelData.index] |
2079 | mov ecx, [ebp + panel1_files - panel1_data] |
2156 | mov ecx, [ebp + PanelData.files] |
2080 | push dword [ecx+eax*4] |
2157 | push dword [ecx+eax*4] |
2081 | push ecx |
2158 | push ecx |
2082 | call sort_files |
2159 | call sort_files |
2083 | pop edi |
2160 | pop edi |
2084 | pop eax |
2161 | pop eax |
2085 | or ecx, -1 |
2162 | or ecx, -1 |
2086 | repnz scasd |
2163 | repnz scasd |
2087 | not ecx |
2164 | not ecx |
2088 | dec ecx |
2165 | dec ecx |
2089 | mov [ebp + panel1_index - panel1_data], ecx |
2166 | mov [ebp + PanelData.index], ecx |
2090 | sub ecx, [ebp + panel1_start - panel1_data] |
2167 | sub ecx, [ebp + PanelData.start] |
2091 | jb .less_start |
2168 | jb .less_start |
2092 | sub ecx, [ebp + panel1_colst - panel1_data] |
2169 | sub ecx, [ebp + PanelData.colst] |
2093 | jae .gr_end |
2170 | jae .gr_end |
2094 | @@: jmp .done_redraw |
2171 | @@: jmp .done_redraw |
2095 | .less_start: |
2172 | .less_start: |
2096 | add [ebp + panel1_start - panel1_data], ecx |
2173 | add [ebp + PanelData.start], ecx |
2097 | jmp @b |
2174 | jmp @b |
2098 | .gr_end: |
2175 | .gr_end: |
2099 | inc ecx |
2176 | inc ecx |
2100 | add [ebp + panel1_start - panel1_data], ecx |
2177 | add [ebp + PanelData.start], ecx |
2101 | jmp @b |
2178 | jmp @b |
2102 | .alt_f12: |
2179 | .alt_f12: |
2103 | mov ebp, panel1_data |
2180 | mov ebp, panel1 |
2104 | cmp al, 0x3B |
2181 | cmp al, 0x3B |
2105 | jz @f |
2182 | jz @f |
2106 | mov ebp, panel2_data |
2183 | mov ebp, panel2 |
2107 | @@: |
2184 | @@: |
2108 | ; get drives list |
2185 | ; get drives list |
2109 | mov ebx, dirinfo |
2186 | mov ebx, dirinfo |
2110 | mov [ebx+dirinfo.size-dirinfo], 1 |
2187 | mov [ebx+dirinfo.size-dirinfo], 1 |
2111 | mov [ebx+dirinfo.dirdata-dirinfo], driveinfo |
2188 | mov [ebx+dirinfo.dirdata-dirinfo], driveinfo |
Line 2187... | Line 2264... | ||
2187 | jae @f |
2264 | jae @f |
2188 | mov [esi], edi |
2265 | mov [esi], edi |
2189 | jmp @b |
2266 | jmp @b |
2190 | @@: |
2267 | @@: |
2191 | mov ecx, edx |
2268 | mov ecx, edx |
2192 | lea edi, [ebp + panel1_dir - panel1_data] |
2269 | lea edi, [ebp + PanelData.dir] |
2193 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2270 | cmp [ebp + PanelData.hPlugin], 0 |
2194 | jz .find_cur_drive_loop |
2271 | jz .find_cur_drive_loop |
2195 | mov edi, [ebp + panel1_parents - panel1_data] |
2272 | mov edi, [ebp + PanelData.parents] |
2196 | add edi, 8 |
2273 | add edi, 8 |
2197 | .find_cur_drive_loop: |
2274 | .find_cur_drive_loop: |
2198 | push edi |
2275 | push edi |
2199 | lea esi, [ecx+8] |
2276 | lea esi, [ecx+8] |
2200 | @@: |
2277 | @@: |
Line 2216... | Line 2293... | ||
2216 | .cur_drive_found: |
2293 | .cur_drive_found: |
2217 | pop edi |
2294 | pop edi |
2218 | push 1 |
2295 | push 1 |
2219 | push aDrive |
2296 | push aDrive |
2220 | push ecx |
2297 | push ecx |
2221 | mov eax, [ebp + panel1_height - panel1_data] |
2298 | mov eax, [ebp + PanelData.height] |
2222 | sub eax, 2 |
2299 | sub eax, 2 |
2223 | jae @f |
2300 | jae @f |
2224 | add eax, 2 |
2301 | add eax, 2 |
2225 | @@: |
2302 | @@: |
2226 | push eax |
2303 | push eax |
2227 | push [ebp + panel1_width - panel1_data] |
2304 | push [ebp + PanelData.width] |
2228 | push [ebp + panel1_top - panel1_data] |
2305 | push [ebp + PanelData.top] |
2229 | push [ebp + panel1_left - panel1_data] |
2306 | push [ebp + PanelData.left] |
2230 | call menu_centered_in |
2307 | call menu_centered_in |
2231 | cmp eax, -1 |
2308 | cmp eax, -1 |
2232 | jnz @f |
2309 | jnz @f |
2233 | mov ecx, edx |
2310 | mov ecx, edx |
2234 | call pgfree |
2311 | call pgfree |
Line 2236... | Line 2313... | ||
2236 | @@: |
2313 | @@: |
2237 | push eax |
2314 | push eax |
2238 | push edx |
2315 | push edx |
2239 | call close_plugin_panels |
2316 | call close_plugin_panels |
2240 | pop edx |
2317 | pop edx |
2241 | lea edi, [ebp + panel1_dir - panel1_data] |
2318 | lea edi, [ebp + PanelData.dir] |
2242 | push edi |
2319 | push edi |
2243 | mov esi, edi |
2320 | mov esi, edi |
2244 | mov edi, prev_dir |
2321 | mov edi, prev_dir |
2245 | mov ecx, 1024/4 |
2322 | mov ecx, 1024/4 |
2246 | rep movsd |
2323 | rep movsd |
Line 2256... | Line 2333... | ||
2256 | call pgfree |
2333 | call pgfree |
2257 | call read_folder |
2334 | call read_folder |
2258 | jmp .done_redraw |
2335 | jmp .done_redraw |
2259 | .shift_f5: |
2336 | .shift_f5: |
2260 | ; todo: copy to plugin panel |
2337 | ; todo: copy to plugin panel |
2261 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2338 | cmp [ebp + PanelData.hPlugin], 0 |
2262 | jz @f |
2339 | jz @f |
2263 | ret |
2340 | ret |
2264 | @@: |
2341 | @@: |
2265 | mov esi, ebp |
2342 | mov esi, ebp |
2266 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2343 | cmp [ebp + PanelData.selected_num], 0 |
2267 | jnz .f5_2 |
2344 | jnz .f5_2 |
2268 | call get_curfile_folder_entry |
2345 | call get_curfile_folder_entry |
2269 | lea esi, [ecx+40] |
2346 | lea esi, [ecx+40] |
2270 | mov edi, CopyDestEditBuf |
2347 | mov edi, CopyDestEditBuf |
2271 | mov eax, CopyDestEditBuf.length |
2348 | mov eax, CopyDestEditBuf.length |
Line 2281... | Line 2358... | ||
2281 | stosb |
2358 | stosb |
2282 | jmp @b |
2359 | jmp @b |
2283 | .f5: |
2360 | .f5: |
2284 | ; todo: copy to plugin panel |
2361 | ; todo: copy to plugin panel |
2285 | mov esi, ebp |
2362 | mov esi, ebp |
2286 | xor esi, panel1_data xor panel2_data |
2363 | xor esi, panel1 xor panel2 |
2287 | cmp [esi + panel1_hPlugin - panel1_data], 0 |
2364 | cmp [esi + PanelData.hPlugin], 0 |
2288 | jz .f5_2 |
2365 | jz .f5_2 |
2289 | ret |
2366 | ret |
2290 | .f5_2: |
2367 | .f5_2: |
2291 | add esi, panel1_dir - panel1_data |
2368 | add esi, PanelData.dir |
2292 | mov edi, CopyDestEditBuf |
2369 | mov edi, CopyDestEditBuf |
2293 | mov eax, CopyDestEditBuf.length |
2370 | mov eax, CopyDestEditBuf.length |
2294 | stosd |
2371 | stosd |
2295 | scasd |
2372 | scasd |
2296 | xor eax, eax |
2373 | xor eax, eax |
Line 2306... | Line 2383... | ||
2306 | jmp @b |
2383 | jmp @b |
2307 | @@: |
2384 | @@: |
2308 | mov al, '/' |
2385 | mov al, '/' |
2309 | stosb |
2386 | stosb |
2310 | .f5_common: |
2387 | .f5_common: |
2311 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2388 | mov eax, [ebp + PanelData.hPlugin] |
2312 | mov [source_hModule], eax |
2389 | mov [source_hModule], eax |
2313 | mov eax, [ebp + panel1_hFile - panel1_data] |
2390 | mov eax, [ebp + PanelData.hFile] |
2314 | mov [source_hPlugin], eax |
2391 | mov [source_hPlugin], eax |
2315 | mov eax, left_dotdot_entry |
2392 | mov eax, left_dotdot_entry |
2316 | cmp ebp, panel1_data |
2393 | cmp ebp, panel1 |
2317 | jz @f |
2394 | jz @f |
2318 | add eax, right_dotdot_entry-left_dotdot_entry |
2395 | add eax, right_dotdot_entry-left_dotdot_entry |
2319 | @@: |
2396 | @@: |
2320 | mov [default_attr], eax |
2397 | mov [default_attr], eax |
2321 | mov byte [edi], 0 |
2398 | mov byte [edi], 0 |
Line 2328... | Line 2405... | ||
2328 | test al, al |
2405 | test al, al |
2329 | jz @f |
2406 | jz @f |
2330 | stosb |
2407 | stosb |
2331 | jmp @b |
2408 | jmp @b |
2332 | @@: |
2409 | @@: |
2333 | mov eax, [ebp + panel1_selected_num - panel1_data] |
2410 | mov eax, [ebp + PanelData.selected_num] |
2334 | test eax, eax |
2411 | test eax, eax |
2335 | jz .f5_noselected1 |
2412 | jz .f5_noselected1 |
2336 | mov ebx, eax |
2413 | mov ebx, eax |
2337 | push 10 |
2414 | push 10 |
2338 | pop ecx |
2415 | pop ecx |
Line 2459... | Line 2536... | ||
2459 | ; ᫨ ¯ãâì ¥ ç¨ ¥âáï á® á«íè , áç¨â ¥¬ ¥£® ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨ |
2536 | ; ᫨ ¯ãâì ¥ ç¨ ¥âáï á® á«íè , áç¨â ¥¬ ¥£® ®â®á¨â¥«ì® ⥪ã饩 ¯ ¯ª¨ |
2460 | cmp byte [esi], '/' |
2537 | cmp byte [esi], '/' |
2461 | jz .copy_absolute_path |
2538 | jz .copy_absolute_path |
2462 | push esi |
2539 | push esi |
2463 | push edi |
2540 | push edi |
2464 | lea edi, [ebp + panel1_dir - panel1_data] |
2541 | lea edi, [ebp + PanelData.dir] |
2465 | or ecx, -1 |
2542 | or ecx, -1 |
2466 | xor eax, eax |
2543 | xor eax, eax |
2467 | repnz scasb |
2544 | repnz scasb |
2468 | not ecx |
2545 | not ecx |
2469 | pop edi |
2546 | pop edi |
Line 2482... | Line 2559... | ||
2482 | std |
2559 | std |
2483 | lea esi, [esi+ecx-1] |
2560 | lea esi, [esi+ecx-1] |
2484 | rep movsb |
2561 | rep movsb |
2485 | cld |
2562 | cld |
2486 | pop edi |
2563 | pop edi |
2487 | lea esi, [ebp + panel1_dir - panel1_data] |
2564 | lea esi, [ebp + PanelData.dir] |
2488 | push edi |
2565 | push edi |
2489 | mov ecx, edx |
2566 | mov ecx, edx |
2490 | rep movsb |
2567 | rep movsb |
2491 | mov byte [edi-1], '/' |
2568 | mov byte [edi-1], '/' |
2492 | pop esi |
2569 | pop esi |
2493 | .copy_absolute_path: |
2570 | .copy_absolute_path: |
2494 | ; ç « ᮧ¤ ñ¬ ¢á¥ ¢ë襫¥¦ 騥 ¯ ¯ª¨, ª®â®àë¥ ¥éñ ¥ áãé¥áâ¢ãîâ |
2571 | ; ç « ᮧ¤ ñ¬ ¢á¥ ¢ë襫¥¦ 騥 ¯ ¯ª¨, ª®â®àë¥ ¥éñ ¥ áãé¥áâ¢ãîâ |
2495 | ; ®á«¥¤¨© ¨§ í«¥¬¥â®¢ ¬®¦¥â ¡ëâì ª ª ä ©«®¬, â ª ¨ ¯ ¯ª®©; |
2572 | ; ®á«¥¤¨© ¨§ í«¥¬¥â®¢ ¬®¦¥â ¡ëâì ª ª ä ©«®¬, â ª ¨ ¯ ¯ª®©; |
2496 | ; ä®àá¨à㥬 ¯ ¯ªã ¢ á«ãç ¥, ¥á«¨ å®âï ¡ë ®¤¨ ¨§ ¨áâ®ç¨ª®¢ ï¥âáï ¯ ¯ª®© |
2573 | ; ä®àá¨à㥬 ¯ ¯ªã ¢ á«ãç ¥, ¥á«¨ å®âï ¡ë ®¤¨ ¨§ ¨áâ®ç¨ª®¢ ï¥âáï ¯ ¯ª®© |
2497 | xor edx, edx |
2574 | xor edx, edx |
2498 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2575 | cmp [ebp + PanelData.selected_num], 0 |
2499 | jz .f5_noselected2 |
2576 | jz .f5_noselected2 |
2500 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2577 | mov ecx, [ebp + PanelData.numfiles] |
2501 | mov edi, [ebp + panel1_files - panel1_data] |
2578 | mov edi, [ebp + PanelData.files] |
2502 | .scanselected2: |
2579 | .scanselected2: |
2503 | mov eax, [edi] |
2580 | mov eax, [edi] |
2504 | add edi, 4 |
2581 | add edi, 4 |
2505 | test byte [eax+303], 1 |
2582 | test byte [eax+303], 1 |
2506 | jz @f |
2583 | jz @f |
Line 2618... | Line 2695... | ||
2618 | mov eax, ecx |
2695 | mov eax, ecx |
2619 | cmp [bNeedRestoreName], 0 |
2696 | cmp [bNeedRestoreName], 0 |
2620 | jz @f |
2697 | jz @f |
2621 | cmp [bEndSlash], 0 |
2698 | cmp [bEndSlash], 0 |
2622 | jnz @f |
2699 | jnz @f |
2623 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2700 | cmp [ebp + PanelData.selected_num], 0 |
2624 | jnz @f |
2701 | jnz @f |
2625 | test byte [eax], 10h |
2702 | test byte [eax], 10h |
2626 | jz @f |
2703 | jz @f |
2627 | mov dl, 0 |
2704 | mov dl, 0 |
2628 | @@: |
2705 | @@: |
2629 | ; ç¨ ¥¬ ᮡá⢥® ª®¯¨à®¢ ¨¥ |
2706 | ; ç¨ ¥¬ ᮡá⢥® ª®¯¨à®¢ ¨¥ |
2630 | mov [bDestIsFolder], dl |
2707 | mov [bDestIsFolder], dl |
2631 | mov [copy_bSkipAll], 0 |
2708 | mov [copy_bSkipAll], 0 |
2632 | mov [copy_bSkipAll2], 0 |
2709 | mov [copy_bSkipAll2], 0 |
2633 | mov [copy_bSkipAll3], 0 |
2710 | mov [copy_bSkipAll3], 0 |
2634 | test [ebp + panel1_plugin_flags - panel1_data], 2 |
2711 | test [ebp + PanelData.plugin_flags], 2 |
2635 | jnz .copy_GetFiles |
2712 | jnz .copy_GetFiles |
2636 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2713 | cmp [ebp + PanelData.selected_num], 0 |
2637 | jnz .f5_selected3 |
2714 | jnz .f5_selected3 |
2638 | call copy_file |
2715 | call copy_file |
2639 | .copydone: |
2716 | .copydone: |
2640 | push ebp |
2717 | push ebp |
2641 | call .ctrl_r |
2718 | call .ctrl_r |
2642 | pop ebp |
2719 | pop ebp |
2643 | xor ebp, panel1_data xor panel2_data |
2720 | xor ebp, panel1 xor panel2 |
2644 | jmp .ctrl_r |
2721 | jmp .ctrl_r |
2645 | .f5_selected3: |
2722 | .f5_selected3: |
2646 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2723 | mov ecx, [ebp + PanelData.numfiles] |
2647 | mov esi, [ebp + panel1_files - panel1_data] |
2724 | mov esi, [ebp + PanelData.files] |
2648 | .f5_selected_copyloop: |
2725 | .f5_selected_copyloop: |
2649 | lodsd |
2726 | lodsd |
2650 | test byte [eax+303], 1 |
2727 | test byte [eax+303], 1 |
2651 | jz .f5_selected_copycont |
2728 | jz .f5_selected_copycont |
2652 | mov [bDestIsFolder], dl |
2729 | mov [bDestIsFolder], dl |
Line 2664... | Line 2741... | ||
2664 | .f5_selected_copycont: |
2741 | .f5_selected_copycont: |
2665 | loop .f5_selected_copyloop |
2742 | loop .f5_selected_copyloop |
2666 | .f5_multiple_cancel: |
2743 | .f5_multiple_cancel: |
2667 | jmp .copydone |
2744 | jmp .copydone |
2668 | .copy_GetFiles: |
2745 | .copy_GetFiles: |
2669 | mov ecx, [ebp + panel1_selected_num - panel1_data] |
2746 | mov ecx, [ebp + PanelData.selected_num] |
2670 | cmp ecx, 1 |
2747 | cmp ecx, 1 |
2671 | adc ecx, 0 |
2748 | adc ecx, 0 |
2672 | shl ecx, 2 |
2749 | shl ecx, 2 |
2673 | call xpgalloc |
2750 | call xpgalloc |
2674 | test eax, eax |
2751 | test eax, eax |
Line 2679... | Line 2756... | ||
2679 | push copy_AddDir ; adddir |
2756 | push copy_AddDir ; adddir |
2680 | push copy_AddFile ; addfile |
2757 | push copy_AddFile ; addfile |
2681 | push eax ; items |
2758 | push eax ; items |
2682 | shr ecx, 2 |
2759 | shr ecx, 2 |
2683 | push ecx ; NumItems |
2760 | push ecx ; NumItems |
2684 | push [ebp + panel1_hFile - panel1_data] |
2761 | push [ebp + PanelData.hFile] |
2685 | mov edi, eax |
2762 | mov edi, eax |
2686 | call get_curfile_folder_entry |
2763 | call get_curfile_folder_entry |
2687 | mov [edi], ecx |
2764 | mov [edi], ecx |
2688 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2765 | cmp [ebp + PanelData.selected_num], 0 |
2689 | jz .cgf1 |
2766 | jz .cgf1 |
2690 | mov esi, [ebp + panel1_files - panel1_data] |
2767 | mov esi, [ebp + PanelData.files] |
2691 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2768 | mov ecx, [ebp + PanelData.numfiles] |
2692 | .cgf0: |
2769 | .cgf0: |
2693 | lodsd |
2770 | lodsd |
2694 | test byte [eax+303], 1 |
2771 | test byte [eax+303], 1 |
2695 | jz @f |
2772 | jz @f |
2696 | stosd |
2773 | stosd |
2697 | @@: |
2774 | @@: |
2698 | loop .cgf0 |
2775 | loop .cgf0 |
2699 | .cgf1: |
2776 | .cgf1: |
2700 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
2777 | mov eax, [ebp + PanelData.hPlugin] |
2701 | call [eax+PluginInfo.GetFiles] |
2778 | call [eax+PluginInfo.GetFiles] |
2702 | pop ecx ebp |
2779 | pop ecx ebp |
2703 | call pgfree |
2780 | call pgfree |
2704 | jmp .copydone |
2781 | jmp .copydone |
Line 2705... | Line 2782... | ||
2705 | 2782 | ||
2706 | .f3: |
2783 | .f3: |
2707 | mov eax, [ebp + panel1_files - panel1_data] |
2784 | mov eax, [ebp + PanelData.files] |
2708 | mov ecx, [eax+ecx*4] |
2785 | mov ecx, [eax+ecx*4] |
2709 | test byte [ecx], 10h |
2786 | test byte [ecx], 10h |
2710 | jnz .ret2 |
2787 | jnz .ret2 |
2711 | lea esi, [ebp + panel1_dir - panel1_data] |
2788 | lea esi, [ebp + PanelData.dir] |
2712 | xor eax, eax |
2789 | xor eax, eax |
2713 | call view_file |
2790 | call view_file |
2714 | .ret2: |
2791 | .ret2: |
2715 | ret |
2792 | ret |
2716 | .f4: |
2793 | .f4: |
2717 | call edit_file |
2794 | call edit_file |
2718 | ret |
2795 | ret |
2719 | .f8_has_selected: |
2796 | .f8_has_selected: |
2720 | mov edi, saved_file_name+511 |
2797 | mov edi, saved_file_name+511 |
2721 | mov byte [edi], 0 |
2798 | mov byte [edi], 0 |
2722 | mov eax, [ebp + panel1_selected_num - panel1_data] |
2799 | mov eax, [ebp + PanelData.selected_num] |
2723 | if lang eq ru |
2800 | if lang eq ru |
2724 | cmp eax, 1 |
2801 | cmp eax, 1 |
2725 | jz @f |
2802 | jz @f |
2726 | dec edi |
2803 | dec edi |
Line 2765... | Line 2842... | ||
2765 | call Message |
2842 | call Message |
2766 | add esp, 8 |
2843 | add esp, 8 |
2767 | test eax, eax |
2844 | test eax, eax |
2768 | jnz .ret2 |
2845 | jnz .ret2 |
2769 | mov [del_bSkipAll], 0 |
2846 | mov [del_bSkipAll], 0 |
2770 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
2847 | mov ecx, [ebp + PanelData.numfiles] |
2771 | jecxz .ret2 |
2848 | jecxz .ret2 |
2772 | mov esi, [ebp + panel1_files - panel1_data] |
2849 | mov esi, [ebp + PanelData.files] |
2773 | .f8_loop: |
2850 | .f8_loop: |
2774 | lodsd |
2851 | lodsd |
2775 | test byte [eax+303], 1 |
2852 | test byte [eax+303], 1 |
2776 | jz @f |
2853 | jz @f |
2777 | call delete_file |
2854 | call delete_file |
Line 2780... | Line 2857... | ||
2780 | loop .f8_loop |
2857 | loop .f8_loop |
2781 | .f8_multiple_cancel: |
2858 | .f8_multiple_cancel: |
2782 | jmp .copydone |
2859 | jmp .copydone |
2783 | .f8: |
2860 | .f8: |
2784 | ; todo: delete files from plugin panel |
2861 | ; todo: delete files from plugin panel |
2785 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2862 | cmp [ebp + PanelData.hPlugin], 0 |
2786 | jz @f |
2863 | jz @f |
2787 | ret |
2864 | ret |
2788 | @@: |
2865 | @@: |
2789 | cmp [ebp + panel1_selected_num - panel1_data], 0 |
2866 | cmp [ebp + PanelData.selected_num], 0 |
2790 | jnz .f8_has_selected |
2867 | jnz .f8_has_selected |
2791 | call get_curfile_folder_entry |
2868 | call get_curfile_folder_entry |
2792 | cmp word [ecx+40], '..' |
2869 | cmp word [ecx+40], '..' |
2793 | jnz @f |
2870 | jnz @f |
2794 | cmp byte [ecx+42], 0 |
2871 | cmp byte [ecx+42], 0 |
Line 2835... | Line 2912... | ||
2835 | jmp .copydone |
2912 | jmp .copydone |
2836 | .ctrl_r: |
2913 | .ctrl_r: |
2837 | ; Rescan panel |
2914 | ; Rescan panel |
2838 | ; call read_folder |
2915 | ; call read_folder |
2839 | ; jmp .done_redraw |
2916 | ; jmp .done_redraw |
2840 | mov eax, [ebp + panel1_index - panel1_data] |
2917 | mov eax, [ebp + PanelData.index] |
2841 | push eax |
2918 | push eax |
2842 | call get_curfile_name |
2919 | call get_curfile_name |
2843 | mov esi, ecx |
2920 | mov esi, ecx |
2844 | mov edi, saved_file_name |
2921 | mov edi, saved_file_name |
2845 | @@: |
2922 | @@: |
2846 | lodsb |
2923 | lodsb |
2847 | stosb |
2924 | stosb |
2848 | test al, al |
2925 | test al, al |
2849 | jnz @b |
2926 | jnz @b |
2850 | .ctrl_r.doread: |
2927 | .ctrl_r.doread: |
2851 | push [ebp + panel1_start - panel1_data] |
2928 | push [ebp + PanelData.start] |
2852 | call read_folder |
2929 | call read_folder |
2853 | pop [ebp + panel1_start - panel1_data] |
2930 | pop [ebp + PanelData.start] |
2854 | pop [ebp + panel1_index - panel1_data] |
2931 | pop [ebp + PanelData.index] |
2855 | or eax, -1 |
2932 | or eax, -1 |
2856 | @@: |
2933 | @@: |
2857 | inc eax |
2934 | inc eax |
2858 | cmp eax, [ebp + panel1_numfiles - panel1_data] |
2935 | cmp eax, [ebp + PanelData.numfiles] |
2859 | jae .ctrl_r.notfound |
2936 | jae .ctrl_r.notfound |
2860 | mov ecx, [ebp + panel1_files - panel1_data] |
2937 | mov ecx, [ebp + PanelData.files] |
2861 | mov esi, [ecx+eax*4] |
2938 | mov esi, [ecx+eax*4] |
2862 | add esi, 40 |
2939 | add esi, 40 |
2863 | mov edi, saved_file_name |
2940 | mov edi, saved_file_name |
2864 | call strcmpi |
2941 | call strcmpi |
2865 | jnz @b |
2942 | jnz @b |
2866 | .ctrl_r.found: |
2943 | .ctrl_r.found: |
2867 | mov [ebp + panel1_index - panel1_data], eax |
2944 | mov [ebp + PanelData.index], eax |
2868 | .ctrl_r.notfound: |
2945 | .ctrl_r.notfound: |
2869 | mov eax, [ebp + panel1_numfiles - panel1_data] |
2946 | mov eax, [ebp + PanelData.numfiles] |
2870 | dec eax |
2947 | dec eax |
2871 | cmp [ebp + panel1_index - panel1_data], eax |
2948 | cmp [ebp + PanelData.index], eax |
2872 | jbe @f |
2949 | jbe @f |
2873 | mov [ebp + panel1_index - panel1_data], eax |
2950 | mov [ebp + PanelData.index], eax |
2874 | @@: |
2951 | @@: |
2875 | mov eax, [ebp + panel1_index - panel1_data] |
2952 | mov eax, [ebp + PanelData.index] |
2876 | cmp [ebp + panel1_start - panel1_data], eax |
2953 | cmp [ebp + PanelData.start], eax |
2877 | jbe @f |
2954 | jbe @f |
2878 | mov [ebp + panel1_start - panel1_data], eax |
2955 | mov [ebp + PanelData.start], eax |
2879 | @@: |
2956 | @@: |
2880 | inc eax |
2957 | inc eax |
2881 | sub eax, [ebp + panel1_colst - panel1_data] |
2958 | sub eax, [ebp + PanelData.colst] |
2882 | jae @f |
2959 | jae @f |
2883 | xor eax, eax |
2960 | xor eax, eax |
2884 | @@: |
2961 | @@: |
2885 | cmp [ebp + panel1_start - panel1_data], eax |
2962 | cmp [ebp + PanelData.start], eax |
2886 | jae @f |
2963 | jae @f |
2887 | mov [ebp + panel1_start - panel1_data], eax |
2964 | mov [ebp + PanelData.start], eax |
2888 | @@: |
2965 | @@: |
2889 | mov eax, [ebp + panel1_numfiles - panel1_data] |
2966 | mov eax, [ebp + PanelData.numfiles] |
2890 | sub eax, [ebp + panel1_colst - panel1_data] |
2967 | sub eax, [ebp + PanelData.colst] |
2891 | jbe @f |
2968 | jbe @f |
2892 | cmp [ebp + panel1_start - panel1_data], eax |
2969 | cmp [ebp + PanelData.start], eax |
2893 | jbe @f |
2970 | jbe @f |
2894 | mov [ebp + panel1_start - panel1_data], eax |
2971 | mov [ebp + PanelData.start], eax |
2895 | @@: |
2972 | @@: |
2896 | jmp .done_redraw |
2973 | jmp .done_redraw |
2897 | .menu: |
2974 | .menu: |
2898 | ; todo: context menu for plugin panel |
2975 | ; todo: context menu for plugin panel |
2899 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
2976 | cmp [ebp + PanelData.hPlugin], 0 |
2900 | jz @f |
2977 | jz @f |
2901 | ret |
2978 | ret |
2902 | @@: |
2979 | @@: |
2903 | ; display context menu |
2980 | ; display context menu |
2904 | ; ignore folders |
2981 | ; ignore folders |
Line 3120... | Line 3197... | ||
3120 | cmp byte [esi], 0 |
3197 | cmp byte [esi], 0 |
3121 | jz .ret2 |
3198 | jz .ret2 |
3122 | cmp byte [esi], '/' |
3199 | cmp byte [esi], '/' |
3123 | jz .mkdir_absolute_path |
3200 | jz .mkdir_absolute_path |
3124 | push esi |
3201 | push esi |
3125 | lea edi, [ebp + panel1_dir - panel1_data] |
3202 | lea edi, [ebp + PanelData.dir] |
3126 | or ecx, -1 |
3203 | or ecx, -1 |
3127 | xor eax, eax |
3204 | xor eax, eax |
3128 | repnz scasb |
3205 | repnz scasb |
3129 | not ecx |
3206 | not ecx |
3130 | mov edi, esi |
3207 | mov edi, esi |
Line 3149... | Line 3226... | ||
3149 | std |
3226 | std |
3150 | lea esi, [esi+ecx-1] |
3227 | lea esi, [esi+ecx-1] |
3151 | rep movsb |
3228 | rep movsb |
3152 | cld |
3229 | cld |
3153 | pop edi |
3230 | pop edi |
3154 | lea esi, [ebp + panel1_dir - panel1_data] |
3231 | lea esi, [ebp + PanelData.dir] |
3155 | push edi |
3232 | push edi |
3156 | mov ecx, edx |
3233 | mov ecx, edx |
3157 | rep movsb |
3234 | rep movsb |
3158 | mov byte [edi-1], '/' |
3235 | mov byte [edi-1], '/' |
3159 | pop esi |
3236 | pop esi |
Line 3162... | Line 3239... | ||
3162 | push 2 |
3239 | push 2 |
3163 | call makedir |
3240 | call makedir |
3164 | jmp .copydone |
3241 | jmp .copydone |
3165 | .change_mode: |
3242 | .change_mode: |
3166 | dec eax |
3243 | dec eax |
3167 | mov [ebp + panel1_colmode - panel1_data], eax |
3244 | mov [ebp + PanelData.colmode], eax |
3168 | call calc_colwidths |
3245 | call calc_colwidths |
3169 | jmp draw_panel |
3246 | jmp draw_panel |
3170 | .quick_jump: |
3247 | .quick_jump: |
3171 | dec eax |
3248 | dec eax |
3172 | cmp al, 10 |
3249 | cmp al, 10 |
Line 3178... | Line 3255... | ||
3178 | jnz @f |
3255 | jnz @f |
3179 | ret |
3256 | ret |
3180 | @@: |
3257 | @@: |
3181 | push eax |
3258 | push eax |
3182 | call close_plugin_panels |
3259 | call close_plugin_panels |
3183 | lea esi, [ebp + panel1_dir - panel1_data] |
3260 | lea esi, [ebp + PanelData.dir] |
3184 | push esi |
3261 | push esi |
3185 | mov edi, prev_dir |
3262 | mov edi, prev_dir |
3186 | @@: |
3263 | @@: |
3187 | lodsb |
3264 | lodsb |
3188 | stosb |
3265 | stosb |
Line 3226... | Line 3303... | ||
3226 | mov al, [tolower_table+eax] |
3303 | mov al, [tolower_table+eax] |
3227 | mov [esi-1], al |
3304 | mov [esi-1], al |
3228 | test al, al |
3305 | test al, al |
3229 | jnz @b |
3306 | jnz @b |
3230 | @@: |
3307 | @@: |
3231 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
3308 | mov ecx, [ebp + PanelData.numfiles] |
3232 | mov ebx, [ebp + panel1_files - panel1_data] |
3309 | mov ebx, [ebp + PanelData.files] |
3233 | jecxz .noselect |
3310 | jecxz .noselect |
3234 | mov eax, [ebx] |
3311 | mov eax, [ebx] |
3235 | cmp word [eax+40], '..' |
3312 | cmp word [eax+40], '..' |
3236 | jnz .selectloop |
3313 | jnz .selectloop |
3237 | cmp byte [eax+42], 0 |
3314 | cmp byte [eax+42], 0 |
Line 3259... | Line 3336... | ||
3259 | cmp byte [esp], 0 |
3336 | cmp byte [esp], 0 |
3260 | jz .doselect |
3337 | jz .doselect |
3261 | test byte [esi+303], 1 |
3338 | test byte [esi+303], 1 |
3262 | jz @f |
3339 | jz @f |
3263 | and byte [esi+303], not 1 |
3340 | and byte [esi+303], not 1 |
3264 | sub dword [ebp + panel1_selected_size - panel1_data], eax |
3341 | sub dword [ebp + PanelData.selected_size], eax |
3265 | mov eax, [esi+36] |
3342 | mov eax, [esi+36] |
3266 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], eax |
3343 | sbb dword [ebp + PanelData.selected_size+4], eax |
3267 | dec dword [ebp + panel1_selected_num - panel1_data] |
3344 | dec dword [ebp + PanelData.selected_num] |
3268 | jmp @f |
3345 | jmp @f |
3269 | .doselect: |
3346 | .doselect: |
3270 | test byte [esi+303], 1 |
3347 | test byte [esi+303], 1 |
3271 | jnz @f |
3348 | jnz @f |
3272 | or byte [esi+303], 1 |
3349 | or byte [esi+303], 1 |
3273 | add dword [ebp + panel1_selected_size - panel1_data], eax |
3350 | add dword [ebp + PanelData.selected_size], eax |
3274 | mov eax, [esi+36] |
3351 | mov eax, [esi+36] |
3275 | adc dword [ebp + panel1_selected_size+4 - panel1_data], eax |
3352 | adc dword [ebp + PanelData.selected_size+4], eax |
3276 | inc dword [ebp + panel1_selected_num - panel1_data] |
3353 | inc dword [ebp + PanelData.selected_num] |
3277 | @@: |
3354 | @@: |
3278 | add ebx, 4 |
3355 | add ebx, 4 |
3279 | dec ecx |
3356 | dec ecx |
3280 | jnz .selectloop |
3357 | jnz .selectloop |
3281 | pop eax |
3358 | pop eax |
3282 | jmp .done_redraw |
3359 | jmp .done_redraw |
3283 | .greyasterisk: |
3360 | .greyasterisk: |
3284 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
3361 | mov ecx, [ebp + PanelData.numfiles] |
3285 | mov esi, [ebp + panel1_files - panel1_data] |
3362 | mov esi, [ebp + PanelData.files] |
3286 | jecxz .galoopdone |
3363 | jecxz .galoopdone |
3287 | .galoop: |
3364 | .galoop: |
3288 | lodsd |
3365 | lodsd |
3289 | cmp word [eax+40], '..' |
3366 | cmp word [eax+40], '..' |
3290 | jnz @f |
3367 | jnz @f |
Line 3293... | Line 3370... | ||
3293 | @@: |
3370 | @@: |
3294 | xor byte [eax+303], 1 |
3371 | xor byte [eax+303], 1 |
3295 | mov edx, [eax+32] |
3372 | mov edx, [eax+32] |
3296 | test byte [eax+303], 1 |
3373 | test byte [eax+303], 1 |
3297 | jz .gadel |
3374 | jz .gadel |
3298 | add dword [ebp + panel1_selected_size - panel1_data], edx |
3375 | add dword [ebp + PanelData.selected_size], edx |
3299 | mov edx, [eax+36] |
3376 | mov edx, [eax+36] |
3300 | adc dword [ebp + panel1_selected_size+4 - panel1_data], edx |
3377 | adc dword [ebp + PanelData.selected_size+4], edx |
3301 | inc dword [ebp + panel1_selected_num - panel1_data] |
3378 | inc dword [ebp + PanelData.selected_num] |
3302 | jmp .gacont |
3379 | jmp .gacont |
3303 | .gadel: |
3380 | .gadel: |
3304 | sub dword [ebp + panel1_selected_size - panel1_data], edx |
3381 | sub dword [ebp + PanelData.selected_size], edx |
3305 | mov edx, [eax+36] |
3382 | mov edx, [eax+36] |
3306 | sbb dword [ebp + panel1_selected_size+4 - panel1_data], edx |
3383 | sbb dword [ebp + PanelData.selected_size+4], edx |
3307 | dec dword [ebp + panel1_selected_num - panel1_data] |
3384 | dec dword [ebp + PanelData.selected_num] |
3308 | .gacont: |
3385 | .gacont: |
3309 | loop .galoop |
3386 | loop .galoop |
3310 | .galoopdone: |
3387 | .galoopdone: |
3311 | jmp .done_redraw |
3388 | jmp .done_redraw |
Line 3312... | Line 3389... | ||
3312 | 3389 | ||
3313 | @@: |
3390 | @@: |
3314 | call close_plugin_panel |
3391 | call close_plugin_panel |
3315 | close_plugin_panels: |
3392 | close_plugin_panels: |
3316 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
3393 | cmp [ebp + PanelData.hPlugin], 0 |
3317 | jnz @b |
3394 | jnz @b |
Line 3318... | Line 3395... | ||
3318 | ret |
3395 | ret |
3319 | 3396 | ||
3320 | close_plugin_panel: |
3397 | close_plugin_panel: |
3321 | ; close plugin and restore old directory |
3398 | ; close plugin and restore old directory |
3322 | mov esi, [ebp + panel1_parents - panel1_data] |
3399 | mov esi, [ebp + PanelData.parents] |
3323 | add esi, [ebp + panel1_parents_sz - panel1_data] |
3400 | add esi, [ebp + PanelData.parents_sz] |
3324 | @@: |
3401 | @@: |
3325 | dec esi |
3402 | dec esi |
3326 | cmp byte [esi-1], 0 |
3403 | cmp byte [esi-1], 0 |
3327 | jnz @b |
3404 | jnz @b |
3328 | push esi |
3405 | push esi |
3329 | lea edi, [ebp + panel1_dir - panel1_data] |
3406 | lea edi, [ebp + PanelData.dir] |
3330 | @@: |
3407 | @@: |
3331 | lodsb |
3408 | lodsb |
3332 | stosb |
3409 | stosb |
3333 | test al, al |
3410 | test al, al |
3334 | jnz @b |
3411 | jnz @b |
3335 | pop esi |
3412 | pop esi |
3336 | sub esi, 9 |
3413 | sub esi, 9 |
3337 | mov edx, [esi] ; hPlugin |
3414 | mov edx, [esi] ; hPlugin |
3338 | mov ebx, [esi+4] ; hFile |
3415 | mov ebx, [esi+4] ; hFile |
3339 | sub esi, [ebp + panel1_parents - panel1_data] |
3416 | sub esi, [ebp + PanelData.parents] |
3340 | mov [ebp + panel1_parents_sz - panel1_data], esi |
3417 | mov [ebp + PanelData.parents_sz], esi |
3341 | xchg edx, [ebp + panel1_hPlugin - panel1_data] |
3418 | xchg edx, [ebp + PanelData.hPlugin] |
3342 | xchg ebx, [ebp + panel1_hFile - panel1_data] |
3419 | xchg ebx, [ebp + PanelData.hFile] |
3343 | push edx ebx |
3420 | push edx ebx |
3344 | lea ebx, [ebp + panel1_plugin_info - panel1_data] |
3421 | lea ebx, [ebp + PanelData.plugin_flags] ;plugin_info |
3345 | and dword [ebx], 0 |
3422 | and dword [ebx], 0 |
3346 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
3423 | mov eax, [ebp + PanelData.hPlugin] |
3347 | test eax, eax |
3424 | test eax, eax |
3348 | jz @f |
3425 | jz @f |
3349 | push ebp |
3426 | push ebp |
3350 | push ebx |
3427 | push ebx |
3351 | push [ebp + panel1_hFile - panel1_data] |
3428 | push [ebp + PanelData.hFile] |
3352 | call [eax+PluginInfo.GetOpenPluginInfo] |
3429 | call [eax+PluginInfo.GetOpenPluginInfo] |
3353 | pop ebp |
3430 | pop ebp |
Line 3373... | Line 3450... | ||
3373 | pop ebp |
3450 | pop ebp |
3374 | ret |
3451 | ret |
Line 3375... | Line 3452... | ||
3375 | 3452 | ||
3376 | panels_IsHandleUsed: |
3453 | panels_IsHandleUsed: |
3377 | ; edx=hPlugin, ebx=hFile |
3454 | ; edx=hPlugin, ebx=hFile |
3378 | mov ebp, panel1_data |
3455 | mov ebp, panel1 |
3379 | call .1 |
3456 | call .1 |
3380 | jz .ret |
3457 | jz .ret |
Line 3381... | Line 3458... | ||
3381 | mov ebp, panel2_data |
3458 | mov ebp, panel2 |
3382 | 3459 | ||
3383 | .1: |
3460 | .1: |
3384 | cmp edx, [ebp+panel1_hPlugin-panel1_data] |
3461 | cmp edx, [ebp+ PanelData.hPlugin] |
3385 | jnz @f |
3462 | jnz @f |
3386 | cmp ebx, [ebp+panel1_hFile-panel1_data] |
3463 | cmp ebx, [ebp+ PanelData.hFile] |
3387 | jz .ret |
3464 | jz .ret |
3388 | @@: |
3465 | @@: |
3389 | mov esi, [ebp + panel1_parents_sz - panel1_data] |
3466 | mov esi, [ebp + PanelData.parents_sz] |
3390 | test esi, esi |
3467 | test esi, esi |
3391 | jnz @f |
3468 | jnz @f |
3392 | inc esi |
3469 | inc esi |
3393 | .ret: |
3470 | .ret: |
3394 | ret |
3471 | ret |
3395 | @@: |
3472 | @@: |
3396 | add esi, [ebp + panel1_parents - panel1_data] |
3473 | add esi, [ebp + PanelData.parents] |
3397 | @@: |
3474 | @@: |
3398 | dec esi |
3475 | dec esi |
3399 | cmp byte [esi-1], 0 |
3476 | cmp byte [esi-1], 0 |
3400 | jnz @b |
3477 | jnz @b |
3401 | sub esi, 9 |
3478 | sub esi, 9 |
3402 | cmp edx, [esi] ; hPlugin |
3479 | cmp edx, [esi] ; hPlugin |
3403 | jnz .no |
3480 | jnz .no |
3404 | mov ebx, [esi+4] ; hFile |
3481 | mov ebx, [esi+4] ; hFile |
3405 | jz .ret |
3482 | jz .ret |
3406 | .no: |
3483 | .no: |
3407 | cmp esi, [ebp + panel1_parents - panel1_data] |
3484 | cmp esi, [ebp + PanelData.parents] |
3408 | jnz @b |
3485 | jnz @b |
Line 3409... | Line 3486... | ||
3409 | inc esi |
3486 | inc esi |
3410 | ret |
3487 | ret |
3411 | 3488 | ||
3412 | panels_OnExit: |
3489 | panels_OnExit: |
3413 | ; close plugin panels |
3490 | ; close plugin panels |
3414 | mov ebp, panel1_data |
3491 | mov ebp, panel1 |
3415 | call close_plugin_panels |
3492 | call close_plugin_panels |
Line 3416... | Line 3493... | ||
3416 | mov ebp, panel2_data |
3493 | mov ebp, panel2 |
3417 | call close_plugin_panels |
3494 | call close_plugin_panels |
3418 | ret |
3495 | ret |
3419 | 3496 | ||
3420 | panels_OnRedraw: |
3497 | panels_OnRedraw: |
3421 | or [cursor_x], -1 |
3498 | or [cursor_x], -1 |
3422 | or [cursor_y], -1 |
3499 | or [cursor_y], -1 |
3423 | call draw_cmdbar |
3500 | call draw_cmdbar |
3424 | mov ebp, panel1_data |
3501 | mov ebp, panel1 |
3425 | call calc_colwidths |
3502 | call calc_colwidths |
3426 | call draw_panel |
3503 | call draw_panel |
Line 3427... | Line 3504... | ||
3427 | mov ebp, panel2_data |
3504 | mov ebp, panel2 |
Line 3443... | Line 3520... | ||
3443 | jz exit |
3520 | jz exit |
3444 | mov [console_data_ptr], eax |
3521 | mov [console_data_ptr], eax |
3445 | mov edi, eax |
3522 | mov edi, eax |
3446 | mov ax, 0720h |
3523 | mov ax, 0720h |
3447 | rep stosw |
3524 | rep stosw |
3448 | mov [panel1_left], ecx |
3525 | mov [panel1.left], ecx |
3449 | mov [panel1_top], ecx |
3526 | mov [panel1.top], ecx |
3450 | mov [panel2_top], ecx |
3527 | mov [panel2.top], ecx |
3451 | mov eax, [cur_width] |
3528 | mov eax, [cur_width] |
3452 | inc eax |
3529 | inc eax |
3453 | shr eax, 1 |
3530 | shr eax, 1 |
3454 | mov [panel1_width], eax |
3531 | mov [panel1.width], eax |
3455 | mov [panel2_left], eax |
3532 | mov [panel2.left], eax |
3456 | sub eax, [cur_width] |
3533 | sub eax, [cur_width] |
3457 | neg eax |
3534 | neg eax |
3458 | mov [panel2_width], eax |
3535 | mov [panel2.width], eax |
3459 | mov eax, [cur_height] |
3536 | mov eax, [cur_height] |
3460 | dec eax |
3537 | dec eax |
3461 | dec eax |
3538 | dec eax |
3462 | mov [panel1_height], eax |
3539 | mov [panel1.height], eax |
3463 | mov [panel2_height], eax |
3540 | mov [panel2.height], eax |
3464 | ret |
3541 | ret |
Line 3465... | Line 3542... | ||
3465 | 3542 | ||
3466 | get_curfile_folder_entry: |
3543 | get_curfile_folder_entry: |
3467 | mov ecx, [ebp + panel1_index - panel1_data] |
3544 | mov ecx, [ebp + PanelData.index] |
3468 | shl ecx, 2 |
3545 | shl ecx, 2 |
3469 | add ecx, [ebp + panel1_files - panel1_data] |
3546 | add ecx, [ebp + PanelData.files] |
3470 | mov ecx, [ecx] |
3547 | mov ecx, [ecx] |
3471 | ret |
3548 | ret |
3472 | get_curfile_name: |
3549 | get_curfile_name: |
3473 | call get_curfile_folder_entry |
3550 | call get_curfile_folder_entry |
3474 | add ecx, 40 |
3551 | add ecx, 40 |
Line 3475... | Line 3552... | ||
3475 | ret |
3552 | ret |
3476 | 3553 | ||
3477 | quick_find: |
3554 | quick_find: |
3478 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
3555 | cmp [ebp + PanelData.numfiles], 0 |
3479 | jz .nof |
3556 | jz .nof |
3480 | mov ecx, [ebp + panel1_index - panel1_data] |
3557 | mov ecx, [ebp + PanelData.index] |
3481 | .scanloop: |
3558 | .scanloop: |
3482 | mov edi, ecx |
3559 | mov edi, ecx |
3483 | shl edi, 2 |
3560 | shl edi, 2 |
3484 | add edi, [ebp + panel1_files - panel1_data] |
3561 | add edi, [ebp + PanelData.files] |
3485 | mov edi, [edi] |
3562 | mov edi, [edi] |
3486 | add edi, 40 |
3563 | add edi, 40 |
3487 | mov esi, quick_search_buf + 12 |
3564 | mov esi, quick_search_buf + 12 |
Line 3493... | Line 3570... | ||
3493 | jnz .no |
3570 | jnz .no |
3494 | inc edi |
3571 | inc edi |
3495 | jmp @b |
3572 | jmp @b |
3496 | .no: |
3573 | .no: |
3497 | inc ecx |
3574 | inc ecx |
3498 | cmp ecx, [ebp + panel1_numfiles - panel1_data] |
3575 | cmp ecx, [ebp + PanelData.numfiles] |
3499 | jb @f |
3576 | jb @f |
3500 | xor ecx, ecx |
3577 | xor ecx, ecx |
3501 | @@: |
3578 | @@: |
3502 | cmp ecx, [ebp + panel1_index - panel1_data] |
3579 | cmp ecx, [ebp + PanelData.index] |
3503 | jnz .scanloop |
3580 | jnz .scanloop |
3504 | .nof: |
3581 | .nof: |
3505 | stc |
3582 | stc |
3506 | ret |
3583 | ret |
3507 | .ok: |
3584 | .ok: |
3508 | cmp ecx, [ebp + panel1_index - panel1_data] |
3585 | cmp ecx, [ebp + PanelData.index] |
3509 | jz .ret |
3586 | jz .ret |
3510 | mov [ebp + panel1_index - panel1_data], ecx |
3587 | mov [ebp + PanelData.index], ecx |
3511 | mov eax, [ebp + panel1_height - panel1_data] |
3588 | mov eax, [ebp + PanelData.height] |
3512 | shr eax, 1 |
3589 | shr eax, 1 |
3513 | sub ecx, eax |
3590 | sub ecx, eax |
3514 | jae @f |
3591 | jae @f |
3515 | xor ecx, ecx |
3592 | xor ecx, ecx |
3516 | @@: |
3593 | @@: |
3517 | mov eax, [ebp + panel1_numfiles - panel1_data] |
3594 | mov eax, [ebp + PanelData.numfiles] |
3518 | sub eax, [ebp + panel1_colst - panel1_data] |
3595 | sub eax, [ebp + PanelData.colst] |
3519 | jnc @f |
3596 | jnc @f |
3520 | xor eax, eax |
3597 | xor eax, eax |
3521 | xor ecx, ecx |
3598 | xor ecx, ecx |
3522 | @@: |
3599 | @@: |
3523 | cmp ecx, eax |
3600 | cmp ecx, eax |
3524 | jb @f |
3601 | jb @f |
3525 | mov ecx, eax |
3602 | mov ecx, eax |
3526 | @@: |
3603 | @@: |
3527 | mov [ebp + panel1_start - panel1_data], ecx |
3604 | mov [ebp + PanelData.start], ecx |
3528 | call draw_panel |
3605 | call draw_panel |
3529 | .ret: |
3606 | .ret: |
3530 | clc |
3607 | clc |
3531 | ret |
3608 | ret |
Line 3532... | Line 3609... | ||
3532 | 3609 | ||
3533 | quick_find_next: |
3610 | quick_find_next: |
3534 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
3611 | cmp [ebp + PanelData.numfiles], 0 |
3535 | jz quick_find.nof |
3612 | jz quick_find.nof |
3536 | mov ecx, [ebp + panel1_index - panel1_data] |
3613 | mov ecx, [ebp + PanelData.index] |
Line 3537... | Line 3614... | ||
3537 | jmp quick_find.no |
3614 | jmp quick_find.no |
3538 | 3615 | ||
3539 | quick_find_prev: |
3616 | quick_find_prev: |
3540 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
3617 | cmp [ebp + PanelData.numfiles], 0 |
3541 | jz quick_find.nof |
3618 | jz quick_find.nof |
3542 | mov ecx, [ebp + panel1_index - panel1_data] |
3619 | mov ecx, [ebp + PanelData.index] |
3543 | .scanloop: |
3620 | .scanloop: |
3544 | dec ecx |
3621 | dec ecx |
3545 | jns @f |
3622 | jns @f |
3546 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
3623 | mov ecx, [ebp + PanelData.numfiles] |
3547 | dec ecx |
3624 | dec ecx |
3548 | @@: |
3625 | @@: |
3549 | cmp ecx, [ebp + panel1_index - panel1_data] |
3626 | cmp ecx, [ebp + PanelData.index] |
3550 | jz quick_find.nof |
3627 | jz quick_find.nof |
3551 | mov edi, ecx |
3628 | mov edi, ecx |
3552 | shl edi, 2 |
3629 | shl edi, 2 |
3553 | add edi, [ebp + panel1_files - panel1_data] |
3630 | add edi, [ebp + PanelData.files] |
3554 | mov edi, [edi] |
3631 | mov edi, [edi] |
3555 | add edi, 40 |
3632 | add edi, 40 |
3556 | mov esi, quick_search_buf + 12 |
3633 | mov esi, quick_search_buf + 12 |
Line 3583... | Line 3660... | ||
3583 | end if |
3660 | end if |
3584 | sub ecx, 13 |
3661 | sub ecx, 13 |
3585 | mov ebp, [active_panel] |
3662 | mov ebp, [active_panel] |
3586 | push 3 |
3663 | push 3 |
3587 | pop edx |
3664 | pop edx |
3588 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
3665 | cmp [ebp + PanelData.hPlugin], 0 |
3589 | jz .native |
3666 | jz .native |
3590 | mov esi, [ebp + panel1_parents - panel1_data] |
3667 | mov esi, [ebp + PanelData.parents] |
3591 | add esi, [ebp + panel1_parents_sz - panel1_data] |
3668 | add esi, [ebp + PanelData.parents_sz] |
3592 | @@: |
3669 | @@: |
3593 | dec esi |
3670 | dec esi |
3594 | cmp byte [esi-1], 0 |
3671 | cmp byte [esi-1], 0 |
3595 | jz @f |
3672 | jz @f |
3596 | cmp byte [esi-1], '/' |
3673 | cmp byte [esi-1], '/' |
Line 3607... | Line 3684... | ||
3607 | @@: |
3684 | @@: |
3608 | sub edi, [esp] |
3685 | sub edi, [esp] |
3609 | sub [esp+4], edi |
3686 | sub [esp+4], edi |
3610 | add [esp], edi |
3687 | add [esp], edi |
3611 | pop edi ecx |
3688 | pop edi ecx |
3612 | lea esi, [ebp + panel1_dir - panel1_data] |
3689 | lea esi, [ebp + PanelData.dir] |
3613 | cmp byte [esi+1], 0 |
3690 | cmp byte [esi+1], 0 |
3614 | jnz @f |
3691 | jnz @f |
3615 | inc esi |
3692 | inc esi |
3616 | @@: |
3693 | @@: |
3617 | jmp .main |
3694 | jmp .main |
3618 | .native: |
3695 | .native: |
3619 | lea esi, [ebp + panel1_dir - panel1_data] |
3696 | lea esi, [ebp + PanelData.dir] |
3620 | @@: |
3697 | @@: |
3621 | lodsb |
3698 | lodsb |
3622 | stosb |
3699 | stosb |
3623 | dec ecx |
3700 | dec ecx |
3624 | test al, al |
3701 | test al, al |
Line 3642... | Line 3719... | ||
3642 | dec esi |
3719 | dec esi |
3643 | mov ebx, esi |
3720 | mov ebx, esi |
3644 | sub ebx, [esp] |
3721 | sub ebx, [esp] |
3645 | dec esi |
3722 | dec esi |
3646 | push esi |
3723 | push esi |
3647 | mov esi, [ebp + panel1_index - panel1_data] |
3724 | mov esi, [ebp + PanelData.index] |
3648 | shl esi, 2 |
3725 | shl esi, 2 |
3649 | add esi, [ebp + panel1_files - panel1_data] |
3726 | add esi, [ebp + PanelData.files] |
3650 | mov esi, [esi] |
3727 | mov esi, [esi] |
3651 | add esi, 40 |
3728 | add esi, 40 |
3652 | push esi |
3729 | push esi |
3653 | @@: |
3730 | @@: |
3654 | lodsb |
3731 | lodsb |
Line 3991... | Line 4068... | ||
3991 | mov edi, [console_data_ptr] |
4068 | mov edi, [console_data_ptr] |
3992 | lea edi, [edi + edx*2] |
4069 | lea edi, [edi + edx*2] |
3993 | pop edx |
4070 | pop edx |
3994 | ret |
4071 | ret |
Line -... | Line 4072... | ||
- | 4072 | ||
- | 4073 | ;description: |
|
- | 4074 | ; draw keys F1-F10 |
|
3995 | 4075 | align 16 |
|
3996 | draw_keybar: |
4076 | draw_keybar: |
3997 | pushad |
4077 | pushad |
3998 | xor eax, eax |
4078 | xor eax, eax |
3999 | test [ctrlstate], 3 |
4079 | test [ctrlstate], 3 |
Line 4105... | Line 4185... | ||
4105 | popad |
4185 | popad |
4106 | ret |
4186 | ret |
Line 4107... | Line 4187... | ||
4107 | 4187 | ||
4108 | draw_cmdbar: |
4188 | draw_cmdbar: |
4109 | mov esi, [active_panel] |
4189 | mov esi, [active_panel] |
4110 | add esi, panel1_dir - panel1_data |
4190 | add esi, PanelData.dir |
4111 | xor eax, eax |
4191 | xor eax, eax |
4112 | mov edx, [cur_height] |
4192 | mov edx, [cur_height] |
4113 | dec edx |
4193 | dec edx |
4114 | dec edx |
4194 | dec edx |
Line 4168... | Line 4248... | ||
4168 | stosw |
4248 | stosw |
4169 | ret |
4249 | ret |
Line 4170... | Line 4250... | ||
4170 | 4250 | ||
4171 | calc_colwidths: |
4251 | calc_colwidths: |
4172 | ; in: ebp->panel data |
4252 | ; in: ebp->panel data |
4173 | imul esi, [ebp + panel1_colmode - panel1_data], PanelMode.size |
4253 | imul esi, [ebp + PanelData.colmode], PanelMode.size |
4174 | add esi, colmodes |
4254 | add esi, colmodes |
4175 | lodsd |
4255 | lodsd |
4176 | mov ecx, eax |
4256 | mov ecx, eax |
4177 | lea edx, [ecx-1] |
4257 | lea edx, [ecx-1] |
Line 4184... | Line 4264... | ||
4184 | add edx, eax |
4264 | add edx, eax |
4185 | cmp al, 1 |
4265 | cmp al, 1 |
4186 | adc ebx, 0 |
4266 | adc ebx, 0 |
4187 | loop .loop |
4267 | loop .loop |
4188 | pop esi ecx |
4268 | pop esi ecx |
4189 | lea edi, [ebp + panel1_colwidths - panel1_data] |
4269 | lea edi, [ebp + PanelData.colwidths] |
4190 | test ebx, ebx |
4270 | test ebx, ebx |
4191 | jz .loop2 |
4271 | jz .loop2 |
4192 | mov eax, [ebp + panel1_width - panel1_data] |
4272 | mov eax, [ebp + PanelData.width] |
4193 | dec eax |
4273 | dec eax |
4194 | dec eax |
4274 | dec eax |
4195 | sub eax, edx |
4275 | sub eax, edx |
4196 | jae @f |
4276 | jae @f |
4197 | xor eax, eax |
4277 | xor eax, eax |
Line 4262... | Line 4342... | ||
4262 | 4342 | ||
4263 | ;input: |
4343 | ;input: |
4264 | ; ebp - pointer to panel1 or panel2 |
4344 | ; ebp - pointer to panel1 or panel2 |
4265 | align 16 |
4345 | align 16 |
4266 | draw_panel: |
4346 | draw_panel: |
4267 | mov eax, [ebp + panel1_left - panel1_data] |
4347 | mov eax, [ebp + PanelData.left] |
4268 | mov edx, [ebp + panel1_top - panel1_data] |
4348 | mov edx, [ebp + PanelData.top] |
4269 | call get_console_ptr |
4349 | call get_console_ptr |
4270 | ; draw border |
4350 | ; draw border |
4271 | mov ah, [panel_border_color] |
4351 | mov ah, [panel_border_color] |
4272 | mov ebx, [ebp + panel1_width - panel1_data] |
4352 | mov ebx, [ebp + PanelData.width] |
4273 | mov edx, [ebp + panel1_height - panel1_data] |
4353 | mov edx, [ebp + PanelData.height] |
4274 | call draw_border |
4354 | call draw_border |
4275 | push eax |
4355 | push eax |
4276 | mov eax, [ebp + panel1_left - panel1_data] |
4356 | mov eax, [ebp + PanelData.left] |
4277 | mov edx, [ebp + panel1_top - panel1_data] |
4357 | mov edx, [ebp + PanelData.top] |
4278 | add edx, [ebp + panel1_height - panel1_data] |
4358 | add edx, [ebp + PanelData.height] |
4279 | sub edx, 3 |
4359 | sub edx, 3 |
4280 | call get_console_ptr |
4360 | call get_console_ptr |
4281 | pop eax |
4361 | pop eax |
4282 | mov al, 0xC7 |
4362 | mov al, 0xC7 |
Line 4285... | Line 4365... | ||
4285 | lea ecx, [ebx-2] |
4365 | lea ecx, [ebx-2] |
4286 | rep stosw |
4366 | rep stosw |
4287 | mov al, 0xB6 |
4367 | mov al, 0xB6 |
4288 | stosw |
4368 | stosw |
Line 4289... | Line 4369... | ||
4289 | 4369 | ||
4290 | imul esi, [ebp + panel1_colmode - panel1_data], PanelMode.size |
4370 | imul esi, [ebp + PanelData.colmode], PanelMode.size |
4291 | add esi, colmodes |
4371 | add esi, colmodes |
4292 | lodsd |
4372 | lodsd |
4293 | mov ecx, eax ; number of columns |
4373 | mov ecx, eax ; number of columns |
4294 | lea ebx, [ebp + panel1_colwidths - panel1_data] |
4374 | lea ebx, [ebp + PanelData.colwidths] |
4295 | mov eax, [ebp + panel1_left - panel1_data] |
4375 | mov eax, [ebp + PanelData.left] |
4296 | inc eax |
4376 | inc eax |
4297 | mov [column_left], eax |
4377 | mov [column_left], eax |
4298 | mov eax, [ebp + panel1_top - panel1_data] |
4378 | mov eax, [ebp + PanelData.top] |
4299 | inc eax |
4379 | inc eax |
4300 | mov [column_top], eax |
4380 | mov [column_top], eax |
4301 | mov eax, [ebp + panel1_height - panel1_data] |
4381 | mov eax, [ebp + PanelData.height] |
4302 | sub eax, 4 |
4382 | sub eax, 4 |
4303 | mov [column_height], eax |
4383 | mov [column_height], eax |
4304 | dec eax |
4384 | dec eax |
4305 | mov [ebp + panel1_colsz - panel1_data], eax |
4385 | mov [ebp + PanelData.colsz], eax |
4306 | and [ebp + panel1_colst - panel1_data], 0 |
4386 | and [ebp + PanelData.colst], 0 |
4307 | mov eax, [ebp + panel1_start - panel1_data] |
4387 | mov eax, [ebp + PanelData.start] |
4308 | mov [column_index], eax |
4388 | mov [column_index], eax |
4309 | mov [last_column_index], eax |
4389 | mov [last_column_index], eax |
4310 | .columns_loop: |
4390 | .columns_loop: |
4311 | push ecx |
4391 | push ecx |
4312 | mov eax, [ebx] |
4392 | mov eax, [ebx] |
4313 | add ebx, 4 |
4393 | add ebx, 4 |
4314 | mov [column_width], eax |
4394 | mov [column_width], eax |
4315 | cmp ecx, 1 |
4395 | cmp ecx, 1 |
4316 | jz .skip_right_border |
4396 | jz .skip_right_border |
4317 | add eax, [column_left] |
4397 | add eax, [column_left] |
4318 | mov edx, [ebp + panel1_top - panel1_data] |
4398 | mov edx, [ebp + PanelData.top] |
4319 | call get_console_ptr |
4399 | call get_console_ptr |
4320 | mov ah, [panel_header_color] |
4400 | mov ah, [panel_header_color] |
4321 | mov al, 0xD1 |
4401 | mov al, 0xD1 |
4322 | mov [edi], ax |
4402 | mov [edi], ax |
Line 4384... | Line 4464... | ||
4384 | add [column_left], eax |
4464 | add [column_left], eax |
4385 | pop ecx |
4465 | pop ecx |
4386 | dec ecx |
4466 | dec ecx |
4387 | jnz .columns_loop |
4467 | jnz .columns_loop |
4388 | ; £®«®¢®ª ¯ ¥«¨ (⥪ãé ï ¯ ¯ª ) |
4468 | ; £®«®¢®ª ¯ ¥«¨ (⥪ãé ï ¯ ¯ª ) |
4389 | lea esi, [ebp + panel1_dir - panel1_data] |
4469 | lea esi, [ebp + PanelData.dir] |
4390 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
4470 | mov eax, [ebp + PanelData.hPlugin] |
4391 | test eax, eax |
4471 | test eax, eax |
4392 | jz .native |
4472 | jz .native |
4393 | push ebp |
4473 | push ebp |
4394 | push esi |
4474 | push esi |
4395 | mov esi, [ebp + panel1_parents - panel1_data] |
4475 | mov esi, [ebp + PanelData.parents] |
4396 | add esi, [ebp + panel1_parents_sz - panel1_data] |
4476 | add esi, [ebp + PanelData.parents_sz] |
4397 | @@: |
4477 | @@: |
4398 | dec esi |
4478 | dec esi |
4399 | cmp byte [esi-1], 0 |
4479 | cmp byte [esi-1], 0 |
4400 | jnz @b |
4480 | jnz @b |
4401 | push esi |
4481 | push esi |
4402 | push execdata |
4482 | push execdata |
4403 | push [ebp + panel1_hFile - panel1_data] |
4483 | push [ebp + PanelData.hFile] |
4404 | call [eax+PluginInfo.GetPanelTitle] |
4484 | call [eax+PluginInfo.GetPanelTitle] |
4405 | pop ebp |
4485 | pop ebp |
4406 | mov esi, execdata |
4486 | mov esi, execdata |
4407 | .native: |
4487 | .native: |
4408 | mov edi, cur_header |
4488 | mov edi, cur_header |
4409 | mov ecx, [ebp + panel1_width - panel1_data] |
4489 | mov ecx, [ebp + PanelData.width] |
4410 | sub ecx, 6 |
4490 | sub ecx, 6 |
4411 | cmp byte [esi], '/' |
4491 | cmp byte [esi], '/' |
4412 | jnz .copy_rest |
4492 | jnz .copy_rest |
4413 | dec ecx |
4493 | dec ecx |
4414 | movsb |
4494 | movsb |
Line 4443... | Line 4523... | ||
4443 | stosb |
4523 | stosb |
4444 | dec ecx |
4524 | dec ecx |
4445 | test al, al |
4525 | test al, al |
4446 | jnz @b |
4526 | jnz @b |
4447 | .header_created: |
4527 | .header_created: |
4448 | mov edx, [ebp + panel1_top - panel1_data] |
4528 | mov edx, [ebp + PanelData.top] |
4449 | mov eax, [ebp + panel1_left - panel1_data] |
4529 | mov eax, [ebp + PanelData.left] |
4450 | shr ecx, 1 |
4530 | shr ecx, 1 |
4451 | lea eax, [eax+ecx+3] |
4531 | lea eax, [eax+ecx+3] |
4452 | call get_console_ptr |
4532 | call get_console_ptr |
4453 | mov ah, [panel_active_header_color] |
4533 | mov ah, [panel_active_header_color] |
4454 | cmp ebp, [active_panel] |
4534 | cmp ebp, [active_panel] |
Line 4465... | Line 4545... | ||
4465 | stosw |
4545 | stosw |
4466 | jmp @b |
4546 | jmp @b |
4467 | @@: |
4547 | @@: |
4468 | mov al, ' ' |
4548 | mov al, ' ' |
4469 | stosw |
4549 | stosw |
4470 | mov edx, [ebp + panel1_top - panel1_data] |
4550 | mov edx, [ebp + PanelData.top] |
4471 | inc edx |
4551 | inc edx |
4472 | mov eax, [ebp + panel1_left - panel1_data] |
4552 | mov eax, [ebp + PanelData.left] |
4473 | inc eax |
4553 | inc eax |
4474 | call get_console_ptr |
4554 | call get_console_ptr |
4475 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
4555 | movzx eax, [ebp + PanelData.sortmode] |
4476 | mov al, [compare_names+eax] |
4556 | mov al, [compare_names+eax] |
4477 | stosb |
4557 | stosb |
4478 | mov eax, [ebp + panel1_selected_num - panel1_data] |
4558 | mov eax, [ebp + PanelData.selected_num] |
4479 | test eax, eax |
4559 | test eax, eax |
4480 | jz .skip_selected_info |
4560 | jz .skip_selected_info |
4481 | ; ä®à¬ æ¨ï ® ¢ë¤¥«¥ëå ä ©« å |
4561 | ; ä®à¬ æ¨ï ® ¢ë¤¥«¥ëå ä ©« å |
4482 | push dword [ebp + panel1_selected_size+4 - panel1_data] |
4562 | push dword [ebp + PanelData.selected_size+4] |
4483 | push dword [ebp + panel1_selected_size - panel1_data] |
4563 | push dword [ebp + PanelData.selected_size] |
4484 | call fill_total_info |
4564 | call fill_total_info |
4485 | mov eax, [ebp + panel1_width - panel1_data] |
4565 | mov eax, [ebp + PanelData.width] |
4486 | sub eax, 2 |
4566 | sub eax, 2 |
4487 | cmp ecx, eax |
4567 | cmp ecx, eax |
4488 | jbe @f |
4568 | jbe @f |
4489 | mov ecx, eax |
4569 | mov ecx, eax |
4490 | mov edi, saved_file_name+512 |
4570 | mov edi, saved_file_name+512 |
Line 4494... | Line 4574... | ||
4494 | @@: |
4574 | @@: |
4495 | mov esi, edi |
4575 | mov esi, edi |
4496 | sub eax, ecx |
4576 | sub eax, ecx |
4497 | shr eax, 1 |
4577 | shr eax, 1 |
4498 | inc eax |
4578 | inc eax |
4499 | add eax, [ebp + panel1_left - panel1_data] |
4579 | add eax, [ebp + PanelData.left] |
4500 | mov edx, [ebp + panel1_top - panel1_data] |
4580 | mov edx, [ebp + PanelData.top] |
4501 | add edx, [ebp + panel1_height - panel1_data] |
4581 | add edx, [ebp + PanelData.height] |
4502 | sub edx, 3 |
4582 | sub edx, 3 |
4503 | call get_console_ptr |
4583 | call get_console_ptr |
4504 | mov ah, [panel_numselected_color] |
4584 | mov ah, [panel_numselected_color] |
4505 | @@: |
4585 | @@: |
4506 | lodsb |
4586 | lodsb |
4507 | stosw |
4587 | stosw |
4508 | loop @b |
4588 | loop @b |
4509 | .skip_selected_info: |
4589 | .skip_selected_info: |
4510 | ; ä®à¬ æ¨ï ®¡ ®¡é¥¬ ç¨á«¥ ¨ à §¬¥à¥ ä ©«®¢ ¯ ¥«¨ |
4590 | ; ä®à¬ æ¨ï ®¡ ®¡é¥¬ ç¨á«¥ ¨ à §¬¥à¥ ä ©«®¢ ¯ ¥«¨ |
4511 | mov eax, [ebp + panel1_total_num - panel1_data] |
4591 | mov eax, [ebp + PanelData.total_num] |
4512 | push dword [ebp + panel1_total_size+4 - panel1_data] |
4592 | push dword [ebp + PanelData.total_size+4] |
4513 | push dword [ebp + panel1_total_size - panel1_data] |
4593 | push dword [ebp + PanelData.total_size] |
4514 | call fill_total_info |
4594 | call fill_total_info |
4515 | mov eax, [ebp + panel1_width - panel1_data] |
4595 | mov eax, [ebp + PanelData.width] |
4516 | sub eax, 2 |
4596 | sub eax, 2 |
4517 | cmp ecx, eax |
4597 | cmp ecx, eax |
4518 | jbe @f |
4598 | jbe @f |
4519 | mov ecx, eax |
4599 | mov ecx, eax |
4520 | mov byte [edi+ecx-3], '.' |
4600 | mov byte [edi+ecx-3], '.' |
4521 | mov word [edi+ecx-2], '..' |
4601 | mov word [edi+ecx-2], '..' |
4522 | @@: |
4602 | @@: |
4523 | sub eax, ecx |
4603 | sub eax, ecx |
4524 | shr eax, 1 |
4604 | shr eax, 1 |
4525 | inc eax |
4605 | inc eax |
4526 | add eax, [ebp + panel1_left - panel1_data] |
4606 | add eax, [ebp + PanelData.left] |
4527 | add edx, [ebp + panel1_top - panel1_data] |
4607 | add edx, [ebp + PanelData.top] |
4528 | add edx, [ebp + panel1_height - panel1_data] |
4608 | add edx, [ebp + PanelData.height] |
4529 | dec edx |
4609 | dec edx |
4530 | mov esi, edi |
4610 | mov esi, edi |
4531 | call get_console_ptr |
4611 | call get_console_ptr |
4532 | mov ah, [panel_number_color] |
4612 | mov ah, [panel_number_color] |
4533 | @@: |
4613 | @@: |
4534 | lodsb |
4614 | lodsb |
4535 | stosw |
4615 | stosw |
4536 | loop @b |
4616 | loop @b |
4537 | cmp [ebp + panel1_numfiles - panel1_data], 0 |
4617 | cmp [ebp + PanelData.numfiles], 0 |
4538 | jz .skip_curinfo |
4618 | jz .skip_curinfo |
4539 | ; ä®à¬ æ¨ï ® ⥪ã饬 ä ©«¥ |
4619 | ; ä®à¬ æ¨ï ® ⥪ã饬 ä ©«¥ |
4540 | mov ebx, [ebp + panel1_index - panel1_data] |
4620 | mov ebx, [ebp + PanelData.index] |
4541 | mov eax, [ebp + panel1_files - panel1_data] |
4621 | mov eax, [ebp + PanelData.files] |
4542 | mov ebx, [eax+ebx*4] |
4622 | mov ebx, [eax+ebx*4] |
4543 | mov eax, [ebp + panel1_left - panel1_data] |
4623 | mov eax, [ebp + PanelData.left] |
4544 | add eax, [ebp + panel1_width - panel1_data] |
4624 | add eax, [ebp + PanelData.width] |
4545 | dec eax |
4625 | dec eax |
4546 | mov edx, [ebp + panel1_top - panel1_data] |
4626 | mov edx, [ebp + PanelData.top] |
4547 | add edx, [ebp + panel1_height - panel1_data] |
4627 | add edx, [ebp + PanelData.height] |
4548 | dec edx |
4628 | dec edx |
4549 | dec edx |
4629 | dec edx |
4550 | call get_console_ptr |
4630 | call get_console_ptr |
4551 | mov ecx, [ebp + panel1_width - panel1_data] |
4631 | mov ecx, [ebp + PanelData.width] |
4552 | dec ecx |
4632 | dec ecx |
4553 | dec ecx |
4633 | dec ecx |
4554 | cmp [ebp + panel1_colmode - panel1_data], 3 |
4634 | cmp [ebp + PanelData.colmode], 3 |
4555 | jz .show_curname |
4635 | jz .show_curname |
4556 | ; à¥¬ï ¬®¤¨ä¨ª 樨 |
4636 | ; à¥¬ï ¬®¤¨ä¨ª 樨 |
4557 | sub edi, 5*2 |
4637 | sub edi, 5*2 |
4558 | sub ecx, 6 |
4638 | sub ecx, 6 |
4559 | mov al, [ebx+24+2] |
4639 | mov al, [ebx+24+2] |
Line 4806... | Line 4886... | ||
4806 | 4886 | ||
4807 | get_file_color: |
4887 | get_file_color: |
4808 | mov ah, [esi + 6] |
4888 | mov ah, [esi + 6] |
4809 | cmp ebp, [active_panel] |
4889 | cmp ebp, [active_panel] |
4810 | jnz @f |
4890 | jnz @f |
4811 | cmp ecx, [ebp + panel1_index - panel1_data] |
4891 | cmp ecx, [ebp + PanelData.index] |
4812 | jnz @f |
4892 | jnz @f |
4813 | mov ah, [esi + 7] |
4893 | mov ah, [esi + 7] |
4814 | @@: |
4894 | @@: |
4815 | test byte [esi + 303], 1 |
4895 | test byte [esi + 303], 1 |
4816 | jnz @f |
4896 | jnz @f |
4817 | mov ah, [esi + 4] |
4897 | mov ah, [esi + 4] |
4818 | cmp ebp, [active_panel] |
4898 | cmp ebp, [active_panel] |
4819 | jnz @f |
4899 | jnz @f |
4820 | cmp ecx, [ebp + panel1_index - panel1_data] |
4900 | cmp ecx, [ebp + PanelData.index] |
4821 | jnz @f |
4901 | jnz @f |
4822 | mov ah, [esi + 5] |
4902 | mov ah, [esi + 5] |
4823 | @@: |
4903 | @@: |
Line 4824... | Line 4904... | ||
4824 | ret |
4904 | ret |
4825 | 4905 | ||
4826 | draw_name_column: |
4906 | draw_name_column: |
4827 | mov eax, [column_index] |
4907 | mov eax, [column_index] |
4828 | mov [last_column_index], eax |
4908 | mov [last_column_index], eax |
4829 | mov edx, [ebp + panel1_numfiles - panel1_data] |
4909 | mov edx, [ebp + PanelData.numfiles] |
4830 | mov ecx, [column_height] |
4910 | mov ecx, [column_height] |
4831 | dec ecx |
4911 | dec ecx |
4832 | .l: |
4912 | .l: |
4833 | cmp [column_index], edx |
4913 | cmp [column_index], edx |
4834 | jae .ret |
4914 | jae .ret |
4835 | push ecx |
4915 | push ecx |
4836 | mov ecx, [column_index] |
4916 | mov ecx, [column_index] |
4837 | mov esi, [ebp + panel1_files - panel1_data] |
4917 | mov esi, [ebp + PanelData.files] |
4838 | mov esi, [esi+ecx*4] |
4918 | mov esi, [esi+ecx*4] |
4839 | mov ebx, [esi] |
4919 | mov ebx, [esi] |
4840 | call get_file_color |
4920 | call get_file_color |
Line 4853... | Line 4933... | ||
4853 | mov byte [edi], '}' |
4933 | mov byte [edi], '}' |
4854 | jmp .continue |
4934 | jmp .continue |
4855 | @@: |
4935 | @@: |
4856 | test bl, 10h |
4936 | test bl, 10h |
4857 | jnz .noalignext |
4937 | jnz .noalignext |
4858 | mov ebx, [ebp + panel1_colmode - panel1_data] |
4938 | mov ebx, [ebp + PanelData.colmode] |
4859 | ; sizeof(PanelMode) = 40 |
4939 | ; sizeof(PanelMode) = 40 |
4860 | lea ebx, [ebx+ebx*4] |
4940 | lea ebx, [ebx+ebx*4] |
4861 | cmp [colmodes+ebx*8+PanelMode.bAlignExtensions], 0 |
4941 | cmp [colmodes+ebx*8+PanelMode.bAlignExtensions], 0 |
4862 | jz .noalignext |
4942 | jz .noalignext |
4863 | push ecx |
4943 | push ecx |
Line 4915... | Line 4995... | ||
4915 | inc [column_index] |
4995 | inc [column_index] |
4916 | pop ecx |
4996 | pop ecx |
4917 | dec ecx |
4997 | dec ecx |
4918 | jnz .l |
4998 | jnz .l |
4919 | .ret: |
4999 | .ret: |
4920 | mov eax, [ebp + panel1_colsz - panel1_data] |
5000 | mov eax, [ebp + PanelData.colsz] |
4921 | add [ebp + panel1_colst - panel1_data], eax |
5001 | add [ebp + PanelData.colst], eax |
4922 | cmp ebp, panel1_data |
5002 | cmp ebp, panel1 |
4923 | jnz .ret2 |
5003 | jnz .ret2 |
4924 | ; ¨á«® íªà ®¢ |
5004 | ; ¨á«® íªà ®¢ |
4925 | ; calculate number of viewer and editor screens |
5005 | ; calculate number of viewer and editor screens |
4926 | xor ebx, ebx |
5006 | xor ebx, ebx |
4927 | xor edx, edx |
5007 | xor edx, edx |
Line 4993... | Line 5073... | ||
4993 | std |
5073 | std |
4994 | mov ecx, [column_height] |
5074 | mov ecx, [column_height] |
4995 | dec ecx |
5075 | dec ecx |
4996 | push [last_column_index] |
5076 | push [last_column_index] |
4997 | .l: |
5077 | .l: |
4998 | mov edx, [ebp + panel1_numfiles - panel1_data] |
5078 | mov edx, [ebp + PanelData.numfiles] |
4999 | cmp [last_column_index], edx |
5079 | cmp [last_column_index], edx |
5000 | jae .ret |
5080 | jae .ret |
5001 | push ecx |
5081 | push ecx |
5002 | push edi |
5082 | push edi |
5003 | mov ecx, [last_column_index] |
5083 | mov ecx, [last_column_index] |
5004 | mov esi, [ebp + panel1_files - panel1_data] |
5084 | mov esi, [ebp + PanelData.files] |
5005 | mov esi, [esi+ecx*4] |
5085 | mov esi, [esi+ecx*4] |
5006 | call get_file_color |
5086 | call get_file_color |
5007 | mov ecx, [column_width] |
5087 | mov ecx, [column_width] |
5008 | @@: |
5088 | @@: |
5009 | mov ebx, eax |
5089 | mov ebx, eax |
Line 5132... | Line 5212... | ||
5132 | draw_date_column: |
5212 | draw_date_column: |
5133 | mov ecx, [column_height] |
5213 | mov ecx, [column_height] |
5134 | dec ecx |
5214 | dec ecx |
5135 | push [last_column_index] |
5215 | push [last_column_index] |
5136 | .l: |
5216 | .l: |
5137 | mov edx, [ebp + panel1_numfiles - panel1_data] |
5217 | mov edx, [ebp + PanelData.numfiles] |
5138 | cmp [last_column_index], edx |
5218 | cmp [last_column_index], edx |
5139 | jae .ret |
5219 | jae .ret |
5140 | push ecx |
5220 | push ecx |
5141 | push edi |
5221 | push edi |
5142 | mov ecx, [last_column_index] |
5222 | mov ecx, [last_column_index] |
5143 | mov esi, [ebp + panel1_files - panel1_data] |
5223 | mov esi, [ebp + PanelData.files] |
5144 | mov esi, [esi+ecx*4] |
5224 | mov esi, [esi+ecx*4] |
5145 | call get_file_color |
5225 | call get_file_color |
5146 | mov bh, ah |
5226 | mov bh, ah |
5147 | mov byte [edi-1], bh |
5227 | mov byte [edi-1], bh |
5148 | mov al, [esi+28] |
5228 | mov al, [esi+28] |
Line 5198... | Line 5278... | ||
5198 | draw_time_column: |
5278 | draw_time_column: |
5199 | mov ecx, [column_height] |
5279 | mov ecx, [column_height] |
5200 | dec ecx |
5280 | dec ecx |
5201 | push [last_column_index] |
5281 | push [last_column_index] |
5202 | .l: |
5282 | .l: |
5203 | mov edx, [ebp + panel1_numfiles - panel1_data] |
5283 | mov edx, [ebp + PanelData.numfiles] |
5204 | cmp [last_column_index], edx |
5284 | cmp [last_column_index], edx |
5205 | jae .ret |
5285 | jae .ret |
5206 | push ecx |
5286 | push ecx |
5207 | push edi |
5287 | push edi |
5208 | mov ecx, [last_column_index] |
5288 | mov ecx, [last_column_index] |
5209 | mov esi, [ebp + panel1_files - panel1_data] |
5289 | mov esi, [ebp + PanelData.files] |
5210 | mov esi, [esi+ecx*4] |
5290 | mov esi, [esi+ecx*4] |
5211 | call get_file_color |
5291 | call get_file_color |
5212 | mov bh, ah |
5292 | mov bh, ah |
5213 | mov byte [edi-1], bh |
5293 | mov byte [edi-1], bh |
5214 | mov al, [esi+26] |
5294 | mov al, [esi+26] |
Line 5278... | Line 5358... | ||
5278 | ; mov byte [esi-1], 0 |
5358 | ; mov byte [esi-1], 0 |
5279 | ;@@: pop esi |
5359 | ;@@: pop esi |
5280 | ; ret |
5360 | ; ret |
Line 5281... | Line 5361... | ||
5281 | 5361 | ||
5282 | read_folder: |
5362 | read_folder: |
5283 | mov eax, [ebp + panel1_nfa - panel1_data] |
5363 | mov eax, [ebp + PanelData.nfa] |
5284 | mov [dirinfo.size], eax |
5364 | mov [dirinfo.size], eax |
5285 | shl eax, 2 |
5365 | shl eax, 2 |
5286 | add eax, [ebp + panel1_files - panel1_data] |
5366 | add eax, [ebp + PanelData.files] |
5287 | mov [dirinfo.dirdata], eax |
5367 | mov [dirinfo.dirdata], eax |
5288 | lea eax, [ebp + panel1_dir - panel1_data] |
5368 | lea eax, [ebp + PanelData.dir] |
5289 | mov [dirinfo.name], eax |
5369 | mov [dirinfo.name], eax |
5290 | xor eax, eax |
5370 | xor eax, eax |
5291 | mov [ebp + panel1_total_num - panel1_data], eax |
5371 | mov [ebp + PanelData.total_num], eax |
5292 | mov dword [ebp + panel1_total_size - panel1_data], eax |
5372 | mov dword [ebp + PanelData.total_size], eax |
5293 | mov dword [ebp + panel1_total_size+4 - panel1_data], eax |
5373 | mov dword [ebp + PanelData.total_size+4], eax |
5294 | mov [ebp + panel1_selected_num - panel1_data], eax |
5374 | mov [ebp + PanelData.selected_num], eax |
5295 | mov dword [ebp + panel1_selected_size - panel1_data], eax |
5375 | mov dword [ebp + PanelData.selected_size], eax |
5296 | mov dword [ebp + panel1_selected_size+4 - panel1_data], eax |
5376 | mov dword [ebp + PanelData.selected_size+4], eax |
5297 | .retry: |
5377 | .retry: |
5298 | mov eax, [ebp + panel1_hPlugin - panel1_data] |
5378 | mov eax, [ebp + PanelData.hPlugin] |
5299 | test eax, eax |
5379 | test eax, eax |
5300 | jz .native |
5380 | jz .native |
5301 | mov ecx, [dirinfo.size] |
5381 | mov ecx, [dirinfo.size] |
5302 | test [ebp + panel1_plugin_flags - panel1_data], 1 |
5382 | test [ebp + PanelData.plugin_flags], 1 |
5303 | jz @f |
5383 | jz @f |
5304 | dec ecx ; reserve one entry for '..' |
5384 | dec ecx ; reserve one entry for '..' |
5305 | @@: |
5385 | @@: |
5306 | push ebp |
5386 | push ebp |
5307 | push [dirinfo.dirdata] |
5387 | push [dirinfo.dirdata] |
5308 | push ecx |
5388 | push ecx |
5309 | push 0 |
5389 | push 0 |
5310 | push [ebp + panel1_hFile - panel1_data] |
5390 | push [ebp + PanelData.hFile] |
5311 | call [eax + PluginInfo.ReadFolder] |
5391 | call [eax + PluginInfo.ReadFolder] |
5312 | pop ebp |
5392 | pop ebp |
5313 | mov ebx, [dirinfo.dirdata] |
5393 | mov ebx, [dirinfo.dirdata] |
5314 | mov ebx, [ebx+4] |
5394 | mov ebx, [ebx+4] |
Line 5342... | Line 5422... | ||
5342 | add esp, 5*4 |
5422 | add esp, 5*4 |
5343 | test eax, eax |
5423 | test eax, eax |
5344 | jz .retry |
5424 | jz .retry |
5345 | .dont_notify: |
5425 | .dont_notify: |
5346 | ; If not on plugin panel, try to return to previous directory |
5426 | ; If not on plugin panel, try to return to previous directory |
5347 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
5427 | cmp [ebp + PanelData.hPlugin], 0 |
5348 | jnz @f |
5428 | jnz @f |
5349 | mov esi, prev_dir |
5429 | mov esi, prev_dir |
5350 | cmp byte [esi], 0 |
5430 | cmp byte [esi], 0 |
5351 | jz @f |
5431 | jz @f |
5352 | lea edi, [ebp + panel1_dir - panel1_data] |
5432 | lea edi, [ebp + PanelData.dir] |
5353 | mov ecx, 1024/4 |
5433 | mov ecx, 1024/4 |
5354 | rep movsd |
5434 | rep movsd |
5355 | mov byte [prev_dir], 0 |
5435 | mov byte [prev_dir], 0 |
5356 | ret |
5436 | ret |
5357 | @@: |
5437 | @@: |
Line 5367... | Line 5447... | ||
5367 | jnz .up1 |
5447 | jnz .up1 |
5368 | inc edx |
5448 | inc edx |
5369 | lea edi, [esi-1] |
5449 | lea edi, [esi-1] |
5370 | jmp .up1 |
5450 | jmp .up1 |
5371 | .up1done: |
5451 | .up1done: |
5372 | cmp [ebp + panel1_hPlugin - panel1_data], 0 |
5452 | cmp [ebp + PanelData.hPlugin], 0 |
5373 | jz .4 |
5453 | jz .4 |
5374 | cmp edx, 1 |
5454 | cmp edx, 1 |
5375 | ja .up |
5455 | ja .up |
5376 | ; ç⥨¥ á ¯ ¥«¨ ¯« £¨ ®¡«®¬ «®áì ¯® ¯®«®© |
5456 | ; ç⥨¥ á ¯ ¥«¨ ¯« £¨ ®¡«®¬ «®áì ¯® ¯®«®© |
5377 | ; ¯à¨ í⮬ ¬ë 㦥 ¢ ª®à¥ |
5457 | ; ¯à¨ í⮬ ¬ë 㦥 ¢ ª®à¥ |
Line 5405... | Line 5485... | ||
5405 | mov ax, '1' |
5485 | mov ax, '1' |
5406 | stosw |
5486 | stosw |
5407 | jmp read_folder |
5487 | jmp read_folder |
5408 | .nosetrd: |
5488 | .nosetrd: |
5409 | ; ¦¥ à ¬¤¨áª ¥ ¯à®ç¨â «áï. ç¨â, ¥ áã¤ì¡ ... |
5489 | ; ¦¥ à ¬¤¨áª ¥ ¯à®ç¨â «áï. ç¨â, ¥ áã¤ì¡ ... |
5410 | and dword [ebp + panel1_numfiles - panel1_data], 0 |
5490 | and dword [ebp + PanelData.numfiles], 0 |
5411 | and dword [ebp + panel1_index - panel1_data], 0 |
5491 | and dword [ebp + PanelData.index], 0 |
5412 | and dword [ebp + panel1_start - panel1_data], 0 |
5492 | and dword [ebp + PanelData.start], 0 |
5413 | mov [bSilentFolderMode], 0 ; leave silent mode |
5493 | mov [bSilentFolderMode], 0 ; leave silent mode |
5414 | ret |
5494 | ret |
5415 | .ok: |
5495 | .ok: |
5416 | mov eax, [dirinfo.dirdata] |
5496 | mov eax, [dirinfo.dirdata] |
5417 | cmp [eax+8], ebx |
5497 | cmp [eax+8], ebx |
5418 | jz .readdone |
5498 | jz .readdone |
5419 | push dword [eax+8] |
5499 | push dword [eax+8] |
5420 | mov ecx, [ebp + panel1_files - panel1_data] |
5500 | mov ecx, [ebp + PanelData.files] |
5421 | call pgfree |
5501 | call pgfree |
5422 | pop ecx |
5502 | pop ecx |
5423 | add ecx, 0xF |
5503 | add ecx, 0xF |
5424 | and ecx, not 0xF |
5504 | and ecx, not 0xF |
5425 | push ecx |
5505 | push ecx |
Line 5429... | Line 5509... | ||
5429 | test eax, eax |
5509 | test eax, eax |
5430 | jnz .succ1 |
5510 | jnz .succ1 |
5431 | pop eax |
5511 | pop eax |
5432 | jmp .readdone |
5512 | jmp .readdone |
5433 | .succ1: |
5513 | .succ1: |
5434 | mov [ebp + panel1_files - panel1_data], eax |
5514 | mov [ebp + PanelData.files], eax |
5435 | pop [ebp + panel1_nfa - panel1_data] |
5515 | pop [ebp + PanelData.nfa] |
5436 | mov [prev_dir], 0 |
5516 | mov [prev_dir], 0 |
5437 | jmp read_folder |
5517 | jmp read_folder |
5438 | .readdone: |
5518 | .readdone: |
5439 | xor edx, edx |
5519 | xor edx, edx |
5440 | mov [ebp + panel1_start - panel1_data], edx |
5520 | mov [ebp + PanelData.start], edx |
5441 | mov [ebp + panel1_index - panel1_data], edx |
5521 | mov [ebp + PanelData.index], edx |
5442 | mov [ebp + panel1_start - panel1_data], edx |
5522 | mov [ebp + PanelData.start], edx |
5443 | mov edi, [ebp + panel1_files - panel1_data] |
5523 | mov edi, [ebp + PanelData.files] |
5444 | mov eax, [ebp + panel1_nfa - panel1_data] |
5524 | mov eax, [ebp + PanelData.nfa] |
5445 | lea eax, [edi + eax*4 + 32] |
5525 | lea eax, [edi + eax*4 + 32] |
5446 | mov ecx, [eax-32+4] |
5526 | mov ecx, [eax-32+4] |
5447 | test ecx, ecx |
5527 | test ecx, ecx |
5448 | jz .loopdone |
5528 | jz .loopdone |
5449 | ; £®à¨à㥬 á¯¥æ¨ «ìë¥ ¢å®¤ë, ᮮ⢥âáâ¢ãî騥 ¯ ¯ª¥ '.' ¨ ¬¥âª¥ ⮬ |
5529 | ; £®à¨à㥬 á¯¥æ¨ «ìë¥ ¢å®¤ë, ᮮ⢥âáâ¢ãî騥 ¯ ¯ª¥ '.' ¨ ¬¥âª¥ ⮬ |
Line 5460... | Line 5540... | ||
5460 | cmp byte [eax+42], 0 |
5540 | cmp byte [eax+42], 0 |
5461 | jnz .nodotdot |
5541 | jnz .nodotdot |
5462 | mov edx, eax |
5542 | mov edx, eax |
5463 | push edi |
5543 | push edi |
5464 | @@: |
5544 | @@: |
5465 | cmp edi, [ebp + panel1_files - panel1_data] |
5545 | cmp edi, [ebp + PanelData.files] |
5466 | jbe @f |
5546 | jbe @f |
5467 | push dword [edi-4] |
5547 | push dword [edi-4] |
5468 | pop dword [edi] |
5548 | pop dword [edi] |
5469 | sub edi, 4 |
5549 | sub edi, 4 |
5470 | jmp @b |
5550 | jmp @b |
Line 5476... | Line 5556... | ||
5476 | .nodotdot: |
5556 | .nodotdot: |
5477 | stosd |
5557 | stosd |
5478 | xor ebx, ebx |
5558 | xor ebx, ebx |
5479 | test byte [eax], 10h |
5559 | test byte [eax], 10h |
5480 | setz bl |
5560 | setz bl |
5481 | add [ebp + panel1_total_num - panel1_data], ebx |
5561 | add [ebp + PanelData.total_num], ebx |
5482 | mov ebx, dword [eax+32] |
5562 | mov ebx, dword [eax+32] |
5483 | add dword [ebp + panel1_total_size - panel1_data], ebx |
5563 | add dword [ebp + PanelData.total_size], ebx |
5484 | mov ebx, dword [eax+36] |
5564 | mov ebx, dword [eax+36] |
5485 | adc dword [ebp + panel1_total_size+4 - panel1_data], ebx |
5565 | adc dword [ebp + PanelData.total_size+4], ebx |
5486 | .dotdot: |
5566 | .dotdot: |
5487 | ; ¯®¤á¢¥âª |
5567 | ; ¯®¤á¢¥âª |
5488 | ; call insert_last_dot |
5568 | ; call insert_last_dot |
5489 | call highlight_init |
5569 | call highlight_init |
5490 | ; call delete_last_dot |
5570 | ; call delete_last_dot |
Line 5492... | Line 5572... | ||
5492 | add eax, 304 |
5572 | add eax, 304 |
5493 | dec ecx |
5573 | dec ecx |
5494 | jnz .ptrinit |
5574 | jnz .ptrinit |
5495 | .loopdone: |
5575 | .loopdone: |
5496 | push edi |
5576 | push edi |
5497 | sub edi, [ebp + panel1_files - panel1_data] |
5577 | sub edi, [ebp + PanelData.files] |
5498 | shr edi, 2 |
5578 | shr edi, 2 |
5499 | mov [ebp + panel1_numfiles - panel1_data], edi |
5579 | mov [ebp + PanelData.numfiles], edi |
5500 | pop edi |
5580 | pop edi |
5501 | test edx, edx |
5581 | test edx, edx |
5502 | jnz @f |
5582 | jnz @f |
5503 | test [ebp + panel1_plugin_flags - panel1_data], 1 |
5583 | test [ebp + PanelData.plugin_flags], 1 |
5504 | jz @f |
5584 | jz @f |
5505 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
5585 | mov ecx, [ebp + PanelData.numfiles] |
5506 | inc [ebp + panel1_numfiles - panel1_data] |
5586 | inc [ebp + PanelData.numfiles] |
5507 | lea esi, [edi-4] |
5587 | lea esi, [edi-4] |
5508 | std |
5588 | std |
5509 | rep movsd |
5589 | rep movsd |
5510 | cld |
5590 | cld |
5511 | mov eax, left_dotdot_entry |
5591 | mov eax, left_dotdot_entry |
5512 | cmp ebp, panel1_data |
5592 | cmp ebp, panel1 |
5513 | jz .zq |
5593 | jz .zq |
5514 | add eax, right_dotdot_entry-left_dotdot_entry |
5594 | add eax, right_dotdot_entry-left_dotdot_entry |
5515 | .zq: |
5595 | .zq: |
5516 | stosd |
5596 | stosd |
5517 | call highlight_init |
5597 | call highlight_init |
5518 | @@: |
5598 | @@: |
5519 | ; ®àâ¨à®¢ª |
5599 | ; ®àâ¨à®¢ª |
5520 | sort_files: |
5600 | sort_files: |
5521 | movzx eax, [ebp + panel1_sortmode - panel1_data] |
5601 | movzx eax, [ebp + PanelData.sortmode] |
5522 | mov ebx, [compare_fns + eax*4] |
5602 | mov ebx, [compare_fns + eax*4] |
5523 | .mode: |
5603 | .mode: |
5524 | mov edx, [ebp + panel1_files - panel1_data] |
5604 | mov edx, [ebp + PanelData.files] |
5525 | mov ecx, [ebp + panel1_numfiles - panel1_data] |
5605 | mov ecx, [ebp + PanelData.numfiles] |
5526 | jecxz .skip |
5606 | jecxz .skip |
5527 | mov eax, [edx] |
5607 | mov eax, [edx] |
5528 | cmp word [eax+40], '..' |
5608 | cmp word [eax+40], '..' |
5529 | jnz .nodotdot |
5609 | jnz .nodotdot |
5530 | cmp byte [eax+42], 0 |
5610 | cmp byte [eax+42], 0 |
Line 7138... | Line 7218... | ||
7138 | align 4 |
7218 | align 4 |
7139 | cur_width dd 80 |
7219 | cur_width dd 80 |
7140 | cur_height dd 25 |
7220 | cur_height dd 25 |
7141 | saved_width dd -1 |
7221 | saved_width dd -1 |
7142 | saved_height dd -1 |
7222 | saved_height dd -1 |
7143 | fill_width dd 0 |
7223 | fill_width dd 0 ;®áâ ⮪ ®â ¤¥«¥¨ï è¨à¨ë ®ª è¨à¨ã èà¨äâ |
7144 | fill_height dd 0 |
7224 | fill_height dd 0 |
7145 | max_width = 256 |
7225 | max_width = 256 |
7146 | max_height = 256 |
7226 | max_height = 256 |
7147 | console_data_ptr dd 0 |
7227 | console_data_ptr dd 0 |
Line 7152... | Line 7232... | ||
7152 | cur_cursor_pos dd -1 |
7232 | cur_cursor_pos dd -1 |
7153 | old_cursor_pos dd -1 |
7233 | old_cursor_pos dd -1 |
Line 7154... | Line 7234... | ||
7154 | 7234 | ||
Line 7155... | Line 7235... | ||
7155 | idle_interval dd -1 |
7235 | idle_interval dd -1 |
Line 7156... | Line 7236... | ||
7156 | 7236 | ||
7157 | active_panel dd panel1_data |
7237 | active_panel dd panel1 |
7158 | 7238 | ||
Line 8640... | Line 8720... | ||
8640 | execdata rb 1024 |
8720 | execdata rb 1024 |
8641 | execdataend: |
8721 | execdataend: |
8642 | align 4 |
8722 | align 4 |
8643 | attrinfo.attr rb 40 |
8723 | attrinfo.attr rb 40 |
Line 8644... | Line 8724... | ||
8644 | 8724 | ||
8645 | panel1_data: |
- | |
8646 | panel1_left dd ? |
- | |
8647 | panel1_top dd ? |
- | |
8648 | panel1_width dd ? |
- | |
8649 | panel1_height dd ? |
- | |
8650 | panel1_index dd ? |
- | |
8651 | panel1_start dd ? |
- | |
8652 | panel1_colsz dd ? |
- | |
8653 | panel1_colst dd ? |
- | |
8654 | panel1_sortmode db ? |
- | |
8655 | rb 3 |
- | |
8656 | panel1_nfa dd ? |
- | |
8657 | panel1_numfiles dd ? |
- | |
8658 | panel1_files dd ? |
- | |
8659 | panel1_hPlugin dd ? |
- | |
8660 | panel1_hFile dd ? |
- | |
8661 | panel1_parents dd ? |
- | |
8662 | panel1_parents_sz dd ? |
- | |
8663 | panel1_parents_alloc dd ? |
- | |
8664 | panel1_colmode dd ? |
- | |
8665 | panel1_colwidths rd 16+1 |
- | |
8666 | panel1_total_num dd ? |
- | |
8667 | panel1_total_size dq ? |
- | |
8668 | panel1_selected_num dd ? |
- | |
8669 | panel1_selected_size dq ? |
- | |
8670 | panel1_plugin_info: |
- | |
8671 | panel1_plugin_flags dd ? |
- | |
8672 | panel1_dir rb 1024 |
8725 | panel1 PanelData |
8673 | 8726 | ||
8674 | panel2_data: |
- | |
8675 | panel2_left dd ? |
- | |
8676 | panel2_top dd ? |
- | |
8677 | panel2_width dd ? |
- | |
8678 | panel2_height dd ? |
- | |
8679 | panel2_index dd ? |
- | |
8680 | panel2_start dd ? |
- | |
8681 | panel2_colsz dd ? |
- | |
8682 | panel2_colst dd ? |
- | |
8683 | panel2_sortmode db ? |
- | |
8684 | rb 3 |
- | |
8685 | panel2_nfa dd ? |
- | |
8686 | panel2_numfiles dd ? |
- | |
8687 | panel2_files dd ? |
- | |
8688 | panel2_hPlugin dd ? |
- | |
8689 | panel2_hFile dd ? |
- | |
8690 | panel2_parents dd ? |
- | |
8691 | panel2_parents_sz dd ? |
- | |
8692 | panel2_parents_alloc dd ? |
- | |
8693 | panel2_colmode dd ? |
- | |
8694 | panel2_colwidths rd 16+1 |
- | |
8695 | panel2_total_num dd ? |
- | |
8696 | panel2_total_size dq ? |
- | |
8697 | panel2_selected_num dd ? |
- | |
8698 | panel2_selected_size dq ? |
- | |
8699 | panel2_plugin_info: |
- | |
8700 | panel2_plugin_flags dd ? |
- | |
Line 8701... | Line 8727... | ||
8701 | panel2_dir rb 1024 |
8727 | panel2 PanelData |
Line 8702... | Line 8728... | ||
8702 | 8728 |