Rev 2770 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2770 | Rev 2814 | ||
---|---|---|---|
Line 18... | Line 18... | ||
18 | #define ONLY_SHOW 0 |
18 | #define ONLY_SHOW 0 |
19 | #define WITH_REDRAW 1 |
19 | #define WITH_REDRAW 1 |
20 | #define ONLY_OPEN 2 |
20 | #define ONLY_OPEN 2 |
Line 21... | Line 21... | ||
21 | 21 | ||
22 | //ïåðåìåííûå |
22 | //ïåðåìåííûå |
23 | #define title "Eolite File Manager v1.23" |
23 | #define title "Eolite File Manager v1.25" |
24 | dword videlenie=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
24 | dword videlenie=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
25 | // |
25 | // |
26 | int but_num, |
26 | int but_num, |
27 | count, |
27 | count, |
28 | za_kadrom, |
28 | za_kadrom, |
29 | curbtn, |
- | |
30 | disc_num, |
29 | curbtn, |
31 | scroll_size; |
30 | scroll_size; |
32 | byte cut_active, |
31 | byte cut_active, |
33 | rename_active, |
32 | rename_active, |
34 | del_active; |
33 | del_active; |
Line 51... | Line 50... | ||
51 | 50 | ||
52 | struct path_string { |
51 | struct path_string { |
53 | char Item[4096]; |
52 | char Item[4096]; |
Line 54... | Line -... | ||
54 | }; |
- | |
Line 55... | Line 53... | ||
55 | 53 | }; |
|
Line 56... | Line 54... | ||
56 | path_string disk_list[20]; |
54 | |
57 | 55 | ||
Line 90... | Line 88... | ||
90 | copystr(#param, #path); |
88 | copystr(#param, #path); |
91 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
89 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
92 | } |
90 | } |
93 | else copystr("/rd/1/", #path); |
91 | else copystr("/rd/1/", #path); |
94 | Open_Dir(#path,ONLY_OPEN); |
92 | Open_Dir(#path,ONLY_OPEN); |
95 | loop() |
- | |
96 | { |
- | |
97 | switch(WaitEvent()) |
93 | loop() switch(WaitEvent()) |
98 | { |
94 | { |
99 | case evMouse: |
95 | case evMouse: |
100 | IF (del_active==1) break; |
96 | IF (del_active==1) break; |
Line 101... | Line 97... | ||
101 | 97 | ||
102 | id=GetSlot(Form.ID); |
98 | id=GetSlot(Form.ID); |
Line -... | Line 99... | ||
- | 99 | IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì |
|
- | 100 | ||
103 | IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì |
101 | IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
Line 104... | Line 102... | ||
104 | 102 | ||
105 | m.get(); |
103 | m.get(); |
106 | 104 | ||
Line 129... | Line 127... | ||
129 | } |
127 | } |
130 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
128 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
131 | } |
129 | } |
Line 132... | Line 130... | ||
132 | 130 | ||
133 | //êîë¸ñèêî ìûøè |
131 | //êîë¸ñèêî ìûøè |
134 | IF (m.vert==65535) IF (curbtn>0) FileList_ReDraw(-1); ELSE |
132 | IF (m.vert==65535) && (za_kadrom>0) |
- | 133 | { |
|
- | 134 | if (za_kadrom>0) za_kadrom--; |
|
135 | { |
135 | if (curbtn |
- | 136 | List_ReDraw(); |
|
136 | FileList_ReDraw(-1); |
137 | if (za_kadrom>0) za_kadrom--; |
137 | FileList_ReDraw(-1); |
138 | if (curbtn |
138 | FileList_ReDraw(-1); |
139 | List_ReDraw(); |
139 | } |
140 | } |
140 | IF (m.vert==1) IF (curbtn |
141 | IF (m.vert==1) && (za_kadrom |
- | 142 | { |
|
- | 143 | if (za_kadrom |
|
141 | { |
144 | if (curbtn>0) curbtn--; |
- | 145 | List_ReDraw(); |
|
142 | FileList_ReDraw(1); |
146 | if (za_kadrom |
143 | FileList_ReDraw(1); |
147 | if (curbtn>0) curbtn--; |
144 | FileList_ReDraw(1); |
148 | List_ReDraw(); |
145 | } |
149 | } |
146 | //ñêðîëë |
150 | //ñêðîëë |
147 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && && (m.y<65000) while (m.lkm) |
151 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && && (m.y<65000) while (m.lkm) |
148 | { |
152 | { |
Line 169... | Line 173... | ||
169 | break; |
173 | break; |
170 | case 22: //Forward |
174 | case 22: //Forward |
171 | HistoryPath(go_forward); |
175 | HistoryPath(go_forward); |
172 | break; |
176 | break; |
173 | case 23: //up! |
177 | case 23: //up! |
174 | IF (strcmp(#path,"/")<>0) Dir_Up(); |
178 | Dir_Up(); |
175 | break; |
179 | break; |
176 | case 24: //cut |
180 | case 24: //cut |
177 | key=24; |
181 | key=24; |
178 | case 25: //copy |
182 | case 25: //copy |
179 | goto CTRLC_MARK; |
183 | goto CTRLC_MARK; |
Line 197... | Line 201... | ||
197 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
201 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
198 | Actions(); |
202 | Actions(); |
199 | break; |
203 | break; |
200 | case 78: |
204 | case 78: |
201 | IF (show_dev_name==1) show_dev_name=0; ELSE show_dev_name=1; |
205 | IF (show_dev_name==1) show_dev_name=0; ELSE show_dev_name=1; |
- | 206 | GetSystemDiscs(); |
|
- | 207 | Open_Dir(#path,WITH_REDRAW); |
|
202 | DrawSystemDiscs(); |
208 | DrawSystemDiscs(); |
- | 209 | Actions(); |
|
203 | break; |
210 | break; |
204 | case 80: //rename |
211 | case 80: //rename |
205 | goto REN_MARK; |
212 | goto REN_MARK; |
206 | case 81: //Delete file |
213 | case 81: //Delete file |
207 | Del_Form(); |
214 | Del_Form(); |
Line 213... | Line 220... | ||
213 | CreateFolder(#temp); |
220 | CreateFolder(#temp); |
214 | IF (EAX==0){ |
221 | IF (EAX==0){ |
215 | SelectFile("New folder"); |
222 | SelectFile("New folder"); |
216 | goto REN_MARK; |
223 | goto REN_MARK; |
217 | } |
224 | } |
- | 225 | ELSE |
|
- | 226 | { |
|
- | 227 | Write_Error(EAX); |
|
218 | ELSE ShowMessage("Folder can not be created."); |
228 | ShowMessage("Folder can not be created."); |
- | 229 | } |
|
219 | break; |
230 | break; |
220 | case 100...120: |
231 | case 100...120: |
221 | DEVICE_MARK: |
232 | DEVICE_MARK: |
222 | DrawRegion_3D(17,id-100*16+74,159,16, 0, 0); //âûäåëåíèå |
233 | DrawRegion_3D(17,id-100*16+74,159,16, 0, 0); //âûäåëåíèå |
223 | copystr(#disk_list[id-100].Item, #path); |
234 | copystr(#disk_list[id-100].Item, #path); |
224 | za_kadrom=curbtn=0; |
235 | za_kadrom=curbtn=0; |
225 | Open_Dir(#path,1); |
236 | Open_Dir(#path,1); |
- | 237 | Pause(5); |
|
226 | DrawRegion_3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF); |
238 | DrawRegion_3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF); |
227 | break; |
239 | break; |
228 | default: |
240 | default: |
229 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
241 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
230 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
242 | if (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
231 | else OPEN_MARK: |
243 | else OPEN_MARK: |
232 | if (!isdir) GetIni(0); else |
244 | if (!isdir) GetIni(0); else |
233 | if (strcmp(#file_name,"..")==0) Dir_Up(); else |
245 | if (strcmp(#file_name,"..")==0) Dir_Up(); |
- | 246 | else |
|
- | 247 | { |
|
234 | { OPEN_DEV: |
248 | OPEN_DEV: |
235 | copystr(#file_path, #path); |
249 | copystr(#file_path, #path); |
236 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
250 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
237 | za_kadrom=curbtn=0; |
251 | za_kadrom=curbtn=0; |
238 | Open_Dir(#path,1); |
252 | Open_Dir(#path,1); |
239 | } |
253 | } |
Line 265... | Line 279... | ||
265 | case 209...217: |
279 | case 209...217: |
266 | id=key-110; |
280 | id=key-110; |
267 | IF (id-100>=disc_num) break; |
281 | IF (id-100>=disc_num) break; |
268 | GOTO DEVICE_MARK; |
282 | GOTO DEVICE_MARK; |
269 | case 8: //Íàçàä |
283 | case 8: //Íàçàä |
270 | GoBack(); |
284 | //GoBack(); |
- | 285 | Dir_Up(); |
|
271 | break; |
286 | break; |
272 | case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü |
287 | case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü |
273 | copystr("\\S__", #temp); |
288 | copystr("\\S__", #temp); |
274 | copystr(#file_path, #temp+strlen(#temp)); |
289 | copystr(#file_path, #temp+strlen(#temp)); |
275 | RunProgram("/sys/media/kiv", #temp); |
290 | RunProgram("/sys/media/kiv", #temp); |
Line 354... | Line 369... | ||
354 | break; |
369 | break; |
355 | } |
370 | } |
356 | } |
371 | } |
357 | } |
372 | } |
358 | BREAK; |
373 | BREAK; |
359 | case evReDraw: draw_window(); |
374 | case evReDraw: |
360 | } |
375 | draw_window(); |
361 | IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
- | |
362 | } |
376 | } |
363 | } |
377 | } |
Line 364... | Line 378... | ||
364 | 378 | ||
Line 392... | Line 406... | ||
392 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
406 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
393 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
407 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
394 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
408 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
395 | //Ïåðåðèñîâûâàåì ñïèñîê |
409 | //Ïåðåðèñîâûâàåì ñïèñîê |
396 | Open_Dir(#path,ONLY_SHOW); |
410 | Open_Dir(#path,ONLY_SHOW); |
397 | //List_ReDraw(); |
- | |
398 | //KEdit(); |
- | |
399 | //ïðîêðóòêà |
411 | //ïðîêðóòêà |
400 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
412 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
401 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
413 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
402 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
414 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
403 | if (del_active==1) Del_Form(); |
415 | if (del_active==1) Del_Form(); |
Line 512... | Line 524... | ||
512 | } |
524 | } |
513 | ELSE |
525 | ELSE |
514 | IF (!strcmp("..",off)) temp_int=Put_icon("..", BUTTON_HEIGHT/2-7+y); |
526 | IF (!strcmp("..",off)) temp_int=Put_icon("..", BUTTON_HEIGHT/2-7+y); |
515 | ELSE |
527 | ELSE |
516 | temp_int=Put_icon(" |
528 | temp_int=Put_icon(" |
517 | if (color==videlenie) |
529 | if (color<>0xFFFfff) |
518 | { |
530 | { |
519 | isdir=TestBit(ESDWORD[off-40], 4); |
531 | isdir=TestBit(ESDWORD[off-40], 4); |
520 | IconFairing(temp_int, BUTTON_HEIGHT/2-7+y); //çàêðàøèâàåì èêîíêó |
532 | IconFairing(temp_int, BUTTON_HEIGHT/2-7+y, color); //çàêðàøèâàåì èêîíêó |
521 | copystr(off,#file_name); |
533 | copystr(off,#file_name); |
522 | copystr(#path,#file_path); |
534 | copystr(#path,#file_path); |
523 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
535 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
524 | IF (text_col==0xA6A6B7) text_col=0xFFFFFF; |
536 | IF (text_col==0xA6A6B7) text_col=0xFFFFFF; |
525 | } |
537 | } |
Line 543... | Line 555... | ||
543 | IF (buf) free(buf); |
555 | IF (buf) free(buf); |
544 | buf = malloc(32); |
556 | buf = malloc(32); |
545 | errornum=ReadDir(0, buf, #path_); |
557 | errornum=ReadDir(0, buf, #path_); |
546 | if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
558 | if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
547 | { |
559 | { |
548 | Write_Debug_Error(errornum); |
- | |
549 | HistoryPath(add_new_path); |
560 | HistoryPath(add_new_path); |
550 | GoBack(); |
561 | GoBack(); |
- | 562 | Write_Error(errornum); |
|
551 | return; |
563 | return; |
552 | } |
564 | } |
553 | count = ESDWORD[buf+8]; |
565 | count = ESDWORD[buf+8]; |
554 | buf = realloc(count * 304 + 32, buf); |
566 | buf = realloc(count * 304 + 32, buf); |
555 | ReadDir(count, buf, #path_); |
567 | ReadDir(count, buf, #path_); |
Line 639... | Line 651... | ||
639 | IF (dodel==true) |
651 | IF (dodel==true) |
640 | { |
652 | { |
641 | del_file_rez=DeleleFile(#file_path); |
653 | del_file_rez=DeleleFile(#file_path); |
642 | IF (del_file_rez<>0) |
654 | IF (del_file_rez<>0) |
643 | { |
655 | { |
644 | Write_Debug_Error(del_file_rez); |
656 | Write_Error(del_file_rez); |
645 | IF (isdir==true) ShowMessage("Error. Folder isn't empty."); |
657 | IF (isdir==true) ShowMessage("Error. Folder isn't empty."); |
646 | IF (isdir==false) ShowMessage("Error. Filesystem read-only."); |
658 | IF (isdir==false) ShowMessage("Error. Filesystem read-only."); |
647 | } |
659 | } |
648 | } |
660 | } |
649 | del_active=0; |
661 | del_active=0; |
Line 666... | Line 678... | ||
666 | copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
678 | copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
667 | } |
679 | } |
668 | copy_rezult=CopyFile(#copy_file,#new_copy_path); |
680 | copy_rezult=CopyFile(#copy_file,#new_copy_path); |
669 | IF (copy_rezult<>0) //îøèáêà |
681 | IF (copy_rezult<>0) //îøèáêà |
670 | { |
682 | { |
671 | Write_Debug_Error(copy_rezult); |
683 | Write_Error(copy_rezult); |
672 | DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); |
684 | DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); |
673 | Pause(150); |
685 | Pause(150); |
674 | } |
686 | } |
675 | IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
687 | IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
676 | { |
688 | { |
Line 710... | Line 722... | ||
710 | IF (isdir) |
722 | IF (isdir) |
711 | { |
723 | { |
712 | del_file_rez=DeleleFile(#file_path); |
724 | del_file_rez=DeleleFile(#file_path); |
713 | IF (del_file_rez<>0) |
725 | IF (del_file_rez<>0) |
714 | { |
726 | { |
715 | Write_Debug_Error(del_file_rez); |
727 | Write_Error(del_file_rez); |
716 | ShowMessage("Error. Folder isn't empty."); |
728 | ShowMessage("Error. Folder isn't empty."); |
717 | return; |
729 | return; |
718 | } |
730 | } |
719 | ELSE CreateFolder(#temp); |
731 | ELSE CreateFolder(#temp); |
720 | Open_Dir(#path,1); |
732 | Open_Dir(#path,1); |
Line 784... | Line 796... | ||
784 | 796 | ||
785 | 797 | ||
786 | void Dir_Up() |
798 | void Dir_Up() |
- | 799 | { |
|
787 | { |
800 | char cur_folder[4096]; |
788 | char cur_folder[4096]; |
801 | if (!strcmp(#path,"/")) return; |
789 | i=strlen(#path)-1; |
802 | i=strlen(#path)-1; |
790 | path[i]=0x00; |
803 | path[i]=0x00; |
791 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#cur_folder); |
804 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#cur_folder); |