Subversion Repositories Kolibri OS

Rev

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