Rev 2528 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2528 | Rev 2568 | ||
---|---|---|---|
1 | //Leency & Veliant -=- KolibriOS Team -=- 2012 |
1 | //Leency & Veliant -=- KolibriOS Team -=- 2012 |
2 | //GNU GPL licence. |
2 | //GNU GPL licence. |
3 | 3 | ||
4 | #include "lib\kolibri.h--" |
4 | #include "lib\kolibri.h" |
5 | #include "lib\memory.h--" |
5 | #include "lib\memory.h" |
6 | #include "lib\edit_box_lib.h--" |
6 | #include "lib\edit_box_lib.h" |
7 | #include "lib\file_system.h--" |
7 | #include "lib\file_system.h" |
8 | #include "imgs\toolbar.txt" |
8 | #include "imgs\toolbar.txt" |
9 | #include "imgs\left_p.txt" |
9 | #include "imgs\left_p.txt" |
10 | 10 | ||
11 | int BUTTON_HEIGHT=18; |
11 | int BUTTON_HEIGHT=18; |
12 | 12 | ||
13 | //for OpenDir |
13 | //for OpenDir |
14 | #define ONLY_SHOW 0 |
14 | #define ONLY_SHOW 0 |
15 | #define WITH_REDRAW 1 |
15 | #define WITH_REDRAW 1 |
16 | #define ONLY_OPEN 2 |
16 | #define ONLY_OPEN 2 |
17 | 17 | ||
18 | //ïåðåìåííûå |
18 | //ïåðåìåííûå |
19 | #define title "Eolite File Manager v1.0" |
19 | #define title "Eolite File Manager v1.1" |
20 | #define videlenie 0x94AECE //0xFEA4B7,0x8BCDFF,0xB8C9B8}; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
20 | dword videlenie=0x94AECE; //öâåò âûäåëåííîãî ýëåìåíòà èç ñïèñêà ôàéëîâ |
21 | byte toolbar_buttons_x[6]={9,46,85,134,167,203}; |
- | |
22 | // |
21 | // |
23 | int but_num, |
22 | int but_num, |
24 | count, |
23 | count, |
25 | za_kadrom, |
24 | za_kadrom, |
26 | curbtn, |
25 | curbtn, |
27 | scroll_size; |
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 | sort_num=2, |
31 | sort_num=2, |
33 | isdir; |
32 | isdir; |
34 | char path[4096]="/rd/1/", |
33 | char path[4096], |
35 | edit_path[4096], |
34 | edit_path[4096], |
36 | file_path[4096], |
35 | file_path[4096], |
37 | file_name[4096], |
36 | file_name[4096], |
38 | copy_file[4096], |
37 | copy_file[4096], |
39 | temp[4096]; |
38 | temp[4096]; |
40 | byte PathHistory[4096]; |
39 | byte PathHistory[4096]; |
- | 40 | ||
- | 41 | int toolbar_buttons_x[6]={9,46,85,134,167,203}; |
|
41 | 42 | ||
42 | dword file_mas[6898]; |
43 | dword file_mas[6898]; |
43 | int j, i, mouse_dd; |
44 | int j, i, mouse_dd; |
44 | 45 | ||
45 | dword stak[100]; //îêíî About |
46 | dword stak[100]; //îêíî About |
46 | 47 | ||
47 | edit_box edit1= {250,247,13,0xffffff,videlenie,0xD3DDEB,0xffffff,0,248,#edit_path,#mouse_dd,64,6,6}; |
48 | edit_box edit1= {250,247,13,0xffffff,0x94AECE,0xD3DDEB,0xffffff,0,248,#edit_path,#mouse_dd,64,6,6}; |
48 | edit_box edit2= {250,213,80,0xFFFFCC,videlenie,0xFFFFCC,0xffffff,0,248,#file_name,#mouse_dd,64,6,6}; |
49 | edit_box edit2= {250,213,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name,#mouse_dd,64,6,6}; |
49 | 50 | ||
50 | proc_info Form; |
51 | proc_info Form; |
51 | dword buf, off; //äëÿ òåêñòà è áóôåðà |
52 | dword buf, off; //äëÿ òåêñòà è áóôåðà |
52 | dword devbuf, dev_num; |
- | |
53 | 53 | ||
54 | #include "include\about_dialog.h--" |
54 | #include "include\about_dialog.h" |
55 | #include "include\some_code.h--" |
55 | #include "include\some_code.h" |
56 | #include "include\sorting.h--" |
56 | #include "include\sorting.h" |
57 | #include "include\icons_f.h--" |
57 | #include "include\icons_f.h" |
58 | #include "include\ini.h--" |
- | |
59 | - | ||
60 | 58 | #include "include\ini.h" |
|
61 | void Devices() |
- | |
62 | { |
- | |
63 | byte dev_icon; |
- | |
64 | dword drive_name[30]; |
- | |
65 | char dev_name[4]; |
59 | #include "include\devices.h" |
66 | - | ||
67 | DrawBar(2,41,190,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñâåðõó |
- | |
68 | DrawBar(2,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñëåâà |
- | |
69 | DrawBar(177,56,15,onTop(21,41),0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ñïðàâà |
- | |
70 | //ñïèñîê äèñêîâ |
- | |
71 | Tip(56, "Goto:", 0, ""); |
- | |
72 | for (i=0;i |
- | |
73 | { |
- | |
74 | DrawBar(17,i*16+74,160,17,0xFFFFFF); //áåëîå |
- | |
75 | DefineButton(17,i*16+74,159,16,100+i+BT_HIDE,0xFFFFFF); //ñîçäà¸ì êíîïêè, à ïîòîì âûâîäèì íàçâàíèÿ äèñêîâ |
- | |
76 | copystr("Unknown drive",#drive_name); //èçíà÷àëüíî íåèçâåñíûé íîñèòåëü |
- | |
77 | dev_icon=3; //ïî-óìîë÷àíèþ óñòðîéñòâî âûãëÿäèò êàê æåñòÿê |
- | |
78 | copystr(i*304+ devbuf+72, #dev_name); |
- | |
79 | IF (dev_name[0]=='r') { dev_icon=0; copystr("RAM-disk /rd/1",#drive_name); } |
- | |
80 | IF (dev_name[0]=='c') { dev_icon=1; copystr("CD-drive /",#drive_name); } |
- | |
81 | IF (dev_name[0]=='f') { dev_icon=2; copystr("Floppy disk /",#drive_name); } |
- | |
82 | IF (dev_name[0]=='h') copystr("Hard disk drive /",#drive_name); |
- | |
83 | IF (dev_name[0]=='b') copystr("SATA disk drive /",#drive_name); |
- | |
84 | // |
- | |
85 | IF (dev_icon<>0) copystr(#dev_name,#drive_name+strlen(#drive_name)); |
- | |
86 | copystr("/",#drive_name+strlen(#drive_name)); |
- | |
87 | // |
- | |
88 | WriteText(45,i*16+79,0x80,0,#drive_name,0); |
- | |
89 | PutImage(dev_icon*14*13*3+#devices,14,13,21,i*16+76); |
- | |
90 | } |
- | |
91 | } |
60 | |
92 | 61 | ||
93 | void main() |
62 | void main() |
94 | word key, id; |
63 | word key, id; |
95 | mouse m; |
64 | mouse m; |
96 | int pressed_y; |
65 | int pressed_y; |
97 | { |
66 | { |
98 | GetIni(1); |
- | |
99 | // |
67 | // |
100 | load_editbox_lib(); |
68 | load_editbox_lib(); |
101 | devbuf= malloc(3112); //áóôåð ãäå-òî íà 10 äåâàéñîâ â ëåâîé ïàíåëè |
- | |
102 | ReadDir(10, devbuf, "/"); |
69 | GetSystemDiscs(); |
103 | dev_num=EBX; |
70 | GetIni(1); |
104 | // |
71 | |
105 | //curbtn=za_kadrom=0; |
72 | edit1.shift_color=videlenie; |
- | 73 | edit2.shift_color=videlenie; |
|
- | 74 | ||
106 | HistoryPath(add_new_path); |
75 | HistoryPath(add_new_path); |
107 | IF (param[0]<>'') //áûë ëè çàïóñê ñ ïàðàìåòðîì |
76 | IF (param[0]<>'') //áûë ëè çàïóñê ñ ïàðàìåòðîì |
108 | { |
77 | { |
109 | copystr(#param, #path); |
78 | copystr(#param, #path); |
110 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
79 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
111 | } |
80 | } |
- | 81 | else copystr("/rd/1/", #path); |
|
112 | Open_Dir(#path,ONLY_OPEN); |
82 | Open_Dir(#path,ONLY_OPEN); |
113 | loop() |
83 | loop() |
114 | { |
84 | { |
115 | switch(WaitEvent()) |
85 | switch(WaitEvent()) |
116 | { |
86 | { |
117 | CASE evMouse: |
87 | CASE evMouse: |
118 | IF (del_active==1) break; |
88 | IF (del_active==1) break; |
119 | 89 | ||
120 | id=GetSlot(Form.ID); |
90 | id=GetSlot(Form.ID); |
121 | IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì |
91 | IF (id<>ActiveProcess()) break; //åñëè îêíî íå àêòèâíî íà ñîáûòèÿ ìûøè íå ðåàãèðóåì |
122 | 92 | ||
123 | m.get(); |
93 | m.get(); |
124 | 94 | ||
125 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57) |
95 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57) |
126 | { |
96 | { |
127 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF); |
97 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF); |
128 | WHILE (m.lkm==1) && (za_kadrom>0) |
98 | WHILE (m.lkm==1) && (za_kadrom>0) |
129 | { |
99 | { |
130 | Pause(10); |
100 | Pause(10); |
131 | za_kadrom--; |
101 | za_kadrom--; |
132 | List_ReDraw(); |
102 | List_ReDraw(); |
133 | m.get(); |
103 | m.get(); |
134 | } |
104 | } |
135 | DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7); |
105 | DrawRegion_3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7); |
136 | } |
106 | } |
137 | 107 | ||
138 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y |
108 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y |
139 | { |
109 | { |
140 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF); |
110 | IF (m.lkm==1) DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xC7C7C7,0xFFFFFF); |
141 | while (m.lkm==1) && (za_kadrom |
111 | while (m.lkm==1) && (za_kadrom |
142 | { |
112 | { |
143 | Pause(10); |
113 | Pause(10); |
144 | za_kadrom++; |
114 | za_kadrom++; |
145 | List_ReDraw(); |
115 | List_ReDraw(); |
146 | m.get(); |
116 | m.get(); |
147 | } |
117 | } |
148 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
118 | DrawRegion_3D(onLeft(26,0),onTop(21,0),14,14,0xFFFFFF,0xC7C7C7); |
149 | } |
119 | } |
150 | 120 | ||
151 | //êîë¸ñèêî ìûøè |
121 | //êîë¸ñèêî ìûøè |
152 | IF (m.vert==65535) IF (curbtn>0) FileList_ReDraw(-1); ELSE |
122 | IF (m.vert==65535) IF (curbtn>0) FileList_ReDraw(-1); ELSE |
153 | { |
123 | { |
154 | FileList_ReDraw(-1); |
124 | FileList_ReDraw(-1); |
155 | FileList_ReDraw(-1); |
125 | FileList_ReDraw(-1); |
156 | FileList_ReDraw(-1); |
126 | FileList_ReDraw(-1); |
157 | } |
127 | } |
158 | IF (m.vert==1) IF (curbtn |
128 | IF (m.vert==1) IF (curbtn |
159 | { |
129 | { |
160 | FileList_ReDraw(1); |
130 | FileList_ReDraw(1); |
161 | FileList_ReDraw(1); |
131 | FileList_ReDraw(1); |
162 | FileList_ReDraw(1); |
132 | FileList_ReDraw(1); |
163 | } |
133 | } |
164 | //ñêðîëë |
134 | //ñêðîëë |
165 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) while (m.lkm) |
135 | if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) while (m.lkm) |
166 | { |
136 | { |
167 | IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì |
137 | IF (scroll_size/2+57>m.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; //åñëè êóðñîð íàä îêíîì |
168 | id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
138 | id=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî |
169 | j= scroll_size/2; |
139 | j= scroll_size/2; |
170 | za_kadrom = m.y -j -57 * count; za_kadrom /= onTop(22,57); |
140 | za_kadrom = m.y -j -57 * count; |
- | 141 | za_kadrom /= onTop(22,57); |
|
171 | IF (but_num+za_kadrom>count) za_kadrom=count-but_num; |
142 | IF (but_num+za_kadrom>count) za_kadrom=count-but_num; |
172 | IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
143 | IF (id<>za_kadrom) List_ReDraw(); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü |
173 | m.get(); |
144 | m.get(); |
174 | } |
145 | } |
175 | break; |
146 | break; |
176 | //Button pressed----------------------------------------------------------------------------- |
147 | //Button pressed----------------------------------------------------------------------------- |
177 | case evButton: |
148 | case evButton: |
178 | IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí |
149 | IF (edit1.flags<>64) {edit1.flags=64; edit_box_draw stdcall(#edit1);} //ñáðàñûâàåì âûäåëåíèå ïðè íàæàòèè íà áàòîí |
179 | id=GetButtonID(); |
150 | id=GetButtonID(); |
180 | IF (id==1) ExitProcess(); |
151 | IF (id==1) ExitProcess(); |
181 | IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;} |
152 | IF (del_active==1) {IF (id==301) || (id==302) Del_File(302-id); break;} |
182 | switch(id) |
153 | switch(id) |
183 | { |
154 | { |
184 | CASE 21: //Íàçàä |
155 | CASE 21: //Íàçàä |
185 | GoBack(); |
156 | GoBack(); |
186 | break; |
157 | break; |
187 | CASE 23: //up! |
158 | CASE 23: //up! |
188 | IF (strcmp(#path,"/")<>0) Dir_Up(); |
159 | IF (strcmp(#path,"/")<>0) Dir_Up(); |
189 | break; |
160 | break; |
190 | CASE 24: //cut |
161 | CASE 24: //cut |
191 | key=24; |
162 | key=24; |
192 | CASE 25: //copy |
163 | CASE 25: //copy |
193 | goto CTRLC_MARK; |
164 | goto CTRLC_MARK; |
194 | CASE 26: //paste |
165 | CASE 26: //paste |
195 | Paste(); |
166 | Paste(); |
196 | break; |
167 | break; |
197 | CASE 27: //goto edit_path |
168 | CASE 27: //goto edit_path |
198 | Goto_edit_path(); |
169 | Goto_edit_path(); |
199 | break; |
170 | break; |
200 | CASE 31...33: //sort |
171 | CASE 31...33: //sort |
201 | IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1); |
172 | IF(sort_num==1) DrawBar(onLeft(192,168)/2+210,45,6,9,0xE4DFE1); |
202 | IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1); |
173 | IF(sort_num==2) DrawBar(onLeft(115,0),45,6,9,0xE4DFE1); |
203 | IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1); |
174 | IF(sort_num==3) DrawBar(onLeft(44,0),45,6,9,0xE4DFE1); |
204 | sort_num=id-30; |
175 | sort_num=id-30; |
205 | Open_Dir(#path,1); |
176 | Open_Dir(#path,1); |
206 | break; |
177 | break; |
207 | case 30: //about |
178 | case 30: //about |
208 | CreateThread(#authors,#stak); |
179 | CreateThread(#authors,#stak); |
209 | break; |
180 | break; |
210 | case 77: //actions |
181 | case 77: //actions |
211 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
182 | IF (show_actions==1) show_actions=0; ELSE show_actions=1; |
212 | Actions(); |
183 | Actions(); |
213 | break; |
184 | break; |
214 | case 80: //rename |
185 | case 80: //rename |
215 | goto REN_MARK; |
186 | goto REN_MARK; |
216 | case 81: //Delete file |
187 | case 81: //Delete file |
217 | Del_Form(); |
188 | Del_Form(); |
218 | break; |
189 | break; |
219 | case 82: //create folder |
190 | case 82: //create folder |
220 | NEW_FOLDER_MARK: |
191 | NEW_FOLDER_MARK: |
221 | copystr(#path, #temp); |
192 | copystr(#path, #temp); |
222 | copystr("New folder", #temp+strlen(#temp)); |
193 | copystr("New folder", #temp+strlen(#temp)); |
223 | CreateFolder(#temp); |
194 | CreateFolder(#temp); |
224 | IF (EAX==0){ |
195 | IF (EAX==0){ |
225 | SelectFile("New folder"); |
196 | SelectFile("New folder"); |
226 | goto REN_MARK; |
197 | goto REN_MARK; |
227 | } |
198 | } |
228 | ELSE ShowMessage("Folder can not be created."); |
199 | ELSE ShowMessage("Folder can not be created."); |
229 | break; |
200 | break; |
230 | case 100...120: |
201 | case 100...120: |
231 | DEVICE_MARK: |
202 | DEVICE_MARK: |
232 | copystr(id-100*304+ devbuf+72, #path); |
203 | //copystr(#disk_list[id-100].Item, #file_path); |
233 | IF (path[0]=='r') copystr("/rd/1",#file_path); |
- | |
234 | ELSE { |
204 | //GOTO OPEN_DEV; |
235 | copystr("/", #file_path); |
205 | copystr(#disk_list[id-100].Item, #path); |
236 | copystr(#path, #file_path+strlen(#file_path)); |
206 | za_kadrom=curbtn=0; |
237 | } |
207 | Open_Dir(#path,1); |
238 | GOTO OPEN_DEV; |
208 | break; |
239 | default: |
209 | default: |
240 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
210 | if (id<200) break; //êíîïêè èç ñïèñêà ôàéëîâ |
241 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
211 | IF (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} |
242 | else OPEN_MARK: |
212 | else OPEN_MARK: |
243 | if (!isdir) GetIni(0); ELSE |
213 | if (!isdir) GetIni(0); else |
244 | IF (strcmp(#file_name,"..")==0) Dir_Up(); ELSE |
214 | if (strcmp(#file_name,"..")==0) Dir_Up(); else |
245 | { OPEN_DEV: |
215 | { OPEN_DEV: |
246 | copystr(#file_path, #path); |
216 | copystr(#file_path, #path); |
247 | copystr("/", #path+strlen(#path)); |
217 | IF (strcmp(#path+strlen(#path)-1,"/")<>0) copystr("/",#path+strlen(#path)); //åñëè íåò, + "/" |
248 | za_kadrom=curbtn=0; |
218 | za_kadrom=curbtn=0; |
249 | Open_Dir(#path,1); |
219 | Open_Dir(#path,1); |
250 | } |
220 | } |
251 | } |
221 | } |
252 | break; |
222 | break; |
253 | //Key pressed----------------------------------------------------------------------------- |
223 | //Key pressed----------------------------------------------------------------------------- |
254 | case evKey: |
224 | case evKey: |
255 | key = GetKey(); |
225 | key = GetKey(); |
256 | IF (del_active==1) |
226 | IF (del_active==1) |
257 | { |
227 | { |
258 | IF (key==013) Del_File(true); |
228 | IF (key==013) Del_File(true); |
259 | IF (key==027) Del_File(false); |
229 | IF (key==027) Del_File(false); |
260 | break; |
230 | break; |
261 | } |
231 | } |
262 | IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13) |
232 | IF (edit1.flags<>64) && (edit1.flags<>0) && (key<>13) |
263 | { |
233 | { |
264 | EAX=key<<8; |
234 | EAX=key<<8; |
265 | edit_box_key stdcall (#edit1); |
235 | edit_box_key stdcall (#edit1); |
266 | break; |
236 | break; |
267 | } |
237 | } |
268 | IF (edit2.flags<>64) && (key<>13) && (key<>27) |
238 | IF (edit2.flags<>64) && (key<>13) && (key<>27) |
269 | { |
239 | { |
270 | EAX=key<<8; |
240 | EAX=key<<8; |
271 | edit_box_key stdcall (#edit2); |
241 | edit_box_key stdcall (#edit2); |
272 | break; |
242 | break; |
273 | } |
243 | } |
274 | switch (key) |
244 | switch (key) |
275 | { |
245 | { |
276 | case 209...217: |
246 | case 209...217: |
277 | id=key-110; |
247 | id=key-110; |
278 | IF (id-100>=dev_num) break; |
248 | IF (id-100>=disc_num) break; |
279 | GOTO DEVICE_MARK; |
249 | GOTO DEVICE_MARK; |
280 | case 8: //Íàçàä |
250 | case 8: //Íàçàä |
281 | GoBack(); |
251 | GoBack(); |
282 | break; |
252 | break; |
283 | case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü |
253 | case 004: //Ctrl+D ðèñ íà ðàá ñòîë ðàñòÿíóòü |
284 | copystr("\\S__", #temp); |
254 | copystr("\\S__", #temp); |
285 | copystr(#file_path, #temp+strlen(#temp)); |
255 | copystr(#file_path, #temp+strlen(#temp)); |
286 | RunProgram("/sys/media/kiv", #temp); |
256 | RunProgram("/sys/media/kiv", #temp); |
287 | break; |
257 | break; |
288 | case 014: //Ctrl+N íîâîå îêíî |
258 | case 014: //Ctrl+N íîâîå îêíî |
289 | IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD); |
259 | IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD); |
290 | RunProgram("/sys/File Managers/Eolite", #path); |
260 | RunProgram("/sys/File Managers/Eolite", #path); |
291 | break; |
261 | break; |
292 | case 024: //Ctrl+X cut |
262 | case 024: //Ctrl+X cut |
293 | case 003: //Ctrl+C copy |
263 | case 003: //Ctrl+C copy |
294 | CTRLC_MARK: |
264 | CTRLC_MARK: |
295 | IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì |
265 | IF (isdir) break; //ïàïêè ïîêà ÷òî êîïèðîâàòü íå óìååì |
296 | copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
266 | copystr(#file_path,#copy_file); //âû÷èñëÿåì êàêîé ôàéë êîïèðîâàòü |
297 | IF (key==24) cut_active=1; ELSE cut_active=0; |
267 | IF (key==24) cut_active=1; ELSE cut_active=0; |
298 | break; |
268 | break; |
299 | case 022: Paste(); break;//Ctrl+V paste |
269 | case 022: Paste(); break;//Ctrl+V paste |
300 | case 027: //Esc |
270 | case 027: //Esc |
301 | IF (rename_active==1) ReName(false); |
271 | IF (rename_active==1) ReName(false); |
302 | break; |
272 | break; |
303 | case 013: //Enter |
273 | case 013: //Enter |
304 | IF (rename_active==1) {ReName(true); break;} |
274 | IF (rename_active==1) {ReName(true); break;} |
305 | IF (strcmp(#path,#edit_path)<>0) Goto_edit_path(); |
275 | IF (strcmp(#path,#edit_path)<>0) Goto_edit_path(); |
306 | ELSE GOTO OPEN_MARK; |
276 | ELSE GOTO OPEN_MARK; |
307 | break; |
277 | break; |
308 | case 55: //F6 - new folder |
278 | case 55: //F6 - new folder |
309 | goto NEW_FOLDER_MARK; |
279 | goto NEW_FOLDER_MARK; |
310 | case 56: //IF (rename_active==1) break;//up |
280 | case 56: //IF (rename_active==1) break;//up |
311 | case 178: //up |
281 | case 178: //up |
312 | FileList_ReDraw(-1); |
282 | FileList_ReDraw(-1); |
313 | break; |
283 | break; |
314 | case 177: //down |
284 | case 177: //down |
315 | FileList_ReDraw(1); |
285 | FileList_ReDraw(1); |
316 | break; |
286 | break; |
317 | case 180: //home |
287 | case 180: //home |
318 | za_kadrom=0; |
288 | za_kadrom=0; |
319 | curbtn=0; |
289 | curbtn=0; |
320 | List_ReDraw(); |
290 | List_ReDraw(); |
321 | break; |
291 | break; |
322 | case 181: //end |
292 | case 181: //end |
323 | za_kadrom=count-but_num; |
293 | za_kadrom=count-but_num; |
324 | curbtn=but_num-1; |
294 | curbtn=but_num-1; |
325 | List_ReDraw(); |
295 | List_ReDraw(); |
326 | break; |
296 | break; |
327 | case 183: //Page Down |
297 | case 183: //Page Down |
328 | FileList_ReDraw(but_num-1); |
298 | FileList_ReDraw(but_num-1); |
329 | break; |
299 | break; |
330 | case 184: //Page Up |
300 | case 184: //Page Up |
331 | FileList_ReDraw(-but_num+1); |
301 | FileList_ReDraw(-but_num+1); |
332 | break; |
302 | break; |
333 | case 051: //Íàæàòà F2 |
303 | case 051: //Íàæàòà F2 |
334 | REN_MARK: |
304 | REN_MARK: |
335 | DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ |
305 | DeleteButton(curbtn+201); //ýòî ÷òîá ìîæíî áûëî âûäåëÿòü ìûøüþ |
336 | edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì |
306 | edit2.flags=66; //äåëàåì êîìïîíåíò àêòèâíûì |
337 | edit2.width=onLeft(24,217); |
307 | edit2.width=onLeft(24,217); |
338 | edit2.top=curbtn*BUTTON_HEIGHT+59; |
308 | edit2.top=curbtn*BUTTON_HEIGHT+59; |
339 | edit2.size=edit2.pos=strlen(#file_name); |
309 | edit2.size=edit2.pos=strlen(#file_name); |
340 | edit_box_draw stdcall (#edit2); |
310 | edit_box_draw stdcall (#edit2); |
341 | DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè |
311 | DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); //ïîëîñà æåëòàÿ ñâåðõó äëÿ îäèíàêîâîñòè |
342 | rename_active=1; |
312 | rename_active=1; |
343 | break; |
313 | break; |
344 | case 052: //Íàæàòà F3 |
314 | case 052: //Íàæàòà F3 |
345 | IF (isdir==false) RunProgram("/sys/tinypad", #file_path); |
315 | IF (isdir==false) RunProgram("/sys/tinypad", #file_path); |
346 | break; |
316 | break; |
347 | case 053: //Íàæàòà F4 |
317 | case 053: //Íàæàòà F4 |
348 | IF (isdir==false) RunProgram("/sys/develop/heed", #file_path); |
318 | IF (isdir==false) RunProgram("/sys/develop/heed", #file_path); |
349 | break; |
319 | break; |
350 | case 054: //F5 |
320 | case 054: //F5 |
351 | Open_Dir(#path,1); |
321 | Open_Dir(#path,1); |
352 | break; |
322 | break; |
353 | case 182: //delete file |
323 | case 182: //delete file |
354 | Del_Form(); |
324 | Del_Form(); |
355 | break; |
325 | break; |
356 | default: |
326 | default: |
357 | for (i=curbtn+za_kadrom+1; i |
327 | for (i=curbtn+za_kadrom+1; i |
358 | { |
328 | { |
359 | copystr(file_mas[i]*304+buf+72,#temp); |
329 | copystr(file_mas[i]*304+buf+72,#temp); |
360 | AL=DSBYTE[#temp]; |
330 | AL=DSBYTE[#temp]; |
361 | IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; |
331 | IF(AL>='A')&&(AL<='Z')DSBYTE[#temp]=AL|0x20; |
362 | IF (temp[0]==key) |
332 | IF (temp[0]==key) |
363 | { |
333 | { |
364 | FileList_ReDraw(i-curbtn-za_kadrom); |
334 | FileList_ReDraw(i-curbtn-za_kadrom); |
365 | break; |
335 | break; |
366 | } |
336 | } |
367 | } |
337 | } |
368 | } |
338 | } |
369 | BREAK; |
339 | BREAK; |
370 | case evReDraw: draw_window(); |
340 | case evReDraw: draw_window(); |
371 | } |
341 | } |
372 | IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
342 | IF (rename_active==0) edit_box_mouse stdcall(#edit1); ELSE edit_box_mouse stdcall(#edit2); |
373 | } |
343 | } |
374 | } |
344 | } |
375 | 345 | ||
376 | 346 | ||
377 | inline fastcall void draw_window() |
347 | inline fastcall void draw_window() |
378 | { |
348 | { |
379 | DefineAndDrawWindow(98,90,582,482,0x73,0x10E4DFE1,0,0,title); |
349 | DefineAndDrawWindow(98,90,582,482,0x73,0x10E4DFE1,0,0,title); |
380 | Form.GetInfo(#Form, SelfInfo); |
350 | Form.GetInfo(#Form, SelfInfo); |
381 | IF (Form.status_window==4) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
351 | IF (Form.status_window==4) return; //íè÷åãî íå äåëàòü åñëè îêíî ñõëîïíóòî â çàãîëîâîê |
382 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
352 | IF (Form.height<280) MoveSize(OLD,OLD,OLD,280); |
383 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
353 | IF (Form.width<480) MoveSize(OLD,OLD,480,OLD); |
384 | //toolbar buttons |
354 | //toolbar buttons |
385 | PutPaletteImage(#toolbar,246,39,0,0,#toolbar_pal); |
355 | PutPaletteImage(#toolbar,246,39,0,0,#toolbar_pal); |
386 | FOR (j=0; j<3; j++) DefineButton(toolbar_buttons_x[j]+2,5+2,31-5,29-5,21+j+BT_HIDE,0xE4DFE1); |
356 | FOR (j=0; j<3; j++) DefineButton(toolbar_buttons_x[j]+2,5+2,31-5,29-5,21+j+BT_HIDE,0xE4DFE1); |
387 | FOR (j=3; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1); |
357 | FOR (j=3; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,0xE4DFE1); |
388 | //ïîëîñà àäðåñà |
358 | //ïîëîñà àäðåñà |
389 | edit1.width=Form.width-314; |
359 | edit1.width=Form.width-314; |
390 | DrawBar(246,0,onLeft(246,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà |
360 | DrawBar(246,0,onLeft(246,60),12,0xE4DFE1); //ôîí íàä ïîëîñîé àäðåñà |
391 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
361 | DrawBar(246,29,onLeft(246,60),10,0xE4DFE1); //ôîí ïîä ïîëîñîé àäðåñà |
392 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
362 | DrawRegion_3D(246,12,onLeft(66,246),16,0x94AECE,0x94AECE); //îáîäîê |
393 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
363 | DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,0xE4DFE1); //about |
394 | DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
364 | DefineButton(onLeft(66,0),12,18,16,27+BT_HIDE,0xE4DFE1); //êíîïêà ïåðåõîäà |
395 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
365 | PutPaletteImage(#goto_about,56,40,Form.width-65,0,#goto_about_pal); |
396 | //ïðÿìîóãîëüíèêè âíóòðè |
366 | //ïðÿìîóãîëüíèêè âíóòðè |
397 | DrawRegion_3D(1,40,Form.width-12,onTop(46,0),0x94AECE,0x94AECE); //ñèíèé îáîäîê |
367 | DrawRegion_3D(1,40,Form.width-12,onTop(46,0),0x94AECE,0x94AECE); //ñèíèé îáîäîê |
398 | DrawRegion_3D(0,39,Form.width-10,onTop(44,0),0xE4DFE1,0xE4DFE1); //ôîí |
368 | DrawRegion_3D(0,39,Form.width-10,onTop(44,0),0xE4DFE1,0xE4DFE1); //ôîí |
399 | Devices(); //ïàíåëü ñëåâà íà ñèíåì ôîíå |
369 | DrawSystemDiscs(); |
400 | Actions(); //ôóíêöèè ôàéëîâ è ïàïîê |
370 | Actions(); |
401 | //SortButtons |
371 | //SortButtons |
402 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
372 | DrawFlatButton(192,40,onLeft(192,168),16,31,0xE4DFE1,"File"); |
403 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
373 | DrawFlatButton(onLeft(168,0),40,73,16,32,0xE4DFE1,"Type"); |
404 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
374 | DrawFlatButton(onLeft(95,0),40,68,16,33,0xE4DFE1,"Size"); |
405 | //Ïåðåðèñîâûâàåì ñïèñîê |
375 | //Ïåðåðèñîâûâàåì ñïèñîê |
406 | Open_Dir(#path,ONLY_SHOW); |
376 | Open_Dir(#path,ONLY_SHOW); |
407 | //ïðîêðóòêà |
377 | //ïðîêðóòêà |
408 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
378 | DrawBar(onLeft(27,0),57,1,onTop(22,57),0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè |
409 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
379 | DrawFlatButton(onLeft(27,0),40,16,16,0,0xE4DFE1,"\x18"); //ïðîêðóòêà ââåðõ |
410 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
380 | DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,0xE4DFE1,"\x19");//ïðîêðóòêà âíèç |
- | 381 | if (del_active==1) Del_Form(); |
|
411 | } |
382 | } |
412 | 383 | ||
413 | 384 | ||
414 | void KEdit() |
385 | void KEdit() |
415 | { |
386 | { |
416 | edit1.size=edit1.pos=strlen(#edit_path); |
387 | edit1.size=edit1.pos=strlen(#edit_path); |
417 | edit_box_draw stdcall (#edit1); |
388 | edit_box_draw stdcall (#edit1); |
418 | } |
389 | } |
419 | 390 | ||
420 | 391 | ||
421 | inline fastcall void TVScroll() { //Ïðîêðóòêà |
392 | inline fastcall void TVScroll() { //Ïðîêðóòêà |
422 | dword on_y; |
393 | dword on_y; |
423 | IF (count<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;} |
394 | IF (count<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,0xE4DFE1,""); return;} |
424 | on_y = za_kadrom * onTop(22,57) / count +57; |
395 | on_y = za_kadrom * onTop(22,57) / count +57; |
425 | scroll_size=onTop(22,57) * but_num - but_num / count; |
396 | scroll_size=onTop(22,57) * but_num - but_num / count; |
426 | IF (scroll_size<20) scroll_size = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
397 | IF (scroll_size<20) scroll_size = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
427 | IF (scroll_size>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=count) on_y=onTop(23+scroll_size,0); //äëÿ áîëüøîãî ñïèñêà |
398 | IF (scroll_size>onTop(22,57)-on_y+56) || (za_kadrom+but_num>=count) on_y=onTop(23+scroll_size,0); //äëÿ áîëüøîãî ñïèñêà |
428 | DrawFlatButton(onLeft(27,0),on_y,16,scroll_size,0,0xE4DFE1,"");//ïîëçóíîê |
399 | DrawFlatButton(onLeft(27,0),on_y,16,scroll_size,0,0xE4DFE1,"");//ïîëçóíîê |
429 | DrawBar(onLeft(26,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà |
400 | DrawBar(onLeft(26,0),57,15,on_y-57,0xCED0D0);//ïîëå äî ïîëçóíêà |
430 | DrawBar(onLeft(26,0),on_y+scroll_size+1,15,onTop(22,57)-scroll_size-on_y+56,0xCED0D0); //ïîëå ïîñëå ïîëçóíêà |
401 | DrawBar(onLeft(26,0),on_y+scroll_size+1,15,onTop(22,57)-scroll_size-on_y+56,0xCED0D0); //ïîëå ïîñëå ïîëçóíêà |
431 | } |
402 | } |
432 | 403 | ||
433 | 404 | ||
434 | void FileList_ReDraw(int curbtn_) |
405 | void FileList_ReDraw(int curbtn_) |
435 | { |
406 | { |
436 | if (curbtn_<=0) //ââåðõ |
407 | if (curbtn_<=0) //ââåðõ |
437 | { |
408 | { |
438 | IF (za_kadrom==0) && (curbtn<=0) return; |
409 | IF (za_kadrom==0) && (curbtn<=0) return; |
439 | IF (-curbtn_-1 |
410 | IF (-curbtn_-1 |
440 | { |
411 | { |
441 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
412 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
442 | curbtn+=curbtn_; |
413 | curbtn+=curbtn_; |
443 | Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
414 | Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
444 | return; |
415 | return; |
445 | } |
416 | } |
446 | ELSE |
417 | ELSE |
447 | { |
418 | { |
448 | IF (-curbtn_ |
419 | IF (-curbtn_ |
449 | curbtn=0; |
420 | curbtn=0; |
450 | List_ReDraw(); |
421 | List_ReDraw(); |
451 | return; |
422 | return; |
452 | } |
423 | } |
453 | } |
424 | } |
454 | else //âíèç |
425 | else //âíèç |
455 | { |
426 | { |
456 | /*if (count-za_kadrom-but_num==1) //ýòî çàãëóøêà |
- | |
457 | { |
- | |
458 | za_kadrom=count-but_num; |
- | |
459 | curbtn=but_num-1; |
- | |
460 | List_ReDraw(); |
- | |
461 | }*/ |
- | |
462 | - | ||
463 | IF (za_kadrom==count-but_num) && (curbtn==but_num-1) return; |
427 | IF (za_kadrom==count-but_num) && (curbtn==but_num-1) return; |
464 | IF (but_num-curbtn>curbtn_) |
428 | IF (but_num-curbtn>curbtn_) |
465 | { |
429 | { |
466 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
430 | Line_ReDraw(0xFFFFFF, curbtn); //áåëàÿ ïîëîñà |
467 | curbtn+=curbtn_; |
431 | curbtn+=curbtn_; |
468 | Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
432 | Line_ReDraw(videlenie, curbtn); //âûäåëåíèå |
469 | return; |
433 | return; |
470 | } |
434 | } |
471 | else |
435 | else |
472 | { |
436 | { |
473 | //IF(za_kadrom+but_num+curbtn_>=count) //à òóò êàæèñü áûë áàã |
- | |
474 | IF(za_kadrom+curbtn+curbtn_>=count) |
437 | IF(za_kadrom+curbtn+curbtn_>=count) |
475 | { |
438 | { |
476 | za_kadrom=count-but_num; |
439 | za_kadrom=count-but_num; |
477 | curbtn=curbtn_-za_kadrom+curbtn; |
440 | curbtn=curbtn_-za_kadrom+curbtn; |
478 | } |
441 | } |
479 | ELSE |
442 | ELSE |
480 | { |
443 | { |
481 | za_kadrom+=curbtn_+curbtn-but_num+1; |
444 | za_kadrom+=curbtn_+curbtn-but_num+1; |
482 | curbtn=but_num-1; |
445 | curbtn=but_num-1; |
483 | } |
446 | } |
484 | 447 | ||
485 | IF (curbtn<0) || (curbtn>but_num) |
448 | IF (curbtn<0) || (curbtn>but_num) |
486 | { |
449 | { |
487 | curbtn=but_num-1; |
450 | curbtn=but_num-1; |
488 | } |
451 | } |
489 | List_ReDraw(); |
452 | List_ReDraw(); |
490 | 453 | ||
491 | //WriteFullDebug(""); |
454 | //WriteFullDebug(""); |
492 | } |
455 | } |
493 | } |
456 | } |
494 | } |
457 | } |
495 | 458 | ||
496 | 459 | ||
497 | 460 | ||
498 | 461 | ||
499 | void List_ReDraw() |
462 | void List_ReDraw() |
500 | { |
463 | { |
501 | int paint_x=but_num*BUTTON_HEIGHT+57; |
464 | int paint_x=but_num*BUTTON_HEIGHT+57; |
502 | IF (count-za_kadrom |
465 | IF (count-za_kadrom |
503 | { za_kadrom=count-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
466 | { za_kadrom=count-but_num; curbtn=but_num-1; } //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì |
504 | // |
467 | // |
505 | FOR (j=0; j |
468 | FOR (j=0; j |
506 | DrawBar(192,paint_x,onLeft(27,192),onTop(paint_x,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
469 | DrawBar(192,paint_x,onLeft(27,192),onTop(paint_x,6),0xFFFFFF); //çàëèâêà áåëûì äîêîíöà |
507 | DrawBar(onLeft(168,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
470 | DrawBar(onLeft(168,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
508 | DrawBar(onLeft(95,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
471 | DrawBar(onLeft(95,0),paint_x,1,onTop(paint_x,6),0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
509 | TVScroll(); |
472 | TVScroll(); |
510 | } |
473 | } |
511 | 474 | ||
512 | 475 | ||
513 | //puticon+icon_fairing!!! |
476 | //puticon+icon_fairing!!! |
514 | void Line_ReDraw(dword color, filenum){ |
477 | void Line_ReDraw(dword color, filenum){ |
515 | dword text_col=0, temp_int, |
478 | dword text_col=0, temp_int, |
516 | /* |
- | |
- | 479 | /* //ýòî ÿ ïûòàëñÿ ñäåëàòü âèä êðóïíûìè çíà÷êàìè |
|
517 | dword text_col=0, temp_int, x, |
480 | dword text_col=0, temp_int, x, |
518 | max_x=onLeft(28,192)/BUTTON_HEIGHT, |
481 | max_x=onLeft(28,192)/BUTTON_HEIGHT, |
519 | y=filenum/max_x*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y |
482 | y=filenum/max_x*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y |
520 | temp_int=filenum/max_x; |
483 | temp_int=filenum/max_x; |
521 | temp_int=temp_int*max_x; |
484 | temp_int=temp_int*max_x; |
522 | x=filenum-temp_int*BUTTON_HEIGHT+192; |
485 | x=filenum-temp_int*BUTTON_HEIGHT+192; |
523 | */ |
486 | */ |
524 | y=filenum*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y |
487 | y=filenum*BUTTON_HEIGHT+57; //ïîëîæåíèå òåêñòà ïî Y |
525 | IF (rename_active==1) ReName(false); |
488 | IF (rename_active==1) ReName(false); |
526 | //äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ |
489 | //äà, ÿ íå ñïîðþ ÷òî èçâðàò, íî ïåðåðèñîâêà çàòî ìàëåíüêàÿ |
527 | DefineButton(192,y,onLeft(28,192),BUTTON_HEIGHT,201+filenum+BT_HIDE+BT_NOFRAME,color); //êíîïà |
490 | DefineButton(192,y,onLeft(28,192),BUTTON_HEIGHT,201+filenum+BT_HIDE+BT_NOFRAME,color); //êíîïà |
528 | DrawBar(192,y,3,BUTTON_HEIGHT,color); DrawBar(195,y,16,2,color); |
491 | DrawBar(192,y,3,BUTTON_HEIGHT,color); |
529 | DrawBar(192+19,y,onLeft(46,192),BUTTON_HEIGHT,color); DrawBar(195,y+17,16,1,color); |
492 | DrawBar(192+19,y,onLeft(46,192),BUTTON_HEIGHT,color); DrawBar(195,y+17,16,1,color); |
530 | if (BUTTON_HEIGHT>18) DrawBar(195,y+18,16,BUTTON_HEIGHT-18,color); |
493 | if (BUTTON_HEIGHT>18) DrawBar(195,y+18,16,BUTTON_HEIGHT-18,color); |
- | 494 | if (BUTTON_HEIGHT>15) DrawBar(195,y,16,BUTTON_HEIGHT-15,color); |
|
531 | // |
495 | // |
532 | off=file_mas[filenum+za_kadrom]*304 + buf+72; |
496 | off=file_mas[filenum+za_kadrom]*304 + buf+72; |
533 | if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7; |
497 | if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7; |
534 | if (!TestBit(ESDWORD[off-40],4)) |
498 | if (!TestBit(ESDWORD[off-40],4)) |
535 | { |
499 | { |
536 | copystr(off,#temp); |
500 | copystr(off,#temp); |
537 | temp_int = Put_icon(#temp+find_symbol(#temp,'.'), BUTTON_HEIGHT-14/2+y); |
501 | temp_int = Put_icon(#temp+find_symbol(#temp,'.'), BUTTON_HEIGHT/2-7+y); |
538 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
502 | WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8]),0); //size |
539 | } |
503 | } |
540 | ELSE |
504 | ELSE |
541 | IF (!strcmp("..",off)) temp_int=Put_icon("..", y+2); |
505 | IF (!strcmp("..",off)) temp_int=Put_icon("..", BUTTON_HEIGHT/2-7+y); |
542 | ELSE |
506 | ELSE |
543 | temp_int=Put_icon(" |
507 | temp_int=Put_icon(" |
544 | if (color==videlenie) |
508 | if (color==videlenie) |
545 | { |
509 | { |
546 | isdir=TestBit(ESDWORD[off-40], 4); |
510 | isdir=TestBit(ESDWORD[off-40], 4); |
547 | IconFairing(temp_int, y+2); //çàêðàøèâàåì èêîíêó |
511 | IconFairing(temp_int, BUTTON_HEIGHT/2-7+y); //çàêðàøèâàåì èêîíêó |
548 | copystr(off,#file_name); |
512 | copystr(off,#file_name); |
549 | copystr(#path,#file_path); |
513 | copystr(#path,#file_path); |
550 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
514 | copystr(#file_name,#file_path+strlen(#file_path)); //ïîëíûé ïóòü ê ôàéëó |
551 | IF (text_col==0xA6A6B7) text_col=0xFFFFFF; |
515 | IF (text_col==0xA6A6B7) text_col=0xFFFFFF; |
552 | } |
516 | } |
553 | temp_int = onLeft(215,165)/6; |
517 | temp_int = onLeft(215,165)/6; |
554 | IF (strlen(off) |
518 | IF (strlen(off) |
555 | WriteText(215,BUTTON_HEIGHT-6/2+y,0,text_col,off,temp_int); //èìÿ ôàéëà |
519 | WriteText(215,BUTTON_HEIGHT-6/2+y,0,text_col,off,temp_int); //èìÿ ôàéëà |
556 | DrawBar(onLeft(168,0),y,1,BUTTON_HEIGHT,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
520 | DrawBar(onLeft(168,0),y,1,BUTTON_HEIGHT,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 1 |
557 | DrawBar(onLeft(95,0),y,1,BUTTON_HEIGHT,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
521 | DrawBar(onLeft(95,0),y,1,BUTTON_HEIGHT,0xE4DFE1); //ïîëîñà ñåðàÿ âåðòèêàëüíàÿ 2 |
558 | } |
522 | } |
559 | 523 | ||
560 | 524 | ||
561 | void Open_Dir(dword temp_, redraw){ |
525 | void Open_Dir(dword temp_, redraw){ |
562 | int errornum; |
526 | int errornum; |
563 | byte path_[4096], |
527 | byte path_[4096], |
564 | somelen=strlen(temp_)-1; |
528 | somelen=strlen(temp_)-1; |
565 | if (redraw<>ONLY_SHOW) |
529 | if (redraw<>ONLY_SHOW) |
566 | { |
530 | { |
567 | copystr(temp_, #path_); |
531 | copystr(temp_, #path_); |
568 | IF (somelen) path_[somelen]=0x00; |
532 | IF (somelen) path_[somelen]=0x00; |
569 | 533 | ||
570 | IF (buf) free(buf); |
534 | IF (buf) free(buf); |
571 | buf = malloc(32); |
535 | buf = malloc(32); |
572 | errornum=ReadDir(0, buf, #path_); |
536 | errornum=ReadDir(0, buf, #path_); |
573 | if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
537 | if (errornum<>0) //îøèáêà ïðè ÷òåíèè ïàïêè |
574 | { |
538 | { |
575 | Write_Debug_Error(errornum); |
539 | Write_Debug_Error(errornum); |
576 | HistoryPath(add_new_path); |
540 | HistoryPath(add_new_path); |
577 | GoBack(); |
541 | GoBack(); |
578 | return; |
542 | return; |
579 | } |
543 | } |
580 | count = ESDWORD[buf+8]; |
544 | count = ESDWORD[buf+8]; |
581 | buf = realloc(count * 304 + 32, buf); |
545 | buf = realloc(count * 304 + 32, buf); |
582 | ReadDir(count, buf, #path_); |
546 | ReadDir(count, buf, #path_); |
583 | IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;) |
547 | IF (EBX>6897) && (EBX<>-1) EBX=6897; //1 íà óäà÷ó ;) |
584 | count=EBX; |
548 | count=EBX; |
585 | } |
549 | } |
586 | if (count<>-1) |
550 | if (count<>-1) |
587 | { |
551 | { |
588 | copystr(temp_,#edit_path); |
552 | copystr(temp_,#edit_path); |
589 | KEdit(); |
553 | KEdit(); |
590 | HistoryPath(add_new_path); |
554 | HistoryPath(add_new_path); |
591 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--;} //ôèëüòðóåì ýëåìåíò "." |
555 | IF (!strcmp(".",buf+72)) {memmov(buf,buf+304,count-1*304); count--;} //ôèëüòðóåì ýëåìåíò "." |
592 | FOR (j=0;j |
556 | FOR (j=0;j |
593 | but_num=onTop(6,57)/BUTTON_HEIGHT; |
557 | but_num=onTop(6,57)/BUTTON_HEIGHT; |
594 | IF (count |
558 | IF (count |
595 | //ñòðåëî÷êà ñîðòèðîâêè |
559 | //ñòðåëî÷êà ñîðòèðîâêè |
596 | IF (sort_num==1) WriteText(Form.width+60/2,45,0x80,0x4E78AC,"\x19",0); |
560 | IF (sort_num==1) WriteText(Form.width+60/2,45,0x80,0x4E78AC,"\x19",0); |
597 | IF (sort_num==2) WriteText(Form.width-115,45,0x80,0x4E78AC,"\x19",0); |
561 | IF (sort_num==2) WriteText(Form.width-115,45,0x80,0x4E78AC,"\x19",0); |
598 | IF (sort_num==3) WriteText(Form.width-44,45,0x80,0x4E78AC,"\x19",0); |
562 | IF (sort_num==3) WriteText(Form.width-44,45,0x80,0x4E78AC,"\x19",0); |
599 | IF (redraw<>ONLY_SHOW) Sorting(); //äëÿ áîëüøèõ ïàïîê ïðè ðåïåèíòå îêíà |
563 | IF (redraw<>ONLY_SHOW) Sorting(); //äëÿ áîëüøèõ ïàïîê ïðè ðåïåèíòå îêíà |
600 | IF (redraw<>ONLY_OPEN) List_ReDraw(); |
564 | IF (redraw<>ONLY_OPEN) List_ReDraw(); |
601 | } |
565 | } |
602 | IF (count==-1) && (redraw<>ONLY_OPEN) {but_num=count=0; List_ReDraw();} |
566 | IF (count==-1) && (redraw<>ONLY_OPEN) {but_num=count=0; List_ReDraw();} |
603 | } |
567 | } |
604 | 568 | ||
605 | 569 | ||
606 | 570 | ||
607 | inline Sorting() |
571 | inline Sorting() |
608 | { |
572 | { |
609 | dword k=0, l=1; |
573 | dword k=0, l=1; |
610 | IF (!strcmp(#path,"/")) {FOR(k=1;k |
574 | if (!strcmp(#path,"/")) //íå ñîðòèðîâàòü ïàïêè è íå ìåíÿòü ðåãèñòð â "/" |
- | 575 | { |
|
- | 576 | FOR(k=1;k |
|
- | 577 | return; |
|
- | 578 | } |
|
611 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
579 | FOR (j=count-1, off=count-1*304+buf+32; j>=0; j--, off-=304;) //ïàïêè ââåðõ, ôàéëû âíèç |
612 | { |
580 | { |
613 | ChangeCase(off+40); |
581 | ChangeCase(off+40); |
614 | IF (TestBit(ESDWORD[off],4)) {file_mas[k]=j; k++;} |
582 | if (TestBit(ESDWORD[off],4)) //ïàïêà? |
- | 583 | { |
|
- | 584 | file_mas[k]=j; |
|
- | 585 | k++; |
|
- | 586 | } |
|
- | 587 | else |
|
- | 588 | { |
|
615 | ELSE {file_mas[count-l]=j; l++;} |
589 | file_mas[count-l]=j; |
- | 590 | l++; |
|
- | 591 | } |
|
616 | } |
592 | } |
617 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
593 | //Ñîáñòâåííî ñîðòèðîâêà: âíà÷àëå ïàïêè, ïîòîì ôàéëû |
618 | Sort_by_Name(0,k-1); |
594 | Sort_by_Name(0,k-1); |
619 | IF (sort_num==1) Sort_by_Name(k,count-1); |
595 | IF (sort_num==1) Sort_by_Name(k,count-1); |
620 | IF (sort_num==2) Sort_by_Type(k,count-1); |
596 | IF (sort_num==2) Sort_by_Type(k,count-1); |
621 | IF (sort_num==3) Sort_by_Size(k,count-1); |
597 | IF (sort_num==3) Sort_by_Size(k,count-1); |
622 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
598 | //åñëè ïàïêà ".." íå ïåðâàÿ, ñòàâèì å¸ òóäà |
623 | IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k=k-1; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]> |
599 | IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k=k-1; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]> |
624 | } |
600 | } |
625 | 601 | ||
626 | 602 | ||
627 | void Del_Form() |
603 | void Del_Form() |
628 | { |
604 | { |
629 | int dform_x=Form.width/2-13; |
605 | int dform_x=Form.width/2-13; |
630 | //òèïà îêíî |
606 | //òèïà îêíî |
631 | FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé |
607 | FOR (i=5;i<11;i++) DeleteButton(201+i); //óäàëÿåì êíîïêè ïîä ôîðìîé |
632 | DrawFlatButton(dform_x,160,200,80,0,0xE4DFE1, ""); //ôîðìà |
608 | DrawFlatButton(dform_x,160,200,80,0,0xE4DFE1, ""); //ôîðìà |
633 | WriteText(dform_x+19,175,0x80,0,"Do you really want to delete",0); |
609 | WriteText(dform_x+19,175,0x80,0,"Do you really want to delete",0); |
634 | IF (strlen(#file_name)<28) |
610 | IF (strlen(#file_name)<28) |
635 | { |
611 | { |
636 | WriteText(strlen(#file_name)*6+dform_x+20,190,0x80,0,"?",0); |
612 | WriteText(strlen(#file_name)*6+dform_x+20,190,0x80,0,"?",0); |
637 | WriteText(dform_x+20,190,0x80,0,#file_name,0); //ïèøåì èìÿ |
613 | WriteText(dform_x+20,190,0x80,0,#file_name,0); //ïèøåì èìÿ |
638 | } |
614 | } |
639 | ELSE |
615 | ELSE |
640 | { |
616 | { |
641 | WriteText(164+dform_x,190,0x80,0,"...?",0); |
617 | WriteText(164+dform_x,190,0x80,0,"...?",0); |
642 | WriteText(dform_x+20,190,0,0,#file_name,24); //ïèøåì èìÿ |
618 | WriteText(dform_x+20,190,0,0,#file_name,24); //ïèøåì èìÿ |
643 | } |
619 | } |
644 | //êíîïî÷êè |
620 | //êíîïî÷êè |
645 | DrawFlatButton(dform_x+20,208,70,20,301,0xFFB6B5,"Yes"); |
621 | DrawFlatButton(dform_x+20,208,70,20,301,0xFFB6B5,"Yes"); |
646 | DrawFlatButton(dform_x+111,208,70,20,302,0xC6DFC6,"No"); |
622 | DrawFlatButton(dform_x+111,208,70,20,302,0xC6DFC6,"No"); |
647 | del_active=1; |
623 | del_active=1; |
648 | } |
624 | } |
649 | 625 | ||
650 | 626 | ||
651 | void Del_File(byte dodel) |
627 | void Del_File(byte dodel) |
652 | { |
628 | { |
653 | int del_file_rez; |
629 | int del_file_rez; |
654 | IF (dodel==true) |
630 | IF (dodel==true) |
655 | { |
631 | { |
656 | del_file_rez=DeleleFile(#file_path); |
632 | del_file_rez=DeleleFile(#file_path); |
657 | IF (del_file_rez<>0) |
633 | IF (del_file_rez<>0) |
658 | { |
634 | { |
659 | Write_Debug_Error(del_file_rez); |
635 | Write_Debug_Error(del_file_rez); |
660 | IF (isdir==true) ShowMessage("Error. Folder isn't empty."); |
636 | IF (isdir==true) ShowMessage("Error. Folder isn't empty."); |
661 | IF (isdir==false) ShowMessage("Error. Filesystem read-only."); |
637 | IF (isdir==false) ShowMessage("Error. Filesystem read-only."); |
662 | } |
638 | } |
663 | } |
639 | } |
664 | del_active=0; |
640 | del_active=0; |
665 | DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No |
641 | DeleteButton(301); DeleteButton(302); //óäàëÿåì êíîïî÷êè Yes/No |
666 | Open_Dir(#path,1); |
642 | Open_Dir(#path,1); |
667 | } |
643 | } |
668 | 644 | ||
669 | void Paste() |
645 | void Paste() |
670 | { |
646 | { |
671 | char new_copy_path[4096]=''; |
647 | char new_copy_path[4096]=''; |
672 | int copy_rezult; |
648 | int copy_rezult; |
673 | 649 | ||
674 | IF (!copy_file) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè |
650 | IF (!copy_file) return; //îòìåíà, åøè åù¸ íè÷¸ íå ñêîïèðîâàëè |
675 | copystr(#path,#new_copy_path); |
651 | copystr(#path,#new_copy_path); |
676 | copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
652 | copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
677 | if (strcmp(#copy_file,#new_copy_path)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå |
653 | if (strcmp(#copy_file,#new_copy_path)==0) //åñëè ìû êîïèðóåì è âñòàâëÿåì â îäíîé è òîé æå ïàïêå |
678 | { |
654 | { |
679 | copystr(#path,#new_copy_path); |
655 | copystr(#path,#new_copy_path); |
680 | copystr("new_",#new_copy_path+strlen(#new_copy_path)); |
656 | copystr("new_",#new_copy_path+strlen(#new_copy_path)); |
681 | copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
657 | copystr(#copy_file+find_symbol(#copy_file,'/'),#new_copy_path+strlen(#new_copy_path)); |
682 | } |
658 | } |
683 | copy_rezult=CopyFile(#copy_file,#new_copy_path); |
659 | copy_rezult=CopyFile(#copy_file,#new_copy_path); |
684 | IF (copy_rezult<>0) //îøèáêà |
660 | IF (copy_rezult<>0) //îøèáêà |
685 | { |
661 | { |
686 | Write_Debug_Error(copy_rezult); |
662 | Write_Debug_Error(copy_rezult); |
687 | DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); |
663 | DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); |
688 | Pause(150); |
664 | Pause(150); |
689 | } |
665 | } |
690 | IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
666 | IF (cut_active==1) //åñëè ìû âûáðàëè âûðåçàòü |
691 | { |
667 | { |
692 | copystr(#copy_file,#file_path); |
668 | copystr(#copy_file,#file_path); |
693 | Del_File(true); |
669 | Del_File(true); |
694 | copy_file=''; |
670 | copy_file=''; |
695 | cut_active=0; |
671 | cut_active=0; |
696 | } |
672 | } |
697 | SelectFile(#new_copy_path+find_symbol(#new_copy_path,'/')); |
673 | SelectFile(#new_copy_path+find_symbol(#new_copy_path,'/')); |
698 | } |
674 | } |
699 | 675 | ||
700 | 676 | ||
701 | void Tip(int y, dword caption, id, arrow) |
677 | void Tip(int y, dword caption, id, arrow) |
702 | { |
678 | { |
703 | DrawBar(17,y,160,17,0xE4DFE1); //ñåðîå ñâåðõó |
679 | DrawBar(17,y,160,17,0xE4DFE1); //ñåðîå ñâåðõó |
704 | WriteText(25,y+5,0x80,0,caption,0); //text Goto: |
680 | WriteText(25,y+5,0x80,0,caption,0); //text Goto: |
705 | IF (id<>0) DefineButton(159,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0xE4DFE1); //êíîïà äëÿ ñòðåëêè |
681 | IF (id<>0) DefineButton(159,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0xE4DFE1); //êíîïà äëÿ ñòðåëêè |
706 | WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç |
682 | WriteText(165,y+5,0x80,0,arrow,0); //ñòðåëêà âíèç |
707 | DrawBar(17,y+17,160,1,0x94AECE); //ïîä÷¸ðêèâàíèå |
683 | DrawBar(17,y+17,160,1,0x94AECE); //ïîä÷¸ðêèâàíèå |
708 | } |
684 | } |
709 | 685 | ||
710 | 686 | ||
711 | 687 | ||
712 | void ReName(byte rename) |
688 | void ReName(byte rename) |
713 | { |
689 | { |
714 | int del_file_rez; |
690 | int del_file_rez; |
715 | char edit_name[256]=''; |
691 | char edit_name[256]=''; |
716 | rename_active=0; |
692 | rename_active=0; |
717 | edit2.flags=64; |
693 | edit2.flags=64; |
718 | DefineButton(192,curbtn*BUTTON_HEIGHT+57,onLeft(27,192),BUTTON_HEIGHT,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
694 | DefineButton(192,curbtn*BUTTON_HEIGHT+57,onLeft(27,192),BUTTON_HEIGHT,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); |
719 | if (rename==true) |
695 | if (rename==true) |
720 | { |
696 | { |
721 | copystr(#path,#temp); |
697 | copystr(#path,#temp); |
722 | copystr(#file_name,#edit_name); //ñîõðàíÿåì íîâîå èìÿ ôàéëà, äëÿ òîãî, ÷òîáû åãî ïîòîì âûäåëèòü |
698 | copystr(#file_name,#edit_name); //ñîõðàíÿåì íîâîå èìÿ ôàéëà, äëÿ òîãî, ÷òîáû åãî ïîòîì âûäåëèòü |
723 | copystr(#file_name,#temp+strlen(#temp)); |
699 | copystr(#file_name,#temp+strlen(#temp)); |
724 | if (strcmp(#file_path,#temp)<>0) && (file_name) |
700 | if (strcmp(#file_path,#temp)<>0) && (file_name) |
725 | IF (isdir) |
701 | IF (isdir) |
726 | { |
702 | { |
727 | del_file_rez=DeleleFile(#file_path); |
703 | del_file_rez=DeleleFile(#file_path); |
728 | IF (del_file_rez<>0) |
704 | IF (del_file_rez<>0) |
729 | { |
705 | { |
730 | Write_Debug_Error(del_file_rez); |
706 | Write_Debug_Error(del_file_rez); |
731 | ShowMessage("Error. Folder isn't empty."); |
707 | ShowMessage("Error. Folder isn't empty."); |
732 | return; |
708 | return; |
733 | } |
709 | } |
734 | ELSE CreateFolder(#temp); |
710 | ELSE CreateFolder(#temp); |
735 | Open_Dir(#path,1); |
711 | Open_Dir(#path,1); |
736 | } |
712 | } |
737 | ELSE |
713 | ELSE |
738 | { |
714 | { |
739 | CopyFile(#file_path,#temp); |
715 | CopyFile(#file_path,#temp); |
740 | Del_File(true); |
716 | Del_File(true); |
741 | } |
717 | } |
742 | SelectFile(#edit_name); |
718 | SelectFile(#edit_name); |
743 | } |
719 | } |
744 | Line_ReDraw(videlenie,curbtn); |
720 | Line_ReDraw(videlenie,curbtn); |
745 | } |
721 | } |
746 | 722 | ||
747 | 723 | ||
748 | void Actions() |
724 | void Actions() |
749 | { |
725 | { |
750 | int actions_y=dev_num*16; |
726 | int actions_y=disc_num*16; |
751 | DrawBar(17,actions_y+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè |
727 | DrawBar(17,actions_y+75,160,15,0x00699C); //ñèíèé ïðÿìîóãîëüíèê - ïîä äåâàéñàìè |
- | 728 | DrawBar(17,show_actions*51+actions_y+108,160,onTop(show_actions*51+actions_y+108,6),0x00699C); //ñèíåå â êîíöå |
|
752 | if (show_actions==1) |
729 | if (show_actions==1) |
753 | { |
730 | { |
754 | Tip(actions_y+90, "Actions", 77, "\x19"); |
731 | Tip(actions_y+90, "Actions", 77, "\x19"); //çàãîëîâîê |
755 | DrawBar(17,actions_y+108,160,51,0xFFFFFF); //áåëîå |
732 | DrawBar(17,actions_y+108,160,51,0xFFFFFF); //áåëîå |
756 | PutImage(#factions,16,44,21,actions_y+113); //ïèêòîãðàìêè |
733 | PutImage(#factions,16,44,21,actions_y+113); //èêîíêè |
757 | //rename file |
734 | //rename file |
758 | DefineButton(22,actions_y+108,159,16,80+BT_HIDE,0xE4DFE1); |
735 | DefineButton(17,actions_y+108,159,16,80+BT_HIDE,0xE4DFE1); |
759 | WriteText(42,actions_y+113,0x80,0,"Rename file |
736 | WriteText(42,actions_y+113,0x80,0,"Rename file |
760 | //delete file |
737 | //delete file |
761 | DefineButton(17,actions_y+125,159,16,81+BT_HIDE,0xE4DFE1); |
738 | DefineButton(17,actions_y+125,159,16,81+BT_HIDE,0xE4DFE1); |
762 | WriteText(42,actions_y+130,0x80,0,"Delete file |
739 | WriteText(42,actions_y+130,0x80,0,"Delete file |
763 | //create folder |
740 | //create folder |
764 | DefineButton(17,actions_y+142,159,16,82+BT_HIDE,0xE4DFE1); |
741 | DefineButton(17,actions_y+142,159,16,82+BT_HIDE,0xE4DFE1); |
765 | WriteText(42,actions_y+147,0x80,0,"Create folder |
742 | WriteText(42,actions_y+147,0x80,0,"Create folder |
766 | } |
743 | } |
767 | ELSE |
744 | else |
768 | { |
745 | { |
- | 746 | DeleteButton(80); |
|
- | 747 | DeleteButton(81); |
|
769 | DeleteButton(80); DeleteButton(81); DeleteButton(82); |
748 | DeleteButton(82); |
770 | Tip(actions_y+90, "Actions", 77, "\x18"); |
749 | Tip(actions_y+90, "Actions", 77, "\x18"); |
771 | } |
750 | } |
772 | DrawBar(17,show_actions*51+actions_y+108,160,onTop(show_actions*51+actions_y+108,6),0x00699C); //ñèíåå â êîíöå |
- | |
773 | } |
751 | } |
774 | 752 | ||
775 | 753 | ||
776 | 754 | ||
777 | void Goto_edit_path() |
755 | void Goto_edit_path() |
778 | { |
756 | { |
779 | IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
757 | IF (strcmp(#path,#edit_path)==0) return; //ïðîâåðêà íå â ýòîé ëè ìû ïàïêå |
780 | IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
758 | IF (strcmp(#edit_path+strlen(#edit_path)-1,"/")<>0) copystr("/",#edit_path+strlen(#edit_path)); //åñëè íåò, + "/" |
781 | Open_Dir(#edit_path,2); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
759 | Open_Dir(#edit_path,2); //ïðîâåðÿåì åñëè ôàéëû â ïàïêå, òàê ìû óçíà¸ì ñóùåñòâóåò ëè îíà |
782 | IF (count<1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà |
760 | IF (count<1) KEdit(); ELSE //ïðîñòî î÷èùàåì ïîëîñó àäðåñà |
783 | {za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
761 | {za_kadrom=curbtn=0; copystr(#edit_path,#path);}//íàâåðõ ñïèñêà |
784 | Open_Dir(#path,1); |
762 | Open_Dir(#path,1); |
785 | } |
763 | } |
786 | 764 | ||
787 | void SelectFile(dword that_file) |
765 | void SelectFile(dword that_file) |
788 | { |
766 | { |
789 | za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
767 | za_kadrom=curbtn=0; //ââåðõ ñïèñêà |
790 | Open_Dir(#path,ONLY_OPEN); |
768 | Open_Dir(#path,ONLY_OPEN); |
791 | ChangeCase(that_file); |
769 | ChangeCase(that_file); |
792 | FOR (i=count-1; i>=0; i--;) IF(strcmp(file_mas[i]*304+buf+72,that_file)==0) BREAK; |
- | |
793 | /*IF (i>but_num-1) && (i>count-but_num) //âñ¸ ýòî ïî-èäåå ìîæíî ñäåëàòü ÷åðåç FileList_ReDraw(i) èëè ÿ íåïðàâ? |
- | |
794 | { |
- | |
795 | za_kadrom=count-but_num; |
- | |
796 | curbtn=i-count+but_num; |
770 | for (i=count-1; i>=0; i--;) |
797 | } |
- | |
798 | ELSE FileList_ReDraw(i);*/ |
771 | if (strcmp(file_mas[i]*304+buf+72,that_file)==0) break; |
799 | FileList_ReDraw(i); |
772 | FileList_ReDraw(i); |
800 | List_ReDraw(); |
773 | List_ReDraw(); |
801 | } |
774 | } |
802 | 775 | ||
803 | 776 | ||
804 | void Dir_Up() |
777 | void Dir_Up() |
805 | { |
778 | { |
806 | byte temp_[4096]; |
779 | byte temp_[4096]; |
807 | i=strlen(#path)-1; |
780 | i=strlen(#path)-1; |
808 | path[i]=0x00; |
781 | path[i]=0x00; |
809 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
782 | do i--; while (path[i]<>'/'); copystr(#path+i+1,#temp_); |
810 | path[i+1]=0x00; |
783 | path[i+1]=0x00; |
811 | SelectFile(#temp_); |
784 | SelectFile(#temp_); |
812 | } |
785 | } |
813 | 786 | ||
814 | 787 | ||
815 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
788 | inline fastcall void GoBack() //âíà÷àëå óäàëÿåì òåêóùèé ïóòü, à ïîòîì êîïèðóåì òî, ÷òî îñòàëîñü |
816 | { |
789 | { |
817 | i=strlen(#PathHistory)-1; |
790 | i=strlen(#PathHistory)-1; |
818 | IF (i<7) RETURN; |
791 | IF (i<7) RETURN; |
819 | PathHistory[i]=0x00; |
792 | PathHistory[i]=0x00; |
820 | copystr(#PathHistory+find_symbol(#PathHistory,'/'),#temp); //ïàïêà â êîòîðîé áûëè |
793 | copystr(#PathHistory+find_symbol(#PathHistory,'/'),#temp); //ïàïêà â êîòîðîé áûëè |
821 | HistoryPath(go_back); |
794 | HistoryPath(go_back); |
822 | SelectFile(#temp); |
795 | SelectFile(#temp); |
823 | } |
796 | } |
824 | 797 | ||
825 | 798 | ||
826 | stop:7)>>1)>>>>>>>28)>11;i++)> |
799 | stop:7)>>1)>>>>>>>28)>11;i++)> |
827 | } |
800 | } |
828 | 801 | ||
829 | 802 | ||
830 | void>>>>>>>>>>0)> |
803 | void>>>>>>>>>>0)> |
831 | >=0)>=0)>20)>=0)>6;>3;>480)>280)>='Z')DSBYTE[#temp]=AL|0x20; |
804 | >=0)>=0)>20)>=0)>6;>3;>480)>280)>='Z')DSBYTE[#temp]=AL|0x20; |
832 | >>8; |
805 | >>8; |
833 | ><8; |
806 | ><8; |
834 | >>>>8; |
807 | >>>>8; |
835 | ><8; |
808 | ><8; |
836 | >>>>200)>>>>0)>=Form.width-6)> |
809 | >>>>>200)>>>>0)>=Form.width-6)> |
837 | > |
810 | > |
838 | >=Form.width-6)>57) |
811 | >=Form.width-6)>57) |
839 | >=Form.width-6)>>>>> |
812 | >=Form.width-6)>>>> |
840 | > |
- |