forked from KolibriOS/kolibrios
146 lines
3.2 KiB
PHP
146 lines
3.2 KiB
PHP
|
;---------------------------------------------------------------------
|
||
|
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
|
||
|
mov esi,0xffffff
|
||
|
mov edx,0x40000000+160
|
||
|
mov eax,8
|
||
|
int 0x40
|
||
|
add ebx,50 shl 16
|
||
|
inc edx
|
||
|
int 0x40
|
||
|
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 ;0xff
|
||
|
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
|
||
|
@@:
|
||
|
int 0x40
|
||
|
add ecx,1 shl 16
|
||
|
add ebx,1 shl 16
|
||
|
mov bx,38
|
||
|
mov cx,13
|
||
|
mov edx,0x6060ff
|
||
|
int 0x40
|
||
|
pop ecx ebx
|
||
|
mov edx,0xff0000
|
||
|
cmp [work_confirmation],0
|
||
|
je @f
|
||
|
add ebx,50 shl 16
|
||
|
mov edx,0xaa00
|
||
|
@@:
|
||
|
int 0x40
|
||
|
pop ecx ebx
|
||
|
shr ecx,16
|
||
|
mov bx,cx
|
||
|
add ebx,15 shl 16+5
|
||
|
mcall 4, ,0x90ffffff,[confirmation_type]
|
||
|
add ebx,7 shl 16+20
|
||
|
mov edx,type_yes
|
||
|
int 0x40
|
||
|
add ebx,56 shl 16
|
||
|
mov edx,type_no
|
||
|
int 0x40
|
||
|
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
|
||
|
;---------------------------------------------------------------------
|