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