kolibrios-gitea/programs/media/zsea/win_bcgr.inc

144 lines
3.1 KiB
PHP
Raw Normal View History

;---------------------------------------------------------------------
k_background:
test dword [status],8
jnz still
or dword [status],8
call get_memory_for_thread_stack
mov [thread_stack_4],eax
mcall 51,1,thread4 ;, thread_stack_4
jmp still
;---------------------------------------------------------------------
thread4: ; start of bgrd thread
mcall 9, procinfo_threads, -1
mov eax,[ebx+30]
mov [PID4],eax
mcall 40, 0x27
.red:
call .draw_window
.still:
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
je .red
cmp eax,2 ; key in buffer ?
je .key
cmp eax,3 ; button in buffer ?
je .button
cmp eax,6 ; mouse in buffer ?
je .mouse
jmp .still
;---------------------------------------------------------------------
.mouse:
push dword option_boxes_bcgr
call [option_box_mouse]
cmp [option_group1],op1
jne @f
mov [bgrmode],dword 1
jmp .still
;---------------------------------------------------------------------
@@:
mov [bgrmode],dword 2
jmp .still
;---------------------------------------------------------------------
.key:
mcall
cmp ah,27
je .close
cmp ah,13
je .kok
cmp ah,178 ;up
jne .nofup
cmp dword [bgrmode],1
je .fdn
.fup:
dec dword [bgrmode]
jmp .flagcont
;---------------------------------------------------------------------
.nofup:
cmp ah,177 ;down
jne .still
cmp dword [bgrmode],4
je .fup
.fdn:
inc dword [bgrmode]
.flagcont:
cmp [bgrmode],dword 1
jne @f
mov [option_group1],op1
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [bgrmode],dword 2
jne @f
mov [option_group1],op2
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
cmp [bgrmode],dword 3
jne @f
mov [option_group1],op3
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
@@:
mov [option_group1],op4
call .draw_opt_boxes
jmp .still
;---------------------------------------------------------------------
.button: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne .noclose
.close:
xor dword [status],8
xor eax,eax
mov [PID4],eax
mcall 68,13,[thread_stack_4]
mov eax,-1 ; close this program
mcall
.noclose:
.kok:
call background
jmp .close
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
.draw_window:
mcall 12,1
xor eax,eax
xor esi,esi
mcall ,<100,200>,<100,200>,0x13909090,,labelt4
mcall 8,<70,40>,<110,20>,4,0xdddddd
mcall 4,<46,28>,0xffffff,bgrdtext,bgrdtext.size
add ebx,40*65536+88
xor ecx,ecx
mcall ,,,ok_btn,ok_btn.size
call .draw_opt_boxes
; mcall 47,0x80000,[PID4],<200, 5>,0xffffff
mcall 12,2
ret
;---------------------------------------------------------------------
.draw_opt_boxes:
push dword option_boxes_bcgr
call [option_box_draw]
ret