kolibrios-fun/programs/fs/kfm/trunk/confirm.inc

171 lines
3.4 KiB
PHP
Raw Normal View History

;------------------------------------------------------------------------------
confirmation_action:
mov [work_confirmation],0
mov [work_confirmation_yes],0
jmp .red
;--------------------------------------
.red_1:
call draw_window
;--------------------------------------
.red:
call draw_confirmation_button
call draw_confirmation_menu
;--------------------------------------
.still:
mcall 10
cmp eax,1
je .red_1
cmp eax,2
je key_menu_confirmation
cmp eax,3
jne .still
mcall 17
cmp ah,161
je .no_del
cmp ah,160
je .del
cmp ah,1
jne .still
mcall -1
;--------------------------------------
.del:
mov [work_confirmation_yes],1
;--------------------------------------
.no_del:
call draw_window
;--------------------------------------
.ret:
ret
;------------------------------------------------------------------------------
draw_confirmation_button:
mov ecx,[window_high]
mov ebx,[window_width]
shr ecx,1
shr ebx,1
sub ebx,45
shl ecx,16
shl ebx,16
mov cx,15
mov bx,40
mcall 8,,,0x40000000+160,0xffffff
add ebx,50 shl 16
inc edx
mcall
ret
;------------------------------------------------------------------------------
draw_confirmation_menu:
mov ecx,[window_high]
mov ebx,[window_width]
shr ecx,1
shr ebx,1
sub ecx,22
sub ebx,60
shl ecx,16
shl ebx,16
mov cx,44
mov bx,120
mcall 13,,,0x6060ff
push ebx ecx
add ebx,15 shl 16
add ecx,22 shl 16
mov bx,40
mov cx,15
mov edx,0
push ebx ecx
cmp [work_confirmation],0
jne @f
add ebx,50 shl 16
;--------------------------------------
@@:
mcall
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,38
mov cx,13
mcall ,,,0x6060ff
pop ecx ebx
mov edx,0xff0000
cmp [work_confirmation],0
je @f
add ebx,50 shl 16
mov edx,0xaa00
;--------------------------------------
@@:
mcall
pop ecx ebx
shr ecx,16
mov bx,cx
add ebx,7 shl 16+2
mcall 4,,0x90ffffff,[confirmation_type]
add ebx,15 shl 16+20
mcall ,,,type_yes
add ebx,56 shl 16
mcall ,,,type_no
ret
;------------------------------------------------------------------------------
key_menu_confirmation:
mcall 2
cmp [extended_key],1
je .extended_key
test al,al
jnz .end_1
cmp ah,0xE0
jne @f
;--------------------------------------
.end_1:
jmp confirmation_action.still
;--------------------------------------
@@:
cmp ah,75
je confirmation_key_75.1
cmp ah,77
je confirmation_key_75.1
cmp ah,28
je confirmation_key_28.1
;--------------------------------------
.end:
cmp ah,1
jne confirmation_action.still
ret
;------------------------------------------------------------------------------
.extended_key:
mov [extended_key],0
;------------------------------------------------------------------------------
confirmation_key_75:
cmp ah,75 ; arrow left
je .1
cmp ah,77 ; arrow right
jne confirmation_key_28
;--------------------------------------
.1:
dec [work_confirmation]
and [work_confirmation],1
jmp confirmation_action.red
;------------------------------------------------------------------------------
confirmation_key_28:
cmp ah,28 ; Enter
jne confirmation_action.still
;--------------------------------------
.1:
cmp [work_confirmation],0
jne @f
mov [work_confirmation_yes],1
;--------------------------------------
@@:
ret
;------------------------------------------------------------------------------