Rev 1049 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1049 | Rev 1199 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;************************************************************** |
1 | ;************************************************************** |
2 | ; MenuBar Macro for Kolibri OS |
2 | ; MenuBar Macro for Kolibri OS |
3 | ; Copyright (c) 2009, Mario79 |
3 | ; Copyright (c) 2009, Marat Zakiyanov aka Mario79, aka Mario |
4 | ; All rights reserved. |
4 | ; All rights reserved. |
5 | ; |
5 | ; |
6 | ; Redistribution and use in source and binary forms, with or without |
6 | ; Redistribution and use in source and binary forms, with or without |
7 | ; modification, are permitted provided that the following conditions are met: |
7 | ; modification, are permitted provided that the following conditions are met: |
8 | ; * Redistributions of source code must retain the above copyright |
8 | ; * Redistributions of source code must retain the above copyright |
Line 12... | Line 12... | ||
12 | ; documentation and/or other materials provided with the distribution. |
12 | ; documentation and/or other materials provided with the distribution. |
13 | ; * Neither the name of the |
13 | ; * Neither the name of the |
14 | ; names of its contributors may be used to endorse or promote products |
14 | ; names of its contributors may be used to endorse or promote products |
15 | ; derived from this software without specific prior written permission. |
15 | ; derived from this software without specific prior written permission. |
16 | ; |
16 | ; |
17 | ; THIS SOFTWARE IS PROVIDED BY Mario79 ''AS IS'' AND ANY |
17 | ; THIS SOFTWARE IS PROVIDED BY Marat Zakiyanov ''AS IS'' AND ANY |
18 | ; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | ; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
19 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
20 | ; DISCLAIMED. IN NO EVENT SHALL |
20 | ; DISCLAIMED. IN NO EVENT SHALL |
21 | ; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | ; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
22 | ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | ; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
Line 40... | Line 40... | ||
40 | m_size_y equ [edi+8] |
40 | m_size_y equ [edi+8] |
41 | m_start_y equ [edi+10] |
41 | m_start_y equ [edi+10] |
42 | m_text_pointer equ [edi+12] |
42 | m_text_pointer equ [edi+12] |
43 | m_pos_pointer equ [edi+16] |
43 | m_pos_pointer equ [edi+16] |
44 | m_text_end equ [edi+20] |
44 | m_text_end equ [edi+20] |
45 | m_mouse_pos equ [edi+24] |
45 | m_ret_key equ [edi+24] |
46 | m_mouse_keys equ [edi+28] |
46 | m_mouse_keys equ [edi+28] |
47 | m_size_x1 equ [edi+32] |
47 | m_size_x1 equ [edi+32] |
48 | m_start_x1 equ [edi+34] |
48 | m_start_x1 equ [edi+34] |
49 | m_size_y1 equ [edi+36] |
49 | m_size_y1 equ [edi+36] |
50 | m_start_y1 equ [edi+38] |
50 | m_start_y1 equ [edi+38] |
Line 198... | Line 198... | ||
198 | ;***************************************************************************** |
198 | ;***************************************************************************** |
199 | ;***************************************************************************** |
199 | ;***************************************************************************** |
200 | ; mouse event |
200 | ; mouse event |
201 | ;***************************************************************************** |
201 | ;***************************************************************************** |
202 | ;***************************************************************************** |
202 | ;***************************************************************************** |
- | 203 | .activate: |
|
- | 204 | pusha |
|
- | 205 | mov edi,dword [esp+36] |
|
- | 206 | jmp .start_loop |
|
203 | .mouse: |
207 | .mouse: |
204 | pusha |
208 | pusha |
205 | mov edi,dword [esp+36] |
209 | mov edi,dword [esp+36] |
206 | ;.mouse_1: |
- | |
207 | ; mov eax,m_mouse_pos |
- | |
208 | ; cmp m_get_mouse_flag,dword 0 |
- | |
209 | ; je @f |
210 | |
210 | call .processing_real_mouse |
211 | call .processing_real_mouse |
211 | ;@@: |
212 | |
212 | test eax,0x80000000 |
213 | test eax,0x80000000 |
213 | jnz .exit_menu |
214 | jnz .exit_menu |
214 | test eax,0x8000 |
215 | test eax,0x8000 |
215 | jnz .exit_menu |
216 | jnz .exit_menu |
Line 251... | Line 252... | ||
251 | 252 | ||
252 | mov eax,m_mouse_keys |
253 | mov eax,m_mouse_keys |
253 | cmp eax,m_mouse_keys_old |
254 | cmp eax,m_mouse_keys_old |
254 | je .exit_menu_1 |
255 | je .exit_menu_1 |
- | 256 | @@: |
|
255 | @@: |
257 | .start_loop: |
256 | mov m_select,dword 1 |
258 | mov m_select,dword 1 |
257 | call .draw_1 |
259 | call .draw_1 |
258 | call .allocate_menu_area |
260 | call .allocate_menu_area |
Line 262... | Line 264... | ||
262 | .red: |
264 | .red: |
263 | call .draw_3 |
265 | call .draw_3 |
264 | .still: |
266 | .still: |
265 | mcall 10 |
267 | mcall 10 |
266 | cmp eax,1 |
268 | cmp eax,1 |
267 | je .exit_menu_3 ;red |
269 | je .exit_menu_3 |
268 | cmp eax,2 |
270 | cmp eax,2 |
269 | je .key_menu |
271 | je .key_menu |
270 | cmp eax,3 |
272 | cmp eax,3 |
271 | je .exit_menu_3 |
273 | je .exit_menu_3 |
272 | cmp eax,6 |
274 | cmp eax,6 |
273 | je .mouse_menu |
275 | je .mouse_menu |
274 | jmp .still |
276 | jmp .still |
Line 275... | Line 277... | ||
275 | 277 | ||
276 | .key_menu: |
278 | .key_menu: |
- | 279 | mcall 2 |
|
277 | mcall 2 |
280 | |
278 | cmp m_extended_key,dword 1 |
281 | cmp m_extended_key,dword 1 |
279 | je .extended_key |
282 | je .extended_key |
280 | test al,al |
283 | test al,al |
281 | jnz .key_menu_end |
284 | jnz .key_menu_end |
Line 291... | Line 294... | ||
291 | je .menu_key_80_1 |
294 | je .menu_key_80_1 |
292 | cmp ah,28 ; Enter |
295 | cmp ah,28 ; Enter |
293 | je .menu_key_28_1 |
296 | je .menu_key_28_1 |
294 | cmp ah,1 ; Esc |
297 | cmp ah,1 ; Esc |
295 | je .menu_key_1_1 |
298 | je .menu_key_1_1 |
- | 299 | cmp ah,75 ; L-Arrow down |
|
- | 300 | je .menu_key_75_1 |
|
- | 301 | cmp ah,77 ; R-Arrow down |
|
- | 302 | je .menu_key_77_1 |
|
- | 303 | ||
296 | .key_menu_end_1: |
304 | .key_menu_end_1: |
297 | cmp ah,208 ; Arrow Down |
305 | cmp ah,208 ; Arrow Down |
298 | je .key_menu_end |
306 | je .key_menu_end |
299 | cmp ah,200 ; Arrow Up |
307 | cmp ah,200 ; Arrow Up |
300 | je .key_menu_end |
308 | je .key_menu_end |
301 | cmp ah,156 ; Enter |
309 | cmp ah,156 ; Enter |
302 | je .key_menu_end |
310 | je .key_menu_end |
303 | cmp ah,129 ; Esc |
311 | cmp ah,129 ; Esc |
304 | je .key_menu_end |
312 | je .key_menu_end |
305 | ; cmp ah,184 ;Alt to Up |
- | |
306 | ; je .end_5 |
- | |
307 | ; cmp ah,187 ; F1 to Up |
- | |
308 | ; je .end_1 |
- | |
309 | ; cmp ah,188 ; F2 to Up |
- | |
310 | ; je .end_1 |
- | |
311 | cmp ah,199 ;Home |
313 | cmp ah,199 ;Home |
312 | je .key_menu_end |
314 | je .key_menu_end |
313 | cmp ah,207 ;End |
315 | cmp ah,207 ;End |
314 | je .key_menu_end |
316 | je .key_menu_end |
315 | cmp ah,201 ;Page UP |
317 | cmp ah,201 ;Page UP |
Line 322... | Line 324... | ||
322 | je .key_menu_end |
324 | je .key_menu_end |
323 | cmp ah,210 ; Insert |
325 | cmp ah,210 ; Insert |
324 | je .key_menu_end |
326 | je .key_menu_end |
325 | cmp ah,211 ; Delete |
327 | cmp ah,211 ; Delete |
326 | je .key_menu_end |
328 | je .key_menu_end |
327 | ; cmp ah,56 ;Alt to Up |
329 | cmp ah,157 ; Ctrl up |
328 | ; je .end_4 |
330 | je .key_menu_end |
329 | ; cmp ah,59 ; F1 to Down |
331 | cmp ah,184 ; Alt up |
330 | ; je .end_2 |
332 | je .key_menu_end |
331 | ; cmp ah,60 ; F2 to Down |
333 | cmp ah,170 ; L-Shift up |
332 | ; je .end_3 |
334 | je .key_menu_end |
333 | - | ||
- | 335 | cmp ah,182 ; R-Shift up |
|
334 | ;.for_all_key: |
336 | je .key_menu_end |
- | 337 | cmp ah,203 ; L-Arrow up |
|
335 | ; mov [close_menu],1 |
338 | je .key_menu_end |
- | 339 | cmp ah,205 ; R-Arrow up |
|
336 | ; ret |
340 | je .key_menu_end |
- | 341 | ||
337 | jmp .exit_menu_3 ;.still |
342 | jmp .exit_menu_3 |
Line 338... | Line 343... | ||
338 | 343 | ||
339 | ;--------------------------------------------------------------------- |
344 | ;--------------------------------------------------------------------- |
340 | .extended_key: |
345 | .extended_key: |
341 | mov m_extended_key, dword 0 |
346 | mov m_extended_key, dword 0 |
Line 399... | Line 404... | ||
399 | .menu_key_1_1: |
404 | .menu_key_1_1: |
400 | jmp .exit_menu_3 |
405 | jmp .exit_menu_3 |
401 | ;--------------------------------------------------------------------- |
406 | ;--------------------------------------------------------------------- |
402 | .menu_key_28: |
407 | .menu_key_28: |
403 | cmp ah,28 ; Enter |
408 | cmp ah,28 ; Enter |
404 | jne .menu_key_end |
409 | jne .menu_key_75 |
405 | .menu_key_28_1: |
410 | .menu_key_28_1: |
- | 411 | xor eax,eax |
|
406 | ; mov [press_enter_menu],1 |
412 | mov m_mouse_keys_old,eax |
407 | ; ret |
413 | inc eax |
- | 414 | mov m_mouse_keys,eax |
|
408 | jmp .exit_menu_2 |
415 | jmp .exit_menu_2 |
- | 416 | ;--------------------------------------------------------------------- |
|
409 | .menu_key_end: |
417 | .menu_key_75: |
- | 418 | cmp ah,75 ; L-Arrow down |
|
- | 419 | jne .menu_key_77 |
|
- | 420 | .menu_key_75_1: |
|
- | 421 | mov m_ret_key,dword 1 |
|
- | 422 | jmp .exit_menu_3 |
|
- | 423 | ;--------------------------------------------------------------------- |
|
- | 424 | .menu_key_77: |
|
- | 425 | cmp ah,77 ; R-Arrow down |
|
410 | jmp .key_menu_end_1 |
426 | jne .key_menu_end_1 |
- | 427 | .menu_key_77_1: |
|
- | 428 | mov m_ret_key,dword 2 |
|
- | 429 | jmp .exit_menu_3 |
|
411 | ;--------------------------------------------------------------------- |
430 | ;--------------------------------------------------------------------- |
412 | .processing_real_mouse: |
431 | .processing_real_mouse: |
413 | mcall 37,2 |
432 | mcall 37,2 |
414 | mov ebx,m_mouse_keys |
433 | mov ebx,m_mouse_keys |
415 | mov m_mouse_keys_old,ebx |
434 | mov m_mouse_keys_old,ebx |
416 | mov m_mouse_keys,eax |
435 | mov m_mouse_keys,eax |
Line 417... | Line 436... | ||
417 | 436 | ||
418 | mcall 37,1 |
- | |
419 | mov m_mouse_pos,eax |
437 | mcall 37,1 |
420 | ret |
438 | ret |
421 | ;--------------------------------------------------------------------- |
439 | ;--------------------------------------------------------------------- |
422 | .allocate_menu_area: |
440 | .allocate_menu_area: |
423 | cmp m_buf_adress,dword 0 |
441 | cmp m_buf_adress,dword 0 |
Line 524... | Line 542... | ||
524 | cmp m_select,dword 0 |
542 | cmp m_select,dword 0 |
525 | je .exit_menu_1 |
543 | je .exit_menu_1 |
526 | mov m_select,dword 0 |
544 | mov m_select,dword 0 |
Line 527... | Line 545... | ||
527 | 545 | ||
528 | call .draw_1 |
- | |
- | 546 | call .draw_1 |
|
529 | ; jmp .exit_menu_1 |
547 | |
530 | test m_mouse_keys,dword 1b |
548 | test m_mouse_keys,dword 1b |
Line 531... | Line 549... | ||
531 | jz .exit_menu_1 |
549 | jz .exit_menu_1 |
532 | 550 |