Subversion Repositories Kolibri OS

Rev

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
}