Rev 3152 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3152 | Rev 3153 | ||
---|---|---|---|
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 | dword title[] = "Eolite File Manager v1.51"; |
23 | #define title "Eolite File Manager v1.5" |
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"; |
- | |
64 | 63 | char tmp_disk_del_param[3]="d0\0"; |
|
65 | dword file_mas[65535]; |
64 | |
Line 66... | Line 65... | ||
66 | 65 | dword file_mas[6898]; |
|
67 | int j, i, mouse_dd; |
66 | int j, i, mouse_dd; |
Line 419... | Line 418... | ||
419 | inline fastcall void draw_window() |
418 | inline fastcall void draw_window() |
420 | { |
419 | { |
421 | int min_size_y = disc_num*16+195; |
420 | int min_size_y = disc_num*16+195; |
Line 422... | Line 421... | ||
422 | 421 | ||
423 | if (GetScreenHeight()<480) |
422 | if (GetScreenHeight()<480) |
424 | DefineAndDrawWindow(20,0,582,GetScreenHeight()-30,0x73,col_work,#title); |
423 | DefineAndDrawWindow(20,0,582,GetScreenHeight()-30,0x73,col_work,title); |
425 | else |
424 | else |
426 | DefineAndDrawWindow(98,90,582,482,0x73,col_work,#title); |
425 | DefineAndDrawWindow(98,90,582,482,0x73,col_work,title); |
427 | GetProcessInfo(#Form, SelfInfo); |
426 | GetProcessInfo(#Form, SelfInfo); |
428 | if (Form.status_window>2) return; |
427 | if (Form.status_window>2) return; |
429 | if (Form.height |
428 | if (Form.height |
Line 580... | Line 579... | ||
580 | DrawBar(onLeft(95,0),y,1,BUTTON_HEIGHT,col_work); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
579 | DrawBar(onLeft(95,0),y,1,BUTTON_HEIGHT,col_work); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
581 | } |
580 | } |
Line 582... | Line 581... | ||
582 | 581 | ||
583 | 582 | ||
584 | void Open_Dir(dword temp_, redraw){ |
583 | void Open_Dir(dword temp_, redraw){ |
585 | int errornum; |
584 | int errornum, max_count; |
Line 586... | Line 585... | ||
586 | char path_[4096], |
585 | char path_[4096], |
587 | somelen=strlen(temp_)-1; |
586 | somelen=strlen(temp_)-1; |
Line 603... | Line 602... | ||
603 | } |
602 | } |
604 | count = ESDWORD[buf+8]; |
603 | count = ESDWORD[buf+8]; |
605 | buf = realloc(count * 304 + 32, buf); //ïî÷åìó 32? |
604 | buf = realloc(count * 304 + 32, buf); //ïî÷åìó 32? |
606 | ReadDir(count, buf, #path_); |
605 | ReadDir(count, buf, #path_); |
607 | count=EBX; |
606 | count=EBX; |
- | 607 | max_count = sizeof(file_mas)/sizeof(dword)-1; |
|
- | 608 | if (count>max_count) count=max_count; //1 íà óäà÷ó ;) |
|
- | 609 | ||
608 | } |
610 | } |
609 | if (count<>-1) |
611 | if (count<>-1) |
610 | { |
612 | { |
611 | //debug("successfully \n"); |
613 | //debug("successfully \n"); |
612 | copystr(temp_,#edit_path); |
614 | copystr(temp_,#edit_path); |
Line 629... | Line 631... | ||
629 | 631 | ||
630 | 632 | ||
631 | inline Sorting() |
633 | inline Sorting() |
632 | { |
- | |
633 | dword k=0, l=1; |
634 | { |
634 | 635 | dword k=0, l=1; |
|
635 | if (!strcmp(#path,"/")) || (count > 5000) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/" |
636 | if (!strcmp(#path,"/")) || (count>3000) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/" |
636 | { |
637 | { |
637 | FOR(k=1;k |
638 | FOR(k=1;k |
638 | return; |
- | |
639 | } |
639 | return; |
640 | 640 | } |
|
641 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
641 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
642 | { |
642 | { |
643 | TitleCase(off+40); |
643 | TitleCase(off+40); |
Line 650... | Line 650... | ||
650 | { |
650 | { |
651 | file_mas[count-l]=j; |
651 | file_mas[count-l]=j; |
652 | l++; |
652 | l++; |
653 | } |
653 | } |
654 | } |
654 | } |
655 | - | ||
656 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
655 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
657 | Sort_by_Name(0,k-1); |
656 | Sort_by_Name(0,k-1); |
658 | IF (sort_num==1) Sort_by_Name(k,count-1); |
657 | IF (sort_num==1) Sort_by_Name(k,count-1); |
659 | IF (sort_num==2) Sort_by_Type(k,count-1); |
658 | IF (sort_num==2) if (count<2000) Sort_by_Type(k,count-1); else Sort_by_Name(k,count-1); //êîñòûëè... |
660 | IF (sort_num==3) Sort_by_Size(k,count-1); |
659 | IF (sort_num==3) Sort_by_Size(k,count-1); |
661 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
660 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
662 | 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]> |
661 | 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]> |
663 | } |
662 | } |