Subversion Repositories Kolibri OS

Rev

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

Rev 2098 Rev 2134
Line 1... Line 1...
1
//Leency & Veliant -=- KolibriOS Team -=- 2011
1
//Leency & Veliant -=- KolibriOS Team -=- 2011
2
//GNU GPL licence.
2
//GNU GPL licence.
Line 3... Line -...
3
 
-
 
4
 
-
 
5
//íå âûäåëÿåò, åñëè ïåðåèìåíîâàòü â /rd/1/ -----   ñòðî÷êà 392
-
 
6
//ïðè îòêðûòèè ïðîãðàììû ñ ïàðàìåòðîì âûäåëÿåò ïîñëåäíèé ôàéë â ïàïêå
3
 
Line 7... Line 4...
7
//íåìíîãî êðèâàÿ ïðîêðóòêà
4
//íåìíîãî êðèâàÿ ïðîêðóòêà
8
 
5
 
9
#include "lib\kolibri.h--"
6
#include "lib\kolibri.h--"
10
#include "lib\memory.h--"
7
#include "lib\memory.h--"
11
#include "lib\edit_box_lib.h--"
8
#include "lib\edit_box_lib.h--"
12
#include "lib\file_system.h--" 
9
#include "lib\file_system.h--" 
Line -... Line 10...
-
 
10
#include "imgs\toolbar.txt"
-
 
11
#include "imgs\left_p.txt"
-
 
12
 
-
 
13
//for OpenDir
Line 13... Line 14...
13
#include "imgs\toolbar.txt"
14
#define ONLY_SHOW	0
14
#include "imgs\left_p.txt"
15
#define WITH_REDRAW	1
15
 
16
#define ONLY_OPEN	2
16
 
17
 
17
//ïåðåìåííûå
18
//ïåðåìåííûå
18
#define title "Eolite File Manager v0.99"
19
#define title "Eolite File Manager v0.99.8"
19
#define videlenie 0x94AECE //0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
20
#define videlenie 0x94AECE //0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
Line 47... Line 48...
47
edit_box edit2= {250,213,80,0xFFFFCC,videlenie,0xFFFFCC,0xffffff,0,248,#file_name,#mouse_dd,64,6,6};
48
edit_box edit2= {250,213,80,0xFFFFCC,videlenie,0xFFFFCC,0xffffff,0,248,#file_name,#mouse_dd,64,6,6};
Line 48... Line 49...
48
 
49
 
49
proc_info Form;
50
proc_info Form;
50
dword buf, off; //äëÿ òåêñòà è áóôåðà
51
dword buf, off; //äëÿ òåêñòà è áóôåðà
-
 
52
dword devbuf, dev_num;
51
dword devbuf, dev_num;
53
 
52
#include "include\LVabout.h--"
54
#include "include\LVabout.h--"
53
#include "include\sorting.h--"
55
#include "include\sorting.h--"
54
#include "include\icons_f.h--"
56
#include "include\icons_f.h--"
Line 55... Line 57...
55
#include "include\ini.h--"
57
#include "include\ini.h--"
56
 
58
 
57
 
59
 
58
void Devices()
-
 
59
{    
60
void Devices()
60
	//on load
61
{    
61
	/*devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
-
 
Line 62... Line -...
62
	ReadDir(10, devbuf, "/");
-
 
63
	dev_num=EBX;
62
	byte dev_icon;
64
	*/
63
	dword drive_name[30];
65
      
64
	char dev_name[4];
66
	byte dev_icon; dword drive_name[30]; char dev_name[4];
65
	
67
	DrawBar(2,41,190,15,0x00699C);		//ñèíèé ïðÿìîóãîëüíèê - ñâåðõó
66
	DrawBar(2,41,190,15,0x00699C);		//ñèíèé ïðÿìîóãîëüíèê - ñâåðõó
Line 101... Line 100...
101
	load_editbox_lib();
100
	load_editbox_lib();
102
	devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
101
	devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
103
	ReadDir(10, devbuf, "/");
102
	ReadDir(10, devbuf, "/");
104
	dev_num=EBX;
103
	dev_num=EBX;
105
	//
104
	//
106
	IF (param[0]<>'')
105
	//curbtn=za_kadrom=0;
-
 
106
	HistoryPath(add_new_path);
-
 
107
	IF (param[0]<>'') //áûë ëè çàïóñê ñ ïàðàìåòðîì
107
	{
108
	{
108
		IF (strcmp(#path,#param)==0) copystr("/sys/",#path); //ýòî ïîòîìó ÷òî åñëè çàïóñòèòü Eolite '/rd/1/' áóäåò ïóñòîå îêíî
-
 
109
		copystr(#param,#edit_path);
109
		copystr(#param, #path);
-
 
110
		IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/"
-
 
111
	}
110
		Goto_edit_path();
112
	Open_Dir(#path,ONLY_OPEN);
111
	} ELSE Open_Dir(#path,2); //áûë ëè çàïóñê ñ ïàðàìåòðîì
-
 
112
	loop()
113
	loop()
113
	{
114
	{
114
		switch(WaitEvent())
115
		switch(WaitEvent())
115
		{
116
		{
116
			CASE evMouse:
117
			CASE evMouse:
117
					IF (del_active==1) break;
118
					IF (del_active==1) break;
-
 
119
					
-
 
120
					id=GetSlot(Form.ID); 
-
 
121
					IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì
-
 
122
					
118
					m.get();
123
					m.get();
Line 119... Line 124...
119
 
124
 
120
					if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57)
125
					if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57)
121
					{
126
					{
122
						IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF);
127
						IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF);
123
						WHILE (m.lkm==1) && (za_kadrom>0)
128
						WHILE (m.lkm==1) && (za_kadrom>0)
124
						{
129
						{
Line 128... Line 133...
128
							m.get();
133
							m.get();
129
						}
134
						}
130
						DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7);
135
						DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7);
131
					}
136
					}
Line 132... Line 137...
132
 
137
 
133
					if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y
138
					if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y
134
					{
139
					{
135
						IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF);
140
						IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF);
136
						while (m.lkm==1) && (za_kadrom
141
						while (m.lkm==1) && (za_kadrom
137
						{
142
						{
Line 145... Line 150...
145
 
150
 
146
					//êîë¸ñèêî ìûøè
151
					//êîë¸ñèêî ìûøè
147
					IF (m.vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1);
152
					IF (m.vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1);
148
					IF (m.vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1);
153
					IF (m.vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1);
149
					//ñêðîëë
154
					//ñêðîëë
150
					if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>56) while (m.lkm)
155
					if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) while (m.lkm)
151
					{
156
					{
152
						IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
157
						IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
153
						id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
158
						id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
154
						j= scroll_size/2;
159
						j= scroll_size/2;
Line 181... Line 186...
181
							break;
186
							break;
182
					CASE 27: //goto edit_path
187
					CASE 27: //goto edit_path
183
							Goto_edit_path();
188
							Goto_edit_path();
184
							break; 
189
							break; 
185
					CASE 31...33: //sort
190
					CASE 31...33: //sort
186
							IF (sort_num==id-30) break;
-
 
187
							IF(sort_num==1)DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1);
191
							IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1);
188
							IF(sort_num==2)DrawBar(onLeft(115,0),45,6,9,0xE4DFE1);
192
							IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1);
189
							IF(sort_num==3)DrawBar(onLeft(44,0),45,6,9,0xE4DFE1);
193
							IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1);
190
							sort_num=id-30;
194
							sort_num=id-30;
191
							Open_Dir(#path,1);
195
							Open_Dir(#path,1);
Line 243... Line 247...
243
					{
247
				{
244
					IF (key==013) Del_File(true);
248
					IF (key==013) Del_File(true);
245
					IF (key==027) Del_File(false);
249
					IF (key==027) Del_File(false);
246
				 	break;
250
				 	break;
247
				 	}
251
				}
248
				IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13) {EAX=key<<8; edit_box_key stdcall (#edit1); break;} 
252
				IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13)
-
 
253
				{
-
 
254
					EAX=key<<8;
-
 
255
					edit_box_key stdcall (#edit1);
-
 
256
					break;
-
 
257
				} 
249
                IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;}
258
                IF (edit2.flags<>64) && (key<>13) && (key<>27)
-
 
259
				{
-
 
260
					EAX=key<<8;
-
 
261
					edit_box_key stdcall (#edit2);
-
 
262
					break;
-
 
263
				}
250
				switch (key)
264
				switch (key)
251
				{
265
				{
252
						case 209...217:
266
						case 209...217:
253
								id=key-110;
267
								id=key-110;
254
								IF (id-100>=dev_num) break;
268
								IF (id-100>=dev_num) break;
Line 258... Line 272...
258
								break; 
272
								break; 
259
						case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü
273
						case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü
260
								copystr("\\S__", #temp);
274
								copystr("\\S__", #temp);
261
								copystr(#file_path, #temp+strlen(#temp));
275
								copystr(#file_path, #temp+strlen(#temp));
262
								RunProgram("/sys/media/kiv", #temp);
276
								RunProgram("/sys/media/kiv", #temp);
263
								WriteDebug(#temp);
-
 
264
								break;
277
								break;
265
						case 014: //Ctrl+N íîâîå îêíî
278
						case 014: //Ctrl+N íîâîå îêíî
266
								IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD);
279
								IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD);
267
								RunProgram("/sys/File Managers/Eolite", #path);
280
								RunProgram("/sys/File Managers/Eolite", #path);
268
								break; 
281
								break; 
Line 329... Line 342...
329
								break;
342
								break;
330
						case 182: //delete file
343
						case 182: //delete file
331
								Del_Form();
344
								Del_Form();
332
								break; 
345
								break; 
333
						default:    
346
						default:    
334
								//FOR (i=curbtn+za_kadrom+1; i
-
 
335
								for (i=curbtn+za_kadrom+1; i
347
								for (i=curbtn+za_kadrom+1; i
336
								{
348
								{
337
									copystr(file_mas[i]*304+buf+72,#temp);
349
									copystr(file_mas[i]*304+buf+72,#temp);
338
									AL=DSBYTE[#temp]; 
350
									AL=DSBYTE[#temp]; 
339
									IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20;
351
									IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20;
Line 353... Line 365...
353
 
365
 
354
 
366
 
355
inline fastcall void draw_window()
367
inline fastcall void draw_window()
356
{                
368
{                
357
	WindowRedrawStatus(1);
369
	WindowRedrawStatus(1);
358
	DefineAndDrawWindow(98,90,560,481,0x73,0x10E4DFE1,0,0,title); 
370
	DefineAndDrawWindow(98,90,580,481,0x73,0x10E4DFE1,0,0,title); 
359
	WindowRedrawStatus(2);
371
	WindowRedrawStatus(2);
360
	Form.GetInfo(SelfInfo);
372
	Form.GetInfo(#Form, SelfInfo);
361
	IF (Form.height==GetSkinWidth()+3) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê
373
	IF (Form.height==GetSkinWidth()+3) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê
362
	  IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
374
	  IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
363
	  IF (Form.width<480) MoveSize(OLD,OLD,480,OLD);
375
	  IF (Form.width<480) MoveSize(OLD,OLD,480,OLD);
Line 460... Line 472...
460
				//WriteDebug(IntToStr(curbtn));
472
				//WriteDebug(IntToStr(curbtn));
461
				//ShowMessage("Bug found! Tell it Leency!");
473
				//ShowMessage("Bug found! Tell it Leency!");
462
				curbtn=but_num-1;
474
				curbtn=but_num-1;
463
			}
475
			}
464
			List_ReDraw();
476
			List_ReDraw();
465
			//WriteDebug(IntToStr(curbtn)); //=0
-
 
466
			//WriteDebug(IntToStr(za_kadrom)); //=0
-
 
467
			//WriteDebug(IntToStr(but_num)); //=41
-
 
468
			//WriteDebug(IntToStr(count)); //=41
-
 
Line 469... Line 477...
469
			
477
			
470
			/*WriteDebug(""); 
478
			/*WriteDebug(""); 
471
			WriteDebug(#path);
479
			WriteDebug(#path);
472
			WriteDebug("Number of files:"); WriteDebug(IntToStr(count)); 
480
			WriteDebug("Number of files:"); WriteDebug(IntToStr(count)); 
Line 476... Line 484...
476
		}
484
		}
477
	}
485
	}
478
}
486
}
Line -... Line 487...
-
 
487
 
-
 
488
 
479
 
489
 
480
 
490
 
481
void List_ReDraw()
491
void List_ReDraw()
482
{
492
{
483
	int paint_x=but_num*18+57;
493
	int paint_x=but_num*18+57;
Line 496... Line 506...
496
void Line_ReDraw(dword color, filenum){
506
void Line_ReDraw(dword color, filenum){
497
	dword text_col=0, temp_int,
507
	dword text_col=0, temp_int,
498
	y=filenum*18+57; //ïîëîæåíèå òåêñòà ïî Y
508
	y=filenum*18+57; //ïîëîæåíèå òåêñòà ïî Y
499
	IF (rename_active==1) ReName(false);
509
	IF (rename_active==1) ReName(false);
500
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
510
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
-
 
511
	DefineButton(192,y,onLeft(28,192),18,201+filenum+BT_HIDE+BT_NOFRAME,color); //êíîïà
501
	DrawBar(192,y,3,18,color); DrawBar(195,y,16,2,color); 
512
	DrawBar(192,y,3,18,color); DrawBar(195,y,16,2,color); 
502
	DrawBar(192+19,y,onLeft(46,192),18,color); DrawBar(195,y+17,16,1,color);
513
	DrawBar(192+19,y,onLeft(46,192),18,color); DrawBar(195,y+17,16,1,color);
503
	//
514
	//
504
	off=file_mas[filenum+za_kadrom]*304 + buf+72;
515
	off=file_mas[filenum+za_kadrom]*304 + buf+72;
505
	if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7;
516
	if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7;
506
	if (!TestBit(ESDWORD[off-40],4))
517
		if (!TestBit(ESDWORD[off-40],4))
507
	{
518
		{
508
		copystr(off,#temp);
519
			copystr(off,#temp);
509
		temp_int = Put_icon(#temp+find_symbol(#temp,'.'), y+2);
520
			temp_int = Put_icon(#temp+find_symbol(#temp,'.'), y+2);
510
		WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
521
			WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
-
 
522
		}
-
 
523
		ELSE
511
	} ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon("", y+2);
524
			IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2);
-
 
525
	ELSE
-
 
526
		temp_int=Put_icon("", y+2);
512
	if (color==videlenie)
527
	if (color==videlenie)
513
	{
528
	{
514
		isdir=TestBit(ESDWORD[off-40], 4);
529
		isdir=TestBit(ESDWORD[off-40], 4);
515
		IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó
530
		IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó
516
		copystr(off,#file_name);
531
		copystr(off,#file_name);
Line 526... Line 541...
526
}
541
}
Line 527... Line 542...
527
 
542
 
528
 
543
 
529
void Open_Dir(dword temp_, redraw){
544
void Open_Dir(dword temp_, redraw){
530
	int errornum;
545
	int errornum;
531
	byte path_[256],
546
	byte path_[4096],
532
	somelen=strlen(temp_)-1;
547
	somelen=strlen(temp_)-1;
533
	if (redraw<>ONLY_SHOW)
548
	if (redraw<>ONLY_SHOW)
534
	{
549
	{
535
		copystr(temp_, #path_);
550
		copystr(temp_, #path_);
536
		IF (somelen) path_[somelen]=0x00;
551
		IF (somelen) path_[somelen]=0x00;
537
		//
552
		
538
		IF (buf) free(buf);
553
		IF (buf) free(buf);
539
    		buf = malloc(32);
554
    	buf = malloc(32);
540
		errornum=ReadDir(0, buf, #path_);
555
		errornum=ReadDir(0, buf, #path_);
541
		if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè
-
 
542
		{
556
		if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè
543
			//WriteDebug(#path_);
557
		{
544
			Write_Debug_Error(errornum);
558
			Write_Debug_Error(errornum);
545
			HistoryPath(add_new_path);
559
			HistoryPath(add_new_path);
546
			GoBack();
560
			GoBack();
Line 559... Line 573...
559
		HistoryPath(add_new_path);
573
		HistoryPath(add_new_path);
560
		IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--;} //ôèëüòðóåì ýëåìåíò "."
574
		IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--;} //ôèëüòðóåì ýëåìåíò "."
561
		FOR (j=0;j
575
		FOR (j=0;j
562
		but_num=onTop(6,57)/18;                                                                                             
576
		but_num=onTop(6,57)/18;                                                                                             
563
		IF (count
577
		IF (count
564
		FOR (j=0;j
-
 
565
		//ñòðåëî÷êà ñîðòèðîâêè
578
		//ñòðåëî÷êà ñîðòèðîâêè
566
		IF (sort_num==1) WriteText(Form.width+60/2,45,0x80,0x4E78AC,"\x19",0);
579
		IF (sort_num==1) WriteText(Form.width+60/2,45,0x80,0x4E78AC,"\x19",0);
567
		IF (sort_num==2) WriteText(Form.width-115,45,0x80,0x4E78AC,"\x19",0);
580
		IF (sort_num==2) WriteText(Form.width-115,45,0x80,0x4E78AC,"\x19",0);
568
		IF (sort_num==3) WriteText(Form.width-44,45,0x80,0x4E78AC,"\x19",0);
581
		IF (sort_num==3) WriteText(Form.width-44,45,0x80,0x4E78AC,"\x19",0);
569
		IF (redraw<>ONLY_SHOW) Sorting(); //äëÿ áîëüøèõ ïàïîê ïðè ðåïåèíòå îêíà
582
		IF (redraw<>ONLY_SHOW) Sorting(); //äëÿ áîëüøèõ ïàïîê ïðè ðåïåèíòå îêíà
Line 634... Line 647...
634
	del_active=0;
647
	del_active=0;
635
	DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No
648
	DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No
636
	Open_Dir(#path,1);
649
	Open_Dir(#path,1);
637
}    
650
}    
Line 638... Line -...
638
 
-
 
639
 
651
 
640
void Paste()
652
void Paste()
-
 
653
{
-
 
654
	char new_copy_path[4096]='';
-
 
655
	int copy_rezult;
641
{
656
	
642
	IF (!copy_file) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè
657
	IF (!copy_file) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè
643
	copystr(#path,#temp);
658
	copystr(#path,#new_copy_path);
644
	copystr(#copy_file+find_symbol(#copy_file,'/'),#temp+strlen(#temp));
659
	copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path));
645
	if (strcmp(#copy_file,#temp)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå
660
	if (strcmp(#copy_file,#new_copy_path)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå
646
		{
661
		{
647
			copystr(#path,#temp);
662
			copystr(#path,#new_copy_path);
648
			copystr("new_",#temp+strlen(#temp));
663
			copystr("new_",#new_copy_path+strlen(#new_copy_path));
649
			copystr(#copy_file+find_symbol(#copy_file,'/'),#temp+strlen(#temp));
664
			copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path));
650
		}
665
		}
651
	CopyFile(#copy_file,#temp);
666
	copy_rezult=CopyFile(#copy_file,#new_copy_path);
652
	IF (EAX<>0) //îøèáêà
667
	IF (copy_rezult<>0) //îøèáêà
653
	{
668
	{
654
		Write_Debug_Error(EAX);
669
		Write_Debug_Error(copy_rezult);
655
		DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here.");
670
		DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here.");
656
		Pause(150);
671
		Pause(150);
657
	}
672
	}
658
	IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü
673
	IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü
659
		{
674
		{
660
			copystr(#copy_file,#file_path);
675
			copystr(#copy_file,#file_path);
661
			Del_File(true);
676
			Del_File(true);
662
			copy_file='';
677
			copy_file='';
663
			cut_active=0;
678
			cut_active=0;
664
		}
679
		}
665
	SelectFile(#copy_file+find_symbol(#copy_file,'/'));
680
	SelectFile(#new_copy_path+find_symbol(#new_copy_path,'/'));
Line 666... Line 681...
666
}
681
}
667
 
682
 
Line 674... Line 689...
674
	WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç
689
	WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç
675
	DrawBar(17,y+17,160,1,0x94AECE);		//ïîä÷¸ðêèâàíèå
690
	DrawBar(17,y+17,160,1,0x94AECE);		//ïîä÷¸ðêèâàíèå
676
}
691
}
Line -... Line 692...
-
 
692
 
677
 
693
 
678
 
694
 
-
 
695
void ReName(byte rename)
-
 
696
{
679
void ReName(byte rename)
697
	int del_file_rez;
680
{
698
	char edit_name[256]='';
681
	rename_active=0;
699
	rename_active=0;
682
	edit2.flags=64;
700
	edit2.flags=64;
683
	DefineButton(192,curbtn*18+57,onLeft(27,192),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF);
701
	DefineButton(192,curbtn*18+57,onLeft(27,192),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF);
684
	if (rename==true)
702
	if (rename==true)
-
 
703
	{
685
	{
704
		copystr(#path,#temp);
686
		copystr(#path,#temp);
705
		copystr(#file_name,#edit_name); //ñîõðàíÿåì íîâîå èìÿ ôàéëà, äëÿ òîãî, ÷òîáû åãî ïîòîì âûäåëèòü
687
		copystr(#file_name,#temp+strlen(#temp));
706
		copystr(#file_name,#temp+strlen(#temp));
688
		if (strcmp(#file_path,#temp)<>0) && (file_name)
707
		if (strcmp(#file_path,#temp)<>0) && (file_name)
-
 
708
		IF (isdir)
-
 
709
		{
-
 
710
			del_file_rez=DeleleFile(#file_path);
-
 
711
			IF (del_file_rez<>0)
689
		IF (isdir)
712
			{
-
 
713
				Write_Debug_Error(del_file_rez);
-
 
714
				ShowMessage("Error. Folder isn't empty.");
690
		{
715
				return;
691
			IF (DeleleFile(#file_path)<>0) ShowMessage("Error. Folder isn't empty.");
716
			}
692
			ELSE CreateFolder(#temp);
717
			ELSE CreateFolder(#temp);
693
			Open_Dir(#path,1);
718
			Open_Dir(#path,1);
694
		}
719
		}
695
		ELSE
720
		ELSE
696
		{
721
		{
697
			CopyFile(#file_path,#temp);
722
			CopyFile(#file_path,#temp);
698
			Del_File(true);
723
			Del_File(true);
699
		}
724
		}
700
		SelectFile(#temp+find_symbol(#path,'/'));
725
		SelectFile(#edit_name);
701
	}
726
	}
Line 743... Line 768...
743
}
768
}
Line 744... Line 769...
744
 
769
 
745
void SelectFile(dword that_file)
770
void SelectFile(dword that_file)
746
{
771
{
747
	za_kadrom=curbtn=0; //ââåðõ ñïèñêà
772
	za_kadrom=curbtn=0; //ââåðõ ñïèñêà
748
   	Open_Dir(#path,2);
773
   	Open_Dir(#path,ONLY_OPEN);
749
	ChangeCase(that_file);
774
	ChangeCase(that_file);
750
	FOR (i=count-1; i>=0; i--;) IF(strcmp(file_mas[i]*304+buf+72,that_file)==0) BREAK;
775
	FOR (i=count-1; i>=0; i--;) IF(strcmp(file_mas[i]*304+buf+72,that_file)==0) BREAK;
751
	IF (i>but_num-1) && (i>count-but_num)
776
	/*IF (i>but_num-1) && (i>count-but_num) //âñ¸ ýòî ïî-èäåå ìîæíî ñäåëàòü ÷åðåç FileList_ReDraw(i) èëè ÿ íåïðàâ?
752
	{
777
	{
753
		za_kadrom=count-but_num;
778
		za_kadrom=count-but_num;
754
		curbtn=i-count+but_num;
779
		curbtn=i-count+but_num;
755
	}
780
	}
-
 
781
	ELSE FileList_ReDraw(i);*/
756
	ELSE FileList_ReDraw(i);
782
	FileList_ReDraw(i);
757
	List_ReDraw();
783
	List_ReDraw();
Line 758... Line 784...
758
}
784
}
759
 
785
 
760
 
786
 
761
void Dir_Up()
787
void Dir_Up()
762
{
788
{
763
	byte temp_[256];
789
	byte temp_[4096];
764
	i=strlen(#path)-1;
790
	i=strlen(#path)-1;
765
	path[i]=0x00;
791
	path[i]=0x00;