Rev 3125 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3125 | Rev 3150 | ||
---|---|---|---|
Line 18... | Line 18... | ||
18 | #define ONLY_SHOW 0 |
18 | #define ONLY_SHOW 0 |
19 | #define WITH_REDRAW 1 |
19 | #define WITH_REDRAW 1 |
20 | #define ONLY_OPEN 2 |
20 | #define ONLY_OPEN 2 |
Line 21... | Line 21... | ||
21 | 21 | ||
22 | //ïåðåìåííûå |
22 | //ïåðåìåííûå |
23 | #define title "Eolite File Manager v1.5" |
23 | dword title[] = "Eolite File Manager v1.51"; |
24 | dword col_work = 0xE4DFE1; |
24 | dword col_work = 0xE4DFE1; |
25 | dword col_border = 0x819FC5; |
25 | dword col_border = 0x819FC5; |
26 | dword col_padding = 0xC8C9C9; |
26 | dword col_padding = 0xC8C9C9; |
27 | dword col_selec = 0x94AECE; |
27 | dword col_selec = 0x94AECE; |
Line 60... | Line 60... | ||
60 | 60 | ||
61 | 61 | ||
Line 62... | Line 62... | ||
62 | int toolbar_buttons_x[7]={9,46,85,134,167,203}; |
62 | int toolbar_buttons_x[7]={9,46,85,134,167,203}; |
- | 63 | char tmp_disk_del_param[3]="d0\0"; |
|
63 | char tmp_disk_del_param[3]="d0\0"; |
64 | |
64 | 65 | dword file_mas[65535]; |
|
Line 65... | Line 66... | ||
65 | dword file_mas[6898]; |
66 | |
66 | int j, i, mouse_dd; |
67 | int j, i, mouse_dd; |
Line 418... | Line 419... | ||
418 | inline fastcall void draw_window() |
419 | inline fastcall void draw_window() |
419 | { |
420 | { |
420 | int min_size_y = disc_num*16+195; |
421 | int min_size_y = disc_num*16+195; |
Line 421... | Line 422... | ||
421 | 422 | ||
422 | if (GetScreenHeight()<480) |
423 | if (GetScreenHeight()<480) |
423 | DefineAndDrawWindow(20,0,582,GetScreenHeight()-30,0x73,col_work,title); |
424 | DefineAndDrawWindow(20,0,582,GetScreenHeight()-30,0x73,col_work,#title); |
424 | else |
425 | else |
425 | DefineAndDrawWindow(98,90,582,482,0x73,col_work,title); |
426 | DefineAndDrawWindow(98,90,582,482,0x73,col_work,#title); |
426 | GetProcessInfo(#Form, SelfInfo); |
427 | GetProcessInfo(#Form, SelfInfo); |
427 | if (Form.status_window>2) return; |
428 | if (Form.status_window>2) return; |
428 | if (Form.height |
429 | if (Form.height |
Line 589... | Line 590... | ||
589 | { |
590 | { |
590 | copystr(temp_, #path_); |
591 | copystr(temp_, #path_); |
591 | if (somelen) path_[somelen]=NULL; |
592 | if (somelen) path_[somelen]=NULL; |
Line 592... | Line 593... | ||
592 | 593 | ||
593 | if (buf) free(buf); |
594 | if (buf) free(buf); |
594 | buf = malloc(32); |
595 | buf = malloc(512); |
595 | errornum=ReadDir(0, buf, #path_); |
596 | errornum=ReadDir(0, buf, #path_); |
596 | if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
597 | if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
597 | { |
598 | { |
598 | HistoryPath(ADD_NEW_PATH); |
599 | HistoryPath(ADD_NEW_PATH); |
599 | GoBack(); |
600 | GoBack(); |
600 | Write_Error(errornum); |
601 | Write_Error(errornum); |
601 | return; |
602 | return; |
602 | } |
603 | } |
603 | count = ESDWORD[buf+8]; |
604 | count = ESDWORD[buf+8]; |
604 | buf = realloc(count * 304 + 32, buf); //ïî÷åìó 32? |
605 | buf = realloc(count * 304 + 512, buf); //ïî÷åìó 32? |
605 | ReadDir(count, buf, #path_); |
- | |
606 | IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;) |
606 | ReadDir(count, buf, #path_); |
- | 607 | count=EBX; |
|
607 | count=EBX; |
608 | if (count>sizeof(file_mas)) count=sizeof(file_mas); |
608 | } |
609 | } |
609 | if (count<>-1) |
610 | if (count<>-1) |
610 | { |
611 | { |
611 | //debug("successfully \n"); |
612 | //debug("successfully \n"); |
Line 629... | Line 630... | ||
629 | 630 | ||
630 | 631 | ||
631 | inline Sorting() |
632 | inline Sorting() |
- | 633 | { |
|
632 | { |
634 | dword k=0, l=1; |
633 | dword k=0, l=1; |
635 | |
634 | if (!strcmp(#path,"/")) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/" |
636 | if (!strcmp(#path,"/")) //|| (count > 5000) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/" |
635 | { |
637 | { |
636 | FOR(k=1;k |
638 | FOR(k=1;k |
- | 639 | return; |
|
637 | return; |
640 | } |
638 | } |
641 | |
639 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
642 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
640 | { |
643 | { |
641 | TitleCase(off+40); |
644 | TitleCase(off+40); |
Line 648... | Line 651... | ||
648 | { |
651 | { |
649 | file_mas[count-l]=j; |
652 | file_mas[count-l]=j; |
650 | l++; |
653 | l++; |
651 | } |
654 | } |
652 | } |
655 | } |
- | 656 | ||
653 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
657 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
654 | Sort_by_Name(0,k-1); |
658 | Sort_by_Name(0,k-1); |
655 | IF (sort_num==1) Sort_by_Name(k,count-1); |
659 | IF (sort_num==1) Sort_by_Name(k,count-1); |
656 | IF (sort_num==2) Sort_by_Type(k,count-1); |
660 | IF (sort_num==2) Sort_by_Type(k,count-1); |
657 | IF (sort_num==3) Sort_by_Size(k,count-1); |
661 | IF (sort_num==3) Sort_by_Size(k,count-1); |
658 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
662 | if (strcmp(file_mas[0]*304+buf+72,"..")<>0) //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
- | 663 | { |
|
659 | IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k--; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]> |
664 | FOR(k--; k>0; k--;) { IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]> |
- | 665 | } |
|
660 | } |
666 | } |
Line 661... | Line 667... | ||
661 | 667 | ||
662 | 668 |