Subversion Repositories Kolibri OS

Rev

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  nor the
13
;     * Neither the name of the  nor 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  BE LIABLE FOR ANY
20
; DISCLAIMED. IN NO EVENT SHALL  BE LIABLE FOR ANY
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