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