Rev 975 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 975 | Rev 976 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | //Leency & Veliant -=- KolibriOS Team -=- 2008 |
1 | //Leency & Veliant -=- KolibriOS Team -=- 2008 |
Line 2... | Line 2... | ||
2 | 2 | ||
3 | //ñòðîêà 258, êåéàï! |
3 | //ñòðîêà 258, êåéàï! |
4 | //âîçìîæíî, áàã â KEdit |
4 | //âîçìîæíî, áàã â KEdit |
5 | //find_symbol íàäî ÷èòàòü ñ êîíöà |
- | |
6 | //335 ñòðîêà |
- | |
7 | //PathHistory áëÿ íàäî API äëÿ ðàáîòû ñ èñòîðèåé, â ò.÷. ïðîâåðÿòü íå ðàâíà ëè íîâàÿ ïàïêà ïðåäûäóùåé |
5 | //find_symbol íàäî ÷èòàòü ñ êîíöà |
- | 6 | //DrawBar(sort_num[1],45,6,9,0xE4DFE1); |
|
Line 8... | Line 7... | ||
8 | //DrawBar(sort_num[1],45,6,9,0xE4DFE1); |
7 | //Open_Dir íàõðåí èñïàãàíåí èôàìè, ñäåëàòü äåôàéëû èëè åù¸ ÷òî-òî, ïîòîìó ÷òî ïîêà ýòî âûãëÿäèò íåêðàñèâî |
9 | 8 | ||
10 | #codesize |
9 | #codesize |
11 | #include "lib\kolibri.h--" |
10 | #include "lib\kolibri.h--" |
12 | #include "lib\memory.h--" |
11 | #include "lib\memory.h--" |
13 | #include "lib\edit_box_lib.h--" |
12 | #include "lib\edit_box_lib.h--" |
14 | #include "lib\file_system.h--" |
13 | #include "lib\file_system.h--" |
Line 15... | Line 14... | ||
15 | #include "imgs\toolbar.txt" |
14 | #include "imgs\toolbar.txt" |
16 | #include "imgs\left_p.txt" |
15 | #include "imgs\left_p.txt" |
17 | 16 | ||
18 | //ëîêàëèçàöèÿ è íàñòðîéêè |
17 | //ëîêàëèçàöèÿ è íàñòðîéêè |
19 | #define header "Eolite File Manager v0.98.2" |
18 | #define title "Eolite File Manager v0.98.3" |
20 | #define videlenie 0x94AECE //0x94AECE,0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
19 | #define videlenie 0x94AECE //0x94AECE,0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
21 | byte toolbar_buttons_x[6]={9,46,85,134,167,203}; |
20 | byte toolbar_buttons_x[6]={9,46,85,134,167,203}; |
22 | // |
21 | // |
23 | dword but_num, |
22 | dword but_num, |
24 | kolichestvo, |
23 | count, |
25 | za_kadrom, |
24 | za_kadrom, |
26 | curbtn, |
25 | curbtn, |
27 | razm_scrl; |
26 | scroll_size; |
28 | byte cut_active, |
27 | byte cut_active, |
29 | rename_active, |
28 | rename_active, |
30 | del_active; |
29 | del_active; |
31 | byte show_actions=1, |
30 | byte show_actions=1, |
32 | show_preview=0, |
31 | show_preview=0, |
33 | sort_num=2, |
32 | sort_num=2, |
34 | isdir; |
33 | isdir; |
35 | char path[256]="/rd/1/", |
34 | byte path[256]="/rd/1/", |
36 | edit_path[256], |
35 | edit_path[256], |
37 | file_path[256], |
36 | file_path[256], |
38 | file_name[256], |
37 | file_name[256], |
Line 39... | Line 38... | ||
39 | copy_file[256], |
38 | copy_file[256], |
40 | temp[256]; |
39 | temp[256]; |
Line 41... | Line 40... | ||
41 | char PathHistory[2560]; |
40 | byte PathHistory[2560]; |
Line 88... | Line 87... | ||
88 | } |
87 | } |
Line 89... | Line 88... | ||
89 | 88 | ||
90 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y |
89 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y |
91 | { |
90 | { |
92 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF); |
91 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF); |
93 | while (m.lkm==1) && (za_kadrom |
92 | while (m.lkm==1) && (za_kadrom |
94 | { |
93 | { |
95 | Pause(10); |
94 | Pause(10); |
96 | za_kadrom++; |
95 | za_kadrom++; |
97 | List_ReDraw(); |
96 | List_ReDraw(); |
98 | m.get(); |
97 | m.get(); |
99 | } |
98 | } |
100 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
99 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
Line 101... | Line 100... | ||
101 | } |
100 | } |
102 | 101 | ||
103 | //êîë¸ñèêî ìûøè |
102 | //êîë¸ñèêî ìûøè |
104 | IF (vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1); |
103 | IF (m.vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1); |
105 | IF (vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1); |
104 | IF (m.vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1); |
106 | //ñêðîëë |
105 | //ñêðîëë |
107 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) while (m.lkm) |
106 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) while (m.lkm) |
108 | { |
107 | { |
109 | IF (razm_scrl/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=razm_scrl/2+57; //åñëè êóðñîð íàä îêíîì |
108 | IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì |
110 | temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
109 | temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
111 | j= razm_scrl/2; |
110 | j= scroll_size/2; |
112 | za_kadrom = m.y -j -57 * kolichestvo / onTop(22,57); |
111 | za_kadrom = m.y -j -57 * count / onTop(22,57); |
113 | IF (but_num+za_kadrom>kolichestvo) za_kadrom=kolichestvo-but_num; |
112 | IF (but_num+za_kadrom>count) za_kadrom=count-but_num; |
114 | IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
113 | IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
115 | m.get(); |
114 | m.get(); |
116 | } |
115 | } |
Line 144... | Line 143... | ||
144 | IF (show_preview==1) show_preview=0; ELSE show_preview=1; |
143 | IF (show_preview==1) show_preview=0; ELSE show_preview=1; |
145 | Preview(); |
144 | Preview(); |
146 | break; |
145 | break; |
147 | case 77: //actions |
146 | case 77: //actions |
148 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
147 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
149 | Actions(); Preview(); |
148 | Actions(); |
150 | break; |
149 | break; |
151 | case 80: //rename |
150 | case 80: //rename |
152 | goto REN_MARK; |
151 | goto REN_MARK; |
153 | case 81: //Delete file |
152 | case 81: //Delete file |
154 | Del_Form(); |
153 | Del_Form(); |
Line 156... | Line 155... | ||
156 | case 82: //create folder |
155 | case 82: //create folder |
157 | NEW_FOLDER_MARK: |
156 | NEW_FOLDER_MARK: |
158 | copystr(#path, #temp); |
157 | copystr(#path, #temp); |
159 | copystr("New folder", #temp+strlen(#temp)); |
158 | copystr("New folder", #temp+strlen(#temp)); |
160 | CreateFolder(#temp); |
159 | CreateFolder(#temp); |
161 | za_kadrom=curbtn=0; |
- | |
162 | Open_Dir(#path,1); |
160 | SelectFile("New folder"); |
163 | FOR (i=0; i |
- | |
164 | IF (strcmp("New folder",file_mas[i]*304+buf+72)==0) {FileList_ReDraw(i); break;} |
- | |
165 | goto REN_MARK; |
161 | goto REN_MARK; |
166 | case 100...120: |
162 | case 100...120: |
167 | DEVICE_MARK: |
163 | DEVICE_MARK: |
168 | copystr(id-100*304+ devbuf+72, #path); |
164 | copystr(id-100*304+ devbuf+72, #path); |
169 | IF (path[0]=='r') copystr("/rd/1",#file_path); |
165 | IF (path[0]=='r') copystr("/rd/1",#file_path); |
Line 230... | Line 226... | ||
230 | break; |
226 | break; |
231 | case 180: //home |
227 | case 180: //home |
232 | FileList_ReDraw(-za_kadrom-curbtn); |
228 | FileList_ReDraw(-za_kadrom-curbtn); |
233 | break; |
229 | break; |
234 | case 181: //end |
230 | case 181: //end |
235 | FileList_ReDraw(kolichestvo-za_kadrom-curbtn+but_num-1); |
231 | FileList_ReDraw(count-za_kadrom-curbtn+but_num-1); |
236 | break; |
232 | break; |
237 | case 183: //Page Down |
233 | case 183: //Page Down |
238 | FileList_ReDraw(but_num-1); |
234 | FileList_ReDraw(but_num-1); |
239 | break; |
235 | break; |
240 | case 184: //Page Up |
236 | case 184: //Page Up |
Line 259... | Line 255... | ||
259 | break; |
255 | break; |
260 | case 182: //delete file |
256 | case 182: //delete file |
261 | Del_Form(); |
257 | Del_Form(); |
262 | break; |
258 | break; |
263 | default: |
259 | default: |
264 | FOR (i=curbtn+za_kadrom+1; i |
260 | FOR (i=curbtn+za_kadrom+1; i |
265 | { |
261 | { |
266 | copystr(file_mas[i]*304+buf+72,#temp); |
262 | copystr(file_mas[i]*304+buf+72,#temp); |
267 | AL=DSBYTE[#temp]; |
263 | AL=DSBYTE[#temp]; |
268 | IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; |
264 | IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; |
269 | IF (temp[0]==key) {FileList_ReDraw(i-curbtn-za_kadrom); break;} |
265 | IF (temp[0]==key) {FileList_ReDraw(i-curbtn-za_kadrom); break;} |
Line 279... | Line 275... | ||
279 | 275 | ||
280 | inline fastcall void draw_window() |
276 | inline fastcall void draw_window() |
281 | { |
277 | { |
282 | WindowRedrawStatus(1); |
278 | WindowRedrawStatus(1); |
283 | skin_width = GetSkinWidth(); |
279 | skin_width = GetSkinWidth(); |
284 | DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,header); |
280 | DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,title); |
285 | Form.GetInfo(SelfInfo); |
281 | Form.GetInfo(SelfInfo); |
286 | IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
282 | IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
287 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
283 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
288 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
284 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
Line 295... | Line 291... | ||
295 | edit1.top=13; |
291 | edit1.top=13; |
296 | KEdit(); |
292 | KEdit(); |
297 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
293 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
298 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
294 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
299 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
295 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
300 | DefineButton(onLeft(61,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
296 | DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
301 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
297 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
302 | //ïðÿìîóãîëüíèêè âíóòðè |
298 | //ïðÿìîóãîëüíèêè âíóòðè |
303 | DrawRegion_3D(1,40,Form.width-12,Form.height-skin_width-46,0x94AECE,0x94AECE); //ñèíèé îáîäîê |
299 | DrawRegion_3D(1,40,Form.width-12,Form.height-skin_width-46,0x94AECE,0x94AECE); //ñèíèé îáîäîê |
304 | DrawRegion_3D(0,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1,0xE4DFE1); //ôîí |
300 | DrawRegion_3D(0,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1,0xE4DFE1); //ôîí |
305 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
301 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
306 | //SortButtons |
302 | //SortButtons |
307 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
303 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
308 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
304 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
309 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
305 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
- | 306 | // |
|
- | 307 | //sort_type[1]=onLeft(192,168)/2+210; |
|
- | 308 | //sort_type[2]=onLeft(115,0); |
|
- | 309 | //sort_type[3]=onLeft(44,0); |
|
310 | //ïðîêðóòêà |
310 | //ïðîêðóòêà |
311 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
311 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
312 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
312 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
313 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
313 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
314 | // |
314 | // |
Line 318... | Line 318... | ||
318 | } |
318 | } |
Line 319... | Line 319... | ||
319 | 319 | ||
320 | 320 | ||
321 | void KEdit() |
321 | void KEdit() |
322 | { |
322 | { |
- | 323 | edit1.size=edit1.pos=strlen(#edit_path); |
|
- | 324 | edit_box_draw stdcall (#edit1); |
|
- | 325 | /*edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì |
|
- | 326 | edit2.width=onLeft(24,217); |
|
- | 327 | edit2.top=curbtn*18+59; |
|
323 | edit1.size=strlen(#edit_path); edit1.pos=strlen(#edit_path); |
328 | edit2.size=edit2.pos=strlen(#file_name); |
Line 324... | Line 329... | ||
324 | edit_box_draw stdcall (#edit1); |
329 | edit_box_draw stdcall (#edit2);*/ |
325 | } |
330 | } |
326 | 331 | ||
327 | 332 | ||
328 | inline fastcall void TVScroll() { //Ïðîêðóòêà |
333 | inline fastcall void TVScroll() { //Ïðîêðóòêà |
329 | dword on_y; |
334 | dword on_y; |
330 | IF (kolichestvo<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;} |
335 | IF (count<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;} |
331 | on_y = za_kadrom * onTop(22,57) / kolichestvo +57; |
336 | on_y = za_kadrom * onTop(22,57) / count +57; |
332 | razm_scrl=onTop(22,57) * but_num - but_num / kolichestvo; |
337 | scroll_size=onTop(22,57) * but_num - but_num / count; |
333 | IF (razm_scrl<20) razm_scrl = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
338 | IF (scroll_size<20) scroll_size = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
334 | IF (razm_scrl>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=kolichestvo) on_y=onTop(23+razm_scrl,0); //äëÿ áîëüøîãî ñïèñêà |
339 | IF (scroll_size>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=count) on_y=onTop(23+scroll_size,0); //äëÿ áîëüøîãî ñïèñêà |
Line 335... | Line 340... | ||
335 | DrawFlatButton(onLeft(27,0),on_y,16,razm_scrl,0,0xE4DFE1,"");//ïîëçóíîê |
340 | DrawFlatButton(onLeft(27,0),on_y,16,scroll_size,0,0xE4DFE1,"");//ïîëçóíîê |
336 | DrawBar(onLeft(26,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà |
341 | DrawBar(onLeft(26,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà |
Line 358... | Line 363... | ||
358 | return; |
363 | return; |
359 | } |
364 | } |
360 | } |
365 | } |
361 | else //âíèç |
366 | else //âíèç |
362 | { |
367 | { |
363 | IF (za_kadrom==kolichestvo-but_num) && (curbtn==but_num-1) return; |
368 | IF (za_kadrom==count-but_num) && (curbtn==but_num-1) return; |
364 | IF (but_num-curbtn>curbtn_) |
369 | IF (but_num-curbtn>curbtn_) |
365 | { |
370 | { |
366 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
371 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
367 | curbtn+=curbtn_; |
372 | curbtn+=curbtn_; |
368 | Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
373 | Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
369 | return; |
374 | return; |
370 | } |
375 | } |
371 | ELSE |
376 | ELSE |
372 | { |
377 | { |
373 | IF(but_num+za_kadrom+curbtn_>=kolichestvo) za_kadrom=kolichestvo-but_num; ELSE za_kadrom+=curbtn_+curbtn-but_num+1; |
378 | IF(but_num+za_kadrom+curbtn_>=count) za_kadrom=count-but_num; ELSE za_kadrom+=curbtn_+curbtn-but_num+1; |
374 | curbtn=but_num-1; |
379 | curbtn=but_num-1; |
375 | List_ReDraw(); |
380 | List_ReDraw(); |
376 | } |
381 | } |
377 | } |
382 | } |
378 | } |
383 | } |
Line 379... | Line 384... | ||
379 | 384 | ||
380 | 385 | ||
381 | void List_ReDraw() |
386 | void List_ReDraw() |
382 | { |
387 | { |
383 | IF (kolichestvo-za_kadrom |
388 | IF (count-za_kadrom |
384 | { za_kadrom=kolichestvo-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
389 | { za_kadrom=count-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
385 | // |
390 | // |
386 | FOR (j=0; j |
391 | FOR (j=0; j |
387 | temp_int=but_num*18+57; |
392 | temp_int=but_num*18+57; |
Line 392... | Line 397... | ||
392 | } |
397 | } |
Line 393... | Line 398... | ||
393 | 398 | ||
394 | 399 | ||
395 | void Line_ReDraw(dword color, filenum){ |
400 | void Line_ReDraw(dword color, filenum){ |
396 | dword y;//ïîëîæåíèå òåêñòà ïî Y; |
401 | dword y;//ïîëîæåíèå òåêñòà ïî Y; |
397 | if (rename_active==1) |
402 | if (rename_active==1) //âñ¸ ýòî ïîëíûé ïèïåö, è íàäî âûíåñòè â îòäåëüíóþ ïðîöåäóðó |
398 | { |
403 | { |
399 | rename_active=0; |
404 | rename_active=0; |
400 | edit2.flags=64; |
405 | edit2.flags=64; |
Line 426... | Line 431... | ||
426 | $and eax,1 |
431 | $and eax,1 |
427 | IF (color==videlenie) isdir=EAX; |
432 | IF (color==videlenie) isdir=EAX; |
428 | if (!EAX) |
433 | if (!EAX) |
429 | { |
434 | { |
430 | temp_int = Put_icon(off+strlen(off)-4, y+2); |
435 | temp_int = Put_icon(off+strlen(off)-4, y+2); |
431 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(70,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
436 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
432 | } ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon(" |
437 | } ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon(" |
433 | if (color==videlenie) |
438 | if (color==videlenie) |
434 | { |
439 | { |
435 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
440 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
436 | copystr(off,#file_name); |
441 | copystr(off,#file_name); |
Line 447... | Line 452... | ||
447 | temp_int = onLeft(215,160)/6; |
452 | temp_int = onLeft(215,160)/6; |
448 | IF (strlen(off) |
453 | IF (strlen(off) |
449 | WriteText(215,y+6,0,0,off,temp_int); //èìÿ ôàéëà |
454 | WriteText(215,y+6,0,0,off,temp_int); //èìÿ ôàéëà |
450 | DrawBar(onLeft(168,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
455 | DrawBar(onLeft(168,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
451 | DrawBar(onLeft(95,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
456 | DrawBar(onLeft(95,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
- | 457 | //Preview(); |
|
452 | } |
458 | } |
Line 453... | Line 459... | ||
453 | 459 | ||
454 | 460 | ||
Line 460... | Line 466... | ||
460 | IF (somelen) path_[somelen]=0x00; |
466 | IF (somelen) path_[somelen]=0x00; |
461 | // |
467 | // |
462 | IF (buf) free(buf); |
468 | IF (buf) free(buf); |
463 | buf = malloc(32); |
469 | buf = malloc(32); |
464 | ReadDir(0, buf, #path_); |
470 | ReadDir(0, buf, #path_); |
465 | kolichestvo = ESDWORD[buf+8]; |
471 | count = ESDWORD[buf+8]; |
466 | buf = realloc(kolichestvo * 304 + 32, buf); |
472 | buf = realloc(count * 304 + 32, buf); |
467 | ReadDir(kolichestvo, buf, #path_); |
473 | ReadDir(count, buf, #path_); |
468 | IF (EBX>6898) && (EBX<>-1) EBX=6898; |
474 | IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;) |
469 | kolichestvo=EBX; |
475 | count=EBX; |
470 | } |
476 | } |
471 | if (kolichestvo<>-1) && (redraw>0) |
477 | if (count<>-1) && (redraw>0) |
472 | { |
478 | { |
473 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,kolichestvo-1*304); kolichestvo--; } //ôèëüòðóåì ýëåìåíò "." |
479 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--; } //ôèëüòðóåì ýëåìåíò "." |
474 | FOR (j=0;j |
480 | FOR (j=0;j |
475 | but_num=onTop(6,57)/18; |
481 | but_num=onTop(6,57)/18; |
476 | IF (but_num>100) but_num=1; ELSE //ýòà ñòðàííàÿ ñòðî÷êà äëÿ òîãî åñëè ðàçìåðû îêíà ñëèøêîì ìàëåíüêèå |
482 | IF (but_num>100) but_num=1; ELSE //ýòà ñòðàííàÿ ñòðî÷êà äëÿ òîãî åñëè ðàçìåðû îêíà ñëèøêîì ìàëåíüêèå |
477 | IF (kolichestvo |
483 | IF (count |
478 | FOR (j=0;j |
484 | FOR (j=0;j |
479 | IF (redraw<>3) Sorting(); |
485 | IF (redraw<>3) Sorting(); |
480 | IF (redraw==1) || (redraw==3) List_ReDraw(); |
486 | IF (redraw==1) || (redraw==3) List_ReDraw(); |
481 | copystr(temp_,#edit_path); |
487 | copystr(temp_,#edit_path); |
482 | KEdit(); |
488 | KEdit(); |
483 | copystr("|",#PathHistory+strlen(#PathHistory)); |
489 | HistoryPath(add_new_path); |
484 | copystr(#path,#PathHistory+strlen(#PathHistory)); |
- | |
485 | //ñòðåëî÷êà ñîðòèðîâêè |
490 | //ñòðåëî÷êà ñîðòèðîâêè |
486 | IF (sort_num==1) WriteText(onLeft(192,168)/2+210,45,0x80,0x4E78AC,"\x19",0); |
491 | IF (sort_num==1) WriteText(onLeft(192,168)/2+210,45,0x80,0x4E78AC,"\x19",0); |
487 | IF (sort_num==2) WriteText(onLeft(115,0),45,0x80,0x4E78AC,"\x19",0); |
492 | IF (sort_num==2) WriteText(onLeft(115,0),45,0x80,0x4E78AC,"\x19",0); |
488 | IF (sort_num==3) WriteText(onLeft(44,0),45,0x80,0x4E78AC,"\x19",0); |
493 | IF (sort_num==3) WriteText(onLeft(44,0),45,0x80,0x4E78AC,"\x19",0); |
489 | } |
494 | } |
490 | IF (kolichestvo==-1) {but_num=kolichestvo=0; List_ReDraw();} |
495 | IF (count==-1) {but_num=count=0; List_ReDraw();} |
491 | } |
496 | } |
Line 492... | Line 497... | ||
492 | 497 | ||
493 | 498 | ||
494 | 499 | ||
495 | inline Sorting() |
500 | inline Sorting() |
496 | { |
501 | { |
497 | dword k=0, l=1; |
502 | dword k=0, l=1; |
498 | IF (!strcmp(#path,"/")) {FOR(k=1;k |
503 | IF (!strcmp(#path,"/")) {FOR(k=1;k |
499 | FOR (j=kolichestvo-1, off=kolichestvo-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
504 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
500 | { |
505 | { |
501 | ChangeCase(off+40); |
506 | ChangeCase(off+40); |
502 | EAX=ESDWORD[off]; |
507 | EAX=ESDWORD[off]; |
503 | $shr eax,4 |
508 | $shr eax,4 |
504 | $and eax,1 |
509 | $and eax,1 |
505 | IF (EAX) {file_mas[k]=j; k++;} ELSE |
510 | IF (EAX) {file_mas[k]=j; k++;} ELSE |
506 | {file_mas[kolichestvo-l]=j; l++;} |
511 | {file_mas[count-l]=j; l++;} |
507 | } |
512 | } |
508 | //Ñîáñòâåííî ñîðòèðîâêà |
513 | //Ñîáñòâåííî ñîðòèðîâêà |
509 | Sort_by_Name(0,k-1); |
514 | Sort_by_Name(0,k-1); //ñîðòèðóåì ïàïêè, íèæå - ôàéëû |
510 | IF (sort_num==1) Sort_by_Name(k,kolichestvo-1); |
515 | IF (sort_num==1) Sort_by_Name(k,count-1); |
511 | IF (sort_num==2) Sort_by_Type(k, kolichestvo-1); |
516 | IF (sort_num==2) Sort_by_Type(k, count-1); |
512 | IF (sort_num==3) Sort_by_Size(k,kolichestvo-1); |
517 | IF (sort_num==3) Sort_by_Size(k,count-1); |
Line 569... | Line 574... | ||
569 | copystr(#copy_file,#file_path); |
574 | copystr(#copy_file,#file_path); |
570 | Del_File(true); |
575 | Del_File(true); |
571 | copy_file=''; |
576 | copy_file=''; |
572 | cut_active=0; |
577 | cut_active=0; |
573 | } |
578 | } |
574 | Open_Dir(#path,1); |
579 | SelectFile(#copy_file+find_symbol(#copy_file,'/')); |
575 | } |
580 | } |
Line 576... | Line 581... | ||
576 | 581 | ||
577 | 582 | ||
Line 598... | Line 603... | ||
598 | { |
603 | { |
599 | DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xE4DFE1); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ |
604 | DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xE4DFE1); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ |
600 | copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü |
605 | copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü |
601 | dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê |
606 | dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê |
602 | copystr(i*304+ devbuf+72, #dev_name); |
607 | copystr(i*304+ devbuf+72, #dev_name); |
- | 608 | IF (dev_name[0]=='r') { dev_icon=0; copystr("RAM-disk /rd/1",#drive_name); } |
|
- | 609 | IF (dev_name[0]=='c') { dev_icon=1; copystr("CD-drive /",#drive_name); } |
|
603 | IF (dev_name[0]=='f') { copystr("Floppy disk /",#drive_name); dev_icon=2; } |
610 | IF (dev_name[0]=='f') { dev_icon=2; copystr("Floppy disk /",#drive_name); } |
604 | IF (dev_name[0]=='h') copystr("Hard disk drive /",#drive_name); |
611 | IF (dev_name[0]=='h') copystr("Hard disk drive /",#drive_name); |
605 | IF (dev_name[0]=='b') copystr("SATA disk drive /",#drive_name); |
612 | IF (dev_name[0]=='b') copystr("SATA disk drive /",#drive_name); |
606 | IF (dev_name[0]=='c') {copystr("CD-drive /",#drive_name); dev_icon=1;} |
- | |
- | 613 | // |
|
607 | copystr(#dev_name,#drive_name+strlen(#drive_name)); |
614 | IF (dev_icon<>0) copystr(#dev_name,#drive_name+strlen(#drive_name)); |
608 | copystr("/",#drive_name+strlen(#drive_name)); |
615 | copystr("/",#drive_name+strlen(#drive_name)); |
609 | IF (dev_name[0]=='r') { copystr("RAM-disk /rd/1/",#drive_name); dev_icon=0; } |
- | |
- | 616 | // |
|
610 | WriteText(45,i*16+79,0x80,0,#drive_name,0); |
617 | WriteText(45,i*16+79,0x80,0,#drive_name,0); |
611 | PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76); |
618 | PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76); |
612 | } |
619 | } |
613 | Actions(); //ôóíêöèè ôàéëîâ è ïàïîê |
620 | Actions(); //ôóíêöèè ôàéëîâ è ïàïîê |
614 | Preview(); |
- | |
615 | } |
621 | } |
Line 616... | Line 622... | ||
616 | 622 | ||
617 | 623 | ||
Line 638... | Line 644... | ||
638 | { |
644 | { |
639 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
645 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
640 | Tip(dev_num*16+90, "Actions", 77, "\x18"); |
646 | Tip(dev_num*16+90, "Actions", 77, "\x18"); |
641 | DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå |
647 | DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå |
642 | } |
648 | } |
643 | } |
- | |
644 | - | ||
645 | - | ||
646 | void Dir_Up() |
- | |
647 | { |
- | |
648 | char temp_[256]; |
- | |
649 | i=strlen(#path)-1; |
- | |
650 | path[i]=0x00; |
- | |
651 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
- | |
652 | path[i+1]=0x00; |
- | |
653 | ChangeCase(#temp_); |
- | |
654 | za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
- | |
655 | Open_Dir(#path,2); |
- | |
656 | FOR (i=kolichestvo-1; i>0; i--;) IF(strcmp(file_mas[i]*304+buf+72,#temp_)==0) BREAK; |
- | |
657 | // |
- | |
658 | if (i>kolichestvo-but_num) |
- | |
659 | { |
- | |
660 | za_kadrom=kolichestvo-but_num; |
- | |
661 | curbtn=i-kolichestvo+but_num; |
- | |
662 | } |
- | |
663 | ELSE FileList_ReDraw(i); |
- | |
664 | List_ReDraw(); |
649 | Preview(); |
665 | } |
650 | } |
Line 666... | Line 651... | ||
666 | 651 | ||
667 | 652 | ||
Line 672... | Line 657... | ||
672 | DeleteButton(78); |
657 | DeleteButton(78); |
673 | if (show_preview==1) |
658 | if (show_preview==1) |
674 | { |
659 | { |
675 | Tip(top_pr,"Preview",78,"\x19"); |
660 | Tip(top_pr,"Preview",78,"\x19"); |
676 | DrawBar(17,top_pr+18,160,100,0xFFFFFF); //áåëîå |
661 | DrawBar(17,top_pr+18,160,100,0xFFFFFF); //áåëîå |
- | 662 | DrawBar(17,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå |
|
- | 663 | // |
|
677 | WriteText(25,top_pr+30,0x80,0,"Number of files:",0); WriteText(135,top_pr+30,0x80,0,IntToStr(kolichestvo),0); |
664 | WriteText(25,top_pr+30,0x80,0,"Number of files:",0); WriteText(135,top_pr+30,0x80,0,IntToStr(count),0); |
678 | /*WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0); |
665 | WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0); |
679 | WriteText(30,top_pr+50,0x80,0,"curbtn",0); WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0); |
666 | WriteText(30,top_pr+50,0x80,0,"curbtn",0); WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0); |
680 | WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0); WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0); |
667 | WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0); WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0); |
681 | WriteText(30,top_pr+70,0x80,0,#file_path,0); |
668 | WriteText(30,top_pr+70,0x80,0,#file_path,0); |
682 | WriteText(30,top_pr+80,0x80,0,#file_name,0);*/ |
669 | WriteText(30,top_pr+80,0x80,0,#file_name,0); |
683 | //WriteText(30,top_pr+60,0x80,0,"Not realized... I think",0); |
- | |
684 | //WriteText(30,top_pr+70,0x80,0,"it will be realired soon.",0); |
- | |
685 | DrawBar(17,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå |
- | |
686 | } |
670 | } |
687 | ELSE |
671 | ELSE |
688 | { |
672 | { |
689 | Tip(top_pr,"Preview",78,"\x18"); |
673 | Tip(top_pr,"Preview",78,"\x18"); |
690 | DrawBar(17,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå |
674 | DrawBar(17,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå |
Line 695... | Line 679... | ||
695 | void Goto_edit_path() |
679 | void Goto_edit_path() |
696 | { |
680 | { |
697 | IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
681 | IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
698 | IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
682 | IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
699 | Open_Dir(#edit_path,0); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
683 | Open_Dir(#edit_path,0); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
700 | IF (kolichestvo==-1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà |
684 | IF (count<1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà |
701 | {za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
685 | {za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
702 | Open_Dir(#path,1); |
686 | Open_Dir(#path,1); |
703 | } |
687 | } |
Line -... | Line 688... | ||
- | 688 | ||
- | 689 | void SelectFile(dword that_file) |
|
- | 690 | { |
|
- | 691 | za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
|
- | 692 | Open_Dir(#path,2); |
|
- | 693 | ChangeCase(that_file); |
|
- | 694 | FOR (i=count-1; i>=0; i--;) IF(strcmp(file_mas[i]*304+buf+72,that_file)==0) BREAK; |
|
- | 695 | IF (i>but_num-1) && (i>count-but_num) |
|
- | 696 | { |
|
- | 697 | za_kadrom=count-but_num; |
|
- | 698 | curbtn=i-count+but_num; |
|
- | 699 | } |
|
- | 700 | ELSE FileList_ReDraw(i); |
|
- | 701 | List_ReDraw(); |
|
- | 702 | } |
|
- | 703 | ||
- | 704 | ||
- | 705 | void Dir_Up() |
|
- | 706 | { |
|
- | 707 | char temp_[256]; |
|
- | 708 | i=strlen(#path)-1; |
|
- | 709 | path[i]=0x00; |
|
- | 710 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
|
- | 711 | path[i+1]=0x00; |
|
- | 712 | SelectFile(#temp_); |
|
Line 704... | Line 713... | ||
704 | 713 | } |
|
705 | 714 | ||
706 | - | ||
707 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
715 | |
708 | { |
- | |
709 | //char old_dir[256]=''; |
- | |
710 | i=strlen(#PathHistory)-2; |
- | |
711 | // |
- | |
712 | //WHILE (PathHistory[i]<>'/') { copystr(#PathHistory[i],#old_dir); i--; }; |
- | |
713 | //old_dir[strlen(#old_dir)-1]=0x00; |
- | |
714 | //DrawTitle(#old_dir); |
716 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
715 | // |
717 | { |
716 | WHILE (PathHistory[i]<>'|') { i--; }; |
718 | i=strlen(#PathHistory)-1; |
717 | IF (i>0) PathHistory[i]=0x00; |
719 | PathHistory[i]=0x00; |
718 | WHILE (PathHistory[i]<>'|') { copystr(#PathHistory[i],#path); i--; } |
- | |
719 | IF (i>0) PathHistory[i]=0x00; |
720 | copystr(#PathHistory+find_symbol(#PathHistory,'/'),#temp); //ïàïêà â êîòîðîé áûëè |
Line 720... | Line 721... | ||
720 | za_kadrom=curbtn=0; Open_Dir(#path,1); |
721 | HistoryPath(go_back); |