Subversion Repositories Kolibri OS

Rev

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

Rev 935 Rev 937
Line 2... Line 2...
2
 
2
 
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 "lib\file_system.h--" 
8
#include "imgs\toolbar.txt"
8
#include "imgs\toolbar.txt"
Line 9... Line 9...
9
#include "imgs\left_p.cpp"
9
#include "imgs\left_p.txt"
10
 
10
 
11
//ëîêàëèçàöèÿ è íàñòðîéêè
11
//ëîêàëèçàöèÿ è íàñòðîéêè
12
byte header[27] = "Eolite File Manager v0.97";
12
#define header "Eolite File Manager v0.97.1";
13
#define videlenie 0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
13
#define videlenie 0xFEA4B7; //0x94AECE,,0x8BCDFF,0x9EACCA,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ
14
byte toolbar_buttons_x[6]={14,51,90,139,172,208};
14
byte toolbar_buttons_x[6]={14,51,90,139,172,208};
15
//
15
//
16
dword but_num=0, kolichestvo=0, curbtn=0, za_kadrom=0;
16
dword but_num, kolichestvo, za_kadrom, curbtn, razm_scrl;
17
byte cut_active, rename_active, del_active;
-
 
18
byte show_actions=1, show_preview=0, sort_num=1, isdir;
17
byte cut_active, rename_active, del_active;
19
dword razm_scrl; //äëÿ ñêðîëà
18
byte show_actions=1, show_preview=0, sort_num=1, isdir;
20
byte path[256]="/rd/1/", edit_path[256], PathHistory[2560], temp[256]; //äëÿ ïóòåé
19
char path[256]="/rd/1/", edit_path[256], PathHistory[2560], temp[256]; //äëÿ ïóòåé
21
byte file_path[256], file_name[256]; //äëÿ ôàéëîâ
-
 
22
byte copyfile[256],copy_name[256]; //êîïèðîâàíèå
20
char file_path[256], file_name[256]; //äëÿ ôàéëîâ
23
dword i; //äëÿ öèêëîâ
21
char copyfile[256],copy_name[256]; //êîïèðîâàíèå
24
dword file_mas[6898]; //ñïèñîê ôàéëîâ
22
dword file_mas[6898]; //ñïèñîê ôàéëîâ
Line 25... Line 23...
25
int temp_int, j;
23
int temp_int, j, i;
26
dword stak[100]=0; //îêíî About 
24
dword stak[100]=0; //îêíî About 
Line 27... Line 25...
27
 
25
 
28
edit_box edit1= {250,252,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6};
-
 
29
edit_box edit2= {250,218,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6};
26
edit_box edit1= {250,252,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6};
30
 
27
edit_box edit2= {250,218,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6};
31
proc_info	Form;
28
 
32
f70 open_dir_70;
29
proc_info	Form;
Line -... Line 30...
-
 
30
dword buf=0, off; //äëÿ òåêñòà è áóôåðà
-
 
31
dword devbuf=0, dev_num;
-
 
32
#include "include\LVabout.c--"
-
 
33
#include "include\icons_f.h--"
-
 
34
 
-
 
35
 
-
 
36
 
-
 
37
//IPC
-
 
38
/*#include "lib\Nable_lib.h--"
-
 
39
#include "lib\ipc.h--"
-
 
40
 
-
 
41
int pLoadedImage;
-
 
42
void GetImage(dword ipath)
-
 
43
{
-
 
44
	IF (pLoadedImage) free(pLoadedImage);
33
dword buf=0, off; //äëÿ òåêñòà è áóôåðà
45
	pLoadedImage=loadimage_viaIPC(ipath, #CurrentImage);
34
dword devbuf=0, dev_num;
46
	SetEventMask(100111b); //restore normal event mask
35
#include "include\LVabout.c--"
47
}*/
-
 
48
 
36
#include "include\icons_f.h--"
49
 
37
 
50
void main()   
38
void main()   
-
 
39
byte pressed, key, id; 
-
 
40
mouse m;
-
 
41
{
-
 
42
		devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
-
 
43
		open_dir_70.func = 1;
-
 
44
		open_dir_70.param1 = 0;
51
byte pressed, key, id; 
45
		open_dir_70.param2 = 0;
-
 
46
		open_dir_70.param3 = 10;
-
 
47
		open_dir_70.param4 = devbuf;
-
 
48
		open_dir_70.rezerv = 0;
52
mouse m;
49
		open_dir_70.name = "/";
53
int pressed_y;
50
		$mov eax,70
54
{
51
		$mov ebx,#open_dir_70.func
55
		devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè
-
 
56
		ReadDir(10, devbuf, "/");
-
 
57
		dev_num=EBX;
52
		$int 0x40
58
	load_dll(); //ïîäãðóæàåò ëèáó ñ åäèò_áîêñîì                               
53
		dev_num=EBX;
59
	IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();}
54
	load_dll(); //ïîäãðóæàåò ëèáó ñ åäèò_áîêñîì                               
60
	Open_Dir(#path,2);
55
	IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();}
61
	//GetImage("/sys/wallpaper.gif");
56
	Open_Dir(#path,2);
62
	//DrawImage(#CurrentImage, 0*65536+0);
Line 66... Line 72...
66
					//
72
					//
67
					IF (vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1);
73
					IF (vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1);
68
					IF (vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1);
74
					IF (vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1);
69
					//âûäåëåíèå èñïîëüçóÿ ÏÊÌ
75
					//âûäåëåíèå èñïîëüçóÿ ÏÊÌ
70
					//IF (m.pkm==1) && (m.x>197) && (m.x56)
76
					//IF (m.pkm==1) && (m.x>197) && (m.x56)
71
					//	IF (m.y-skin_width-56/18<>curbtn) FileList_ReDraw(m.y-skin_width-56/18-curbtn);
77
					//	&& (m.y-skin_width-56/18<>curbtn) FileList_ReDraw(m.y-skin_width-56/18-curbtn);
72
					//ñêðîëë
78
					//ñêðîëë
73
					IF (m.y>Form.width) || (57+razm_scrl>m.y) m.y=57+razm_scrl; //åñëè êóðñîð íàä îêíîì
79
					IF (m.y>Form.width) || (razm_scrl/2+57>m.y) m.y=razm_scrl/2+57; //åñëè êóðñîð íàä îêíîì
74
					IF (m.lkm==0) pressed=0; ELSE
80
					IF (m.lkm==0) pressed=0; ELSE
75
					IF (m.x>=Form.width-21) && (m.x<=Form.width-6) pressed=1;
81
					IF (m.x>=Form.width-21) && (m.x<=Form.width-6) pressed=1;
76
					IF (pressed==1)
82
					IF (pressed==1)
77
					{
83
					{
78
						temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
84
						temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
-
 
85
						j= razm_scrl/2;
79
						za_kadrom = m.y -57-razm_scrl * kolichestvo / onTop(22,57);
86
						za_kadrom = m.y -j -57 * kolichestvo / onTop(22,57);
80
						IF (but_num+za_kadrom>kolichestvo) za_kadrom=kolichestvo-but_num;
87
						IF (but_num+za_kadrom>kolichestvo) za_kadrom=kolichestvo-but_num;
81
						IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
88
						IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
82
					}
89
					}
83
					break;  
90
					break;  
84
//Button pressed-----------------------------------------------------------------------------
91
//Button pressed-----------------------------------------------------------------------------
Line 108... Line 115...
108
						ECX = #authors; EDX = #stak;
115
						ECX = #authors; EDX = #stak;
109
						$int 40h;	
116
						$int 40h;	
110
						break;
117
						break;
111
					case 50: //ñòðåëêà ââåðõ íà ñêðîëå
118
					case 50: //ñòðåëêà ââåðõ íà ñêðîëå
112
						FileList_ReDraw(-1);
119
						FileList_ReDraw(-1);
113
						BREAK;
120
						break;
114
					case 51: //ñòðåëêà âíèç íà ñêðîëå
121
					case 51: //ñòðåëêà âíèç íà ñêðîëå
115
						FileList_ReDraw(1);
122
						FileList_ReDraw(1);
116
						BREAK;
123
						break;
117
					case 78: //preview
124
					case 78: //preview
118
						IF (show_preview==1) show_preview=0; ELSE show_preview=1;
125
						IF (show_preview==1) show_preview=0; ELSE show_preview=1;
119
						Preview();
126
						Preview();
120
						BREAK;
127
						break;
121
					case 77: //actions
128
					case 77: //actions
122
						IF (show_actions==1) show_actions=0; ELSE show_actions=1;
129
						IF (show_actions==1) show_actions=0; ELSE show_actions=1;
123
						Actions();	Preview(); 
130
						Actions();	Preview(); 
124
						BREAK;
131
						break;
125
					case 80: goto REN_MARK; //rename
132
					case 80: //rename
-
 
133
						goto REN_MARK; 
126
					case 81: Del_Form(); BREAK;//Delete file
134
					case 81: //Delete file
-
 
135
						Del_Form();
-
 
136
						break;
-
 
137
					case 82: //create folder
-
 
138
						NEW_FOLDER_MARK:
-
 
139
						copystr(#path, #temp);
-
 
140
						copystr("New folder", #temp+strlen(#temp));
-
 
141
						CreateFolder(#temp);
-
 
142
						za_kadrom=curbtn=0;
-
 
143
						Open_Dir(#path,1);
-
 
144
						FOR (i=0; i
-
 
145
							IF (strcmp("New folder",file_mas[i]*304+buf+72)==0) {IF(!strcmp("..",buf+72+304))i--; FileList_ReDraw(i); break;}
-
 
146
						goto REN_MARK;
-
 
147
					case 100...120:
-
 
148
						DEVICE_MARK:
-
 
149
						copystr(id-100*304+ devbuf+72, #path);
-
 
150
						IF (path[0]=='r') copystr("/rd/1",#file_path);
-
 
151
						ELSE  {
-
 
152
							copystr("/", #file_path);
-
 
153
							copystr(#path, #file_path+strlen(#file_path));
127
				}
154
							}
-
 
155
						goto OPEN_DEV;
-
 
156
					default:
128
				if (id>200) //êíîïêè èç ñïèñêà ôàéëîâ
157
						if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ
129
				{
-
 
130
					IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;}
158
						IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;}
131
					else OPEN_MARK:
159
						else OPEN_MARK:
132
					if (!isdir) Run_File(#file_path); else
160
						if (!isdir) Run_File(#file_path); else
133
					if (strcmp(za_kadrom+curbtn+1*304 + buf+72,"..")==0) Dir_Up(); else
161
						if (strcmp(za_kadrom+curbtn+1*304 + buf+72,"..")==0) Dir_Up(); else
134
					{	OPEN_DEV:
162
						{	OPEN_DEV:
Line 138... Line 166...
138
							za_kadrom=curbtn=0;
166
								za_kadrom=curbtn=0;
139
							Open_Dir(#path,1);
167
								Open_Dir(#path,1);
140
					}
168
						}
141
					break;
169
						break;
142
				}
170
				}
143
				if (id>=100) && (id<130) //ïîäêëþ÷¸ííûå íîñèòåëè èíôîðìàöèè
-
 
144
				{   DEVICE_MARK:
-
 
145
					copystr(id-100*304+ devbuf+72, #path);
-
 
146
					IF (strcmp(#path,"rd")==0) copystr("/rd/1",#file_path);
-
 
147
					ELSE  {
-
 
148
						copystr("/", #file_path);
-
 
149
						copystr(#path, #file_path+strlen(#file_path));
-
 
150
						}
-
 
151
					GOTO OPEN_DEV;
-
 
152
				}
-
 
153
				break;
171
				break;
154
//Key pressed-----------------------------------------------------------------------------
172
//Key pressed-----------------------------------------------------------------------------
155
			case evKey:
173
			case evKey:
156
				key = GetKey();
174
				key = GetKey();
157
				IF (del_active==1)
175
				IF (del_active==1)
Line 164... Line 182...
164
                IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;}
182
                IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;}
165
				switch (key)
183
				switch (key)
166
				{
184
				{
167
						case 209...217: id=key-109; IF(dev_num>id-100)GOTO DEVICE_MARK; break;
185
						case 209...217: id=key-109; IF(dev_num>id-100)GOTO DEVICE_MARK; break;
168
						case 8: GoBack(); break; //Íàçàä
186
						case 8: GoBack(); break; //Íàçàä
169
						case 014: MoveSize(80,80,OLD,OLD); Run_Program("/sys/File Managers/Eolite", #path); break; //íîâîå îêíî
187
						case 014: MoveSize(80,80,OLD,OLD); RunProgram("/sys/File Managers/Eolite", #path); break; //íîâîå îêíî
170
						case 024:  //Ctrl+X cut
188
						case 024:  //Ctrl+X cut
171
						case 089: //Ctrl+Ins copy
189
						case 089: //Ctrl+Ins copy
172
						case 003: //Ctrl+C copy
190
						case 003: //Ctrl+C copy
173
								CTRLC_MARK:
191
								CTRLC_MARK:
174
								IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì
192
								IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì
Line 176... Line 194...
176
								copystr(#file_path,#copyfile); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü
194
								copystr(#file_path,#copyfile); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü
177
								IF (key==24) cut_active=1; ELSE cut_active=0; 
195
								IF (key==24) cut_active=1; ELSE cut_active=0; 
178
								break;
196
								break;
179
						case 022: Paste(); break;//Ctrl+V paste
197
						case 022: Paste(); break;//Ctrl+V paste
180
						case 027: //Esc
198
						case 027: //Esc
181
								IF (rename_active==1) Line_ReDraw(videlenie, 100);
199
								IF (rename_active==1) {Line_ReDraw(videlenie, 100);}
182
								break;
200
								break;
183
						case 013:	//Enter
201
						case 013:	//Enter
184
								IF (rename_active==1) {Line_ReDraw(videlenie, curbtn); break;}
202
								IF (rename_active==1) {Line_ReDraw(videlenie, curbtn); break;}
185
								IF (strcmp(#path,#edit_path)<>0) Goto_edit_path();
203
								IF (strcmp(#path,#edit_path)<>0) Goto_edit_path();
186
								ELSE GOTO OPEN_MARK;
204
								ELSE GOTO OPEN_MARK;
187
								break; 
205
								break; 
-
 
206
						case 55: //F6 - new folder
-
 
207
								goto NEW_FOLDER_MARK;
188
						case 56:  //IF (rename_active==1) break;//up
208
						case 56:  //IF (rename_active==1) break;//up
189
						case 178: //up
209
						case 178: //up
190
								FileList_ReDraw(-1);
210
								FileList_ReDraw(-1);
191
								break;
211
								break;
192
						case 177: //down
212
						case 177: //down
Line 204... Line 224...
204
						case 184: //Page Up
224
						case 184: //Page Up
205
								FileList_ReDraw(-but_num+1);
225
								FileList_ReDraw(-but_num+1);
206
								break;
226
								break;
207
						case 051: //Íàæàòà F2
227
						case 051: //Íàæàòà F2
208
									REN_MARK:
228
								REN_MARK:
209
									IF (isdir==1) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì
229
								//IF (isdir==1) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì
210
										edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì
230
								edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì
211
										DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ
231
								DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ
212
										edit2.width=onLeft(24,217);
232
								edit2.width=onLeft(24,217);
213
										edit2.top=curbtn*18+59+skin_width;
233
								edit2.top=curbtn*18+59+skin_width;
214
										edit2.size=strlen(#file_name); edit2.pos=strlen(#file_name);
234
								edit2.size=strlen(#file_name); edit2.pos=strlen(#file_name);
215
										edit_box_draw  stdcall (#edit2);
235
								edit_box_draw  stdcall (#edit2);
216
										DrawBar(218,curbtn*18+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè
236
								DrawBar(218,curbtn*18+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè
217
										rename_active=1;
237
								rename_active=1;
218
									break;
238
								break;
219
						case 052: //Íàæàòà F3
239
						case 052: //Íàæàòà F3
220
								IF (isdir==false) Run_Program("/sys/tinypad", #file_path); break;
240
								IF (isdir==false) RunProgram("/sys/tinypad", #file_path); break;
221
						case 054: Open_Dir(#path,1); break; //ïåðåðèñîâàòü îêíî F5
241
						case 054: Open_Dir(#path,1); break; //ïåðåðèñîâàòü îêíî F5
222
						case 182: Del_Form(); break; //delete file
242
						case 182: Del_Form(); break; //delete file
223
						default:    
243
						default:    
224
								IF (strcmp("..",buf+72+304)<>0) temp_int=0; ELSE temp_int=1;
244
								IF (strcmp("..",buf+72+304)<>0) temp_int=0; ELSE temp_int=1;
225
								for (i=curbtn+za_kadrom+1; i
245
								for (i=curbtn+za_kadrom+1; i
Line 242... Line 262...
242
 
262
 
243
inline fastcall void draw_window()
263
inline fastcall void draw_window()
244
{
264
{
245
	WindowRedrawStatus(1);
265
	WindowRedrawStatus(1);
246
	skin_width = GetSkinWidth(); 
266
	skin_width = GetSkinWidth(); 
247
	DefineAndDrawWindow(100,100,600,410,0x43,0x10E4DFE1,0,0,#header);
267
	DefineAndDrawWindow(100,100,600,410,0x43,0x10E4DFE1,0,0,header);
248
	Form.getme();
268
	Form.GetInfo(SelfInfo);
249
	IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //ýòî çà÷¸ò!
269
	IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //ýòî çà÷¸ò!
250
	  IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
270
	  IF (Form.height<280) MoveSize(OLD,OLD,OLD,280);
251
	  IF (Form.width<480) MoveSize(OLD,OLD,480,OLD);
271
	  IF (Form.width<480) MoveSize(OLD,OLD,480,OLD);
252
	//toolbar buttons
272
	//toolbar buttons
Line 259... Line 279...
259
	KEdit();
279
	KEdit();
260
	DrawRegion(251,12,onLeft(61,251),16,0x94AECE);	//îáîäîê
280
	DrawRegion(251,12,onLeft(61,251),16,0x94AECE);	//îáîäîê
261
	DrawBar(251,29,onLeft(251,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà
281
	DrawBar(251,29,onLeft(251,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà
262
	DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about
282
	DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about
263
	DefineButton(onLeft(61,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà
283
	DefineButton(onLeft(61,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà
264
	PutImage(#goto_about,56,40,onLeft(60,0),0);
284
	PutPaletteImage(#goto_about,56,40,Form.width-60,0,#goto_about_pal);
265
	//ïðÿìîóãîëüíèêè âíóòðè
285
	//ïðÿìîóãîëüíèêè âíóòðè
266
	DrawRegion(6,40,Form.width-12,Form.height-skin_width-46,0x94AECE); //ñèíèé îáîäîê
286
	DrawRegion(6,40,Form.width-12,Form.height-skin_width-46,0x94AECE); //ñèíèé îáîäîê
267
	DrawRegion(5,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1); //ôîí
287
	DrawRegion(5,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1); //ôîí
268
    Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå
288
    Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå
269
	//Buttons
289
	//Buttons
Line 359... Line 379...
359
		DrawBar(onLeft(163,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1
379
		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
380
		DrawBar(onLeft(90,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2
361
	TVScroll();
381
	TVScroll();
362
}
382
}
Line 363... Line -...
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 376... Line 383...
376
 
383
 
377
 
384
 
378
void Line_ReDraw(dword color, filenum){
385
void Line_ReDraw(dword color, filenum){
379
	dword y=filenum*18+57; //ïîëîæåíèå òåêñòà ïî Y;
386
	dword y;//ïîëîæåíèå òåêñòà ïî Y;
380
	if (rename_active==1)
387
	if (rename_active==1)
381
	{
388
	{
382
		rename_active=0;
389
		rename_active=0;
383
		edit2.flags=64;
390
		edit2.flags=64;
384
		DefineButton(197,curbtn*18+57,onLeft(22,197),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF);
391
		DefineButton(197,curbtn*18+57,onLeft(22,197),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF);
385
		IF (filenum==100) filenum=curbtn; ELSE
392
		IF (filenum==100) filenum=curbtn; else
386
		{
393
		{
387
			copystr(#path,#temp);
394
			copystr(#path,#temp);
-
 
395
			copystr(#file_name,#temp+strlen(#temp));
-
 
396
			if (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0)
-
 
397
			IF (isdir)
-
 
398
			{
-
 
399
				//Del_File(true);
-
 
400
				DeleleFile(#file_path);
-
 
401
				IF (EAX<>0) {DrawFlatButton(Form.width-200+197/2,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);}
-
 
402
				ELSE CreateFolder(#temp);
388
			copystr(#file_name,#temp+strlen(#temp));
403
				Open_Dir(#path,1);
389
			IF (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0)
404
			}
390
				{ CopyFile(#file_path,#temp);	Del_File(true); }
405
			ELSE { CopyFile(#file_path,#temp);	Del_File(true); }
-
 
406
		}
391
		}
407
	}
392
	}
408
	y=filenum*18+57;
393
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
409
	//äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ
394
	DrawBar(197,y,3,18,color);
410
	DrawBar(197,y,3,18,color);
395
	DrawBar(200,y,16,2,color);
411
	DrawBar(200,y,16,2,color);
396
	DrawBar(197+19,y,onLeft(22+19,197),18,color);
412
	DrawBar(197+19,y,onLeft(22+19,197),18,color);
397
	DrawBar(200,y+17,16,1,color);
413
	DrawBar(200,y+17,16,1,color);
398
	//
414
	//
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;
415
	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;
400
	EAX=ESDWORD[off-40];
416
	EAX=ESDWORD[off-40];
401
	$shr eax,4
417
	$shr eax,4
402
	$and eax,1
418
	$and eax,1
403
	IF (color==videlenie) isdir=EAX; //íàäî îáüåäèíèòü ñ òåì øî ñíèçó
419
	IF (color==videlenie) isdir=EAX;
404
	if (!EAX)
420
	if (!EAX)
405
	{
421
	{
406
		temp_int = Put_icon(off+strlen(off)-4, y+2);
422
		temp_int = Put_icon(off+strlen(off)-4, y+2);
407
		WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
423
		WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size
408
	} ELSE IF (strcmp("..",off)==0) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon("", y+2);
424
	} ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon("", y+2);
409
	IF (color==videlenie)
425
	IF (color==videlenie)
410
	{
426
	{
411
		IconFairing(temp_int, y+2, videlenie); //çàêðàøèâàåì èêîíêó
427
		IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó
412
		copystr(#path,#file_path);
428
		copystr(#path,#file_path);
413
		copystr(off,#file_name);
429
		copystr(off,#file_name);
414
		copystr(off,#file_path+strlen(#file_path)); //èòàê, file_path=ôàéëó, ò.ê. ïî-óìîë÷àíèþ ýòî ïðîãà
430
		copystr(off,#file_path+strlen(#file_path)); //èòàê, file_path=ôàéëó, ò.ê. ïî-óìîë÷àíèþ ýòî ïðîãà
Line 422... Line 438...
422
}
438
}
Line 423... Line 439...
423
 
439
 
424
 
440
 
425
void Open_Dir(dword path_,redraw){
-
 
426
  IF (buf) free(buf);
441
void Open_Dir(dword path_,redraw){
427
	open_dir_70.param3 = 6898; //filenum
-
 
428
	buf = malloc(2097152);
442
  IF (buf) free(buf);
429
	open_dir_70.param4 = buf;
-
 
430
	open_dir_70.name = path_;
-
 
431
	$mov eax,70
-
 
432
	$mov ebx,#open_dir_70.func
443
	buf = malloc(2097152);
433
	$int 0x40
444
	ReadDir(6898, buf, path_);
434
	kolichestvo=EBX;
445
	kolichestvo=EBX;
435
	//
446
	//
436
	if (kolichestvo<>-1) && (redraw>0)
447
	if (kolichestvo<>-1) && (redraw>0)
Line 494... Line 505...
494
dword onTop(dword down,up) {return Form.height-skin_width-down-up;}
505
dword onTop(dword down,up) {return Form.height-skin_width-down-up;}
Line 495... Line 506...
495
 
506
 
496
 
507
 
497
void Del_Form()
-
 
498
{
508
void Del_Form()
499
	IF (isdir==true) return; //ïàïêè ïîêà ÷òî óäàëÿòü íå óìååì
509
{
500
	temp_int=Form.width-200+197/2;
510
	temp_int=Form.width-200+197/2;
501
	//òèïà îêíî
511
	//òèïà îêíî
502
	FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé
512
	FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé
503
	DrawFlatButton(temp_int,160,200,80,0,0xE4DFE1, ""); //ôîðìà
513
	DrawFlatButton(temp_int,160,200,80,0,0xE4DFE1, ""); //ôîðìà
504
	WriteText(temp_int+19,175,0x80,0,"Do you really want to delete",28);
514
	WriteText(temp_int+19,175,0x80,0,"Do you really want to delete",0);
505
	IF (strlen(#file_name)<28) 
515
	IF (strlen(#file_name)<28) 
506
		{
516
		{
507
			WriteText(strlen(#file_name)*6+temp_int+20,190,0x80,0,"?",1);
517
			WriteText(strlen(#file_name)*6+temp_int+20,190,0x80,0,"?",0);
508
			WriteText(temp_int+20,190,0x80,0,#file_name,24); //ïèøåì èìÿ
518
			WriteText(temp_int+20,190,0x80,0,#file_name,0); //ïèøåì èìÿ
509
		}
519
		}
510
	ELSE
520
	ELSE
511
		{
521
		{
512
			WriteText(164+temp_int,190,0x80,0,"...?",4);
522
			WriteText(164+temp_int,190,0x80,0,"...?",0);
513
			WriteText(temp_int+20,190,0,0,#file_name,24); //ïèøåì èìÿ
523
			WriteText(temp_int+20,190,0,0,#file_name,24); //ïèøåì èìÿ
514
		}
524
		}
515
	//êíîïî÷êè
525
	//êíîïî÷êè
516
	DrawFlatButton(temp_int+20,208,70,20,301,0xFFB6B5,"Yes");
526
	DrawFlatButton(temp_int+20,208,70,20,301,0xFFB6B5,"Yes");
517
	DrawFlatButton(temp_int+111,208,70,20,302,0xC6DFC6,"No");
527
	DrawFlatButton(temp_int+111,208,70,20,302,0xC6DFC6,"No");
Line 518... Line 528...
518
	del_active=1;
528
	del_active=1;
519
}
529
}
520
 
530
 
521
f70 del_file_70;	
531
//f70 del_file_70;	
522
void Del_File(byte dodel)
532
void Del_File(byte dodel)
523
{    
-
 
524
  IF (dodel==true){
-
 
525
	del_file_70.func = 8;
-
 
526
	del_file_70.param1 = 0;
-
 
527
	del_file_70.param2 = 0;
-
 
528
	del_file_70.param3 = 0;
533
{    
529
	del_file_70.param4 = 0;
-
 
530
	del_file_70.rezerv = 0;
534
	IF (dodel==true)
531
	del_file_70.name = #file_path;
535
	{
532
	$mov eax,70
536
		DeleleFile(#file_path);
533
	$mov ebx,#del_file_70.func
537
		IF (EAX<>0) && (isdir==true) {DrawFlatButton(temp_int,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);}
534
	$int 0x40}
538
 	}
535
	 del_active=0;
539
	del_active=0;