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