Subversion Repositories Kolibri OS

Rev

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

Rev 2528 Rev 2568
Line 1... Line 1...
1
//Leency & Veliant -=- KolibriOS Team -=- 2012
1
//Leency & Veliant -=- KolibriOS Team -=- 2012
2
//GNU GPL licence.
2
//GNU GPL licence.
Line 3... Line 3...
3
 
3
 
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 "lib\file_system.h--" 
7
#include "lib\file_system.h"
8
#include "imgs\toolbar.txt"
8
#include "imgs\toolbar.txt"
Line 9... Line 9...
9
#include "imgs\left_p.txt"
9
#include "imgs\left_p.txt"
Line 14... Line 14...
14
#define ONLY_SHOW	0
14
#define ONLY_SHOW	0
15
#define WITH_REDRAW	1
15
#define WITH_REDRAW	1
16
#define ONLY_OPEN	2
16
#define ONLY_OPEN	2
Line 17... Line 17...
17
 
17
 
18
//ïåðåìåííûå
18
//ïåðåìåííûå
19
#define title "Eolite File Manager v1.0"
19
#define title "Eolite File Manager v1.1"
20
#define videlenie 0x94AECE //0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
-
 
21
byte toolbar_buttons_x[6]={9,46,85,134,167,203};
20
dword videlenie=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
22
//
21
//
23
int  but_num,
22
int  but_num,
24
     count,
23
     count,
25
     za_kadrom,
24
     za_kadrom,
Line 29... Line 28...
29
     rename_active,
28
     rename_active,
30
     del_active;
29
     del_active;
31
byte show_actions=1,
30
byte show_actions=1,
32
     sort_num=2,
31
     sort_num=2,
33
     isdir;
32
     isdir;
34
char path[4096]="/rd/1/",
33
char path[4096],
35
     edit_path[4096],
34
     edit_path[4096],
36
     file_path[4096],
35
     file_path[4096],
37
     file_name[4096],
36
     file_name[4096],
38
     copy_file[4096],
37
     copy_file[4096],
39
     temp[4096];
38
     temp[4096];
40
byte PathHistory[4096];
39
byte PathHistory[4096];
Line -... Line 40...
-
 
40
 
-
 
41
int toolbar_buttons_x[6]={9,46,85,134,167,203};
41
 
42
 
42
dword file_mas[6898];
43
dword file_mas[6898];
Line 43... Line 44...
43
int j, i, mouse_dd;
44
int j, i, mouse_dd;
Line 44... Line 45...
44
 
45
 
45
dword stak[100]; //îêíî About 
46
dword stak[100]; //îêíî About 
Line 46... Line 47...
46
 
47
 
47
edit_box edit1= {250,247,13,0xffffff,videlenie,0xD3DDEB,0xffffff,0,248,#edit_path,#mouse_dd,64,6,6};
48
edit_box edit1= {250,247,13,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,#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 49... Line 49...
49
 
49
edit_box edit2= {250,213,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,#mouse_dd,64,6,6};
50
proc_info Form;
50
 
51
dword buf, off; //äëÿ òåêñòà è áóôåðà
51
proc_info Form;
52
dword devbuf, dev_num;
52
dword buf, off; //äëÿ òåêñòà è áóôåðà
53
 
53
 
54
#include "include\about_dialog.h--"
-
 
55
#include "include\some_code.h--"
-
 
56
#include "include\sorting.h--"
54
#include "include\about_dialog.h"
57
#include "include\icons_f.h--"
-
 
58
#include "include\ini.h--"
-
 
59
 
-
 
60
 
-
 
61
void Devices()
55
#include "include\some_code.h"
62
{    
-
 
63
	byte dev_icon;
-
 
64
	dword drive_name[30];
-
 
65
	char dev_name[4];
-
 
66
	
-
 
67
	DrawBar(2,41,190,15,0x00699C);		//ñèíèé ïðÿìîóãîëüíèê - ñâåðõó
-
 
68
	DrawBar(2,56,15,onTop(21,41),0x00699C);	//ñèíèé ïðÿìîóãîëüíèê - ñëåâà       
-
 
69
	DrawBar(177,56,15,onTop(21,41),0x00699C);	//ñèíèé ïðÿìîóãîëüíèê - ñïðàâà
-
 
70
	//ñïèñîê äèñêîâ
-
 
71
	Tip(56, "Goto:", 0, "");
-
 
72
	for (i=0;i
-
 
73
	{
-
 
74
		DrawBar(17,i*16+74,160,17,0xFFFFFF); //áåëîå
-
 
75
		DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xFFFFFF); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ
-
 
76
		copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü
-
 
77
		dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê
-
 
78
		copystr(i*304+ devbuf+72, #dev_name);
-
 
79
		IF (dev_name[0]=='r')  { dev_icon=0; copystr("RAM-disk /rd/1",#drive_name); }
-
 
80
		IF (dev_name[0]=='c')  { dev_icon=1; copystr("CD-drive /",#drive_name); }
-
 
81
		IF (dev_name[0]=='f')  { dev_icon=2; copystr("Floppy disk /",#drive_name); }
-
 
82
		IF (dev_name[0]=='h')   copystr("Hard disk drive /",#drive_name); 
-
 
83
		IF (dev_name[0]=='b')   copystr("SATA disk drive /",#drive_name); 
-
 
84
		//
-
 
85
		IF (dev_icon<>0) copystr(#dev_name,#drive_name+strlen(#drive_name));
-
 
86
		copystr("/",#drive_name+strlen(#drive_name));
-
 
Line 87... Line 56...
87
		//
56
#include "include\sorting.h"
88
		WriteText(45,i*16+79,0x80,0,#drive_name,0);
57
#include "include\icons_f.h"
89
		PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76);
58
#include "include\ini.h"
90
	}
59
#include "include\devices.h"
91
}
60
 
92
 
-
 
93
void main() 
61
 
94
word key, id; 
62
void main() 
95
mouse m;
-
 
96
int pressed_y;
63
word key, id; 
97
{
64
mouse m;
98
	GetIni(1);
65
int pressed_y;
99
	//
66
{
-
 
67
	//
-
 
68
	load_editbox_lib();
100
	load_editbox_lib();
69
	GetSystemDiscs();
101
	devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
70
	GetIni(1);
102
	ReadDir(10, devbuf, "/");
71
	
103
	dev_num=EBX;
72
	edit1.shift_color=videlenie;
104
	//
73
	edit2.shift_color=videlenie;
105
	//curbtn=za_kadrom=0;
74
	
-
 
75
	HistoryPath(add_new_path);
106
	HistoryPath(add_new_path);
76
	IF (param[0]<>'') //áûë ëè çàïóñê ñ ïàðàìåòðîì
107
	IF (param[0]<>'') //áûë ëè çàïóñê ñ ïàðàìåòðîì
77
	{
108
	{
78
		copystr(#param, #path);
109
		copystr(#param, #path);
79
		IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/"
110
		IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/"
80
	}
Line 165... Line 135...
165
					if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) while (m.lkm)
135
					if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) while (m.lkm)
166
					{
136
					{
167
						IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
137
						IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì
168
						id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
138
						id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
169
						j= scroll_size/2;
139
						j= scroll_size/2;
170
						za_kadrom = m.y -j -57 * count;	za_kadrom /= onTop(22,57);
140
						za_kadrom = m.y -j -57 * count;
-
 
141
						za_kadrom /= onTop(22,57);
171
						IF (but_num+za_kadrom>count) za_kadrom=count-but_num;
142
						IF (but_num+za_kadrom>count) za_kadrom=count-but_num;
172
						IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
143
						IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
173
						m.get();
144
						m.get();
174
					}
145
					}
175
					break;  
146
					break;  
Line 227... Line 198...
227
							}
198
							}
228
							ELSE  ShowMessage("Folder can not be created.");
199
							ELSE  ShowMessage("Folder can not be created.");
229
							break;
200
							break;
230
					case 100...120:
201
					case 100...120:
231
							DEVICE_MARK:
202
							DEVICE_MARK:
232
							copystr(id-100*304+ devbuf+72, #path);
203
							//copystr(#disk_list[id-100].Item, #file_path);
233
							IF (path[0]=='r') copystr("/rd/1",#file_path);
-
 
234
							ELSE {
204
							//GOTO OPEN_DEV;
235
									copystr("/", #file_path);
205
							copystr(#disk_list[id-100].Item, #path);
236
									copystr(#path, #file_path+strlen(#file_path));
206
							za_kadrom=curbtn=0;
237
								 }
207
							Open_Dir(#path,1);
238
							GOTO OPEN_DEV;
208
							break;
239
					default:
209
					default:
240
							if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ
210
							if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ
241
							IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;}
211
							IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;}
242
							else OPEN_MARK:
212
							else OPEN_MARK:
243
							if (!isdir) GetIni(0); ELSE
213
							if (!isdir) GetIni(0); else
244
							IF (strcmp(#file_name,"..")==0) Dir_Up(); ELSE
214
							if (strcmp(#file_name,"..")==0) Dir_Up(); else
245
							{	OPEN_DEV:
215
							{	OPEN_DEV:
246
									copystr(#file_path, #path);
216
									copystr(#file_path, #path);
247
									copystr("/", #path+strlen(#path));
217
									IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/"
248
									za_kadrom=curbtn=0;
218
									za_kadrom=curbtn=0;
249
									Open_Dir(#path,1);
219
									Open_Dir(#path,1);
250
							}
220
							}
251
				}
221
				}
252
				break;
222
				break;
Line 273... Line 243...
273
				}
243
				}
274
				switch (key)
244
				switch (key)
275
				{
245
				{
276
						case 209...217:
246
						case 209...217:
277
								id=key-110;
247
								id=key-110;
278
								IF (id-100>=dev_num) break;
248
								IF (id-100>=disc_num) break;
279
								GOTO DEVICE_MARK;
249
								GOTO DEVICE_MARK;
280
						case   8: //Íàçàä
250
						case   8: //Íàçàä
281
								GoBack();
251
								GoBack();
282
								break; 
252
								break; 
283
						case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü
253
						case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü
Line 394... Line 364...
394
	DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà
364
	DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà
395
	PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal);
365
	PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal);
396
	//ïðÿìîóãîëüíèêè âíóòðè
366
	//ïðÿìîóãîëüíèêè âíóòðè
397
	DrawRegion_3D(1,40,Form.width-12,onTop(46,0),0x94AECE,0x94AECE); //ñèíèé îáîäîê
367
	DrawRegion_3D(1,40,Form.width-12,onTop(46,0),0x94AECE,0x94AECE); //ñèíèé îáîäîê
398
	DrawRegion_3D(0,39,Form.width-10,onTop(44,0),0xE4DFE1,0xE4DFE1); //ôîí
368
	DrawRegion_3D(0,39,Form.width-10,onTop(44,0),0xE4DFE1,0xE4DFE1); //ôîí
399
	Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå
369
	DrawSystemDiscs();
400
	Actions();  //ôóíêöèè ôàéëîâ è ïàïîê
370
	Actions();
401
	//SortButtons
371
	//SortButtons
402
	DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File");
372
	DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File");
403
	DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type");
373
	DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type");
404
	DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size");
374
	DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size");
405
	//Ïåðåðèñîâûâàåì ñïèñîê
375
	//Ïåðåðèñîâûâàåì ñïèñîê
406
	Open_Dir(#path,ONLY_SHOW);
376
	Open_Dir(#path,ONLY_SHOW);
407
	//ïðîêðóòêà
377
	//ïðîêðóòêà
408
	DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè 
378
	DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè 
409
	DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18");		//ïðîêðóòêà ââåðõ
379
	DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18");		//ïðîêðóòêà ââåðõ
410
	DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç
380
	DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç
-
 
381
	if (del_active==1) Del_Form();
411
}
382
}
Line 412... Line 383...
412
 
383
 
413
 
384
 
Line 451... Line 422...
451
			return;
422
			return;
452
		}
423
		}
453
	}
424
	}
454
	else  //âíèç
425
	else  //âíèç
455
	{
426
	{
456
		/*if (count-za_kadrom-but_num==1) //ýòî çàãëóøêà
-
 
457
		{
-
 
458
			za_kadrom=count-but_num;
-
 
459
			curbtn=but_num-1;
-
 
460
			List_ReDraw();
-
 
461
		}*/
-
 
462
 
-
 
463
		IF (za_kadrom==count-but_num) && (curbtn==but_num-1) return;
427
		IF (za_kadrom==count-but_num) && (curbtn==but_num-1) return;
464
		IF (but_num-curbtn>curbtn_)
428
		IF (but_num-curbtn>curbtn_)
465
		{
429
		{
466
			Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà
430
			Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà
467
			curbtn+=curbtn_;
431
			curbtn+=curbtn_;
468
			Line_ReDraw(videlenie, curbtn); //âûäåëåíèå
432
			Line_ReDraw(videlenie, curbtn); //âûäåëåíèå
469
			return;
433
			return;
470
		}
434
		}
471
		else
435
		else
472
		{
436
		{
473
			//IF(za_kadrom+but_num+curbtn_>=count) //à òóò êàæèñü áûë áàã
-
 
474
			IF(za_kadrom+curbtn+curbtn_>=count)
437
			IF(za_kadrom+curbtn+curbtn_>=count)
475
			{
438
			{
476
				za_kadrom=count-but_num;
439
				za_kadrom=count-but_num;
477
				curbtn=curbtn_-za_kadrom+curbtn;
440
				curbtn=curbtn_-za_kadrom+curbtn;
478
				}
441
				}
Line 511... Line 474...
511
 
474
 
512
 
475
 
513
//puticon+icon_fairing!!!
476
//puticon+icon_fairing!!!
514
void Line_ReDraw(dword color, filenum){
-
 
-
 
477
void Line_ReDraw(dword color, filenum){
515
	dword text_col=0, temp_int,
478
	dword text_col=0, temp_int,
516
	/*
479
	/* //ýòî ÿ ïûòàëñÿ ñäåëàòü âèä êðóïíûìè çíà÷êàìè
517
	dword text_col=0, temp_int, x,
480
	dword text_col=0, temp_int, x,
518
	max_x=onLeft(28,192)/BUTTON_HEIGHT,
481
	max_x=onLeft(28,192)/BUTTON_HEIGHT,
519
	y=filenum/max_x*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y
482
	y=filenum/max_x*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y
Line 523... Line 486...
523
	*/
486
	*/
524
	y=filenum*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y
487
	y=filenum*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y
525
	IF (rename_active==1) ReName(false);
488
	IF (rename_active==1) ReName(false);
526
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
489
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
527
	DefineButton(192,y,onLeft(28,192),BUTTON_HEIGHT,201+filenum+BT_HIDE+BT_NOFRAME,color); //êíîïà
490
	DefineButton(192,y,onLeft(28,192),BUTTON_HEIGHT,201+filenum+BT_HIDE+BT_NOFRAME,color); //êíîïà
528
	DrawBar(192,y,3,BUTTON_HEIGHT,color); DrawBar(195,y,16,2,color); 
491
	DrawBar(192,y,3,BUTTON_HEIGHT,color); 
529
	DrawBar(192+19,y,onLeft(46,192),BUTTON_HEIGHT,color); DrawBar(195,y+17,16,1,color);
492
	DrawBar(192+19,y,onLeft(46,192),BUTTON_HEIGHT,color); DrawBar(195,y+17,16,1,color);
530
	if (BUTTON_HEIGHT>18) DrawBar(195,y+18,16,BUTTON_HEIGHT-18,color);
493
	if (BUTTON_HEIGHT>18) DrawBar(195,y+18,16,BUTTON_HEIGHT-18,color);
-
 
494
	if (BUTTON_HEIGHT>15) DrawBar(195,y,16,BUTTON_HEIGHT-15,color); 
531
	//
495
	//
532
	off=file_mas[filenum+za_kadrom]*304 + buf+72;
496
	off=file_mas[filenum+za_kadrom]*304 + buf+72;
533
	if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7;
497
	if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7;
534
		if (!TestBit(ESDWORD[off-40],4))
498
		if (!TestBit(ESDWORD[off-40],4))
535
		{
499
		{
536
			copystr(off,#temp);
500
			copystr(off,#temp);
537
			temp_int = Put_icon(#temp+find_symbol(#temp,'.'), BUTTON_HEIGHT-14/2+y);
501
			temp_int = Put_icon(#temp+find_symbol(#temp,'.'), BUTTON_HEIGHT/2-7+y);
538
			WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
502
			WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
539
		}
503
		}
540
		ELSE
504
		ELSE
541
			IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2);
505
			IF (!strcmp("..",off)) temp_int=Put_icon("..", BUTTON_HEIGHT/2-7+y);
542
	ELSE
506
	ELSE
543
		temp_int=Put_icon("", y+2);
507
		temp_int=Put_icon("", BUTTON_HEIGHT/2-7+y);
544
	if (color==videlenie)
508
	if (color==videlenie)
545
	{
509
	{
546
		isdir=TestBit(ESDWORD[off-40], 4);
510
		isdir=TestBit(ESDWORD[off-40], 4);
547
		IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó
511
		IconFairing(temp_int, BUTTON_HEIGHT/2-7+y); //çàêðàøèâàåì èêîíêó
548
		copystr(off,#file_name);
512
		copystr(off,#file_name);
549
		copystr(#path,#file_path);
513
		copystr(#path,#file_path);
550
		copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó
514
		copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó
551
		IF (text_col==0xA6A6B7) text_col=0xFFFFFF;
515
		IF (text_col==0xA6A6B7) text_col=0xFFFFFF;
552
	}
516
	}
Line 605... Line 569...
605
 
569
 
606
 
570
 
607
inline Sorting()
571
inline Sorting()
608
{
572
{
-
 
573
	dword k=0, l=1;
-
 
574
	if (!strcmp(#path,"/")) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/"
-
 
575
	{
-
 
576
		FOR(k=1;k
609
	dword k=0, l=1;
577
		return;
610
	IF (!strcmp(#path,"/")) {FOR(k=1;k
578
	}
611
	FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;)  //ïàïêè ââåðõ, ôàéëû âíèç
579
	FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;)  //ïàïêè ââåðõ, ôàéëû âíèç
612
	{
580
	{
-
 
581
		ChangeCase(off+40);
-
 
582
		if (TestBit(ESDWORD[off],4)) //ïàïêà?
-
 
583
		{
-
 
584
			file_mas[k]=j;
-
 
585
			k++;
-
 
586
		}
613
		ChangeCase(off+40);
587
		else
-
 
588
		{
-
 
589
			file_mas[count-l]=j;
614
		IF (TestBit(ESDWORD[off],4)) {file_mas[k]=j; k++;}
590
			l++;
615
			ELSE {file_mas[count-l]=j; l++;}
591
		}
616
	}
592
	}
617
	//Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû
593
	//Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû
618
	Sort_by_Name(0,k-1);
594
	Sort_by_Name(0,k-1);
Line 745... Line 721...
745
}
721
}
Line 746... Line 722...
746
 
722
 
747
 
723
 
748
void Actions()
724
void Actions()
749
{
725
{
-
 
726
	int actions_y=disc_num*16;
750
	int actions_y=dev_num*16;
727
	DrawBar(17,actions_y+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè
751
	DrawBar(17,actions_y+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè
728
	DrawBar(17,show_actions*51+actions_y+108,160,onTop(show_actions*51+actions_y+108,6),0x00699C); //ñèíåå â êîíöå
752
	if (show_actions==1)
729
	if (show_actions==1)
753
	{
730
	{
754
		Tip(actions_y+90, "Actions", 77, "\x19");
731
		Tip(actions_y+90, "Actions", 77, "\x19"); //çàãîëîâîê
755
		DrawBar(17,actions_y+108,160,51,0xFFFFFF); //áåëîå
732
		DrawBar(17,actions_y+108,160,51,0xFFFFFF); //áåëîå
756
		PutImage(#factions,16,44,21,actions_y+113); //ïèêòîãðàìêè
733
		PutImage(#factions,16,44,21,actions_y+113); //èêîíêè
757
		//rename file 
734
		//rename file 
758
		DefineButton(22,actions_y+108,159,16,80+BT_HIDE,0xE4DFE1);
735
		DefineButton(17,actions_y+108,159,16,80+BT_HIDE,0xE4DFE1);
759
		WriteText(42,actions_y+113,0x80,0,"Rename file ",0);
736
		WriteText(42,actions_y+113,0x80,0,"Rename file ",0);
760
		//delete file
737
		//delete file
761
		DefineButton(17,actions_y+125,159,16,81+BT_HIDE,0xE4DFE1);
738
		DefineButton(17,actions_y+125,159,16,81+BT_HIDE,0xE4DFE1);
762
		WriteText(42,actions_y+130,0x80,0,"Delete file ",0);
739
		WriteText(42,actions_y+130,0x80,0,"Delete file ",0);
763
		//create folder
740
		//create folder
764
		DefineButton(17,actions_y+142,159,16,82+BT_HIDE,0xE4DFE1);
741
		DefineButton(17,actions_y+142,159,16,82+BT_HIDE,0xE4DFE1);
765
		WriteText(42,actions_y+147,0x80,0,"Create folder ",0);
742
		WriteText(42,actions_y+147,0x80,0,"Create folder ",0);
766
	}
743
	}
-
 
744
	else
-
 
745
	{
767
	ELSE
746
		DeleteButton(80);
768
	{
747
		DeleteButton(81);
769
		DeleteButton(80);	DeleteButton(81);	DeleteButton(82);
748
		DeleteButton(82);
770
		Tip(actions_y+90, "Actions", 77, "\x18");
-
 
771
	}
749
		Tip(actions_y+90, "Actions", 77, "\x18");
Line 772... Line 750...
772
	DrawBar(17,show_actions*51+actions_y+108,160,onTop(show_actions*51+actions_y+108,6),0x00699C); //ñèíåå â êîíöå
750
	}
Line 787... Line 765...
787
void SelectFile(dword that_file)
765
void SelectFile(dword that_file)
788
{
766
{
789
	za_kadrom=curbtn=0; //ââåðõ ñïèñêà
767
	za_kadrom=curbtn=0; //ââåðõ ñïèñêà
790
   	Open_Dir(#path,ONLY_OPEN);
768
   	Open_Dir(#path,ONLY_OPEN);
791
	ChangeCase(that_file);
769
	ChangeCase(that_file);
792
	FOR (i=count-1; i>=0; i--;) IF(strcmp(file_mas[i]*304+buf+72,that_file)==0) BREAK;
-
 
793
	/*IF (i>but_num-1) && (i>count-but_num) //âñ¸ ýòî ïî-èäåå ìîæíî ñäåëàòü ÷åðåç FileList_ReDraw(i) èëè ÿ íåïðàâ?
-
 
794
	{
-
 
795
		za_kadrom=count-but_num;
-
 
796
		curbtn=i-count+but_num;
770
	for (i=count-1; i>=0; i--;)
797
	}
-
 
798
	ELSE FileList_ReDraw(i);*/
771
		if (strcmp(file_mas[i]*304+buf+72,that_file)==0) break;
799
	FileList_ReDraw(i);
772
	FileList_ReDraw(i);
800
	List_ReDraw();
773
	List_ReDraw();
801
}
774
}