Rev 4640 | Rev 5484 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4640 | Rev 5482 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | ///////////////////////////////////////////////////////////////////////////////////////// |
|
- | 2 | ///////////////////////// GUI //////////////////// |
|
- | 3 | ///////////////////////////////////////////////////////////////////////////////////////// |
|
- | 4 | ||
1 | #include "..\lib\figures.h" |
5 | #include "..\lib\figures.h" |
2 | #include "..\lib\mem.h" |
- | |
3 | #include "..\lib\dll.h" |
- | |
4 | #include "..\lib\lib.obj\box_lib.h" |
6 | #include "..\lib\lib.obj\box_lib.h" |
Line 5... | Line 7... | ||
5 | 7 | ||
6 | #ifdef LANG_RUS |
8 | #ifdef LANG_RUS |
7 | unsigned char *but_text[]={ |
9 | unsigned char *but_text[]={ |
Line 13... | Line 15... | ||
13 | ?define INTRO_TEXT_1 "¤¥áì ¡ã¤¥â ®â®¡à ¦ âìáï ᯨ᮪" |
15 | ?define INTRO_TEXT_1 "¤¥áì ¡ã¤¥â ®â®¡à ¦ âìáï ᯨ᮪" |
14 | ?define INTRO_TEXT_2 "¢¨àâã «ìëå ¤¨áª®¢ ¢ á¨á⥬¥." |
16 | ?define INTRO_TEXT_2 "¢¨àâã «ìëå ¤¨áª®¢ ¢ á¨á⥬¥." |
15 | ?define INTRO_TEXT_3 "®¯à®¡ã©â¥ ¤®¡ ¢¨âì ®¤¨..." |
17 | ?define INTRO_TEXT_3 "®¯à®¡ã©â¥ ¤®¡ ¢¨âì ®¤¨..." |
16 | ?define INTRO_TEXT_4 " §¬¥à:" |
18 | ?define INTRO_TEXT_4 " §¬¥à:" |
Line 17... | Line 19... | ||
17 | 19 | ||
18 | ?define NOTIFY_TEXT_NO_DISK "«ï ç « ¤®¡ ¢ì⥠å®âï ¡ë ®¤¨ ¤¨áª" |
20 | ?define NOTIFY_TEXT_NO_DISK "'«ï ç « ¤®¡ ¢ì⥠å®âï ¡ë ®¤¨ ¤¨áª' -W" |
19 | ?define NOTIFY_TEXT_DISK_LIMIT "®á⨣ã⠯।¥« ª®«¨ç¥á⢠¢¨àâã «ìëå ¤¨áª®¢" |
21 | ?define NOTIFY_TEXT_DISK_LIMIT "'®á⨣ã⠯।¥« ª®«¨ç¥á⢠¢¨àâã «ìëå ¤¨áª®¢' -W" |
Line 20... | Line 22... | ||
20 | ?define FREE_RAM_TEXT " §¬¥à ᢮¡®¤®© ®¯¥à ⨢®© ¯ ¬ïâ¨: " |
22 | ?define FREE_RAM_TEXT " §¬¥à ᢮¡®¤®© ®¯¥à ⨢®© ¯ ¬ïâ¨: " |
21 | 23 | ||
22 | #else |
24 | #else |
Line 29... | Line 31... | ||
29 | ?define INTRO_TEXT_1 " There will be list of mounted" |
31 | ?define INTRO_TEXT_1 " There will be list of mounted" |
30 | ?define INTRO_TEXT_2 " virtual disks." |
32 | ?define INTRO_TEXT_2 " virtual disks." |
31 | ?define INTRO_TEXT_3 " Try to add one..." |
33 | ?define INTRO_TEXT_3 " Try to add one..." |
32 | ?define INTRO_TEXT_4 "Size:" |
34 | ?define INTRO_TEXT_4 "Size:" |
Line 33... | Line 35... | ||
33 | 35 | ||
34 | ?define NOTIFY_TEXT_NO_DISK "You need to have at least one disk" |
36 | ?define NOTIFY_TEXT_NO_DISK "'You need to have at least one disk' -W" |
35 | ?define NOTIFY_TEXT_DISK_LIMIT "Reached the limit of the number of virtual disks" |
37 | ?define NOTIFY_TEXT_DISK_LIMIT "'Reached the limit of the number of virtual disks' -W" |
36 | ?define FREE_RAM_TEXT "Free RAM size: " |
38 | ?define FREE_RAM_TEXT "Free RAM size: " |
Line 37... | Line 39... | ||
37 | #endif |
39 | #endif |
38 | 40 | ||
Line 39... | Line 41... | ||
39 | struct path_string { unsigned char Item[256]; }; |
41 | struct path_string { unsigned char Item[10]; }; |
40 | path_string disk_list[40]; |
42 | path_string disk_list[10]; |
41 | 43 | ||
Line 42... | Line 44... | ||
42 | dword devbuf; |
44 | dword devbuf; |
43 | int disk_num; |
45 | char disk_num; |
Line 44... | Line -... | ||
44 | int selected; |
- | |
45 | - | ||
46 | system_colors sc; |
46 | char selected; |
47 | proc_info Form; |
47 | |
48 | 48 | system_colors sc; |
|
Line 49... | Line 49... | ||
49 | unsigned char dsize[30]; |
49 | proc_info Form; |
50 | 50 | ||
51 | unsigned char icons[14*56] = FROM "icons.raw"; |
51 | unsigned char icons[] = FROM "icons.raw"; |
Line 52... | Line 52... | ||
52 | #define TOPPANELH 50 |
52 | #define TOPPANELH 50 |
53 | #define BOTPANELH 20 |
53 | #define BOTPANELH 20 |
54 | 54 | ||
55 | int mouse_dd; |
55 | int mouse_dd; |
Line 56... | Line 56... | ||
56 | char disk_size[30]; |
56 | char new_disk_size[5]; |
57 | edit_box edit_disk_size= {50,0,5,0xffffff,0x94AECE,0x000000,0xffffff,0,4,#disk_size,#mouse_dd, 1000000000000010b}; |
57 | edit_box edit_disk_size= {50,0,5,0xffffff,0x94AECE,0x000000,0xffffff,0,4,#new_disk_size,#mouse_dd, 1000000000000010b}; |
58 | 58 | ||
59 | void Main_Window() |
59 | void Main_Window() |
60 | { |
60 | { |
61 | unsigned int id, key, err; |
61 | word id, key, err; |
62 | int i, x; |
62 | int i, x; |
Line 75... | Line 75... | ||
75 | edit_box_mouse stdcall (#edit_disk_size); |
75 | edit_box_mouse stdcall (#edit_disk_size); |
76 | break; |
76 | break; |
Line 77... | Line 77... | ||
77 | 77 | ||
78 | case evButton: |
78 | case evButton: |
79 | id=GetButtonID(); |
79 | id=GetButtonID(); |
80 | if (id==1) ExitProcess(); |
80 | if (id==1) return; |
81 | if (id==10) AddDisk(); |
81 | if (id==10) AddDisk(); |
82 | if (id==11) //del |
- | |
83 | { |
- | |
84 | _DEL_DISK: |
- | |
85 | if (disk_num==0) |
- | |
86 | { |
- | |
87 | notify(NOTIFY_TEXT_NO_DISK); |
- | |
88 | break; |
- | |
89 | } |
- | |
90 | param[0]='d'; |
- | |
91 | param[1]=disk_list[selected].Item[3]; |
- | |
92 | err = Console_Work(); |
- | |
93 | if ((err!=0) && (err<7)) notify(rezult_text[err]); |
- | |
94 | pause(15); |
- | |
95 | GetDisks(); |
- | |
96 | DrawTmpDisks(); |
- | |
97 | } |
82 | if (id==11) DelDisk(); |
98 | if (id>=20) |
83 | if (id>=20) |
99 | { |
84 | { |
100 | if (selected==id-20) OpenTmpDisk(); |
85 | if (selected==id-20) OpenTmpDisk(); |
101 | selected=id-20; |
86 | selected=id-20; |
102 | DrawTmpDisks(); |
87 | DrawTmpDisks(); |
103 | } |
88 | } |
104 | break; |
89 | break; |
105 | case evKey: |
90 | case evKey: |
106 | key = GetKey(); |
- | |
107 | if (key==9) |
- | |
108 | { |
- | |
109 | if ( !asm test edit_disk_size.flags, 2) edit_disk_size.flags=1000000000000010b; |
- | |
110 | else edit_disk_size.flags=1000000000000000b; |
- | |
111 | edit_box_draw stdcall (#edit_disk_size); |
- | |
112 | } |
91 | key = GetKey(); |
113 | if ( asm test edit_disk_size.flags, 2) |
92 | if (TestBit(edit_disk_size.flags,2)) |
- | 93 | { |
|
114 | { |
94 | if (key==185) AddDisk(); |
115 | if (key==13) |
95 | if (key==13) |
116 | { |
96 | { |
117 | edit_disk_size.flags=1000000000000000b; |
97 | edit_disk_size.flags=1000000000000000b; |
118 | edit_box_draw stdcall (#edit_disk_size); |
98 | edit_box_draw stdcall (#edit_disk_size); |
119 | } |
99 | } |
120 | EAX=key<<8; |
100 | EAX=key<<8; |
121 | edit_box_key stdcall(#edit_disk_size); |
101 | edit_box_key stdcall(#edit_disk_size); |
122 | break; |
102 | break; |
123 | } |
- | |
124 | if (key==182) if (disk_num<>0) goto _DEL_DISK; |
- | |
125 | if (key==185) AddDisk(); |
- | |
126 | if (key==13) OpenTmpDisk(); |
103 | } |
127 | if (key==178) |
104 | switch(key) |
- | 105 | { |
|
- | 106 | case 9: |
|
- | 107 | if ( !asm test edit_disk_size.flags, 2) edit_disk_size.flags=1000000000000010b; |
|
- | 108 | else edit_disk_size.flags=1000000000000000b; |
|
- | 109 | edit_box_draw stdcall (#edit_disk_size); |
|
- | 110 | break; |
|
- | 111 | case 185: |
|
- | 112 | AddDisk(); |
|
- | 113 | break; |
|
- | 114 | case 182: |
|
- | 115 | if (disk_num<>0) DelDisk(); |
|
- | 116 | break; |
|
- | 117 | case 13: |
|
- | 118 | OpenTmpDisk(); |
|
- | 119 | break; |
|
128 | { |
120 | case 178: |
129 | if (selected==0) break; |
121 | if (selected==0) break; |
130 | selected--; |
122 | selected--; |
131 | DrawTmpDisks(); |
123 | DrawTmpDisks(); |
132 | } |
124 | break; |
133 | if (key==177) |
- | |
134 | { |
125 | case 177: |
135 | if (selected+2>disk_num) break; |
126 | if (selected+2>disk_num) break; |
136 | selected++; |
127 | selected++; |
137 | DrawTmpDisks(); |
128 | DrawTmpDisks(); |
138 | } |
129 | break; |
139 | if (key==176) |
- | |
140 | { |
130 | case 176: |
141 | if (selected<3) break; |
131 | if (selected<3) break; |
142 | selected-=3; |
132 | selected-=3; |
143 | DrawTmpDisks(); |
133 | DrawTmpDisks(); |
144 | } |
134 | break; |
145 | if (key==179) |
- | |
146 | { |
135 | case 179: |
147 | if (selected+4>disk_num) break; |
136 | if (selected+4>disk_num) break; |
148 | selected+=3; |
137 | selected+=3; |
- | 138 | DrawTmpDisks(); |
|
149 | DrawTmpDisks(); |
139 | break; |
150 | } |
- | |
151 | //EAX=key<<8; |
- | |
152 | //edit_box_key stdcall(#edit_disk_size); |
140 | } |
153 | break; |
141 | break; |
154 | case evReDraw: |
142 | case evReDraw: |
155 | sc.get(); |
143 | sc.get(); |
156 | DefineAndDrawWindow(170,150,314,270,0x74,sc.work,"Virtual Disk Manager 0.5",0); |
144 | DefineAndDrawWindow(170,150,314,270,0x74,sc.work,"Virtual Disk Manager 0.6",0); |
157 | GetProcessInfo(#Form, SelfInfo); |
145 | GetProcessInfo(#Form, SelfInfo); |
Line 158... | Line 146... | ||
158 | if (Form.status_window>2) break; |
146 | if (Form.status_window>2) break; |
159 | 147 | ||
Line 172... | Line 160... | ||
172 | DrawTmpDisks(); |
160 | DrawTmpDisks(); |
173 | } |
161 | } |
174 | } |
162 | } |
175 | } |
163 | } |
Line -... | Line 164... | ||
- | 164 | ||
176 | 165 | ||
177 | void GetSizeDisk() |
166 | void GetSizeDisk() |
178 | { |
167 | { |
179 | int fr; |
168 | int fr; |
180 | fr = GetFreeRAM() / 5; |
169 | fr = GetFreeRAM() / 5; |
181 | fr = itoa(fr / 2048); |
170 | fr = itoa(fr / 2048); |
182 | strcpy(#disk_size, fr); |
171 | strcpy(#new_disk_size, fr); |
183 | edit_disk_size.size = edit_disk_size.pos = strlen(#disk_size); |
172 | edit_disk_size.size = edit_disk_size.pos = strlen(#new_disk_size); |
184 | edit_box_draw stdcall (#edit_disk_size); |
173 | edit_box_draw stdcall (#edit_disk_size); |
Line -... | Line 174... | ||
- | 174 | } |
|
185 | } |
175 | |
186 | 176 | ||
187 | void OpenTmpDisk() |
177 | void OpenTmpDisk() |
188 | { |
178 | { |
189 | unsigned char eol_param[256]; |
179 | unsigned char eol_param[10]; |
190 | if (!disk_num) return; |
180 | if (!disk_num) return; |
191 | strcpy(#eol_param, "/tmp#/1/"); |
181 | strcpy(#eol_param, "/tmp#/1/"); |
192 | eol_param[4]=disk_list[selected].Item[3]; |
182 | eol_param[4] = disk_list[selected].Item[3]; |
Line 193... | Line 183... | ||
193 | RunProgram("/sys/File managers/Eolite", #eol_param); |
183 | RunProgram("/sys/File managers/Eolite", #eol_param); |
194 | } |
184 | } |
195 | 185 | ||
196 | 186 | ||
Line 197... | Line 187... | ||
197 | void GetDisks() |
187 | void GetDisks() |
198 | { |
188 | { |
199 | unsigned int j, fcount=30; |
189 | unsigned int j, fcount=30; |
200 | unsigned char disk_name[256]; |
190 | unsigned char disk_name[10]; |
Line 217... | Line 207... | ||
217 | } |
207 | } |
218 | if (disk_num>12) disk_num=12; |
208 | if (disk_num>12) disk_num=12; |
219 | } |
209 | } |
Line 220... | Line 210... | ||
220 | 210 | ||
221 | 211 | ||
Line 222... | Line 212... | ||
222 | unsigned int disk_pos_x[]={13,13,13,83,83,83,153,153,153,223,223,223}; |
212 | unsigned int disk_pos_x[]={13,13,13,85,85,85,157,157,157,229,229,229}; |
223 | unsigned int disk_pos_y[]={60,85,110,60,85,110,60,85,110,60,85,110}; |
213 | unsigned int disk_pos_y[]={60,95,130, 60, 95, 130, 60, 95,130, 60, 85,130}; |
224 | 214 | ||
- | 215 | void DrawTmpDisks() |
|
225 | void DrawTmpDisks() |
216 | { |
- | 217 | char free_ram_text[60]; |
|
226 | { |
218 | int i; |
227 | char free_ram_text[60]; |
219 | int FreeRAM=GetFreeRAM()/1024; |
228 | int i,FreeRAM=GetFreeRAM()/1024; |
220 | |
229 | DrawBar(0,51, Form.cwidth,Form.cheight-TOPPANELH-BOTPANELH-2, 0xFFFFFF); |
221 | DrawBar(0,51, Form.cwidth,Form.cheight-TOPPANELH-BOTPANELH-2, 0xFFFFFF); |
230 | DrawBar(0,Form.cheight-BOTPANELH-1, Form.cwidth,1, sc.work_graph); |
222 | DrawBar(0,Form.cheight-BOTPANELH-1, Form.cwidth,1, sc.work_graph); |
Line 242... | Line 234... | ||
242 | }; |
234 | }; |
243 | if (selected>=disk_num) selected=disk_num-1; //restore selected |
235 | if (selected>=disk_num) selected=disk_num-1; //restore selected |
244 | for (i=0; i<10; i++) DeleteButton(20+i); |
236 | for (i=0; i<10; i++) DeleteButton(20+i); |
245 | for (i=0; i |
237 | for (i=0; i |
246 | { |
238 | { |
247 | DefineButton(disk_pos_x[i], disk_pos_y[i], 60, 20, 20+i, 0xFFFfff); |
239 | DefineButton(disk_pos_x[i], disk_pos_y[i], 65, 30, 20+i, 0xFFFfff); |
248 | WriteText(disk_pos_x[i]+25,disk_pos_y[i]+6, 0x90, 0, #disk_list[i].Item); |
240 | WriteText(disk_pos_x[i]+25,disk_pos_y[i]+6, 0x90, 0, #disk_list[i].Item); |
- | 241 | WriteText(disk_pos_x[i]+25,disk_pos_y[i]+19, 0x80, 0x888888, ConvertSize(disk_sizes[i])); |
|
249 | _PutImage(disk_pos_x[i]+5,disk_pos_y[i]+4, 14,14, 3*14*14*3+#icons); |
242 | _PutImage(disk_pos_x[i]+5,disk_pos_y[i]+4, 14,14, 2*14*14*3+#icons); |
250 | if (selected==i) DrawRectangle(disk_pos_x[i], disk_pos_y[i], 60-1, 20-1, 0x00459A); |
243 | if (selected==i) DrawRectangle(disk_pos_x[i], disk_pos_y[i], 65-1, 30-1, 0x00459A); |
251 | } |
244 | } |
252 | } |
245 | } |
Line -... | Line 246... | ||
- | 246 | ||
253 | 247 | ||
254 | void AddDisk() |
248 | void AddDisk() |
255 | { |
249 | { |
256 | unsigned int i, j, err; |
250 | byte i, j, err; |
257 | if (disk_num>=10) |
251 | if (disk_num>=10) |
258 | { |
252 | { |
259 | notify(NOTIFY_TEXT_DISK_LIMIT); |
253 | notify(NOTIFY_TEXT_DISK_LIMIT); |
260 | return; |
254 | return; |
Line 271... | Line 265... | ||
271 | } |
265 | } |
Line 272... | Line 266... | ||
272 | 266 | ||
273 | param[1]=i+48; |
267 | param[1]=i+48; |
274 | param[2]='s'; |
268 | param[2]='s'; |
275 | param[3]='\0'; |
269 | param[3]='\0'; |
276 | strcat(#param, #disk_size); |
270 | strcat(#param, #new_disk_size); |
277 | err = Console_Work(); |
271 | err = Console_Work(); |
278 | if ((err!=0) && (err<7)) notify(rezult_text[err]); |
272 | if ((err!=0) && (err<7)) notify(rezult_text[err]); |
279 | pause(5); |
273 | pause(5); |
280 | GetDisks(); |
274 | GetDisks(); |
281 | DrawTmpDisks(); |
275 | DrawTmpDisks(); |
282 | GetSizeDisk(); |
276 | GetSizeDisk(); |
Line -... | Line 277... | ||
- | 277 | } |
|
- | 278 | ||
- | 279 | ||
- | 280 | void DelDisk() |
|
- | 281 | { |
|
- | 282 | byte err; |
|
- | 283 | if (disk_num==0) |
|
- | 284 | { |
|
- | 285 | notify(NOTIFY_TEXT_NO_DISK); |
|
- | 286 | return; |
|
- | 287 | } |
|
- | 288 | param[0]='d'; |
|
- | 289 | param[1]=disk_list[selected].Item[3]; |
|
- | 290 | err = byte Console_Work(); |
|
- | 291 | if ((err!=0) && (err<7)) notify(rezult_text[err]); |
|
- | 292 | pause(15); |
|
- | 293 | GetDisks(); |
|
- | 294 | DrawTmpDisks(); |