Rev 977 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 977 | Rev 984 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | //Leency & Veliant -=- KolibriOS Team -=- 2008 |
1 | //Leency & Veliant -=- KolibriOS Team -=- 2008 |
Line 2... | Line 2... | ||
2 | 2 | ||
3 | //ñòðîêà 258, êåéàï! |
- | |
4 | //find_symbol íàäî ÷èòàòü ñ êîíöà |
3 | //ñòðîêà 258, êåéàï! |
5 | //DrawBar(sort_num[1],45,6,9,0xE4DFE1); |
- | |
Line 6... | Line 4... | ||
6 | //Open_Dir íàõðåí èñïàãàíåí èôàìè, ñäåëàòü äåôàéëû èëè åù¸ ÷òî-òî, ïîòîìó ÷òî ïîêà ýòî âûãëÿäèò íåêðàñèâî |
4 | //DrawBar(sort_num[1],45,6,9,0xE4DFE1); |
7 | 5 | ||
8 | #codesize |
6 | #codesize |
9 | #include "lib\kolibri.h--" |
7 | #include "lib\kolibri.h--" |
10 | #include "lib\memory.h--" |
8 | #include "lib\memory.h--" |
11 | #include "lib\edit_box_lib.h--" |
9 | #include "lib\edit_box_lib.h--" |
12 | #include "lib\file_system.h--" |
10 | #include "lib\file_system.h--" |
Line 13... | Line 11... | ||
13 | #include "imgs\toolbar.txt" |
11 | #include "imgs\toolbar.txt" |
14 | #include "imgs\left_p.txt" |
12 | #include "imgs\left_p.txt" |
15 | 13 | ||
16 | //ëîêàëèçàöèÿ è íàñòðîéêè |
14 | //ïåðåìåííûå |
17 | #define title "Eolite File Manager v0.98.3" |
15 | #define title "Eolite File Manager v0.98.5" |
18 | #define videlenie 0x94AECE //0x94AECE,0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
16 | #define videlenie 0x94AECE //0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
19 | byte toolbar_buttons_x[6]={9,46,85,134,167,203}; |
17 | byte toolbar_buttons_x[6]={9,46,85,134,167,203}; |
20 | // |
18 | // |
21 | dword but_num, |
19 | int but_num, |
22 | count, |
20 | count, |
23 | za_kadrom, |
21 | za_kadrom, |
Line 37... | Line 35... | ||
37 | copy_file[256], |
35 | copy_file[256], |
38 | temp[256]; |
36 | temp[256]; |
39 | byte PathHistory[2560]; |
37 | byte PathHistory[2560]; |
Line 40... | Line 38... | ||
40 | 38 | ||
41 | dword file_mas[6898]; |
39 | dword file_mas[6898]; |
Line 42... | Line 40... | ||
42 | int temp_int, j, i; |
40 | int j, i; |
Line 43... | Line 41... | ||
43 | 41 | ||
44 | dword stak[100]=0; //îêíî About |
42 | dword stak[100]=0; //îêíî About |
Line 45... | Line 43... | ||
45 | 43 | ||
46 | edit_box edit1= {250,247,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6}; |
44 | edit_box edit1= {250,247,13,0xffffff,videlenie,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6}; |
47 | edit_box edit2= {250,213,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6}; |
45 | edit_box edit2= {250,213,80,0xFFFFCC,videlenie,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6}; |
48 | 46 | ||
49 | proc_info Form; |
47 | proc_info Form; |
50 | dword buf=0, off; //äëÿ òåêñòà è áóôåðà |
48 | dword buf, off; //äëÿ òåêñòà è áóôåðà |
- | 49 | dword devbuf, dev_num; |
|
Line 51... | Line 50... | ||
51 | dword devbuf=0, dev_num; |
50 | #include "include\LVabout.h--" |
52 | #include "include\LVabout.h--" |
51 | #include "include\sorting.h--" |
53 | #include "include\sorting.h--" |
52 | #include "include\icons_f.h--" |
54 | #include "include\icons_f.h--" |
53 | #include "include\ini.h--" |
55 | 54 | ||
56 | 55 | ||
57 | void main() |
56 | void main() |
58 | byte key, id; |
57 | word key, id; |
59 | mouse m; |
58 | mouse m; |
60 | int pressed_y; |
59 | int pressed_y; |
- | 60 | { |
|
61 | { |
61 | load_editbox_lib(); |
62 | load_editbox_lib(); |
62 | devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè |
63 | devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè |
63 | ReadDir(10, devbuf, "/"); |
64 | ReadDir(10, devbuf, "/"); |
64 | dev_num=EBX; |
65 | dev_num=EBX; |
65 | IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();} ELSE Open_Dir(#path,2); //áûë ëè çàïóñê ñ ïàðàìåòðîì |
Line 103... | Line 103... | ||
103 | IF (m.vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1); |
103 | IF (m.vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1); |
104 | //ñêðîëë |
104 | //ñêðîëë |
105 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) while (m.lkm) |
105 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) while (m.lkm) |
106 | { |
106 | { |
107 | IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì |
107 | IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì |
108 | temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
108 | id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
109 | j= scroll_size/2; |
109 | j= scroll_size/2; |
110 | za_kadrom = m.y -j -57 * count / onTop(22,57); |
110 | za_kadrom = m.y -j -57 * count; za_kadrom /= onTop(22,57); |
111 | IF (but_num+za_kadrom>count) za_kadrom=count-but_num; |
111 | IF (but_num+za_kadrom>count) za_kadrom=count-but_num; |
112 | IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
112 | IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
113 | m.get(); |
113 | m.get(); |
114 | } |
114 | } |
115 | break; |
115 | break; |
116 | //Button pressed----------------------------------------------------------------------------- |
116 | //Button pressed----------------------------------------------------------------------------- |
117 | case evButton: |
117 | case evButton: |
Line 138... | Line 138... | ||
138 | case 30: //about |
138 | case 30: //about |
139 | CreateThread(#authors,#stak); |
139 | CreateThread(#authors,#stak); |
140 | break; |
140 | break; |
141 | case 78: //preview |
141 | case 78: //preview |
142 | IF (show_preview==1) show_preview=0; ELSE show_preview=1; |
142 | IF (show_preview==1) show_preview=0; ELSE show_preview=1; |
143 | Preview(); |
143 | Preview(ANIM); |
144 | break; |
144 | break; |
145 | case 77: //actions |
145 | case 77: //actions |
146 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
146 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
147 | Actions(); |
147 | Actions(); |
148 | break; |
148 | break; |
Line 169... | Line 169... | ||
169 | GOTO OPEN_DEV; |
169 | GOTO OPEN_DEV; |
170 | default: |
170 | default: |
171 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
171 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
172 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
172 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
173 | else OPEN_MARK: |
173 | else OPEN_MARK: |
174 | if (!isdir) Run_File(#file_path); else |
174 | if (!isdir) GetIni("/sys/File managers/Eolite.ini"); ELSE //Run_File(#file_path); ELSE |
175 | if (strcmp(#file_name,"..")==0) Dir_Up(); else |
175 | IF (strcmp(#file_name,"..")==0) Dir_Up(); ELSE |
176 | { OPEN_DEV: |
176 | { OPEN_DEV: |
177 | copystr(#file_path, #path); |
177 | copystr(#file_path, #path); |
178 | copystr("/", #path+strlen(#path)); |
178 | copystr("/", #path+strlen(#path)); |
179 | za_kadrom=curbtn=0; |
179 | za_kadrom=curbtn=0; |
180 | Open_Dir(#path,1); |
180 | Open_Dir(#path,1); |
Line 188... | Line 188... | ||
188 | { |
188 | { |
189 | IF (key==013) Del_File(true); |
189 | IF (key==013) Del_File(true); |
190 | IF (key==027) Del_File(false); |
190 | IF (key==027) Del_File(false); |
191 | break; |
191 | break; |
192 | } |
192 | } |
193 | IF (edit1.flags<>64) && IF (edit1.flags<>0) && (key<>13) {EAX=key<<8; edit_box_key stdcall (#edit1); break;} |
193 | IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13) {EAX=key<<8; edit_box_key stdcall (#edit1); break;} |
194 | IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;} |
194 | IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;} |
195 | switch (key) |
195 | switch (key) |
196 | { |
196 | { |
197 | case 209...217: id=key-109; GOTO DEVICE_MARK; |
197 | case 209...217: id=key-109; GOTO DEVICE_MARK; |
198 | case 8: GoBack(); break; //Íàçàä |
198 | case 8: GoBack(); break; //Íàçàä |
Line 205... | Line 205... | ||
205 | copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
205 | copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
206 | IF (key==24) cut_active=1; ELSE cut_active=0; |
206 | IF (key==24) cut_active=1; ELSE cut_active=0; |
207 | break; |
207 | break; |
208 | case 022: Paste(); break;//Ctrl+V paste |
208 | case 022: Paste(); break;//Ctrl+V paste |
209 | case 027: //Esc |
209 | case 027: //Esc |
210 | IF (rename_active==1) {Line_ReDraw(videlenie, 100);} |
210 | IF (rename_active==1) ReName(false); |
211 | break; |
211 | break; |
212 | case 013: //Enter |
212 | case 013: //Enter |
213 | IF (rename_active==1) {Line_ReDraw(videlenie, curbtn); break;} |
213 | IF (rename_active==1) {ReName(true); break;} |
214 | IF (strcmp(#path,#edit_path)<>0) Goto_edit_path(); |
214 | IF (strcmp(#path,#edit_path)<>0) Goto_edit_path(); |
215 | ELSE GOTO OPEN_MARK; |
215 | ELSE GOTO OPEN_MARK; |
216 | break; |
216 | break; |
217 | case 55: //F6 - new folder |
217 | case 55: //F6 - new folder |
218 | goto NEW_FOLDER_MARK; |
218 | goto NEW_FOLDER_MARK; |
Line 273... | Line 273... | ||
273 | 273 | ||
274 | 274 | ||
275 | inline fastcall void draw_window() |
275 | inline fastcall void draw_window() |
276 | { |
- | |
277 | WindowRedrawStatus(1); |
276 | { |
- | 277 | WindowRedrawStatus(1); |
|
278 | skin_width = GetSkinWidth(); |
278 | DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,title); |
279 | DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,title); |
279 | WindowRedrawStatus(2); |
280 | Form.GetInfo(SelfInfo); |
280 | Form.GetInfo(SelfInfo); |
281 | IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
281 | IF (Form.height==GetSkinWidth()+3) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
282 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
282 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
283 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
283 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
284 | //toolbar buttons |
284 | //toolbar buttons |
285 | PutPaletteImage(#toolbar,246,39,0,0,#toolbar_pal); |
285 | PutPaletteImage(#toolbar,246,39,0,0,#toolbar_pal); |
286 | FOR (j=0; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1); |
- | |
287 | //ïîëîñà àäðåñà |
286 | FOR (j=0; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1); |
288 | DrawBar(246,0,onLeft(246,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà |
- | |
289 | edit1.width=Form.width-314; |
- | |
290 | edit1.top=13; |
287 | //ïîëîñà àäðåñà |
291 | KEdit(); |
288 | edit1.width=Form.width-314; |
- | 289 | DrawBar(246,0,onLeft(246,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà |
|
292 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
290 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
293 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
291 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
294 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
292 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
295 | DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
293 | DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
296 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
294 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
297 | //ïðÿìîóãîëüíèêè âíóòðè |
295 | //ïðÿìîóãîëüíèêè âíóòðè |
298 | DrawRegion_3D(1,40,Form.width-12,Form.height-skin_width-46,0x94AECE,0x94AECE); //ñèíèé îáîäîê |
296 | DrawRegion_3D(1,40,Form.width-12,onTop(46,0),0x94AECE,0x94AECE); //ñèíèé îáîäîê |
299 | DrawRegion_3D(0,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1,0xE4DFE1); //ôîí |
297 | DrawRegion_3D(0,39,Form.width-10,onTop(44,0),0xE4DFE1,0xE4DFE1); //ôîí |
300 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
298 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
301 | //SortButtons |
299 | //SortButtons |
302 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
300 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
303 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
- | |
304 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
301 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
305 | // |
- | |
306 | //sort_type[1]=onLeft(192,168)/2+210; |
302 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
307 | //sort_type[2]=onLeft(115,0); |
303 | //Ïåðåðèñîâûâàåì ñïèñîê |
308 | //sort_type[3]=onLeft(44,0); |
304 | Open_Dir(#path,ONLY_SHOW); |
309 | //ïðîêðóòêà |
305 | //ïðîêðóòêà |
310 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
306 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
311 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
- | |
312 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
- | |
313 | // |
- | |
314 | Open_Dir(#path,3); |
- | |
315 | // |
307 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
Line 316... | Line 308... | ||
316 | WindowRedrawStatus(2); |
308 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
317 | } |
309 | } |
318 | 310 | ||
319 | 311 | ||
320 | void KEdit() |
- | |
321 | { |
- | |
322 | edit1.size=edit1.pos=strlen(#edit_path); |
- | |
323 | edit_box_draw stdcall (#edit1); |
- | |
324 | /*edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì |
- | |
325 | edit2.width=onLeft(24,217); |
312 | void KEdit() |
Line 326... | Line 313... | ||
326 | edit2.top=curbtn*18+59; |
313 | { |
327 | edit2.size=edit2.pos=strlen(#file_name); |
314 | edit1.size=edit1.pos=strlen(#edit_path); |
Line 344... | Line 331... | ||
344 | 331 | ||
345 | void FileList_ReDraw(int curbtn_) |
332 | void FileList_ReDraw(int curbtn_) |
346 | { |
333 | { |
347 | if (curbtn_<=0) //ââåðõ |
334 | if (curbtn_<=0) //ââåðõ |
348 | { |
335 | { |
349 | IF (za_kadrom==0) && (curbtn==0) return; |
336 | IF (za_kadrom==0) && (curbtn<=0) return; |
350 | IF (-curbtn_-1 |
337 | IF (-curbtn_-1 |
351 | { |
338 | { |
352 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
339 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
353 | curbtn+=curbtn_; |
340 | curbtn+=curbtn_; |
Line 382... | Line 369... | ||
382 | } |
369 | } |
Line 383... | Line 370... | ||
383 | 370 | ||
384 | 371 | ||
- | 372 | void List_ReDraw() |
|
385 | void List_ReDraw() |
373 | { |
386 | { |
374 | int paint_x=but_num*18+57; |
387 | IF (count-za_kadrom |
375 | IF (count-za_kadrom |
388 | { za_kadrom=count-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
376 | { za_kadrom=count-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
389 | // |
- | |
390 | FOR (j=0; j |
377 | // |
391 | temp_int=but_num*18+57; |
378 | FOR (j=0; j |
392 | DrawBar(192,temp_int,onLeft(27,192),onTop(temp_int,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
379 | DrawBar(192,paint_x,onLeft(27,192),onTop(paint_x,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
393 | DrawBar(onLeft(168,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
380 | DrawBar(onLeft(168,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
394 | DrawBar(onLeft(95,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
381 | DrawBar(onLeft(95,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
Line -... | Line 382... | ||
- | 382 | TVScroll(); |
|
395 | TVScroll(); |
383 | } |
396 | } |
- | |
397 | - | ||
398 | - | ||
399 | void Line_ReDraw(dword color, filenum){ |
- | |
400 | dword text_col, y;//ïîëîæåíèå òåêñòà ïî Y; |
- | |
401 | if (rename_active==1) //âñ¸ ýòî ïîëíûé ïèïåö, è íàäî âûíåñòè â îòäåëüíóþ ïðîöåäóðó |
- | |
402 | { |
- | |
403 | rename_active=0; |
- | |
404 | edit2.flags=64; |
384 | |
405 | DefineButton(192,curbtn*18+57,onLeft(27,192),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
- | |
406 | IF (filenum==100) filenum=curbtn; else |
385 | |
407 | { |
- | |
408 | copystr(#path,#temp); |
- | |
409 | copystr(#file_name,#temp+strlen(#temp)); |
- | |
410 | if (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0) |
386 | //puticon+icon_fairing!!! |
411 | IF (isdir) |
- | |
412 | { |
- | |
413 | //Del_File(true); |
- | |
414 | DeleleFile(#file_path); |
- | |
415 | IF (EAX) {DrawFlatButton(Form.width-200+192/2,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);} |
- | |
416 | ELSE CreateFolder(#temp); |
- | |
417 | Open_Dir(#path,1); |
- | |
418 | } |
- | |
419 | ELSE { CopyFile(#file_path,#temp); Del_File(true); } |
387 | void Line_ReDraw(dword color, filenum){ |
420 | } |
388 | dword text_col=0, temp_int, |
421 | } |
389 | y=filenum*18+57; //ïîëîæåíèå òåêñòà ïî Y |
422 | y=filenum*18+57; |
- | |
423 | //äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ |
390 | IF (rename_active==1) ReName(false); |
424 | DrawBar(192,y,3,18,color); DrawBar(195,y,16,2,color); |
- | |
425 | DrawBar(192+19,y,onLeft(46,192),18,color); DrawBar(195,y+17,16,1,color); |
391 | //äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ |
426 | off=file_mas[filenum+za_kadrom]*304 + buf+72; |
- | |
427 | // |
392 | DrawBar(192,y,3,18,color); DrawBar(195,y,16,2,color); |
428 | EBX=EAX=ESDWORD[off-40]; |
- | |
429 | $shr ebx,2 //ôàéë ñêðûòûé? |
- | |
430 | $and ebx,1 |
393 | DrawBar(192+19,y,onLeft(46,192),18,color); DrawBar(195,y+17,16,1,color); |
431 | IF (!EBX) text_col=0; ELSE text_col=0xA6A6B7; |
- | |
432 | $shr eax,4 //ýòî ïàïêà? |
394 | // |
433 | $and eax,1 |
395 | off=file_mas[filenum+za_kadrom]*304 + buf+72; |
434 | IF (color==videlenie) isdir=EAX; |
396 | if (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7; |
435 | if (!EAX) |
397 | if (!TestBit(ESDWORD[off-40],4)) |
436 | { |
398 | { |
437 | temp_int = Put_icon(off+strlen(off)-4, y+2); |
399 | temp_int = Put_icon(off+strlen(off)-4, y+2); |
- | 400 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
|
438 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
401 | } ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon(" |
439 | } ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon(" |
402 | if (color==videlenie) |
440 | if (color==videlenie) |
403 | { |
441 | { |
404 | isdir=TestBit(ESDWORD[off-40], 4); |
442 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
405 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
443 | copystr(off,#file_name); |
406 | copystr(off,#file_name); |
444 | copystr(#path,#file_path); |
- | |
445 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
- | |
446 | Preview(); |
- | |
447 | IF (text_col==0xA6A6B7) text_col=0xFFFFFF; |
- | |
448 | /*IF (show_preview) && (!isdir) |
- | |
449 | { |
- | |
450 | GetImage(#file_path); |
- | |
451 | j=dev_num*16+123; |
407 | copystr(#path,#file_path); |
452 | j+=show_actions*51; |
408 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
453 | IF (pLoadedImage<>0) DrawImage(#CurrentImage, 22*65536+j+skin_width+18); |
409 | Preview(NOTIP); |
454 | }*/ |
410 | IF (text_col==0xA6A6B7) text_col=0xFFFFFF; |
455 | } |
411 | } |
Line 461... | Line 417... | ||
461 | } |
417 | } |
Line 462... | Line 418... | ||
462 | 418 | ||
463 | 419 | ||
464 | void Open_Dir(dword temp_, redraw){ |
420 | void Open_Dir(dword temp_, redraw){ |
465 | byte path_[256], somelen=strlen(temp_)-1; |
421 | byte path_[256], somelen=strlen(temp_)-1; |
466 | if (redraw<>3) |
422 | if (redraw<>ONLY_SHOW) |
467 | { |
423 | { |
468 | copystr(temp_, #path_); |
424 | copystr(temp_, #path_); |
469 | IF (somelen) path_[somelen]=0x00; |
425 | IF (somelen) path_[somelen]=0x00; |
Line 475... | Line 431... | ||
475 | buf = realloc(count * 304 + 32, buf); |
431 | buf = realloc(count * 304 + 32, buf); |
476 | ReadDir(count, buf, #path_); |
432 | ReadDir(count, buf, #path_); |
477 | IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;) |
433 | IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;) |
478 | count=EBX; |
434 | count=EBX; |
479 | } |
435 | } |
480 | if (count<>-1) && (redraw>0) |
436 | if (count<>-1) |
481 | { |
437 | { |
482 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--; } //ôèëüòðóåì ýëåìåíò "." |
438 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--;} //ôèëüòðóåì ýëåìåíò "." |
483 | FOR (j=0;j |
439 | FOR (j=0;j |
484 | but_num=onTop(6,57)/18; |
440 | but_num=onTop(6,57)/18; |
485 | IF (but_num>100) but_num=1; ELSE //ýòà ñòðàííàÿ ñòðî÷êà äëÿ òîãî åñëè ðàçìåðû îêíà ñëèøêîì ìàëåíüêèå |
- | |
486 | IF (count |
441 | IF (count |
487 | FOR (j=0;j |
442 | FOR (j=0;j |
488 | IF (redraw<>3) Sorting(); |
443 | //ñòðåëî÷êà ñîðòèðîâêè |
- | 444 | IF (sort_num==1) WriteText(Form.width+60/2,45,0x80,0x4E78AC,"\x19",0); |
|
- | 445 | IF (sort_num==2) WriteText(Form.width-115,45,0x80,0x4E78AC,"\x19",0); |
|
- | 446 | IF (sort_num==3) WriteText(Form.width-44,45,0x80,0x4E78AC,"\x19",0); |
|
- | 447 | IF (redraw<>ONLY_SHOW) Sorting(); //äëÿ áîëüøèõ ïàïîê ïðè ðåïåèíòå îêíà |
|
489 | IF (redraw==1) || (redraw==3) List_ReDraw(); |
448 | IF (redraw<>ONLY_OPEN) List_ReDraw(); |
490 | copystr(temp_,#edit_path); |
449 | copystr(temp_,#edit_path); |
491 | KEdit(); |
450 | KEdit(); |
492 | HistoryPath(add_new_path); |
451 | HistoryPath(add_new_path); |
493 | //ñòðåëî÷êà ñîðòèðîâêè |
- | |
494 | IF (sort_num==1) WriteText(onLeft(192,168)/2+210,45,0x80,0x4E78AC,"\x19",0); |
- | |
495 | IF (sort_num==2) WriteText(onLeft(115,0),45,0x80,0x4E78AC,"\x19",0); |
- | |
496 | IF (sort_num==3) WriteText(onLeft(44,0),45,0x80,0x4E78AC,"\x19",0); |
- | |
497 | } |
452 | } |
498 | IF (count==-1) {but_num=count=0; List_ReDraw();} |
453 | IF (count==-1) && (redraw<>ONLY_OPEN) {but_num=count=0; List_ReDraw();} |
499 | } |
454 | } |
Line 500... | Line 455... | ||
500 | 455 | ||
Line 505... | Line 460... | ||
505 | dword k=0, l=1; |
460 | dword k=0, l=1; |
506 | IF (!strcmp(#path,"/")) {FOR(k=1;k |
461 | IF (!strcmp(#path,"/")) {FOR(k=1;k |
507 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
462 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
508 | { |
463 | { |
509 | ChangeCase(off+40); |
464 | ChangeCase(off+40); |
510 | EAX=ESDWORD[off]; |
- | |
511 | $shr eax,4 |
- | |
512 | $and eax,1 |
- | |
513 | IF (EAX) {file_mas[k]=j; k++;} ELSE |
465 | IF (TestBit(ESDWORD[off],4)) {file_mas[k]=j; k++;} |
514 | {file_mas[count-l]=j; l++;} |
466 | ELSE {file_mas[count-l]=j; l++;} |
515 | } |
467 | } |
516 | //Ñîáñòâåííî ñîðòèðîâêà |
468 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
517 | Sort_by_Name(0,k-1); //ñîðòèðóåì ïàïêè, íèæå - ôàéëû |
469 | Sort_by_Name(0,k-1); |
518 | IF (sort_num==1) Sort_by_Name(k,count-1); |
470 | IF (sort_num==1) Sort_by_Name(k,count-1); |
519 | IF (sort_num==2) Sort_by_Type(k, count-1); |
471 | IF (sort_num==2) Sort_by_Type(k, count-1); |
520 | IF (sort_num==3) Sort_by_Size(k,count-1); |
472 | IF (sort_num==3) Sort_by_Size(k,count-1); |
521 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
473 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
522 | IF (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k=k-1; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]> |
474 | IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k=k-1; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]> |
523 | } |
475 | } |
Line 524... | Line 476... | ||
524 | 476 | ||
525 | 477 | ||
Line 591... | Line 543... | ||
591 | WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç |
543 | WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç |
592 | DrawBar(17,y+17,160,1,0x94AECE); //ïîä÷¸ðêèâàíèå |
544 | DrawBar(17,y+17,160,1,0x94AECE); //ïîä÷¸ðêèâàíèå |
593 | } |
545 | } |
Line -... | Line 546... | ||
- | 546 | ||
- | 547 | ||
- | 548 | void ReName(byte rename) |
|
- | 549 | { |
|
- | 550 | rename_active=0; |
|
- | 551 | edit2.flags=64; |
|
- | 552 | DefineButton(192,curbtn*18+57,onLeft(27,192),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
|
- | 553 | if (rename==true) |
|
- | 554 | { |
|
- | 555 | copystr(#path,#temp); |
|
- | 556 | copystr(#file_name,#temp+strlen(#temp)); |
|
- | 557 | if (strcmp(#file_path,#temp)<>0) && (file_name) |
|
- | 558 | IF (isdir) |
|
- | 559 | { |
|
- | 560 | DeleleFile(#file_path); |
|
- | 561 | IF (EAX) {DrawFlatButton(Form.width-8/2,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);} |
|
- | 562 | ELSE CreateFolder(#temp); |
|
- | 563 | Open_Dir(#path,1); |
|
- | 564 | } |
|
- | 565 | ELSE |
|
- | 566 | { |
|
- | 567 | CopyFile(#file_path,#temp); |
|
- | 568 | Del_File(true); |
|
- | 569 | } |
|
- | 570 | SelectFile(#temp+find_symbol(#path,'/')); |
|
- | 571 | } |
|
- | 572 | Line_ReDraw(videlenie,curbtn); |
|
- | 573 | } |
|
594 | 574 | ||
595 | 575 | ||
596 | void Devices() |
576 | void Devices() |
597 | { |
577 | { |
598 | byte dev_icon; dword drive_name[30]; char dev_name[4]; |
578 | byte dev_icon; dword drive_name[30]; char dev_name[4]; |
599 | DrawBar(2,41,190,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñâåðõó |
579 | DrawBar(2,41,190,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñâåðõó |
600 | DrawBar(2,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñëåâà |
580 | DrawBar(2,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñëåâà |
601 | DrawBar(177,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà |
581 | DrawBar(177,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà |
602 | //ñïèñîê äèñêîâ |
- | |
603 | Tip(56, "Goto:", 0, ""); |
582 | //ñïèñîê äèñêîâ |
604 | DrawBar(17,74,160,dev_num*16+1,0xFFFFFF); //áåëîå |
583 | Tip(56, "Goto:", 0, ""); |
- | 584 | for (i=0;i |
|
605 | for (i=0;i |
585 | { |
606 | { |
586 | DrawBar(17,i*16+74,160,17,0xFFFFFF); //áåëîå |
607 | DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xE4DFE1); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ |
587 | DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xFFFFFF); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ |
608 | copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü |
588 | copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü |
609 | dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê |
589 | dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê |
610 | copystr(i*304+ devbuf+72, #dev_name); |
590 | copystr(i*304+ devbuf+72, #dev_name); |
Line 647... | Line 627... | ||
647 | { |
627 | { |
648 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
628 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
649 | Tip(dev_num*16+90, "Actions", 77, "\x18"); |
629 | Tip(dev_num*16+90, "Actions", 77, "\x18"); |
650 | DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå |
630 | DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå |
651 | } |
631 | } |
652 | Preview(); |
632 | Preview(REDRAW); |
653 | } |
633 | } |
Line 654... | Line 634... | ||
654 | 634 | ||
655 | 635 | ||
656 | void Preview() |
636 | void Preview(byte param) |
657 | { |
637 | { |
658 | dword top_pr=dev_num*16+123; |
638 | dword ti, text_buf, top_pr=dev_num*16+123; |
659 | top_pr+=show_actions*51; //íà÷èíàåì íèæå, åñëè Ýêøíñ âèäèìû |
639 | top_pr+=show_actions*51; //íà÷èíàåì íèæå, åñëè Ýêøíñ âèäèìû |
660 | DeleteButton(78); |
640 | IF (param<>NOTIP) DeleteButton(78); |
661 | if (show_preview==1) |
641 | if (show_preview==1) |
662 | { |
642 | { |
663 | Tip(top_pr,"Preview",78,"\x19"); |
643 | IF (param<>NOTIP) Tip(top_pr,"Preview",78,"\x19"); |
- | 644 | DrawBar(17,top_pr+18,160,5,0xFFFFFF); //áåëîå |
|
- | 645 | DrawBar(17,top_pr+113,160,onTop(top_pr+113,6),0x00699C); //ñèíåå |
|
- | 646 | // |
|
- | 647 | text_buf = malloc(256); |
|
- | 648 | ReadFile(0, 256, text_buf, #file_path); |
|
- | 649 | FOR (ti=0;ti<9; ti++) |
|
- | 650 | { |
|
- | 651 | DrawBar(17,ti*10+top_pr+23,160,10,0xFFFFFF); //áåëîå |
|
- | 652 | WriteText(22,ti*10+top_pr+23,0x00,0,ti*25+text_buf,25); |
|
664 | DrawBar(17,top_pr+18,160,100,0xFFFFFF); //áåëîå |
653 | IF (param==ANIM) Pause(2); |
- | 654 | } |
|
- | 655 | // |
|
- | 656 | /*WriteDebug(""); |
|
665 | DrawBar(17,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå |
657 | WriteDebug(""); |
666 | // |
658 | WriteDebug(#path); |
667 | WriteText(25,top_pr+30,0x80,0,"Number of files:",0); WriteText(135,top_pr+30,0x80,0,IntToStr(count),0); |
659 | WriteDebug("Number of files:"); WriteDebug(IntToStr(count)); |
668 | WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0); |
660 | WriteDebug("but_num:"); WriteDebug(IntToStr(but_num)); |
669 | WriteText(30,top_pr+50,0x80,0,"curbtn",0); WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0); |
- | |
670 | WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0); WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0); |
- | |
671 | WriteText(30,top_pr+70,0x80,0,#file_path,0); |
661 | WriteDebug("curbtn"); WriteDebug(IntToStr(curbtn)); |
672 | WriteText(30,top_pr+80,0x80,0,IntToStr(edit1.flags),0); WriteText(30,top_pr+90,0x80,0,IntToStr(edit2.flags),0); |
662 | WriteDebug("ra_kadrom:"); WriteDebug(IntToStr(za_kadrom));*/ |
673 | } |
663 | } |
674 | ELSE |
664 | ELSE |
675 | { |
665 | { |
676 | Tip(top_pr,"Preview",78,"\x18"); |
666 | IF (param<>NOTIP) Tip(top_pr,"Preview",78,"\x18"); |
677 | DrawBar(17,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå |
667 | DrawBar(17,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå |
Line 678... | Line 668... | ||
678 | } |
668 | } |
679 | } |
669 | } |
680 | 670 | ||
681 | 671 | ||
682 | void Goto_edit_path() |
672 | void Goto_edit_path() |
683 | { |
673 | { |
684 | IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
674 | IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
685 | IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
675 | IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
686 | Open_Dir(#edit_path,0); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
676 | Open_Dir(#edit_path,2); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
Line 705... | Line 695... | ||
705 | } |
695 | } |
Line 706... | Line 696... | ||
706 | 696 | ||
707 | 697 | ||
708 | void Dir_Up() |
698 | void Dir_Up() |
709 | { |
699 | { |
710 | char temp_[256]; |
700 | byte temp_[256]; |
711 | i=strlen(#path)-1; |
701 | i=strlen(#path)-1; |
712 | path[i]=0x00; |
702 | path[i]=0x00; |
713 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
703 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
714 | path[i+1]=0x00; |
704 | path[i+1]=0x00; |
Line 715... | Line -... | ||
715 | SelectFile(#temp_); |
- | |
716 | } |
- | |
717 | - | ||
718 | - | ||
719 | /*inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
- | |
720 | { |
- | |
721 | i=strlen(#PathHistory)-1; |
- | |
722 | PathHistory[i]=0x00; |
- | |
723 | copystr(#PathHistory+find_symbol(#PathHistory,'/'),#temp); //ïàïêà â êîòîðîé áûëè |
- | |
724 | HistoryPath(go_back); |
705 | SelectFile(#temp_); |
725 | SelectFile(#temp); |
706 | } |
726 | }*/ |
707 | |
727 | 708 | ||
728 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
709 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
729 | { |
710 | { |
730 | i=strlen(#PathHistory)-1; |
711 | i=strlen(#PathHistory)-1; |
731 | IF (i<7) return; |
712 | IF (i<7) RETURN; |
732 | PathHistory[i]=0x00; |
713 | PathHistory[i]=0x00; |