Rev 944 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 944 | Rev 975 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | //Leency & Veliant -=- KolibriOS Team -=- 2008 |
1 | //Leency & Veliant -=- KolibriOS Team -=- 2008 |
Line -... | Line 2... | ||
- | 2 | ||
- | 3 | //ñòðîêà 258, êåéàï! |
|
- | 4 | //âîçìîæíî, áàã â KEdit |
|
- | 5 | //find_symbol íàäî ÷èòàòü ñ êîíöà |
|
- | 6 | //335 ñòðîêà |
|
- | 7 | //PathHistory áëÿ íàäî API äëÿ ðàáîòû ñ èñòîðèåé, â ò.÷. ïðîâåðÿòü íå ðàâíà ëè íîâàÿ ïàïêà ïðåäûäóùåé |
|
- | 8 | //DrawBar(sort_num[1],45,6,9,0xE4DFE1); |
|
2 | 9 | ||
3 | #codesize |
10 | #codesize |
4 | #include "lib\kolibri.h--" |
11 | #include "lib\kolibri.h--" |
5 | #include "lib\memory.h--" |
12 | #include "lib\memory.h--" |
6 | #include "lib\edit_box_lib.h--" |
13 | #include "lib\edit_box_lib.h--" |
7 | #include "lib\file_system.h--" |
14 | #include "lib\file_system.h--" |
8 | #include "imgs\toolbar.txt" |
15 | #include "imgs\toolbar.txt" |
Line 9... | Line 16... | ||
9 | #include "imgs\left_p.txt" |
16 | #include "imgs\left_p.txt" |
10 | 17 | ||
11 | //ëîêàëèçàöèÿ è íàñòðîéêè |
18 | //ëîêàëèçàöèÿ è íàñòðîéêè |
12 | #define header "Eolite File Manager v0.97.2" |
19 | #define header "Eolite File Manager v0.98.2" |
13 | #define videlenie 0x94AECE //0x94AECE,0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
20 | #define videlenie 0x94AECE //0x94AECE,0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
- | 21 | byte toolbar_buttons_x[6]={9,46,85,134,167,203}; |
|
14 | byte toolbar_buttons_x[6]={14,51,90,139,172,208}; |
22 | // |
- | 23 | dword but_num, |
|
- | 24 | kolichestvo, |
|
- | 25 | za_kadrom, |
|
- | 26 | curbtn, |
|
15 | // |
27 | razm_scrl; |
- | 28 | byte cut_active, |
|
16 | dword but_num, kolichestvo, za_kadrom, curbtn, razm_scrl; |
29 | rename_active, |
- | 30 | del_active; |
|
- | 31 | byte show_actions=1, |
|
- | 32 | show_preview=0, |
|
17 | byte cut_active, rename_active, del_active; |
33 | sort_num=2, |
- | 34 | isdir; |
|
18 | byte show_actions=1, show_preview=0, sort_num=1, isdir; |
35 | char path[256]="/rd/1/", |
19 | char path[256]="/rd/1/", edit_path[256], PathHistory[2560], temp[256]; //äëÿ ïóòåé |
36 | edit_path[256], |
- | 37 | file_path[256], |
|
- | 38 | file_name[256], |
|
- | 39 | copy_file[256], |
|
- | 40 | temp[256]; |
|
20 | char file_path[256], file_name[256]; //äëÿ ôàéëîâ |
41 | char PathHistory[2560]; |
21 | char copyfile[256],copy_name[256]; //êîïèðîâàíèå |
42 | |
- | 43 | dword file_mas[6898]; |
|
22 | dword file_mas[6898]; //ñïèñîê ôàéëîâ |
44 | int temp_int, j, i; |
Line 23... | Line 45... | ||
23 | int temp_int, j, i; |
45 | |
24 | dword stak[100]=0; //îêíî About |
46 | dword stak[100]=0; //îêíî About |
Line 25... | Line 47... | ||
25 | 47 | ||
26 | edit_box edit1= {250,252,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6}; |
48 | edit_box edit1= {250,247,17,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,64,6,6}; |
27 | edit_box edit2= {250,218,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6}; |
49 | edit_box edit2= {250,213,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,64,6,6}; |
28 | 50 | ||
- | 51 | proc_info Form; |
|
29 | proc_info Form; |
52 | dword buf=0, off; //äëÿ òåêñòà è áóôåðà |
Line 30... | Line -... | ||
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); |
53 | dword devbuf=0, dev_num; |
45 | pLoadedImage=loadimage_viaIPC(ipath, #CurrentImage); |
54 | #include "include\LVabout.h--" |
46 | SetEventMask(100111b); //restore normal event mask |
55 | #include "include\sorting.h--" |
47 | } |
56 | #include "include\icons_f.h--" |
48 | 57 | ||
- | 58 | ||
49 | 59 | void main() |
|
50 | void main() |
60 | byte key, id; |
51 | byte pressed, key, id; |
61 | mouse m; |
52 | mouse m; |
- | |
53 | int pressed_y; |
62 | int pressed_y; |
54 | { |
- | |
55 | devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè |
63 | { |
56 | ReadDir(10, devbuf, "/"); |
64 | load_editbox_lib(); |
57 | dev_num=EBX; |
65 | devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè |
58 | load_dll(); //ïîäãðóæàåò ëèáó ñ åäèò_áîêñîì |
66 | ReadDir(10, devbuf, "/"); |
59 | IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();} |
67 | dev_num=EBX; |
60 | Open_Dir(#path,2); |
- | |
61 | loop() |
68 | IF (param[0]<>'') {copystr(#param,#edit_path); Goto_edit_path();} ELSE Open_Dir(#path,2); //áûë ëè çàïóñê ñ ïàðàìåòðîì |
62 | { |
69 | loop() |
- | 70 | { |
|
- | 71 | switch(WaitEvent()) |
|
- | 72 | { |
|
- | 73 | CASE evMouse: |
|
- | 74 | IF (del_active==1) break; |
|
63 | switch(WaitEvent()) |
75 | m.get(); |
- | 76 | ||
- | 77 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57) |
|
- | 78 | { |
|
- | 79 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF); |
|
- | 80 | WHILE (m.lkm==1) && (za_kadrom>0) |
|
- | 81 | { |
|
- | 82 | Pause(10); |
|
- | 83 | za_kadrom--; |
|
- | 84 | List_ReDraw(); |
|
- | 85 | m.get(); |
|
- | 86 | } |
|
- | 87 | DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7); |
|
- | 88 | } |
|
- | 89 | ||
- | 90 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y |
|
- | 91 | { |
|
- | 92 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF); |
|
- | 93 | while (m.lkm==1) && (za_kadrom |
|
- | 94 | { |
|
- | 95 | Pause(10); |
|
- | 96 | za_kadrom++; |
|
- | 97 | List_ReDraw(); |
|
64 | { |
98 | m.get(); |
65 | CASE evMouse: |
99 | } |
66 | id = 0; |
100 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
67 | IF (del_active==1) break; |
- | |
68 | m.get(); |
- | |
69 | // |
101 | } |
70 | IF (vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1); |
- | |
71 | IF (vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1); |
102 | |
- | 103 | //êîë¸ñèêî ìûøè |
|
72 | //ñêðîëë |
104 | IF (vert==65535) IF (curbtn==0) FileList_ReDraw(-3); ELSE FileList_ReDraw(-1); |
73 | IF (razm_scrl/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=razm_scrl/2+57; //åñëè êóðñîð íàä îêíîì |
105 | IF (vert==1) IF (curbtn==but_num-1) FileList_ReDraw(3); ELSE FileList_ReDraw(1); |
74 | IF (m.lkm==0) pressed=0; ELSE |
106 | //ñêðîëë |
75 | IF (m.x>=Form.width-21) && (m.x<=Form.width-6) pressed=1; |
107 | if (m.x>=Form.width-21) && (m.x<=Form.width-6) while (m.lkm) |
76 | IF (pressed==1) |
108 | { |
- | 109 | IF (razm_scrl/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=razm_scrl/2+57; //åñëè êóðñîð íàä îêíîì |
|
77 | { |
110 | temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
78 | temp_int=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
111 | j= razm_scrl/2; |
79 | j= razm_scrl/2; |
112 | za_kadrom = m.y -j -57 * kolichestvo / onTop(22,57); |
80 | za_kadrom = m.y -j -57 * kolichestvo / onTop(22,57); |
113 | IF (but_num+za_kadrom>kolichestvo) za_kadrom=kolichestvo-but_num; |
81 | IF (but_num+za_kadrom>kolichestvo) za_kadrom=kolichestvo-but_num; |
114 | IF (temp_int<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
Line 96... | Line 129... | ||
96 | CASE 25: goto CTRLC_MARK; //copy |
129 | CASE 25: goto CTRLC_MARK; //copy |
97 | CASE 26: Paste(); break;//paste |
130 | CASE 26: Paste(); break;//paste |
98 | CASE 27: Goto_edit_path(); break; //goto edit_path |
131 | CASE 27: Goto_edit_path(); break; //goto edit_path |
99 | CASE 31...33: //sort |
132 | CASE 31...33: //sort |
100 | IF (sort_num==id-30) break; |
133 | IF (sort_num==id-30) break; |
101 | IF(sort_num==1)DrawBar(onLeft(197,163)/2+215,45,6,9,0xE4DFE1); |
134 | IF(sort_num==1)DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1); |
102 | IF(sort_num==2)DrawBar(onLeft(110,0),45,6,9,0xE4DFE1); |
135 | IF(sort_num==2)DrawBar(onLeft(115,0),45,6,9,0xE4DFE1); |
103 | IF(sort_num==3)DrawBar(onLeft(39,0),45,6,9,0xE4DFE1); |
136 | IF(sort_num==3)DrawBar(onLeft(44,0),45,6,9,0xE4DFE1); |
104 | sort_num=id-30; |
137 | sort_num=id-30; |
105 | Open_Dir(#path,1); |
138 | Open_Dir(#path,1); |
106 | break; |
139 | break; |
107 | case 30: //about |
140 | case 30: //about |
108 | EAX = 51; EBX = 1; |
- | |
109 | ECX = #authors; EDX = #stak; |
141 | CreateThread(#authors,#stak); |
110 | $int 40h; |
- | |
111 | break; |
- | |
112 | case 50: //ñòðåëêà ââåðõ íà ñêðîëå |
- | |
113 | FileList_ReDraw(-1); |
- | |
114 | break; |
- | |
115 | case 51: //ñòðåëêà âíèç íà ñêðîëå |
- | |
116 | FileList_ReDraw(1); |
- | |
117 | break; |
142 | break; |
118 | case 78: //preview |
143 | case 78: //preview |
119 | IF (show_preview==1) show_preview=0; ELSE show_preview=1; |
144 | IF (show_preview==1) show_preview=0; ELSE show_preview=1; |
120 | Preview(); |
145 | Preview(); |
121 | break; |
146 | break; |
Line 134... | Line 159... | ||
134 | copystr("New folder", #temp+strlen(#temp)); |
159 | copystr("New folder", #temp+strlen(#temp)); |
135 | CreateFolder(#temp); |
160 | CreateFolder(#temp); |
136 | za_kadrom=curbtn=0; |
161 | za_kadrom=curbtn=0; |
137 | Open_Dir(#path,1); |
162 | Open_Dir(#path,1); |
138 | FOR (i=0; i |
163 | FOR (i=0; i |
139 | IF (strcmp("New folder",file_mas[i]*304+buf+72)==0) {IF(!strcmp("..",buf+72+304))i--; FileList_ReDraw(i); break;} |
164 | IF (strcmp("New folder",file_mas[i]*304+buf+72)==0) {FileList_ReDraw(i); break;} |
140 | goto REN_MARK; |
165 | goto REN_MARK; |
141 | case 100...120: |
166 | case 100...120: |
142 | DEVICE_MARK: |
167 | DEVICE_MARK: |
143 | copystr(id-100*304+ devbuf+72, #path); |
168 | copystr(id-100*304+ devbuf+72, #path); |
144 | IF (path[0]=='r') copystr("/rd/1",#file_path); |
169 | IF (path[0]=='r') copystr("/rd/1",#file_path); |
145 | ELSE { |
170 | ELSE { |
146 | copystr("/", #file_path); |
171 | copystr("/", #file_path); |
147 | copystr(#path, #file_path+strlen(#file_path)); |
172 | copystr(#path, #file_path+strlen(#file_path)); |
148 | } |
173 | } |
149 | goto OPEN_DEV; |
174 | GOTO OPEN_DEV; |
150 | default: |
175 | default: |
151 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
176 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
152 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
177 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
153 | else OPEN_MARK: |
178 | else OPEN_MARK: |
154 | if (!isdir) Run_File(#file_path); else |
179 | if (!isdir) Run_File(#file_path); else |
155 | if (strcmp(za_kadrom+curbtn+1*304 + buf+72,"..")==0) Dir_Up(); else |
180 | if (strcmp(#file_name,"..")==0) Dir_Up(); else |
156 | { OPEN_DEV: |
181 | { OPEN_DEV: |
157 | copystr(#file_path, #path); |
182 | copystr(#file_path, #path); |
158 | copystr("/", #path+strlen(#path)); |
183 | copystr("/", #path+strlen(#path)); |
159 | DrawBar(197,curbtn*18+57,onLeft(22,197),18,0xFFFFFF); //çàêðàøèâàåì ñòàðîå âûäåëåíèå |
- | |
160 | za_kadrom=curbtn=0; |
184 | za_kadrom=curbtn=0; |
161 | Open_Dir(#path,1); |
185 | Open_Dir(#path,1); |
162 | } |
186 | } |
163 | break; |
- | |
164 | } |
187 | } |
165 | break; |
188 | break; |
166 | //Key pressed----------------------------------------------------------------------------- |
189 | //Key pressed----------------------------------------------------------------------------- |
167 | case evKey: |
190 | case evKey: |
168 | key = GetKey(); |
191 | key = GetKey(); |
Line 174... | Line 197... | ||
174 | } |
197 | } |
175 | IF (edit1.flags<>64) && (key<>13) {EAX=key<<8; edit_box_key stdcall (#edit1); break;} |
198 | IF (edit1.flags<>64) && (key<>13) {EAX=key<<8; edit_box_key stdcall (#edit1); break;} |
176 | IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;} |
199 | IF (edit2.flags<>64) && (key<>13) && (key<>27) {EAX=key<<8; edit_box_key stdcall (#edit2); break;} |
177 | switch (key) |
200 | switch (key) |
178 | { |
201 | { |
179 | case 209...217: id=key-109; IF(dev_num>id-100)GOTO DEVICE_MARK; break; |
202 | case 209...217: id=key-109; GOTO DEVICE_MARK; |
180 | case 8: GoBack(); break; //Íàçàä |
203 | case 8: GoBack(); break; //Íàçàä |
181 | case 014: MoveSize(80,80,OLD,OLD); RunProgram("/sys/File Managers/Eolite", #path); break; //íîâîå îêíî |
204 | case 014: MoveSize(80,80,OLD,OLD); RunProgram("/sys/File Managers/Eolite", #path); break; //íîâîå îêíî |
182 | case 024: //Ctrl+X cut |
205 | case 024: //Ctrl+X cut |
183 | case 089: //Ctrl+Ins copy |
206 | case 089: //Ctrl+Ins copy |
184 | case 003: //Ctrl+C copy |
207 | case 003: //Ctrl+C copy |
185 | CTRLC_MARK: |
208 | CTRLC_MARK: |
186 | IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì |
209 | IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì |
187 | copystr(#file_name,#copy_name); |
- | |
188 | copystr(#file_path,#copyfile); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
210 | copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
189 | IF (key==24) cut_active=1; ELSE cut_active=0; |
211 | IF (key==24) cut_active=1; ELSE cut_active=0; |
190 | break; |
212 | break; |
191 | case 022: Paste(); break;//Ctrl+V paste |
213 | case 022: Paste(); break;//Ctrl+V paste |
192 | case 027: //Esc |
214 | case 027: //Esc |
193 | IF (rename_active==1) {Line_ReDraw(videlenie, 100);} |
215 | IF (rename_active==1) {Line_ReDraw(videlenie, 100);} |
Line 208... | Line 230... | ||
208 | break; |
230 | break; |
209 | case 180: //home |
231 | case 180: //home |
210 | FileList_ReDraw(-za_kadrom-curbtn); |
232 | FileList_ReDraw(-za_kadrom-curbtn); |
211 | break; |
233 | break; |
212 | case 181: //end |
234 | case 181: //end |
213 | FileList_ReDraw(kolichestvo-za_kadrom-curbtn+but_num); |
235 | FileList_ReDraw(kolichestvo-za_kadrom-curbtn+but_num-1); |
214 | break; |
236 | break; |
215 | case 183: //Page Down |
237 | case 183: //Page Down |
216 | FileList_ReDraw(but_num-1); |
238 | FileList_ReDraw(but_num-1); |
217 | break; |
239 | break; |
218 | case 184: //Page Up |
240 | case 184: //Page Up |
219 | FileList_ReDraw(-but_num+1); |
241 | FileList_ReDraw(-but_num+1); |
220 | break; |
242 | break; |
221 | case 051: //Íàæàòà F2 |
243 | case 051: //Íàæàòà F2 |
222 | REN_MARK: |
244 | REN_MARK: |
223 | //IF (isdir==1) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì |
- | |
224 | edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì |
- | |
225 | DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ |
245 | DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ |
- | 246 | edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì |
|
226 | edit2.width=onLeft(24,217); |
247 | edit2.width=onLeft(24,217); |
227 | edit2.top=curbtn*18+59+skin_width; |
248 | edit2.top=curbtn*18+59; |
228 | edit2.size=strlen(#file_name); edit2.pos=strlen(#file_name); |
249 | edit2.size=edit2.pos=strlen(#file_name); |
229 | edit_box_draw stdcall (#edit2); |
250 | edit_box_draw stdcall (#edit2); |
230 | DrawBar(218,curbtn*18+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè |
251 | DrawBar(213,curbtn*18+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè |
231 | rename_active=1; |
252 | rename_active=1; |
232 | break; |
253 | break; |
233 | case 052: //Íàæàòà F3 |
254 | case 052: //Íàæàòà F3 |
234 | IF (isdir==false) RunProgram("/sys/tinypad", #file_path); break; |
255 | IF (isdir==false) RunProgram("/sys/tinypad", #file_path); |
- | 256 | break; |
|
- | 257 | case 054: //F5 |
|
235 | case 054: Open_Dir(#path,1); break; //ïåðåðèñîâàòü îêíî F5 |
258 | Open_Dir(#path,1); |
- | 259 | break; |
|
236 | case 182: Del_Form(); break; //delete file |
260 | case 182: //delete file |
- | 261 | Del_Form(); |
|
- | 262 | break; |
|
237 | default: |
263 | default: |
238 | IF (strcmp("..",buf+72+304)<>0) temp_int=0; ELSE temp_int=1; |
- | |
239 | for (i=curbtn+za_kadrom+1; i |
264 | FOR (i=curbtn+za_kadrom+1; i |
240 | { |
265 | { |
241 | copystr(file_mas[i+temp_int]*304+buf+72,#temp); |
266 | copystr(file_mas[i]*304+buf+72,#temp); |
242 | AL=DSBYTE[#temp]; |
267 | AL=DSBYTE[#temp]; |
243 | IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; |
268 | IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; |
244 | IF (temp[0]==key) {FileList_ReDraw(i-curbtn-za_kadrom); break;} |
269 | IF (temp[0]==key) {FileList_ReDraw(i-curbtn-za_kadrom); break;} |
245 | } |
270 | } |
246 | } |
271 | } |
247 | break; |
272 | BREAK; |
248 | case evReDraw: draw_window(); BREAK; |
273 | case evReDraw: draw_window(); |
249 | } |
274 | } |
250 | IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
275 | IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
251 | } |
276 | } |
252 | } |
277 | } |
Line 253... | Line 278... | ||
253 | 278 | ||
254 | 279 | ||
255 | inline fastcall void draw_window() |
280 | inline fastcall void draw_window() |
256 | { |
281 | { |
257 | WindowRedrawStatus(1); |
282 | WindowRedrawStatus(1); |
258 | skin_width = GetSkinWidth(); |
283 | skin_width = GetSkinWidth(); |
259 | DefineAndDrawWindow(100,100,600,410,0x43,0x10E4DFE1,0,0,header); |
284 | DefineAndDrawWindow(100,100,600,410,0x73,0x10E4DFE1,0,0,header); |
260 | Form.GetInfo(SelfInfo); |
285 | Form.GetInfo(SelfInfo); |
261 | IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //ýòî çà÷¸ò! |
286 | IF (Form.height==skin_width+3) {WindowRedrawStatus(2); return;} //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
262 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
287 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
263 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
288 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
264 | //toolbar buttons |
289 | //toolbar buttons |
265 | PutPaletteImage(#toolbar,246,39,5,0,#toolbar_pal); |
290 | PutPaletteImage(#toolbar,246,39,0,0,#toolbar_pal); |
266 | FOR (j=0; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1); |
291 | FOR (j=0; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1); |
267 | //ïîëîñà àäðåñà |
292 | //ïîëîñà àäðåñà |
268 | DrawBar(251,0,onLeft(251,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà |
293 | DrawBar(246,0,onLeft(246,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà |
269 | edit1.width=Form.width-314; |
294 | edit1.width=Form.width-314; |
270 | edit1.top=13+skin_width; |
295 | edit1.top=13; |
271 | KEdit(); |
296 | KEdit(); |
272 | DrawRegion(251,12,onLeft(61,251),16,0x94AECE); //îáîäîê |
297 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
273 | DrawBar(251,29,onLeft(251,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
298 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
274 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
299 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
275 | DefineButton(onLeft(61,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
300 | DefineButton(onLeft(61,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
276 | PutPaletteImage(#goto_about,56,40,Form.width-60,0,#goto_about_pal); |
301 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
277 | //ïðÿìîóãîëüíèêè âíóòðè |
302 | //ïðÿìîóãîëüíèêè âíóòðè |
278 | DrawRegion(6,40,Form.width-12,Form.height-skin_width-46,0x94AECE); //ñèíèé îáîäîê |
303 | DrawRegion_3D(1,40,Form.width-12,Form.height-skin_width-46,0x94AECE,0x94AECE); //ñèíèé îáîäîê |
279 | DrawRegion(5,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1); //ôîí |
304 | DrawRegion_3D(0,39,Form.width-10,Form.height-skin_width-44,0xE4DFE1,0xE4DFE1); //ôîí |
280 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
305 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
281 | //Buttons |
306 | //SortButtons |
282 | DrawFlatButton(197,40,onLeft(197,163),16,31,0xE4DFE1,"File"); |
307 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
283 | DrawFlatButton(onLeft(163,0),40,73,16,32,0xE4DFE1,"Type"); |
- | |
284 | DrawFlatButton(onLeft(90,0),40,68,16,33,0xE4DFE1,"Size"); |
- | |
285 | IF (sort_num==1) WriteText(onLeft(197,163)/2+197+18,45,0x80,0x4E78AC,"\x19",0); |
- | |
286 | ELSE IF (sort_num==2) WriteText(onLeft(110,0),45,0x80,0x4E78AC,"\x19",0); |
308 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
287 | ELSE WriteText(onLeft(39,0),45,0x80,0x4E78AC,"\x19",0); |
309 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
288 | //ïðîêðóòêà |
310 | //ïðîêðóòêà |
289 | DrawFlatButton(onLeft(22,0),40,16,16,50,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
- | |
290 | DrawFlatButton(onLeft(22,0),onTop(22,0),16,16,51,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
311 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
291 | // |
312 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
292 | //DrawBar(197,57,onLeft(22,197),onTop(57,6),0xFFFFFF); //çàëèâêà áåëûì |
- | |
293 | // |
- | |
294 | DrawBar(onLeft(22,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
- | |
295 | but_num=onTop(6,57)/18; |
- | |
296 | IF (but_num>100) but_num=1; ELSE IF (kolichestvo |
313 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
297 | FOR (j=0;j |
- | |
298 | List_ReDraw(); |
314 | // |
299 | IF (del_active==1) Del_Form(); |
315 | Open_Dir(#path,3); |
300 | // |
316 | // |
Line 309... | Line 325... | ||
309 | } |
325 | } |
Line 310... | Line 326... | ||
310 | 326 | ||
311 | 327 | ||
312 | inline fastcall void TVScroll() { //Ïðîêðóòêà |
328 | inline fastcall void TVScroll() { //Ïðîêðóòêà |
313 | dword on_y; |
329 | dword on_y; |
314 | IF (kolichestvo<=0) {DrawFlatButton(onLeft(22,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;} |
330 | IF (kolichestvo<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;} |
315 | on_y = za_kadrom * onTop(22,57) / kolichestvo +57; |
331 | on_y = za_kadrom * onTop(22,57) / kolichestvo +57; |
316 | razm_scrl=onTop(22,57) * but_num - but_num / kolichestvo; |
332 | razm_scrl=onTop(22,57) * but_num - but_num / kolichestvo; |
317 | IF (razm_scrl<20) razm_scrl = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
333 | IF (razm_scrl<20) razm_scrl = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
318 | IF (razm_scrl>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=kolichestvo) on_y=onTop(23+razm_scrl,0); //äëÿ áîëüøîãî ñïèñêà |
334 | IF (razm_scrl>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=kolichestvo) on_y=onTop(23+razm_scrl,0); //äëÿ áîëüøîãî ñïèñêà |
319 | DrawFlatButton(onLeft(22,0),on_y,16,razm_scrl,0,0xE4DFE1,"");//ïîëçóíîê |
335 | DrawFlatButton(onLeft(27,0),on_y,16,razm_scrl,0,0xE4DFE1,"");//ïîëçóíîê |
320 | DrawBar(onLeft(21,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà |
336 | DrawBar(onLeft(26,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà |
Line 321... | Line 337... | ||
321 | DrawBar(onLeft(21,0),on_y+razm_scrl+1,15,onTop(22,57)-razm_scrl-on_y+56,0xCED0D0); //ïîëå ïîñëå ïîëçóíêà |
337 | DrawBar(onLeft(26,0),on_y+razm_scrl+1,15,onTop(22,57)-razm_scrl-on_y+56,0xCED0D0); //ïîëå ïîñëå ïîëçóíêà |
322 | } |
338 | } |
Line 353... | Line 369... | ||
353 | return; |
369 | return; |
354 | } |
370 | } |
355 | ELSE |
371 | ELSE |
356 | { |
372 | { |
357 | IF(but_num+za_kadrom+curbtn_>=kolichestvo) za_kadrom=kolichestvo-but_num; ELSE za_kadrom+=curbtn_+curbtn-but_num+1; |
373 | IF(but_num+za_kadrom+curbtn_>=kolichestvo) za_kadrom=kolichestvo-but_num; ELSE za_kadrom+=curbtn_+curbtn-but_num+1; |
358 | curbtn=but_num; |
374 | curbtn=but_num-1; |
359 | List_ReDraw(); |
375 | List_ReDraw(); |
360 | } |
376 | } |
361 | } |
377 | } |
362 | } |
378 | } |
Line 363... | Line 379... | ||
363 | 379 | ||
364 | 380 | ||
365 | void List_ReDraw() |
381 | void List_ReDraw() |
366 | { |
- | |
367 | IF (kolichestvo-za_kadrom |
382 | { |
368 | { za_kadrom=kolichestvo-but_num; DrawBar(197,curbtn*18+57,onLeft(22,197),18,0xFFFFFF); curbtn=but_num-1; } |
383 | IF (kolichestvo-za_kadrom |
369 | ELSE IF (curbtn>but_num-1) curbtn=but_num-1; //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
384 | { za_kadrom=kolichestvo-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
370 | // |
385 | // |
371 | FOR (j=0; j |
386 | FOR (j=0; j |
372 | temp_int=but_num*18+57; |
387 | temp_int=but_num*18+57; |
373 | DrawBar(197,temp_int,onLeft(22,197),onTop(temp_int,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
388 | DrawBar(192,temp_int,onLeft(27,192),onTop(temp_int,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
374 | DrawBar(onLeft(163,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
389 | DrawBar(onLeft(168,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
375 | DrawBar(onLeft(90,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
390 | DrawBar(onLeft(95,0),temp_int,1,onTop(temp_int,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
Line 376... | Line 391... | ||
376 | TVScroll(); |
391 | TVScroll(); |
377 | } |
392 | } |
378 | 393 | ||
379 | 394 | ||
380 | void Line_ReDraw(dword color, filenum){ |
395 | void Line_ReDraw(dword color, filenum){ |
381 | dword y;//ïîëîæåíèå òåêñòà ïî Y; |
396 | dword y;//ïîëîæåíèå òåêñòà ïî Y; |
382 | if (rename_active==1) |
397 | if (rename_active==1) |
383 | { |
398 | { |
384 | rename_active=0; |
399 | rename_active=0; |
385 | edit2.flags=64; |
400 | edit2.flags=64; |
386 | DefineButton(197,curbtn*18+57,onLeft(22,197),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
401 | DefineButton(192,curbtn*18+57,onLeft(27,192),18,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
387 | IF (filenum==100) filenum=curbtn; else |
402 | IF (filenum==100) filenum=curbtn; else |
388 | { |
403 | { |
389 | copystr(#path,#temp); |
404 | copystr(#path,#temp); |
390 | copystr(#file_name,#temp+strlen(#temp)); |
405 | copystr(#file_name,#temp+strlen(#temp)); |
391 | if (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0) |
406 | if (strcmp(#file_path,#temp)<>0) && (strlen(#file_name)>0) |
392 | IF (isdir) |
407 | IF (isdir) |
393 | { |
408 | { |
394 | //Del_File(true); |
409 | //Del_File(true); |
395 | DeleleFile(#file_path); |
410 | DeleleFile(#file_path); |
396 | IF (EAX<>0) {DrawFlatButton(Form.width-200+197/2,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);} |
411 | IF (EAX) {DrawFlatButton(Form.width-200+192/2,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);} |
397 | ELSE CreateFolder(#temp); |
412 | ELSE CreateFolder(#temp); |
398 | Open_Dir(#path,1); |
413 | Open_Dir(#path,1); |
399 | } |
414 | } |
400 | ELSE { CopyFile(#file_path,#temp); Del_File(true); } |
415 | ELSE { CopyFile(#file_path,#temp); Del_File(true); } |
401 | } |
416 | } |
402 | } |
- | |
403 | y=filenum*18+57; |
417 | } |
404 | //äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ |
- | |
405 | DrawBar(197,y,3,18,color); |
418 | y=filenum*18+57; |
406 | DrawBar(200,y,16,2,color); |
419 | //äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ |
407 | DrawBar(197+19,y,onLeft(22+19,197),18,color); |
420 | DrawBar(192,y,3,18,color); DrawBar(195,y,16,2,color); |
408 | DrawBar(200,y+17,16,1,color); |
421 | DrawBar(192+19,y,onLeft(46,192),18,color); DrawBar(195,y+17,16,1,color); |
409 | // |
422 | // |
410 | 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; |
423 | off=file_mas[filenum+za_kadrom]*304 + buf+72; |
411 | EAX=ESDWORD[off-40]; |
424 | EAX=ESDWORD[off-40]; |
412 | $shr eax,4 |
425 | $shr eax,4 |
413 | $and eax,1 |
426 | $and eax,1 |
414 | IF (color==videlenie) isdir=EAX; |
427 | IF (color==videlenie) isdir=EAX; |
415 | if (!EAX) |
428 | if (!EAX) |
416 | { |
429 | { |
417 | temp_int = Put_icon(off+strlen(off)-4, y+2); |
430 | temp_int = Put_icon(off+strlen(off)-4, y+2); |
418 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
431 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(70,0),y+6,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
419 | } ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon(" |
- | |
420 | if (color==videlenie) |
432 | } ELSE IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); ELSE temp_int=Put_icon(" |
- | 433 | if (color==videlenie) |
|
421 | { |
434 | { |
422 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
435 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
423 | copystr(#path,#file_path); |
436 | copystr(off,#file_name); |
424 | copystr(off,#file_name); |
437 | copystr(#path,#file_path); |
425 | copystr(off,#file_path+strlen(#file_path)); //èòàê, file_path=ôàéëó, ò.ê. ïî-óìîë÷àíèþ ýòî ïðîãà |
438 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
426 | /*IF (show_preview) && (!isdir) |
439 | /*IF (show_preview) && (!isdir) |
427 | { |
440 | { |
428 | GetImage(#file_path); |
441 | GetImage(#file_path); |
429 | j=dev_num*16+123; |
442 | j=dev_num*16+123; |
430 | j+=show_actions*51; |
443 | j+=show_actions*51; |
431 | IF (pLoadedImage<>0) DrawImage(#CurrentImage, 22*65536+j+skin_width+18); |
444 | IF (pLoadedImage<>0) DrawImage(#CurrentImage, 22*65536+j+skin_width+18); |
432 | }*/ |
445 | }*/ |
433 | } |
446 | } |
434 | temp_int = onLeft(220,160)/6; |
447 | temp_int = onLeft(215,160)/6; |
435 | IF (strlen(off) |
448 | IF (strlen(off) |
Line 436... | Line 449... | ||
436 | WriteText(220,y+6,0,0,off,temp_int); //èìÿ ôàéëà |
449 | WriteText(215,y+6,0,0,off,temp_int); //èìÿ ôàéëà |
- | 450 | DrawBar(onLeft(168,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
|
- | 451 | DrawBar(onLeft(95,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
|
- | 452 | } |
|
- | 453 | ||
- | 454 | ||
- | 455 | void Open_Dir(dword temp_, redraw){ |
|
437 | DrawBar(onLeft(163,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
456 | byte path_[256], somelen=strlen(temp_)-1; |
438 | DrawBar(onLeft(90,0),y,1,18,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
- | |
439 | } |
- | |
440 | 457 | if (redraw<>3) |
|
441 | 458 | { |
|
442 | void Open_Dir(dword path_,redraw){ |
- | |
443 | IF (buf) free(buf); |
459 | copystr(temp_, #path_); |
444 | //buf = malloc(2097152); |
460 | IF (somelen) path_[somelen]=0x00; |
445 | //ReadDir(6898, buf, path_); |
461 | // |
446 | buf = malloc(32); |
- | |
- | 462 | IF (buf) free(buf); |
|
447 | ReadDir(0, buf, path_); |
463 | buf = malloc(32); |
448 | EAX = buf + 8; |
464 | ReadDir(0, buf, #path_); |
449 | kolichestvo = ESDWORD[EAX]; |
465 | kolichestvo = ESDWORD[buf+8]; |
450 | buf = realloc(kolichestvo * 304 + 32, buf); |
466 | buf = realloc(kolichestvo * 304 + 32, buf); |
451 | ReadDir(kolichestvo, buf, path_); |
467 | ReadDir(kolichestvo, buf, #path_); |
452 | // |
468 | IF (EBX>6898) && (EBX<>-1) EBX=6898; |
453 | kolichestvo=EBX; |
469 | kolichestvo=EBX; |
454 | // |
- | |
455 | if (kolichestvo<>-1) && (redraw>0) |
- | |
456 | { |
470 | } |
457 | FOR (j=0;j |
471 | if (kolichestvo<>-1) && (redraw>0) |
458 | FOR (j=0;j |
472 | { |
459 | but_num=onTop(6,57)/18; |
473 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,kolichestvo-1*304); kolichestvo--; } //ôèëüòðóåì ýëåìåíò "." |
460 | IF (strcmp(".",buf+72)==0) kolichestvo--; //ôèëüòðóåì ýëåìåíò "." |
474 | FOR (j=0;j |
461 | //IF (strcmp(".",buf+72)==0) copystr(304+buf+72,buf); |
475 | but_num=onTop(6,57)/18; |
462 | IF (but_num>100) but_num=1; ELSE//ýòà ñòðàííàÿ ñòðî÷êà äëÿ òîãî åñëè ðàçìåðû îêíà ñëèøêîì ìàëåíüêèå |
476 | IF (but_num>100) but_num=1; ELSE //ýòà ñòðàííàÿ ñòðî÷êà äëÿ òîãî åñëè ðàçìåðû îêíà ñëèøêîì ìàëåíüêèå |
463 | IF (kolichestvo |
477 | IF (kolichestvo |
464 | FOR (j=0;j |
478 | FOR (j=0;j |
- | 479 | IF (redraw<>3) Sorting(); |
|
- | 480 | IF (redraw==1) || (redraw==3) List_ReDraw(); |
|
- | 481 | copystr(temp_,#edit_path); |
|
- | 482 | KEdit(); |
|
465 | FoldesGoUp(); |
483 | copystr("|",#PathHistory+strlen(#PathHistory)); |
- | 484 | copystr(#path,#PathHistory+strlen(#PathHistory)); |
|
466 | IF (redraw==1) List_ReDraw(); |
485 | //ñòðåëî÷êà ñîðòèðîâêè |
Line 467... | Line 486... | ||
467 | copystr(path_,#edit_path); |
486 | IF (sort_num==1) WriteText(onLeft(192,168)/2+210,45,0x80,0x4E78AC,"\x19",0); |
468 | KEdit(); |
487 | IF (sort_num==2) WriteText(onLeft(115,0),45,0x80,0x4E78AC,"\x19",0); |
469 | copystr("|",#PathHistory+strlen(#PathHistory)); |
488 | IF (sort_num==3) WriteText(onLeft(44,0),45,0x80,0x4E78AC,"\x19",0); |
470 | copystr(#path,#PathHistory+strlen(#PathHistory)); |
- | |
471 | } |
489 | } |
472 | } |
490 | IF (kolichestvo==-1) {but_num=kolichestvo=0; List_ReDraw();} |
473 | 491 | } |
|
- | 492 | ||
474 | 493 | ||
475 | 494 | ||
476 | void FoldesGoUp() |
495 | inline Sorting() |
477 | { |
496 | { |
478 | dword k=0, l=0; off=buf+72; |
497 | dword k=0, l=1; |
479 | IF (strcmp(#path,"/rd/1/")==0) || (strcmp(#path,"/fd/1/")==0) kolichestvo--; |
- | |
480 | IF (strcmp(".",buf+72)<>0) && (strlen(#path)>6) kolichestvo--; //ôàê! ýòî áðåä! õç êàê îíî ðàáîòàåò |
- | |
481 | FOR (j=0;j<=kolichestvo;j++) //à ïàïêè ââåðõ, ôàéëû âíèç |
- | |
482 | { |
- | |
483 | EAX=ESDWORD[off-40]; |
- | |
484 | $shr eax,4 |
- | |
485 | $and eax,1 |
- | |
486 | IF (EAX) {file_mas[k]=j; k++;} |
- | |
487 | ELSE {file_mas[kolichestvo-l]=j; l++;} |
- | |
488 | off += 304; |
- | |
489 | } |
- | |
490 | switch(sort_num) |
- | |
491 | { |
- | |
492 | CASE 1: //óïîðÿäî÷èâàåì ôàéëû ïî èìåíè |
- | |
493 | WriteText(onLeft(197,163)/2+215,45,0x80,0x4E78AC,"\x19",0); |
- | |
494 | IF (strcmp(#path,"/")==0) break; |
- | |
495 | IF (strcmp("..",buf+72+304)<>0) Sort_by_Name(k,kolichestvo-1); ELSE Sort_by_Name(k,kolichestvo); |
- | |
496 | break; |
498 | IF (!strcmp(#path,"/")) {FOR(k=1;k |
- | 499 | FOR (j=kolichestvo-1, off=kolichestvo-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
|
- | 500 | { |
|
497 | case 2: //óïîðÿäî÷èâàåì ôàéëû ïî òèïó |
501 | ChangeCase(off+40); |
498 | WriteText(onLeft(110,0),45,0x80,0x4E78AC,"\x19",0); |
502 | EAX=ESDWORD[off]; |
- | 503 | $shr eax,4 |
|
- | 504 | $and eax,1 |
|
- | 505 | IF (EAX) {file_mas[k]=j; k++;} ELSE |
|
499 | IF (strcmp("..",buf+72+304)<>0) Sort_by_Type(k, kolichestvo-1); ELSE Sort_by_Type(k, kolichestvo); |
506 | {file_mas[kolichestvo-l]=j; l++;} |
Line 500... | Line -... | ||
500 | break; |
- | |
501 | case 3: |
- | |
502 | WriteText(onLeft(39,0),45,0x80,0x4E78AC,"\x19",0); |
- | |
503 | IF (strcmp("..",buf+72+304)<>0) Sort_by_Size(k,kolichestvo-1); ELSE Sort_by_Size(k,kolichestvo); |
- | |
504 | BREAK; |
507 | } |
505 | } |
508 | //Ñîáñòâåííî ñîðòèðîâêà |
506 | IF (strcmp(#path,"/")<>0) IF (strcmp("..",304+buf+72)<>0) Sort_by_Name(0,k-1); ELSE Sort_by_Name(2,k-1); //èíîãäà èìÿ ïàïêè íà÷èíàåòñÿ ñ !,&... |
509 | Sort_by_Name(0,k-1); |
507 | IF (strcmp(".",buf+72)<>0) && (strlen(#path)>6) kolichestvo++; |
510 | IF (sort_num==1) Sort_by_Name(k,kolichestvo-1); |
508 | } |
511 | IF (sort_num==2) Sort_by_Type(k, kolichestvo-1); |
509 | 512 | IF (sort_num==3) Sort_by_Size(k,kolichestvo-1); |
|
510 | 513 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
|
511 | dword onLeft(dword right,left) {return Form.width-right-left;} |
514 | 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]> |
512 | dword onTop(dword down,up) {return Form.height-skin_width-down-up;} |
515 | } |
513 | 516 | ||
514 | 517 | ||
515 | void Del_Form() |
518 | void Del_Form() |
516 | { |
519 | { |
517 | temp_int=Form.width-200+197/2; |
520 | int dform_x=Form.width/2-13; |
518 | //òèïà îêíî |
521 | //òèïà îêíî |
519 | FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé |
522 | FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé |
520 | DrawFlatButton(temp_int,160,200,80,0,0xE4DFE1, ""); //ôîðìà |
523 | DrawFlatButton(dform_x,160,200,80,0,0xE4DFE1, ""); //ôîðìà |
521 | WriteText(temp_int+19,175,0x80,0,"Do you really want to delete",0); |
524 | WriteText(dform_x+19,175,0x80,0,"Do you really want to delete",0); |
522 | IF (strlen(#file_name)<28) |
525 | IF (strlen(#file_name)<28) |
523 | { |
526 | { |
524 | WriteText(strlen(#file_name)*6+temp_int+20,190,0x80,0,"?",0); |
527 | WriteText(strlen(#file_name)*6+dform_x+20,190,0x80,0,"?",0); |
525 | WriteText(temp_int+20,190,0x80,0,#file_name,0); //ïèøåì èìÿ |
528 | WriteText(dform_x+20,190,0x80,0,#file_name,0); //ïèøåì èìÿ |
Line 526... | Line 529... | ||
526 | } |
529 | } |
527 | ELSE |
530 | ELSE |
528 | { |
531 | { |
529 | WriteText(164+temp_int,190,0x80,0,"...?",0); |
532 | WriteText(164+dform_x,190,0x80,0,"...?",0); |
530 | WriteText(temp_int+20,190,0,0,#file_name,24); //ïèøåì èìÿ |
533 | WriteText(dform_x+20,190,0,0,#file_name,24); //ïèøåì èìÿ |
531 | } |
534 | } |
532 | //êíîïî÷êè |
535 | //êíîïî÷êè |
533 | DrawFlatButton(temp_int+20,208,70,20,301,0xFFB6B5,"Yes"); |
536 | DrawFlatButton(dform_x+20,208,70,20,301,0xFFB6B5,"Yes"); |
534 | DrawFlatButton(temp_int+111,208,70,20,302,0xC6DFC6,"No"); |
537 | DrawFlatButton(dform_x+111,208,70,20,302,0xC6DFC6,"No"); |
535 | del_active=1; |
538 | del_active=1; |
536 | } |
539 | } |
Line 537... | Line 540... | ||
537 | 540 | ||
538 | 541 | ||
539 | void Del_File(byte dodel) |
542 | void Del_File(byte dodel) |
540 | { |
543 | { |
541 | IF (dodel==true) |
544 | IF (dodel==true) |
542 | { |
545 | { |
543 | DeleleFile(#file_path); |
546 | DeleleFile(#file_path); |
544 | IF (EAX<>0) && (isdir==true) {DrawFlatButton(temp_int,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);} |
547 | IF (EAX<>0) && (isdir==true) {DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. Folder isn't empty."); Pause(200);} |
545 | } |
548 | } |
546 | del_active=0; |
549 | del_active=0; |
547 | DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No |
550 | DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No |
548 | Open_Dir(#path,1); |
551 | Open_Dir(#path,1); |
549 | } |
552 | } |
550 | 553 | ||
551 | 554 | ||
552 | void Paste() |
555 | void Paste() |
553 | { |
556 | { |
554 | IF (strcmp(#copyfile,"")==0) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè |
557 | IF (!copy_file) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè |
555 | copystr(#path,#temp); |
558 | copystr(#path,#temp); |
556 | copystr(#copy_name,#temp+strlen(#temp)); |
559 | copystr(#copy_file+find_symbol(#copy_file,'/'),#temp+strlen(#temp)); |
557 | if (strcmp(#copyfile,#temp)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå |
560 | if (strcmp(#copy_file,#temp)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå |
Line 558... | Line 561... | ||
558 | { |
561 | { |
559 | copystr(#path,#temp); |
562 | copystr(#path,#temp); |
560 | copystr("new_",#temp+strlen(#temp)); |
563 | copystr("new_",#temp+strlen(#temp)); |
561 | copystr(#copy_name,#temp+strlen(#temp)); |
564 | copystr(#copy_file+find_symbol(#copy_file,'/'),#temp+strlen(#temp)); |
562 | } |
565 | } |
563 | CopyFile(#copyfile,#temp); |
566 | CopyFile(#copy_file,#temp); |
564 | IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
567 | IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
565 | { |
568 | { |
Line 566... | Line 569... | ||
566 | copystr(#copyfile,#file_path); |
569 | copystr(#copy_file,#file_path); |
567 | Del_File(true); |
570 | Del_File(true); |
568 | copyfile=''; |
571 | copy_file=''; |
569 | cut_active=0; |
572 | cut_active=0; |
570 | } |
573 | } |
571 | Open_Dir(#path,1); |
574 | Open_Dir(#path,1); |
572 | } |
575 | } |
573 | 576 | ||
574 | 577 | ||
575 | void Tip(int y, dword caption, id, arrow) |
578 | void Tip(int y, dword caption, id, arrow) |
576 | { |
579 | { |
577 | DrawBar(22,y,160,17,0xE4DFE1); //ñåðîå ñâåðõó |
580 | DrawBar(17,y,160,17,0xE4DFE1); //ñåðîå ñâåðõó |
578 | WriteText(30,y+5,0x80,0,caption,0); //text Goto: |
581 | WriteText(25,y+5,0x80,0,caption,0); //text Goto: |
579 | IF (id<>0) DefineButton(164,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0xE4DFE1); //êíîïà äëÿ ñòðåëêè |
582 | IF (id<>0) DefineButton(159,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0xE4DFE1); //êíîïà äëÿ ñòðåëêè |
580 | WriteText(170,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç |
583 | WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç |
581 | DrawBar(22,y+17,160,1,0x94AECE); //ïîä÷¸ðêèâàíèå |
584 | DrawBar(17,y+17,160,1,0x94AECE); //ïîä÷¸ðêèâàíèå |
582 | } |
585 | } |
Line 603... | Line 606... | ||
603 | IF (dev_name[0]=='c') {copystr("CD-drive /",#drive_name); dev_icon=1;} |
606 | IF (dev_name[0]=='c') {copystr("CD-drive /",#drive_name); dev_icon=1;} |
604 | copystr(#dev_name,#drive_name+strlen(#drive_name)); |
607 | copystr(#dev_name,#drive_name+strlen(#drive_name)); |
605 | copystr("/",#drive_name+strlen(#drive_name)); |
608 | copystr("/",#drive_name+strlen(#drive_name)); |
606 | IF (dev_name[0]=='r') { copystr("RAM-disk /rd/1/",#drive_name); dev_icon=0; } |
609 | IF (dev_name[0]=='r') { copystr("RAM-disk /rd/1/",#drive_name); dev_icon=0; } |
607 | WriteText(45,i*16+79,0x80,0,#drive_name,0); |
610 | WriteText(45,i*16+79,0x80,0,#drive_name,0); |
608 | PutImage(dev_icon*14*13*3+#devices,14,13,26,i*16+76); |
611 | PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76); |
609 | } |
612 | } |
610 | Actions(); //ôóíêöèè ôàéëîâ è ïàïîê |
613 | Actions(); //ôóíêöèè ôàéëîâ è ïàïîê |
611 | Preview(); |
614 | Preview(); |
612 | } |
615 | } |
Line 613... | Line 616... | ||
613 | 616 | ||
614 | 617 | ||
615 | void Actions() |
618 | void Actions() |
616 | { |
619 | { |
617 | DrawBar(22,dev_num*16+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè |
620 | DrawBar(17,dev_num*16+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè |
618 | if (show_actions==1) |
621 | if (show_actions==1) |
619 | { |
622 | { |
620 | Tip(dev_num*16+90, "Actions", 77, "\x19"); |
623 | Tip(dev_num*16+90, "Actions", 77, "\x19"); |
621 | DrawBar(22,dev_num*16+108,160,51,0xFFFFFF); //áåëîå |
624 | DrawBar(17,dev_num*16+108,160,51,0xFFFFFF); //áåëîå |
622 | PutImage(#factions,16,44,26,dev_num*16+113); //ïèêòîãðàìêè |
625 | PutImage(#factions,16,44,21,dev_num*16+113); //ïèêòîãðàìêè |
623 | //rename file |
626 | //rename file |
624 | DefineButton(22,dev_num*16+108,159,16,80+BT_HIDE,0xE4DFE1); |
627 | DefineButton(22,dev_num*16+108,159,16,80+BT_HIDE,0xE4DFE1); |
625 | WriteText(47,dev_num*16+113,0x80,0,"Rename file |
628 | WriteText(42,dev_num*16+113,0x80,0,"Rename file |
626 | //delete file |
629 | //delete file |
627 | DefineButton(22,dev_num*16+125,159,16,81+BT_HIDE,0xE4DFE1); |
630 | DefineButton(17,dev_num*16+125,159,16,81+BT_HIDE,0xE4DFE1); |
628 | WriteText(47,dev_num*16+130,0x80,0,"Delete file |
631 | WriteText(42,dev_num*16+130,0x80,0,"Delete file |
629 | //create folder |
632 | //create folder |
630 | DefineButton(22,dev_num*16+142,159,16,82+BT_HIDE,0xE4DFE1); |
633 | DefineButton(17,dev_num*16+142,159,16,82+BT_HIDE,0xE4DFE1); |
631 | WriteText(47,dev_num*16+147,0x80,0,"Create folder |
634 | WriteText(42,dev_num*16+147,0x80,0,"Create folder |
632 | DrawBar(22,dev_num*16+159,160,15,0x00699C); //ñèíåå ïîñëå Actions |
635 | DrawBar(17,dev_num*16+159,160,15,0x00699C); //ñèíåå ïîñëå Actions |
633 | } |
636 | } |
634 | ELSE |
637 | ELSE |
635 | { |
638 | { |
636 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
639 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
637 | Tip(dev_num*16+90, "Actions", 77, "\x18"); |
640 | Tip(dev_num*16+90, "Actions", 77, "\x18"); |
638 | DrawBar(22,dev_num*16+108,160,51,0x00699C); //ñèíåå |
641 | DrawBar(17,dev_num*16+108,160,51,0x00699C); //ñèíåå |
Line 639... | Line 642... | ||
639 | } |
642 | } |
640 | } |
643 | } |
641 | 644 | ||
642 | 645 | ||
643 | void Dir_Up() |
646 | void Dir_Up() |
644 | { |
647 | { |
645 | byte temp_[256]; |
648 | char temp_[256]; |
646 | i=strlen(#path)-1; |
649 | i=strlen(#path)-1; |
647 | path[i]=0x00; |
650 | path[i]=0x00; |
648 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
651 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
649 | path[i+1]=0x00; |
652 | path[i+1]=0x00; |
650 | ChangeCase(#temp_); |
653 | ChangeCase(#temp_); |
651 | za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
654 | za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
652 | Open_Dir(#path,2); |
655 | Open_Dir(#path,2); |
653 | FOR (i=kolichestvo; i>0; i--;) IF(strcmp(file_mas[i]*304+buf+72,#temp_)==0) BREAK; |
656 | FOR (i=kolichestvo-1; i>0; i--;) IF(strcmp(file_mas[i]*304+buf+72,#temp_)==0) BREAK; |
654 | // |
657 | // |
655 | if (i>kolichestvo-but_num) |
658 | if (i>kolichestvo-but_num) |
656 | { |
659 | { |
657 | za_kadrom=kolichestvo-but_num; |
660 | za_kadrom=kolichestvo-but_num; |
658 | IF (strcmp(".",buf+72)<>0) curbtn=i-kolichestvo+but_num; ELSE curbtn=i-kolichestvo+but_num-1; |
661 | curbtn=i-kolichestvo+but_num; |
Line 659... | Line 662... | ||
659 | } |
662 | } |
Line 668... | Line 671... | ||
668 | top_pr+=show_actions*51; //íà÷èíàåì íèæå, åñëè Ýêøíñ âèäèìû |
671 | top_pr+=show_actions*51; //íà÷èíàåì íèæå, åñëè Ýêøíñ âèäèìû |
669 | DeleteButton(78); |
672 | DeleteButton(78); |
670 | if (show_preview==1) |
673 | if (show_preview==1) |
671 | { |
674 | { |
672 | Tip(top_pr,"Preview",78,"\x19"); |
675 | Tip(top_pr,"Preview",78,"\x19"); |
673 | DrawBar(22,top_pr+18,160,100,0xFFFFFF); //áåëîå |
676 | DrawBar(17,top_pr+18,160,100,0xFFFFFF); //áåëîå |
674 | /*WriteText(30,top_pr+30,0x80,0,"kolichestvo:",0); WriteText(105,top_pr+30,0x80,0,IntToStr(kolichestvo),0); |
677 | WriteText(25,top_pr+30,0x80,0,"Number of files:",0); WriteText(135,top_pr+30,0x80,0,IntToStr(kolichestvo),0); |
675 | WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0); |
678 | /*WriteText(30,top_pr+40,0x80,0,"but_num:",0); WriteText(105,top_pr+40,0x80,0,IntToStr(but_num),0); |
676 | WriteText(30,top_pr+50,0x80,0,"curbtn",0); WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0); |
679 | WriteText(30,top_pr+50,0x80,0,"curbtn",0); WriteText(105,top_pr+50,0x80,0,IntToStr(curbtn),0); |
677 | WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0); WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0); |
680 | WriteText(30,top_pr+60,0x80,0,"ra_kadrom:",0); WriteText(105,top_pr+60,0x80,0,IntToStr(za_kadrom),0); |
678 | WriteText(30,top_pr+70,0x80,0,#file_path,0); |
681 | WriteText(30,top_pr+70,0x80,0,#file_path,0); |
679 | WriteText(30,top_pr+80,0x80,0,#file_name,0);*/ |
682 | WriteText(30,top_pr+80,0x80,0,#file_name,0);*/ |
680 | //WriteText(30,top_pr+60,0x80,0,"Not realized... I think",0); |
683 | //WriteText(30,top_pr+60,0x80,0,"Not realized... I think",0); |
681 | //WriteText(30,top_pr+70,0x80,0,"it will be realired soon.",0); |
684 | //WriteText(30,top_pr+70,0x80,0,"it will be realired soon.",0); |
682 | DrawBar(22,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå |
685 | DrawBar(17,top_pr+118,160,onTop(top_pr+118,6),0x00699C); //ñèíåå |
683 | } |
686 | } |
684 | ELSE |
687 | ELSE |
685 | { |
688 | { |
686 | Tip(top_pr,"Preview",78,"\x18"); |
689 | Tip(top_pr,"Preview",78,"\x18"); |
687 | DrawBar(22,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå |
690 | DrawBar(17,top_pr+18,160,onTop(top_pr+18,6),0x00699C); //ñèíåå |
688 | } |
691 | } |
689 | } |
692 | } |
Line 690... | Line 693... | ||
690 | 693 | ||
Line 698... | Line 701... | ||
698 | {za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
701 | {za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
699 | Open_Dir(#path,1); |
702 | Open_Dir(#path,1); |
700 | } |
703 | } |
Line -... | Line 704... | ||
- | 704 | ||
701 | 705 | ||
702 | 706 | ||
703 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
707 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
704 | { |
708 | { |
705 | //char old_dir[256]=''; |
709 | //char old_dir[256]=''; |