Rev 4232 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4231 | eAndrew | 1 | use32 |
2 | org 0x0 |
||
3 | ;------------------------------------------------------------------------------- |
||
4 | db "MENUET01" |
||
5 | dd 1, @code, @data, @mem, @stack, 0, 0 |
||
6 | ;------------------------------------------------------------------------------- |
||
7 | include "../../macros.inc" |
||
4234 | eAndrew | 8 | include "../../proc32.inc" |
9 | include "../../dll.inc" |
||
10 | ;include "../../debug.inc" |
||
4231 | eAndrew | 11 | ;=============================================================================== |
12 | @code: |
||
4234 | eAndrew | 13 | mcall 9, buffer, -1 |
14 | mov ecx, [buffer + 30] |
||
15 | mcall 18, 21 |
||
16 | mov [win.sid], eax |
||
17 | ;------------------------------------------------------------------------------- |
||
18 | mcall 68, 11 |
||
19 | stdcall dll.Load, @import |
||
20 | ;------------------------------------------------------------------------------- |
||
4232 | eAndrew | 21 | mov [tabs.index], byte 2 |
4234 | eAndrew | 22 | ;------------------------------------------------------------------------------- |
4231 | eAndrew | 23 | mcall 48, 3, color, 40 |
24 | ;------------------------------------------------------------------------------- |
||
4234 | eAndrew | 25 | invoke ini.iget, ini.docky, ini.docky.sect.cfg, ini.docky.keys.fsize, 0 |
26 | mov [docky.fsize], al |
||
27 | ;------------------------------------------------------------------------------- |
||
4231 | eAndrew | 28 | main_loop: |
29 | mcall 10 |
||
30 | cmp eax, EV_REDRAW |
||
31 | je event_redraw |
||
32 | cmp eax, EV_BUTTON |
||
33 | je event_button |
||
34 | |||
35 | jmp main_loop |
||
36 | ;------------------------------------------------------------------------------- |
||
37 | exit: |
||
38 | mcall -1 |
||
39 | ;------------------------------------------------------------------------------- |
||
40 | event_redraw: |
||
41 | call win.draw |
||
42 | jmp main_loop |
||
43 | ;------------------------------------------------------------------------------- |
||
44 | event_button: |
||
45 | mcall 17 |
||
46 | cmp ah, 0x01 |
||
47 | je exit |
||
48 | cmp ah, 0x10 |
||
49 | je .tabs.walls |
||
50 | cmp ah, 0x11 |
||
51 | je .tabs.skins |
||
52 | cmp ah, 0x12 |
||
53 | je .tabs.docky |
||
54 | cmp ah, 0x13 |
||
55 | je .tabs.panel |
||
56 | |||
4234 | eAndrew | 57 | cmp ah, 0x40 |
58 | je .docky.button_top |
||
59 | cmp ah, 0x41 |
||
60 | je .docky.button_left |
||
61 | cmp ah, 0x42 |
||
62 | je .docky.button_bottom |
||
63 | cmp ah, 0x43 |
||
64 | je .docky.button_right |
||
65 | |||
4232 | eAndrew | 66 | cmp ah, 0x44 |
4234 | eAndrew | 67 | je .docky.checkbox_fsize |
4232 | eAndrew | 68 | |
4234 | eAndrew | 69 | cmp ah, 0x45 |
70 | je .docky.kill |
||
71 | cmp ah, 0x46 |
||
72 | je .docky.start |
||
73 | |||
4231 | eAndrew | 74 | jmp main_loop |
75 | |||
76 | .tabs.walls: |
||
77 | mov [tabs.index], byte 0 |
||
78 | call win.draw |
||
79 | jmp main_loop |
||
80 | .tabs.skins: |
||
81 | mov [tabs.index], byte 1 |
||
82 | call win.draw |
||
83 | jmp main_loop |
||
84 | .tabs.docky: |
||
85 | mov [tabs.index], byte 2 |
||
86 | call win.draw |
||
87 | jmp main_loop |
||
88 | .tabs.panel: |
||
89 | mov [tabs.index], byte 3 |
||
90 | call win.draw |
||
91 | jmp main_loop |
||
4232 | eAndrew | 92 | |
4234 | eAndrew | 93 | .docky.button_top: |
94 | invoke ini.iset, ini.docky, ini.docky.sect.cfg, ini.docky.keys.location, 1 |
||
95 | call docky.apply |
||
96 | jmp main_loop |
||
97 | .docky.button_left: |
||
98 | invoke ini.iset, ini.docky, ini.docky.sect.cfg, ini.docky.keys.location, 2 |
||
99 | call docky.apply |
||
100 | jmp main_loop |
||
101 | .docky.button_bottom: |
||
102 | invoke ini.iset, ini.docky, ini.docky.sect.cfg, ini.docky.keys.location, 3 |
||
103 | call docky.apply |
||
104 | jmp main_loop |
||
105 | .docky.button_right: |
||
106 | invoke ini.iset, ini.docky, ini.docky.sect.cfg, ini.docky.keys.location, 4 |
||
107 | call docky.apply |
||
108 | jmp main_loop |
||
109 | |||
110 | .docky.checkbox_fsize: |
||
4232 | eAndrew | 111 | mov al, 1 |
4234 | eAndrew | 112 | sub al, byte [docky.fsize] |
113 | mov [docky.fsize], al |
||
4232 | eAndrew | 114 | push 183 |
4234 | eAndrew | 115 | push docky.fsize |
4232 | eAndrew | 116 | call checkbox.draw |
4234 | eAndrew | 117 | |
118 | xor eax, eax |
||
119 | mov al, [docky.fsize] |
||
120 | invoke ini.iset, ini.docky, ini.docky.sect.cfg, ini.docky.keys.fsize, eax |
||
121 | call docky.apply |
||
122 | |||
4232 | eAndrew | 123 | jmp main_loop |
4234 | eAndrew | 124 | |
125 | .docky.kill: |
||
126 | call docky.kill |
||
127 | jmp main_loop |
||
128 | .docky.start: |
||
129 | call docky.kill |
||
130 | call docky.start |
||
131 | jmp main_loop |
||
4231 | eAndrew | 132 | ;------------------------------------------------------------------------------- |
133 | win.draw: |
||
134 | mcall 12, 1 |
||
135 | |||
136 | mov edx, [color.work] |
||
137 | or edx, 0x34000000 |
||
4232 | eAndrew | 138 | mcall 0, <128, 256>, <128, 299>, , , win.title |
4231 | eAndrew | 139 | |
140 | call tabs.draw |
||
141 | |||
142 | mcall 12, 2 |
||
143 | |||
144 | ret |
||
145 | ;------------------------------------------------------------------------------- |
||
146 | tabs.draw: |
||
147 | mcall 8, < 8, 57>, < 9, 25>, 0x40000010 |
||
148 | mcall , < 65, 57>, , 0x40000011 |
||
149 | mcall , <122, 57>, , 0x40000012 |
||
150 | mcall , <179, 58>, , 0x40000013 |
||
151 | |||
152 | mcall 13, < 9, 228>, , [color.work] |
||
153 | |||
154 | mcall , , < 9, 1>, [color.workE] |
||
155 | mcall , , <34, 1> |
||
156 | mcall , < 8, 1>, <10, 24> |
||
157 | mcall , < 65, 1> |
||
158 | mcall , <122, 1> |
||
159 | mcall , <179, 1> |
||
160 | mcall , <237, 1> |
||
161 | |||
162 | mov edx, [color.workE] |
||
163 | |||
164 | cmp [tabs.index], byte 0 |
||
165 | je .walls |
||
166 | cmp [tabs.index], byte 1 |
||
167 | je .skins |
||
168 | cmp [tabs.index], byte 2 |
||
169 | je .docky |
||
170 | jmp .panel |
||
171 | |||
172 | .walls: |
||
173 | mcall , < 9, 56> |
||
174 | |||
175 | mcall 4, < 22, 18>, [color.textE], tabs.walls_title, 5 |
||
176 | mcall , < 79, 18>, [color.text] , tabs.skins_title |
||
177 | mcall , <136, 18>, , tabs.docky_title |
||
178 | mcall , <193, 18>, , tabs.panel_title |
||
179 | |||
180 | call tabs.walls.draw |
||
181 | |||
182 | ret |
||
183 | .skins: |
||
184 | mcall , < 66, 56> |
||
185 | |||
186 | mcall 4, < 79, 18>, [color.textE], tabs.skins_title, 5 |
||
187 | mcall , < 22, 18>, [color.text] , tabs.walls_title |
||
188 | mcall , <136, 18>, , tabs.docky_title |
||
189 | mcall , <193, 18>, , tabs.panel_title |
||
190 | |||
191 | call tabs.skins.draw |
||
192 | |||
193 | ret |
||
194 | .docky: |
||
195 | mcall , <123, 56> |
||
196 | |||
197 | mcall 4, <136, 18>, [color.textE], tabs.docky_title, 5 |
||
198 | mcall , < 79, 18>, [color.text] , tabs.skins_title |
||
199 | mcall , < 22, 18>, , tabs.walls_title |
||
200 | mcall , <193, 18>, , tabs.panel_title |
||
201 | |||
202 | call tabs.docky.draw |
||
203 | |||
204 | ret |
||
205 | .panel: |
||
206 | mcall , <180, 57> |
||
207 | |||
208 | mcall 4, <193, 18>, [color.textE], tabs.panel_title, 5 |
||
209 | mcall , < 79, 18>, [color.text] , tabs.skins_title |
||
210 | mcall , <136, 18>, , tabs.docky_title |
||
211 | mcall , < 22, 18>, , tabs.walls_title |
||
212 | |||
213 | call tabs.panel.draw |
||
214 | |||
215 | ret |
||
216 | ;------------------------------------------------------------------------------- |
||
217 | tabs.walls.draw: |
||
218 | ret |
||
219 | ;------------------------------------------------------------------------------- |
||
220 | tabs.skins.draw: |
||
221 | ret |
||
222 | ;------------------------------------------------------------------------------- |
||
223 | tabs.docky.draw: |
||
4232 | eAndrew | 224 | ; == FRAME: POSITION == ; |
225 | mcall 13, <10, 226>, <48, 112>, [color.workE] |
||
226 | mcall , <11, 224>, <49, 110>, [color.textE] |
||
227 | mcall , <12, 222>, <50, 108>, [color.work] |
||
228 | |||
229 | mov ecx, [color.text] |
||
230 | or ecx, 0xC0000000 |
||
231 | mcall 4, <20, 45>, , tabs.docky.frame_pos_title, , [color.work] |
||
232 | |||
233 | mcall 8, < 81, 84>, < 64, 24>, 0x40, [color.workE] |
||
234 | mcall , < 58, 64>, < 91, 24>, 0x41 |
||
4234 | eAndrew | 235 | mcall , < 81, 84>, <118, 24>, 0x42 |
236 | mcall , <125, 64>, < 91, 24>, 0x43 |
||
4232 | eAndrew | 237 | |
238 | mov ecx, [color.textE] |
||
239 | or ecx, 0x80000000 |
||
240 | mcall 4, <115, 73>, , tabs.docky.button_top |
||
241 | mcall , < 79, 100>, , tabs.docky.button_left |
||
242 | mcall , <106, 127>, , tabs.docky.button_bottom |
||
243 | mcall , <143, 100>, , tabs.docky.button_right |
||
244 | |||
245 | ; == FRAME: SETTINGS == ; |
||
246 | mcall 13, <10, 226>, <170, 40>, [color.workE] |
||
247 | mcall , <11, 224>, <171, 38>, [color.textE] |
||
248 | mcall , <12, 222>, <172, 36>, [color.work] |
||
249 | |||
250 | mov ecx, [color.text] |
||
251 | or ecx, 0xC0000000 |
||
252 | mcall 4, <20, 167>, , tabs.docky.frame_set_title, , [color.work] |
||
253 | |||
254 | mcall 8, <20, 206>, <182, 16>, 0x60000044 |
||
255 | |||
256 | mov ecx, [color.text] |
||
257 | or ecx, 0x80000000 |
||
258 | mcall 4, <20, 187>, , tabs.docky.checkbox_fsize_title |
||
259 | |||
260 | push 183 |
||
4234 | eAndrew | 261 | push docky.fsize |
4232 | eAndrew | 262 | call checkbox.draw |
263 | |||
264 | ; == FRAME: THEARD == ; |
||
4234 | eAndrew | 265 | mcall 13, <10, 226>, <219, 44>, [color.workE] |
266 | mcall , <11, 224>, <220, 42>, [color.textE] |
||
267 | mcall , <12, 222>, <221, 40>, [color.work] |
||
4232 | eAndrew | 268 | |
269 | mov ecx, [color.text] |
||
270 | or ecx, 0xC0000000 |
||
271 | mcall 4, <20, 217>, , tabs.docky.frame_theard_title, , [color.work] |
||
272 | |||
4234 | eAndrew | 273 | mcall 8, < 20, 98>, <231, 20>, 0x45, [color.workE] |
274 | mcall , <128, 98>, , 0x46 |
||
4232 | eAndrew | 275 | |
276 | mov ecx, [color.textE] |
||
277 | or ecx, 0x80000000 |
||
278 | mcall 4, < 54, 238>, , tabs.docky.button_close |
||
279 | mcall , <139, 238>, , tabs.docky.button_start |
||
280 | |||
4231 | eAndrew | 281 | ret |
282 | ;------------------------------------------------------------------------------- |
||
283 | tabs.panel.draw: |
||
284 | ret |
||
4232 | eAndrew | 285 | ;------------------------------------------------------------------------------- |
286 | checkbox.draw: |
||
287 | pop ebp |
||
288 | pop edi |
||
289 | pop ecx |
||
290 | push ebp |
||
291 | |||
292 | shl ecx, 16 |
||
293 | mov cx, 16 |
||
294 | mcall 13, <188, 34>, , [color.workE] |
||
295 | sub ecx, 2 |
||
296 | add ecx, 0x00010000 |
||
297 | mcall , <189, 32>, , [color.textE] |
||
298 | |||
299 | mov eax, 13 |
||
300 | mov edx, [color.workE] |
||
301 | cmp [edi], byte 0 |
||
302 | je .draw_off |
||
303 | .draw_on: |
||
304 | mcall , <189, 6> |
||
305 | mov edi, ecx |
||
306 | shr edi, 16 |
||
307 | add edi, 3 |
||
308 | mcall 4, <189, edi>, [color.text], checkbox.on, 5 |
||
309 | |||
310 | ret |
||
311 | |||
312 | .draw_off: |
||
313 | mov edx, [color.work] |
||
314 | mcall , <215, 6> |
||
315 | mov edi, ecx |
||
316 | shr edi, 16 |
||
317 | add edi, 3 |
||
318 | mcall 4, <189, edi>, [color.text], checkbox.off, 5 |
||
319 | ret |
||
4234 | eAndrew | 320 | ;------------------------------------------------------------------------------- |
321 | docky.kill: |
||
322 | mov dl, 0 |
||
323 | mcall 9, buffer, -1 |
||
324 | mov ecx, eax |
||
325 | .search: |
||
326 | mcall 9, buffer |
||
327 | cmp [buffer + 10], dword "@doc" |
||
328 | je .kill |
||
329 | cmp [buffer + 10], dword "@DOC" |
||
330 | jne .continue |
||
331 | .kill: |
||
332 | mov dl, 1 |
||
333 | mcall 18, 2 |
||
334 | .continue: |
||
335 | dec ecx |
||
336 | cmp ecx, 0 |
||
337 | jne .search |
||
338 | |||
339 | ret |
||
340 | ;------------------------------------------------------------------------------- |
||
341 | docky.start: |
||
342 | mov [buffer + 0], dword 7 |
||
343 | mov [buffer + 4], dword 0 |
||
344 | mov [buffer + 8], dword 0 |
||
345 | mov [buffer + 20], dword "@doc" |
||
346 | mov [buffer + 24], word "ky" |
||
347 | mov [buffer + 26], byte 0 |
||
348 | mcall 70, buffer |
||
349 | |||
350 | mcall 5, 5 |
||
351 | mcall 18, 3, [win.sid] |
||
352 | |||
353 | ret |
||
354 | ;------------------------------------------------------------------------------- |
||
355 | docky.apply: |
||
356 | call docky.kill |
||
357 | cmp dl, byte 0 |
||
358 | je .end |
||
359 | call docky.start |
||
360 | .end: |
||
361 | ret |
||
4231 | eAndrew | 362 | ;=============================================================================== |
4234 | eAndrew | 363 | @import: |
364 | library ini, "libini.obj" |
||
365 | import ini, ini.iget, "ini_get_int", ini.iset, "ini_set_int" |
||
366 | ;=============================================================================== |
||
367 | ini.docky: |
||
368 | db "settings/docky.ini", 0 |
||
369 | .sect.cfg: |
||
370 | db "@", 0 |
||
371 | .keys.fsize: |
||
372 | db "fsize", 0 |
||
373 | .keys.location: |
||
374 | db "location", 0 |
||
375 | |||
4231 | eAndrew | 376 | win.title: |
377 | db "Desktop configuration", 0 |
||
378 | |||
379 | tabs.walls_title: |
||
380 | db "Walls" |
||
381 | tabs.skins_title: |
||
382 | db "Skins" |
||
383 | tabs.docky_title: |
||
384 | db "Docky" |
||
385 | tabs.panel_title: |
||
386 | db "Panel" |
||
387 | |||
4232 | eAndrew | 388 | tabs.docky.frame_pos_title: |
389 | db " Position ", 0 |
||
390 | tabs.docky.button_top: |
||
391 | db "TOP", 0 |
||
392 | tabs.docky.button_left: |
||
393 | db "LEFT", 0 |
||
394 | tabs.docky.button_bottom: |
||
395 | db "BOTTOM", 0 |
||
396 | tabs.docky.button_right: |
||
397 | db "RIGHT", 0 |
||
398 | |||
399 | tabs.docky.frame_set_title: |
||
400 | db " Settings ", 0 |
||
401 | tabs.docky.checkbox_fsize_title: |
||
402 | db "Full size mode", 0 |
||
403 | |||
404 | tabs.docky.frame_theard_title: |
||
405 | db " Theard ", 0 |
||
406 | tabs.docky.button_close: |
||
407 | db "Close", 0 |
||
408 | tabs.docky.button_start: |
||
409 | db "Start/Restart", 0 |
||
410 | |||
411 | |||
412 | checkbox.on: |
||
413 | db " ON " |
||
414 | checkbox.off: |
||
415 | db " OFF " |
||
416 | |||
4231 | eAndrew | 417 | @data: |
418 | ;=============================================================================== |
||
419 | rb 2048 |
||
420 | @stack: |
||
421 | ;------------------------------------------------------------------------------- |
||
4234 | eAndrew | 422 | win.sid: |
423 | rd 1 |
||
424 | |||
425 | docky.fsize: |
||
4232 | eAndrew | 426 | rb 1 |
427 | |||
4231 | eAndrew | 428 | tabs.index: |
429 | rb 1 |
||
430 | |||
431 | color: |
||
432 | .frame: |
||
433 | rd 5 |
||
434 | .work: |
||
435 | rd 1 |
||
436 | .workE: |
||
437 | rd 1 |
||
438 | .textE: |
||
439 | rd 1 |
||
440 | .text: |
||
441 | rd 2 |
||
442 | |||
4234 | eAndrew | 443 | buffer: |
444 | rb 1024 |
||
445 | |||
4231 | eAndrew | 446 | @mem:189,>215,>189,>189,>189,>188,>139,>>128,>231,>>20,>221,>12,>220,>11,>219,>10,>20,>182,>20,>20,>172,>12,>171,>11,>170,>10,>143,>106,>>115,>>125,>118,>>>>>>20,>50,>12,>49,>11,>48,>10,>>136,>>193,>180,>193,>>>136,>123,>193,>136,>>>>193,>136,>>>>237,>179,>122,>>10,>>34,>>>179,>122,>>>>128,>128,> |