Subversion Repositories Kolibri OS

Rev

Rev 905 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 905 Rev 935
Line 3... Line 3...
3
#codesize   
3
#codesize   
4
#include "lib\kolibri.h--"
4
#include "lib\kolibri.h--"
5
#include "lib\memory.h--"
5
#include "lib\memory.h--"
6
#include "lib\edit_box_lib.h--"
6
#include "lib\edit_box_lib.h--"
7
#include "include\run_file.h--"  
7
#include "include\run_file.h--"  
8
#include "include\icons_f.h--"
-
 
9
#include "imgs\toolbar_new.cpp"
8
#include "imgs\toolbar.txt"
10
#include "imgs\left_p.cpp"
9
#include "imgs\left_p.cpp"
Line 11... Line 10...
11
 
10
 
12
//ëîêàëèçàöèÿ è íàñòðîéêè
11
//ëîêàëèçàöèÿ è íàñòðîéêè
13
byte header[27] = "Eolite File Manager v0.96.7";
12
byte header[27] = "Eolite File Manager v0.97";
14
#define videlenie 0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
13
#define videlenie 0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
15
int toolbar_buttons_x[6]={14,51,90,139,172,208};
14
byte toolbar_buttons_x[6]={14,51,90,139,172,208};
16
//
15
//
17
dword but_num=0, kolichestvo=0, curbtn=0, za_kadrom=0;
16
dword but_num=0, kolichestvo=0, curbtn=0, za_kadrom=0;
18
byte cut_active, rename_active, del_active;
17
byte cut_active, rename_active, del_active;
19
byte show_actions=1, show_preview=0, sort_num=1, isdir;
18
byte show_actions=1, show_preview=0, sort_num=1, isdir;
20
dword razm_scrl; //äëÿ ñêðîëà
19
dword razm_scrl; //äëÿ ñêðîëà
21
byte path[256]="/rd/1/", edit_path[256], PathHistory[2560], temp[256]; //äëÿ ïóòåé
20
byte path[256]="/rd/1/", edit_path[256], PathHistory[2560], temp[256]; //äëÿ ïóòåé
22
byte file_path[256], file_name[256]; //äëÿ ôàéëîâ
21
byte file_path[256], file_name[256]; //äëÿ ôàéëîâ
23
byte copyfile[256],copy_name[256]; //êîïèðîâàíèå
22
byte copyfile[256],copy_name[256]; //êîïèðîâàíèå
24
dword i; //äëÿ öèêëîâ
23
dword i; //äëÿ öèêëîâ
25
dword file_mas[6898]; //ñïèñîê ôàéëîâ
24
dword file_mas[6898]; //ñïèñîê ôàéëîâ
26
dword temp_int;
25
int temp_int, j;
Line 27... Line 26...
27
dword stak[100]=0; //îêíî About 
26
dword stak[100]=0; //îêíî About 
28
 
27
 
Line 29... Line 28...
29
edit_box edit1= {250,252,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6};
28
edit_box edit1= {250,252,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6};
30
edit_box edit2= {250,218,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6};
-
 
31
 
-
 
32
proc_info	Form;
-
 
33
 
-
 
34
struct {
-
 
35
	int	func;
-
 
36
	int	pos;
-
 
37
	int	rezerv;
-
 
38
	int	sizefile;
-
 
39
	int	buffer;
29
edit_box edit2= {250,218,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6};
40
	char rezerv2;
30
 
41
	int	stroka;
31
proc_info	Form;
42
}open_file_70;
32
f70 open_dir_70;
43
dword buf=0, off; //äëÿ òåêñòà è áóôåðà
-
 
-
 
33
dword buf=0, off; //äëÿ òåêñòà è áóôåðà
Line 44... Line 34...
44
dword devbuf=0, dev_num;
34
dword devbuf=0, dev_num;
45
#include "include\LVabout.c--"
35
#include "include\LVabout.c--"
46
 
36
#include "include\icons_f.h--"
47
 
37
 
48
void main()   
38
void main()   
49
byte pressed, key, id; 
39
byte pressed, key, id; 
50
mouse m;
40
mouse m;
51
{
41
{
52
		devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
42
		devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
53
		open_file_70.func = 1;
43
		open_dir_70.func = 1;
54
		open_file_70.pos = 0;
44
		open_dir_70.param1 = 0;
55
		open_file_70.rezerv = 0;
45
		open_dir_70.param2 = 0;
56
		open_file_70.sizefile = 10;
46
		open_dir_70.param3 = 10;
57
		open_file_70.buffer = devbuf;
47
		open_dir_70.param4 = devbuf;
58
		open_file_70.rezerv2 = 0;
48
		open_dir_70.rezerv = 0;
59
		open_file_70.stroka = "/";
49
		open_dir_70.name = "/";
60
		$mov eax,70
50
		$mov eax,70
61
		$mov ebx,#open_file_70.func
51
		$mov ebx,#open_dir_70.func
62
		$int 0x40
52
		$int 0x40
63
		dev_num=EBX;
53
		dev_num=EBX;
64
	load_dll(); //ïîäãðóæàåò ëèáó ñ åäèò_áîêñîì                               
54
	load_dll(); //ïîäãðóæàåò ëèáó ñ åäèò_áîêñîì                               
65
	IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();}
55
	IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();}
66
	Open_Dir(#path,2);
56
	Open_Dir(#path,2);
67
	SetEventMask(); 
57
	//SetEventMask(100111b); 
68
	loop()
58
	loop()
Line 93... Line 83...
93
					break;  
83
					break;  
94
//Button pressed-----------------------------------------------------------------------------
84
//Button pressed-----------------------------------------------------------------------------
95
			case evButton:
85
			case evButton:
96
				IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí
86
				IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí
97
				id=GetButtonID();
87
				id=GetButtonID();
98
				IF (id==1) ExitProcess();
88
				IF (id==1) {IF(buf)free(buf); ExitProcess();}
99
				IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;}
89
				IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;}
100
				switch(id) 
90
				switch(id) 
101
				{
91
				{
102
					CASE 21: GoBack(); break;//Íàçàä
92
					CASE 21: GoBack(); break;//Íàçàä
103
					CASE 23: IF (strcmp(#path,"/")<>0) Dir_Up(); break;//up!
93
					CASE 23: IF (strcmp(#path,"/")<>0) Dir_Up(); break;//up!
Line 168... Line 158...
168
					{
158
					{
169
					IF (key==013) Del_File(true);
159
					IF (key==013) Del_File(true);
170
					IF (key==027) Del_File(false);
160
					IF (key==027) Del_File(false);
171
				 	break;
161
				 	break;
172
				 	}
162
				 	}
-
 
163
				IF (edit1.flags<>64) && (key<>13) {EAX=key<<8; edit_box_key stdcall (#edit1); break;} 
173
				IF (edit1.flags<>64) || (edit2.flags<>64) SWITCH (key) { CASE 8: CASE 180...182: CASE 051...056: goto EDIT_KEY_MARK; } //1..10 è íîóì/åíä â åäèòáîêñàõ
164
                IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;}
174
				switch (key)
165
				switch (key)
175
				{
166
				{
176
						case 209...217: id=key-109; IF(dev_num>id-100)GOTO DEVICE_MARK; break;
167
						case 209...217: id=key-109; IF(dev_num>id-100)GOTO DEVICE_MARK; break;
177
						case 8: GoBack(); break; //Íàçàä
168
						case 8: GoBack(); break; //Íàçàä
178
						case 014: MoveSize(80,80,OLD,OLD); Run_Program("/sys/File Managers/Eolite", #path); break; //íîâîå îêíî
169
						case 014: MoveSize(80,80,OLD,OLD); Run_Program("/sys/File Managers/Eolite", #path); break; //íîâîå îêíî
Line 222... Line 213...
222
										edit2.top=curbtn*18+59+skin_width;
213
										edit2.top=curbtn*18+59+skin_width;
223
										edit2.size=strlen(#file_name); edit2.pos=strlen(#file_name);
214
										edit2.size=strlen(#file_name); edit2.pos=strlen(#file_name);
224
										edit_box_draw  stdcall (#edit2);
215
										edit_box_draw  stdcall (#edit2);
225
										DrawBar(218,curbtn*18+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè
216
										DrawBar(218,curbtn*18+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè
226
										rename_active=1;
217
										rename_active=1;
227
									BREAK;
218
									break;
228
						case 052: //Íàæàòà F3
219
						case 052: //Íàæàòà F3
229
								IF (isdir==false) Run_Program("/sys/tinypad", #file_path); BREAK;
220
								IF (isdir==false) Run_Program("/sys/tinypad", #file_path); break;
230
						case 054: Open_Dir(#path,1); BREAK; //ïåðåðèñîâàòü îêíî F5
221
						case 054: Open_Dir(#path,1); break; //ïåðåðèñîâàòü îêíî F5
231
						case 182: Del_Form(); BREAK; //delete file
222
						case 182: Del_Form(); break; //delete file
232
						default:  EDIT_KEY_MARK:
223
						default:    
-
 
224
								IF (strcmp("..",buf+72+304)<>0) temp_int=0; ELSE temp_int=1;
-
 
225
								for (i=curbtn+za_kadrom+1; i
-
 
226
								{
-
 
227
									copystr(file_mas[i+temp_int]*304+buf+72,#temp);
233
								EAX=key <<8;
228
									AL=DSBYTE[#temp]; 
-
 
229
									IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20;
234
								IF (rename_active==0) edit_box_key stdcall (#edit1); ELSE edit_box_key stdcall (#edit2);
230
									IF (temp[0]==key) {FileList_ReDraw(i-curbtn-za_kadrom); break;}
-
 
231
								}
235
				}                         
232
				}                         
236
				break;
233
				break;
237
				case evReDraw:	draw_window();	BREAK;
234
				case evReDraw:	draw_window();	BREAK;
238
		}
235
		}
239
		IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2);
236
		IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2);
Line 245... Line 242...
245
 
242
 
246
inline fastcall void draw_window()
243
inline fastcall void draw_window()
247
{
244
{
248
	WindowRedrawStatus(1);
245
	WindowRedrawStatus(1);
249
	skin_width = GetSkinWidth(); 
246
	skin_width = GetSkinWidth(); 
250
	DefineAndDrawWindow(100,100,600,410,0x43,0x10E4DFE1,0,0,#header); //DrawTitle(#header);
247
	DefineAndDrawWindow(100,100,600,410,0x43,0x10E4DFE1,0,0,#header);
251
	Form.getme();
248
	Form.getme();
252
	IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //ýòî çà÷¸ò!
249
	IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //ýòî çà÷¸ò!
253
	  IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
250
	  IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
254
	  IF (Form.width<480) MoveSize(OLD,OLD,480,OLD);
251
	  IF (Form.width<480) MoveSize(OLD,OLD,480,OLD);
255
	//toolbar buttons
252
	//toolbar buttons
256
	PutImage(#toolbar,246,39,5,0);
253
	PutPaletteImage(#toolbar,246,39,5,0,#toolbar_pal);
257
	FOR (j=0; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1);
254
	FOR (j=0; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1);
258
	//ïîëîñà àäðåñà
255
	//ïîëîñà àäðåñà
259
	DrawBar(251,0,onLeft(251,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà
256
	DrawBar(251,0,onLeft(251,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà
260
	edit1.width=Form.width-314;
257
	edit1.width=Form.width-314;
Line 277... Line 274...
277
		ELSE IF (sort_num==2) WriteText(onLeft(110,0),45,0x80,0x4E78AC,"\x19",0);
274
		ELSE IF (sort_num==2) WriteText(onLeft(110,0),45,0x80,0x4E78AC,"\x19",0);
278
		ELSE WriteText(onLeft(39,0),45,0x80,0x4E78AC,"\x19",0);
275
		ELSE WriteText(onLeft(39,0),45,0x80,0x4E78AC,"\x19",0);
279
	//ïðîêðóòêà
276
	//ïðîêðóòêà
280
	DrawFlatButton(onLeft(22,0),40,16,16,50,0xE4DFE1,"\x18");		//ïðîêðóòêà ââåðõ
277
	DrawFlatButton(onLeft(22,0),40,16,16,50,0xE4DFE1,"\x18");		//ïðîêðóòêà ââåðõ
281
	DrawFlatButton(onLeft(22,0),onTop(22,0),16,16,51,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç
278
	DrawFlatButton(onLeft(22,0),onTop(22,0),16,16,51,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç
-
 
279
	//
-
 
280
	//DrawBar(197,57,onLeft(22,197),onTop(57,6),0xFFFFFF); //çàëèâêà áåëûì
-
 
281
	//
282
	DrawBar(onLeft(22,0),57,1,onTop(22,57),0x94AECE); 			//ëèíèÿ ñëåâà îò ïðîêðóòêè  
282
	DrawBar(onLeft(22,0),57,1,onTop(22,57),0x94AECE); 			//ëèíèÿ ñëåâà îò ïðîêðóòêè  
283
		but_num=onTop(6,57)/18;
283
		but_num=onTop(6,57)/18;
284
		IF (but_num>100) but_num=1; ELSE IF (kolichestvo
284
		IF (but_num>100) but_num=1; ELSE IF (kolichestvo
285
		FOR (j=0;j
285
		FOR (j=0;j
286
		List_ReDraw();
286
		List_ReDraw();
287
	IF (del_active==1) Del_Form();
287
	IF (del_active==1) Del_Form();
288
	WindowRedrawStatus(2);
288
	WindowRedrawStatus(2);
289
}
289
}
Line 352... Line 352...
352
	IF (kolichestvo-za_kadrom
352
	IF (kolichestvo-za_kadrom
353
	{ za_kadrom=kolichestvo-but_num; DrawBar(197,curbtn*18+57,onLeft(22,197),18,0xFFFFFF); curbtn=but_num-1; } 
353
	{ za_kadrom=kolichestvo-but_num; DrawBar(197,curbtn*18+57,onLeft(22,197),18,0xFFFFFF); curbtn=but_num-1; } 
354
		ELSE IF (curbtn>but_num-1) curbtn=but_num-1; //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì
354
		ELSE IF (curbtn>but_num-1) curbtn=but_num-1; //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì
355
	//
355
	//
356
	FOR (j=0; jj) Line_ReDraw(0xFFFFFF, j); ELSE Line_ReDraw(videlenie, curbtn);
356
	FOR (j=0; jj) Line_ReDraw(0xFFFFFF, j); ELSE Line_ReDraw(videlenie, curbtn);
357
		temp_int=but_num-1*18+75;
357
		temp_int=but_num*18+57;
358
		DrawBar(197,temp_int,onLeft(22,197),onTop(temp_int,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà
358
		DrawBar(197,temp_int,onLeft(22,197),onTop(temp_int,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà
359
		DrawBar(onLeft(163,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1
359
		DrawBar(onLeft(163,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1
360
		DrawBar(onLeft(90,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2
360
		DrawBar(onLeft(90,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2
361
	TVScroll();
361
	TVScroll();
362
}
362
}
Line -... Line 363...
-
 
363
 
-
 
364
/*void List_ReDraw()
-
 
365
{
-
 
366
	int i;
-
 
367
	for (j=0; j<5; j++;) for (i=0; i<6; i++;) 
-
 
368
	{
-
 
369
		PutImage(#def_file,48,48,i*64+197,j*64+57);
-
 
370
		off=file_mas[i+j+za_kadrom]*304 + buf+72;
-
 
371
		DrawBar(i*64+197,j*64+57+50,10*6,9,0xFFFFFF); //çàëèâêà áåëûì
-
 
372
		WriteText(i*64+197,j*64+57+50,0,0,off,10);
-
 
373
	}
-
 
374
	TVScroll();
-
 
375
}*/
Line 363... Line 376...
363
 
376
 
364
 
377
 
365
void Line_ReDraw(dword color, filenum){
378
void Line_ReDraw(dword color, filenum){
366
	dword y, size;
379
	dword y=filenum*18+57; //ïîëîæåíèå òåêñòà ïî Y;
367
	if (rename_active==1)
380
	if (rename_active==1)
368
	{
381
	{
369
		rename_active=0;
382
		rename_active=0;
370
		edit2.flags=64;
383
		edit2.flags=64;
371
		DefineButton(197,curbtn+1*18+39,onLeft(22,197),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF);
384
		DefineButton(197,curbtn*18+57,onLeft(22,197),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF);
372
		IF (filenum==100) filenum=curbtn; ELSE
385
		IF (filenum==100) filenum=curbtn; ELSE
373
		{
386
		{
374
			copystr(#path,#temp);
387
			copystr(#path,#temp);
375
			copystr(#file_name,#temp+strlen(#temp));
388
			copystr(#file_name,#temp+strlen(#temp));
376
			IF (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0)
389
			IF (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0)
377
				{ CopyFile(#file_path,#temp);	Del_File(true); }
390
				{ CopyFile(#file_path,#temp);	Del_File(true); }
378
		}
391
		}
-
 
392
	}
-
 
393
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
-
 
394
	DrawBar(197,y,3,18,color);
-
 
395
	DrawBar(200,y,16,2,color);
379
	}
396
	DrawBar(197+19,y,onLeft(22+19,197),18,color);
380
	DrawBar(197,filenum*18+57,onLeft(22,197),18,color); //ïîëîñà áåëàÿ èëè âûäåëåíèÿ
-
 
381
	//
397
	DrawBar(200,y+17,16,1,color);
382
	y= filenum*18+85; //ïîëîæåíèå òåêñòà ïî Y
-
 
383
	IF (strcmp(".",buf+72)<>0) off=file_mas[filenum+za_kadrom]*304 + buf+72; ELSE off=file_mas[filenum+za_kadrom+1]*304 + buf+72;
-
 
384
	temp_int = onLeft(220,160)/6;
-
 
385
	IF (strlen(off)
-
 
386
		WriteText(220,y-22,0,0,off,temp_int);  //èìÿ ôàéëà
398
	//
387
	size=ESDWORD[off-8];
399
	IF (strcmp(".",buf+72)<>0) off=file_mas[filenum+za_kadrom]*304 + buf+72; ELSE off=file_mas[filenum+za_kadrom+1]*304 + buf+72;
388
	EAX=ESDWORD[off-40];
400
	EAX=ESDWORD[off-40];
389
	$shr eax,4
401
	$shr eax,4
390
	$and eax,1
402
	$and eax,1
391
	IF (color==videlenie) isdir=EAX; //íàäî îáüåäèíèòü ñ òåì øî ñíèçó
403
	IF (color==videlenie) isdir=EAX; //íàäî îáüåäèíèòü ñ òåì øî ñíèçó
392
	IF (!EAX)
404
	if (!EAX)
393
	{
405
	{
394
		temp_int = Put_icon(off+strlen(off)-4, y);
406
		temp_int = Put_icon(off+strlen(off)-4, y+2);
395
		WriteText(7-strlen(ConvertSize(size))*6+onLeft(75,0),y-22,0x80,0,ConvertSize(size),0);
407
		WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
396
	} ELSE IF (strcmp("..",off)==0) temp_int=Put_icon("    ", y); ELSE temp_int=Put_icon("", y);
408
	} ELSE IF (strcmp("..",off)==0) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon("", y+2);
397
	IF (color==videlenie)
409
	IF (color==videlenie)
398
	{
410
	{
399
		IconFairing(temp_int, y, videlenie); //çàêðàøèâàåì èêîíêó
411
		IconFairing(temp_int, y+2, videlenie); //çàêðàøèâàåì èêîíêó
400
		copystr(#path,#file_path);
412
		copystr(#path,#file_path);
401
		copystr(off,#file_name);
413
		copystr(off,#file_name);
-
 
414
		copystr(off,#file_path+strlen(#file_path)); //èòàê, file_path=ôàéëó, ò.ê. ïî-óìîë÷àíèþ ýòî ïðîãà
-
 
415
	}
-
 
416
	temp_int = onLeft(220,160)/6;
402
		copystr(off,#file_path+strlen(#file_path)); //èòàê, file_path=ôàéëó, ò.ê. ïî-óìîë÷àíèþ ýòî ïðîãà
417
	IF (strlen(off)
403
	}
418
		WriteText(220,y+6,0,0,off,temp_int);  //èìÿ ôàéëà
404
	DrawBar(onLeft(163,0),filenum*18+57,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1
419
	DrawBar(onLeft(163,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1
405
	DrawBar(onLeft(90,0),filenum*18+57,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2
420
	DrawBar(onLeft(90,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2
Line 406... Line 421...
406
	//Preview();
421
	//Preview();
407
}
422
}
408
 
-
 
409
 
-
 
410
void Open_Dir(dword path_,redraw){
-
 
411
  IF (buf) free(buf);
423
 
412
	//open_file_70.func = 1;    //à íàôèãà, îíè ñâåðõó åñòü...
424
 
413
	//open_file_70.pos = 0;
425
void Open_Dir(dword path_,redraw){
414
	//open_file_70.rezerv = 0;
-
 
415
	open_file_70.sizefile = 6898;
426
  IF (buf) free(buf);
416
	buf = malloc(2097152);
427
	open_dir_70.param3 = 6898; //filenum
417
	open_file_70.buffer = buf;
428
	buf = malloc(2097152);
418
	//open_file_70.rezerv2 = 0;
429
	open_dir_70.param4 = buf;
419
	open_file_70.stroka = path_;
430
	open_dir_70.name = path_;
420
	$mov eax,70
431
	$mov eax,70
421
	$mov ebx,#open_file_70.func
432
	$mov ebx,#open_dir_70.func
422
	$int 0x40
433
	$int 0x40
Line 446... Line 457...
446
void FoldesGoUp()
457
void FoldesGoUp()
447
{
458
{
448
	dword k=0, l=0; off=buf+72;
459
	dword k=0, l=0; off=buf+72;
449
	IF (strcmp(#path,"/rd/1/")==0) || (strcmp(#path,"/fd/1/")==0) kolichestvo--; 
460
	IF (strcmp(#path,"/rd/1/")==0) || (strcmp(#path,"/fd/1/")==0) kolichestvo--; 
450
	IF (strcmp(".",buf+72)<>0) && (strlen(#path)>6) kolichestvo--; //ôàê! ýòî áðåä! õç êàê îíî ðàáîòàåò
461
	IF (strcmp(".",buf+72)<>0) && (strlen(#path)>6) kolichestvo--; //ôàê! ýòî áðåä! õç êàê îíî ðàáîòàåò
451
	FOR (i=0;i<=kolichestvo;i++)  //à ïàïêè âñ¸ âûøå è âûøå...
462
	FOR (j=0;j<=kolichestvo;j++)  //à ïàïêè ââåðõ, ôàéëû âíèç
452
	{
463
	{
453
		EAX=ESDWORD[off-40];
464
		EAX=ESDWORD[off-40];
454
		$shr eax,4
465
		$shr eax,4
455
		$and eax,1
466
		$and eax,1
456
		IF (EAX) {file_mas[k]=i; k++;}
467
		IF (EAX) {file_mas[k]=j; k++;}
457
			ELSE {file_mas[kolichestvo-l]=i; l++;}
468
			ELSE {file_mas[kolichestvo-l]=j; l++;}
458
		off += 304;
469
		off += 304;
459
	}
470
	}
460
	//k=0; l=kolichestvo;
471
	//k=0; l=kolichestvo;
461
	switch(sort_num)
472
	switch(sort_num)
462
	{
473
	{
Line 505... Line 516...
505
	DrawFlatButton(temp_int+20,208,70,20,301,0xFFB6B5,"Yes");
516
	DrawFlatButton(temp_int+20,208,70,20,301,0xFFB6B5,"Yes");
506
	DrawFlatButton(temp_int+111,208,70,20,302,0xC6DFC6,"No");
517
	DrawFlatButton(temp_int+111,208,70,20,302,0xC6DFC6,"No");
507
	del_active=1;
518
	del_active=1;
508
}
519
}
Line -... Line 520...
-
 
520
 
509
	
521
f70 del_file_70;	
510
void Del_File(byte dodel)
522
void Del_File(byte dodel)
511
{
523
{    
512
  IF (dodel==true){
524
  IF (dodel==true){
513
	run_file_70.func = 8;
525
	del_file_70.func = 8;
514
	run_file_70.flag = 0;
526
	del_file_70.param1 = 0;
515
	run_file_70.param= 0;
527
	del_file_70.param2 = 0;
516
	run_file_70.rez1 = 0;
528
	del_file_70.param3 = 0;
517
	run_file_70.rez2 = 0;
529
	del_file_70.param4 = 0;
518
	run_file_70.rezerv2 = 0;
530
	del_file_70.rezerv = 0;
519
	run_file_70.stroka = #file_path;
531
	del_file_70.name = #file_path;
520
	$mov eax,70
532
	$mov eax,70
521
	$mov ebx,#run_file_70.func
533
	$mov ebx,#del_file_70.func
522
	$int 0x40}
534
	$int 0x40}
523
	 del_active=0;
535
	 del_active=0;
524
	 DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No
536
	 DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No
525
	 Open_Dir(#path,1);
537
	 Open_Dir(#path,1);
Line 586... Line 598...
586
      }
598
	}
587
	Actions();  //ôóíêöèè ôàéëîâ è ïàïîê
599
	Actions();  //ôóíêöèè ôàéëîâ è ïàïîê
588
	Preview();
600
	Preview();
589
}
601
}
Line -... Line 602...
-
 
602
 
590
 
603
 
591
void Actions()
604
void Actions()
592
{
605
{
593
	DrawBar(22,dev_num*16+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè
606
	DrawBar(22,dev_num*16+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè
594
	if (show_actions==1)
607
	if (show_actions==1)
Line 614... Line 627...
614
	DrawBar(22,dev_num*16+108,160,51,0x00699C); //ñèíåå
627
	DrawBar(22,dev_num*16+108,160,51,0x00699C); //ñèíåå
615
	}
628
	}
616
}
629
}
Line 617... Line -...
617
 
-
 
618
 
-
 
619
/*void Dir_Up()
-
 
620
{
-
 
621
	byte temp_[256];
-
 
622
	i=strlen(#path)-1;
-
 
623
	path[i]=0x00;
-
 
624
	do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); 
-
 
625
	path[i+1]=0x00;
-
 
626
	ChangeCase(#temp_);
-
 
627
	za_kadrom=curbtn=0; //ââåðõ ñïèñêà
-
 
628
   	Open_Dir(#path,2);
-
 
629
	FOR (i=kolichestvo; i>0; i--;)	IF(strcmp(file_mas[i]*304+buf+72,#temp_)==0) BREAK;
-
 
630
	//
-
 
631
	IF (i0) za_kadrom=i; ELSE za_kadrom=i-1;}
-
 
632
		ELSE {za_kadrom=kolichestvo-but_num; curbtn=i-kolichestvo+but_num;}
-
 
633
	List_ReDraw();
-
 
634
}*/
-
 
635
 
-
 
636
/*void Dir_Up()
-
 
637
{
-
 
638
	i=strlen(#path)-1;
-
 
639
	do i--; while (path[i]<>'/');
-
 
640
	path[i+1]=0x00;
-
 
641
	za_kadrom=0; curbtn=0; //ââåðõ ñïèñêà
-
 
642
   	Open_Dir(#path,1);
-
 
643
}*/
-
 
644
 
630
 
645
//áàã - åñëè ñâåðõó, òî ñâåðõó,à íå ñíèçó
631
 
646
void Dir_Up()
632
void Dir_Up()
647
{
633
{
648
	byte temp_[256];
634
	byte temp_[256];
Line 666... Line 652...
666
 
652
 
667
 
653
 
668
void Preview()
654
void Preview()
669
{
655
{
670
	dword top_pr=dev_num*16+123;
656
	dword top_pr=dev_num*16+123;
671
	top_pr+=show_actions*51; //íè÷èíàåì íèæå, åñëè Àêøíñ âèäèìû
657
	top_pr+=show_actions*51; //íà÷èíàåì íèæå, åñëè Ýêøíñ âèäèìû
672
	DeleteButton(78);
658
	DeleteButton(78);
673
	if (show_preview==1)
659
	if (show_preview==1)
674
	{
660
	{
Line 678... Line 664...
678
		//WriteText(30,top_pr+40,0x80,0,"but_num:",0);	 WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0);
664
		//WriteText(30,top_pr+40,0x80,0,"but_num:",0);	 WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0);
679
		//WriteText(30,top_pr+50,0x80,0,"curbtn",0);		 WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0);
665
		//WriteText(30,top_pr+50,0x80,0,"curbtn",0);		 WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0);
680
		//WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0);	 WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0);
666
		//WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0);	 WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0);
681
		//WriteText(30,top_pr+70,0x80,0,#file_path,0);
667
		//WriteText(30,top_pr+70,0x80,0,#file_path,0);
682
		//WriteText(30,top_pr+80,0x80,0,#file_name,0);
668
		//WriteText(30,top_pr+80,0x80,0,#file_name,0);
683
		WriteText(30,top_pr+60,0x80,0,"Not realized... Yet.",0);
669
		WriteText(30,top_pr+60,0x80,0,"Not realized... I think",0);
684
		//WriteText(30,top_pr+70,0x80,0,"Nable, I'm waiting (:",0);
670
		WriteText(30,top_pr+70,0x80,0,"it will be realired soon.",0);
685
		DrawBar(22,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå
671
		DrawBar(22,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå
686
	} 
672
	} 
687
	ELSE  {
673
	ELSE  {
688
		Tip(top_pr,"Preview",78,"\x18");
674
		Tip(top_pr,"Preview",78,"\x18");
689
		DrawBar(22,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå
675
		DrawBar(22,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå