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

143 lines
2.7 KiB
PHP
Raw Normal View History

;---------------------------------------------------------------------
k_background:
test dword [status],8
jnz still
or dword [status],8
call get_memory_for_tread_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],2
je .fup
.fdn:
inc dword [bgrmode]
.flagcont:
cmp [bgrmode],dword 1
jne @f
mov [option_group1],op1
call .draw_opt_boxes
jmp .still
@@:
mov [option_group1],op2
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
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov ecx,100*65536+100 ; [y start] *65536 + [y size]
mov edx,0x03909090 ; color of work area RRGGBB,8->color gl
mcall
mov eax,8
mov ebx,70*65536+40
mov ecx,70*65536+20
mov edx,4
mov esi,0xdddddd
mcall
; WINDOW LABEL
mcall 71,1, labelt4
mov eax,4 ; function 4 : write text to window
mov ebx,46*65536+28 ; [x start] *65536 + [y start]
mov ecx,0xffffff
mov edx, bgrdtext
mov esi, bgrdtext.size
mcall
add ebx,40*65536+48
mov edx, ok_btn
mov esi, ok_btn.size ;2
mov ecx,0
mcall
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