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