forked from KolibriOS/kolibrios
@PANEL - taskbar. Some optimisations and code refactoring. Intermediate stage.
git-svn-id: svn://kolibrios.org@2532 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
34c41e7258
commit
f4bf2eedaa
File diff suppressed because it is too large
Load Diff
@ -1,376 +1,433 @@
|
|||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
load_ini:
|
load_ini:
|
||||||
mov [point2],16h
|
mov [point2],16h
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [firini],al
|
|
||||||
mov [point2],32h
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [lngcrc1],al
|
|
||||||
mov [point2],42h
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [lngcrc2],al
|
|
||||||
mov [point2],52h
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [lngcrc3],al
|
|
||||||
mov [point2],06eh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng1],al
|
|
||||||
mov [point2],07eh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng2],al
|
|
||||||
mov [point2],08eh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng3],al
|
|
||||||
mov [point2],09eh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng4],al
|
|
||||||
mov [point2],0aeh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng5],al
|
|
||||||
mov [point2],0beh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng6],al
|
|
||||||
mov [point2],0ceh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng7],al
|
|
||||||
mov [point2],0deh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng8],al
|
|
||||||
mov [point2],0eeh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng9],al
|
|
||||||
mov [point2],0feh
|
|
||||||
mcall 70,get_ini
|
|
||||||
mov al,[inicont]
|
|
||||||
sub al,30h
|
|
||||||
mov [altlng0],al
|
|
||||||
|
|
||||||
ret
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [firini],al
|
||||||
|
mov [point2],32h
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [lngcrc1],al
|
||||||
|
mov [point2],42h
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [lngcrc2],al
|
||||||
|
mov [point2],52h
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [lngcrc3],al
|
||||||
|
mov [point2],06eh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng1],al
|
||||||
|
mov [point2],07eh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng2],al
|
||||||
|
mov [point2],08eh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng3],al
|
||||||
|
mov [point2],09eh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng4],al
|
||||||
|
mov [point2],0aeh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng5],al
|
||||||
|
mov [point2],0beh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng6],al
|
||||||
|
mov [point2],0ceh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng7],al
|
||||||
|
mov [point2],0deh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng8],al
|
||||||
|
mov [point2],0eeh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng9],al
|
||||||
|
mov [point2],0feh
|
||||||
|
|
||||||
|
mcall 70,get_ini
|
||||||
|
|
||||||
|
mov al,[inicont]
|
||||||
|
sub al,30h
|
||||||
|
mov [altlng0],al
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
fir_lng:
|
fir_lng:
|
||||||
mov al,[firini]
|
mov al,[firini]
|
||||||
sub al,1
|
sub al,1
|
||||||
mov dx,384
|
mov dx,384
|
||||||
mul dx
|
mul dx
|
||||||
mov [point],eax
|
mov [point],eax
|
||||||
mcall 70,get_key
|
mcall 70,get_key
|
||||||
mov eax,21
|
|
||||||
mov ebx,2
|
mcall 21,2,1,current_keymap
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
inc ecx
|
||||||
mcall
|
mcall 21,,,current_keymap_shift
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
inc ecx
|
||||||
mov edx,current_keymap_shift
|
mcall 21,,,current_keymap_alt
|
||||||
mcall
|
|
||||||
mov eax,21
|
movzx edx,[firini]
|
||||||
inc ecx
|
mcall 21,,9
|
||||||
mov edx,current_keymap_alt
|
ret
|
||||||
mcall
|
;------------------------------------------------------------------------------
|
||||||
mov eax,21
|
align 4
|
||||||
mov ecx,9
|
|
||||||
movzx edx,[firini]
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
karu:
|
karu:
|
||||||
add [key_r2],1
|
add [key_r2],1
|
||||||
cmp [key_r2],3
|
cmp [key_r2],3
|
||||||
jb .altes
|
jb .altes
|
||||||
mov [key_r2],0
|
|
||||||
|
mov [key_r2],0
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.altes:
|
.altes:
|
||||||
cmp [key_r2],0
|
cmp [key_r2],0
|
||||||
je .klt_1
|
je .klt_1
|
||||||
cmp [key_r2],1
|
|
||||||
je .klt_2
|
cmp [key_r2],1
|
||||||
cmp [key_r2],2
|
je .klt_2
|
||||||
je .klt_3
|
|
||||||
jmp still
|
cmp [key_r2],2
|
||||||
|
je .klt_3
|
||||||
|
|
||||||
|
jmp still
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.klt_1:
|
.klt_1:
|
||||||
mov al,[lngcrc1]
|
mov al,[lngcrc1]
|
||||||
sub al,1
|
sub al,1
|
||||||
mov [key_r],al
|
mov [key_r],al
|
||||||
jmp alted
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.klt_2:
|
.klt_2:
|
||||||
mov al,[lngcrc2]
|
mov al,[lngcrc2]
|
||||||
sub al,1
|
sub al,1
|
||||||
mov [key_r],al
|
mov [key_r],al
|
||||||
jmp alted
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.klt_3:
|
.klt_3:
|
||||||
mov al,[lngcrc3]
|
mov al,[lngcrc3]
|
||||||
sub al,1
|
sub al,1
|
||||||
mov [key_r],al
|
mov [key_r],al
|
||||||
jmp alted
|
jmp alted
|
||||||
ret
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
alter:
|
alter:
|
||||||
cmp [key_r],0
|
cmp [key_r],0
|
||||||
je .alt_1
|
je .alt_1
|
||||||
cmp [key_r],1
|
|
||||||
je .alt_2
|
cmp [key_r],1
|
||||||
cmp [key_r],2
|
je .alt_2
|
||||||
je .alt_3
|
|
||||||
cmp [key_r],3
|
cmp [key_r],2
|
||||||
je .alt_4
|
je .alt_3
|
||||||
cmp [key_r],4
|
|
||||||
je .alt_5
|
cmp [key_r],3
|
||||||
cmp [key_r],5
|
je .alt_4
|
||||||
je .alt_6
|
|
||||||
cmp [key_r],6
|
cmp [key_r],4
|
||||||
je .alt_7
|
je .alt_5
|
||||||
|
|
||||||
|
cmp [key_r],5
|
||||||
|
je .alt_6
|
||||||
|
|
||||||
|
cmp [key_r],6
|
||||||
|
je .alt_7
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.alt_1:
|
.alt_1:
|
||||||
mov al,[altlng1]
|
mov al,[altlng1]
|
||||||
cmp al,0
|
cmp al,0
|
||||||
je .exit
|
je .exit
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.alt_2:
|
.alt_2:
|
||||||
mov al,[altlng2]
|
mov al,[altlng2]
|
||||||
cmp al,0
|
cmp al,0
|
||||||
je .exit
|
je .exit
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
.alt_3:
|
|
||||||
mov al,[altlng3]
|
|
||||||
cmp al,0
|
|
||||||
je .exit
|
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
.alt_4:
|
|
||||||
mov al,[altlng4]
|
|
||||||
cmp al,0
|
|
||||||
je .exit
|
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
.alt_5:
|
|
||||||
mov al,[altlng5]
|
|
||||||
cmp al,0
|
|
||||||
je .exit
|
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
.alt_6:
|
|
||||||
mov al,[altlng6]
|
|
||||||
cmp al,0
|
|
||||||
je .exit
|
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
.alt_7:
|
|
||||||
mov al,[altlng7]
|
|
||||||
cmp al,0
|
|
||||||
je .exit
|
|
||||||
sub al,1
|
|
||||||
mov [key_r],al
|
|
||||||
jmp alted
|
|
||||||
.exit:
|
|
||||||
ret
|
|
||||||
alted:
|
|
||||||
cmp [key_r],0
|
|
||||||
je alt_1
|
|
||||||
cmp [key_r],1
|
|
||||||
je alt_2
|
|
||||||
cmp [key_r],2
|
|
||||||
je alt_3
|
|
||||||
cmp [key_r],3
|
|
||||||
je alt_4
|
|
||||||
cmp [key_r],4
|
|
||||||
je alt_5
|
|
||||||
cmp [key_r],5
|
|
||||||
je alt_6
|
|
||||||
cmp [key_r],6
|
|
||||||
je alt_7
|
|
||||||
ret
|
|
||||||
alt_1:
|
|
||||||
mov [point],0
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ; english 0
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,1 ; 1 - english
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
alt_2:
|
|
||||||
mov [point],1536
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ; finnish
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,2 ; 2 - finnish
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
alt_3:
|
|
||||||
mov [point],768
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ; german
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,3 ; 3 - german
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
alt_4:
|
|
||||||
mov [point],384
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ; russian
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,4 ; 4 - russian
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
alt_5:
|
|
||||||
mov [point],1152
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ;french
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_alt
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,5 ; 5 - french
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
alt_6:
|
|
||||||
mov [point],1920
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ; estonian
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,6 ; 6 - estonian
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
alt_7:
|
|
||||||
mov [point],2304
|
|
||||||
mcall 70,get_key
|
|
||||||
mov eax,21 ; ukrainian
|
|
||||||
mov ebx,2
|
|
||||||
mov ecx,1
|
|
||||||
mov edx,current_keymap
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
inc ecx
|
|
||||||
mov edx,current_keymap_shift
|
|
||||||
mcall
|
|
||||||
mov eax,21
|
|
||||||
mov ecx,9
|
|
||||||
mov edx,7 ; 7 - ukrainian
|
|
||||||
mcall
|
|
||||||
ret
|
|
||||||
current_keymap:
|
|
||||||
rb 128
|
|
||||||
current_keymap_shift:
|
|
||||||
rb 128
|
|
||||||
current_keymap_alt:
|
|
||||||
rb 128
|
|
||||||
key_r db 0
|
|
||||||
key_r2 db 0
|
|
||||||
key_r3 db 0
|
|
||||||
inicont db 0
|
|
||||||
firini db 0
|
|
||||||
lngcrc1 db 0
|
|
||||||
lngcrc2 db 0
|
|
||||||
lngcrc3 db 0
|
|
||||||
altlng1 db 0
|
|
||||||
altlng2 db 0
|
|
||||||
altlng3 db 0
|
|
||||||
altlng4 db 0
|
|
||||||
altlng5 db 0
|
|
||||||
altlng6 db 0
|
|
||||||
altlng7 db 0
|
|
||||||
altlng8 db 0
|
|
||||||
altlng9 db 0
|
|
||||||
altlng0 db 0
|
|
||||||
get_key:
|
|
||||||
dd 0
|
|
||||||
point dd 0
|
|
||||||
dd 0
|
|
||||||
dd 384
|
|
||||||
dd current_keymap
|
|
||||||
db 0
|
|
||||||
dd key_file
|
|
||||||
get_ini:
|
|
||||||
dd 0
|
|
||||||
point2 dd 0
|
|
||||||
dd 0
|
|
||||||
dd 1
|
|
||||||
dd inicont
|
|
||||||
db 0
|
|
||||||
dd ini_file
|
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.alt_3:
|
||||||
|
mov al,[altlng3]
|
||||||
|
cmp al,0
|
||||||
|
je .exit
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.alt_4:
|
||||||
|
mov al,[altlng4]
|
||||||
|
cmp al,0
|
||||||
|
je .exit
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.alt_5:
|
||||||
|
mov al,[altlng5]
|
||||||
|
cmp al,0
|
||||||
|
je .exit
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.alt_6:
|
||||||
|
mov al,[altlng6]
|
||||||
|
cmp al,0
|
||||||
|
je .exit
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.alt_7:
|
||||||
|
mov al,[altlng7]
|
||||||
|
cmp al,0
|
||||||
|
je .exit
|
||||||
|
|
||||||
|
sub al,1
|
||||||
|
mov [key_r],al
|
||||||
|
jmp alted
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.exit:
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alted:
|
||||||
|
cmp [key_r],0
|
||||||
|
je alt_1
|
||||||
|
|
||||||
|
cmp [key_r],1
|
||||||
|
je alt_2
|
||||||
|
|
||||||
|
cmp [key_r],2
|
||||||
|
je alt_3
|
||||||
|
|
||||||
|
cmp [key_r],3
|
||||||
|
je alt_4
|
||||||
|
|
||||||
|
cmp [key_r],4
|
||||||
|
je alt_5
|
||||||
|
|
||||||
|
cmp [key_r],5
|
||||||
|
je alt_6
|
||||||
|
|
||||||
|
cmp [key_r],6
|
||||||
|
je alt_7
|
||||||
|
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_1:
|
||||||
|
mov [point],0 ; english
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
mcall 21,,9,1 ; 1 - english
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_2:
|
||||||
|
mov [point],384 ;1536 ; finnish
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
mcall 21,,9,2 ; 2 - finnish
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_3:
|
||||||
|
mov [point],768 ; german
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
mcall 21,,9,3 ; 3 - german
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_4:
|
||||||
|
mov [point],1152 ;384 ; russian
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
mcall 21,,9,4 ; 4 - russian
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_5:
|
||||||
|
mov [point],1536 ;1152 ;french
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_alt
|
||||||
|
|
||||||
|
mcall 21,,9,5 ; 5 - french
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_6:
|
||||||
|
mov [point],1920 ; estonian
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
mcall 21,,9,6 ; 6 - estonian
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
alt_7:
|
||||||
|
mov [point],2304 ; ukrainian
|
||||||
|
mcall 70,get_key
|
||||||
|
|
||||||
|
mcall 21,2,1,current_keymap
|
||||||
|
|
||||||
|
inc ecx
|
||||||
|
mcall 21,,,current_keymap_shift
|
||||||
|
|
||||||
|
mcall 21,,9,7 ; 7 - ukrainian
|
||||||
|
ret
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
current_keymap:
|
||||||
|
rb 128
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
current_keymap_shift:
|
||||||
|
rb 128
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
current_keymap_alt:
|
||||||
|
rb 128
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
key_r db 0
|
||||||
|
key_r2 db 0
|
||||||
|
key_r3 db 0
|
||||||
|
inicont db 0
|
||||||
|
firini db 0
|
||||||
|
lngcrc1 db 0
|
||||||
|
lngcrc2 db 0
|
||||||
|
lngcrc3 db 0
|
||||||
|
altlng1 db 0
|
||||||
|
altlng2 db 0
|
||||||
|
altlng3 db 0
|
||||||
|
altlng4 db 0
|
||||||
|
altlng5 db 0
|
||||||
|
altlng6 db 0
|
||||||
|
altlng7 db 0
|
||||||
|
altlng8 db 0
|
||||||
|
altlng9 db 0
|
||||||
|
altlng0 db 0
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
get_key: dd 0
|
||||||
|
point dd 0
|
||||||
|
dd 0
|
||||||
|
dd 384
|
||||||
|
dd current_keymap
|
||||||
|
db 0
|
||||||
|
dd key_file
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
get_ini: dd 0
|
||||||
|
point2 dd 0
|
||||||
|
dd 0
|
||||||
|
dd 1
|
||||||
|
dd inicont
|
||||||
|
db 0
|
||||||
|
dd ini_file
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
key_file: db '/rd/1/keymap.key',0
|
key_file: db '/rd/1/keymap.key',0
|
||||||
ini_file: db '/rd/1/lang.ini',0
|
ini_file: db '/rd/1/lang.ini',0
|
@ -1,5 +1,6 @@
|
|||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
@echo lang fix en >lang.inc
|
@echo lang fix en >lang.inc
|
||||||
@fasm @panel.asm @panel
|
@fasm -m 16384 @panel.asm @panel
|
||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
|
@kpack @panel
|
||||||
@pause
|
@pause
|
@ -1,5 +1,6 @@
|
|||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
@echo lang fix et >lang.inc
|
@echo lang fix et >lang.inc
|
||||||
@fasm @panel.asm @panel
|
@fasm -m 16384 @panel.asm @panel
|
||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
|
@kpack @panel
|
||||||
@pause
|
@pause
|
@ -1,6 +1,6 @@
|
|||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
@echo lang fix ru >lang.inc
|
@echo lang fix ru >lang.inc
|
||||||
@fasm @panel.asm @panel
|
@fasm -m 16384 @panel.asm @panel
|
||||||
@erase lang.inc
|
@erase lang.inc
|
||||||
@kpack @panel
|
@kpack @panel
|
||||||
@pause
|
@pause
|
@ -1,199 +1,155 @@
|
|||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
context_menu_start:
|
context_menu_start:
|
||||||
|
mcall 40,00100111b
|
||||||
|
mov ecx, [ctx_menu_PID]
|
||||||
|
mcall 18,21
|
||||||
|
mov ecx, eax
|
||||||
|
mcall 18,3
|
||||||
|
call draw_ctx_menu
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
ctx_menu_still:
|
||||||
|
mcall 10
|
||||||
|
cmp eax, 2
|
||||||
|
jz ctx_menu_key
|
||||||
|
|
||||||
mov eax, 40
|
cmp eax, 3
|
||||||
mov ebx, 00100111b
|
jz ctx_menu_button
|
||||||
int 0x40
|
|
||||||
|
|
||||||
;call draw_ctx_menu
|
cmp eax, 6
|
||||||
|
jz ctx_menu_mouse
|
||||||
|
|
||||||
mov ebp, 2 ; 2 ç áâ® ¨á¯®«ì§ã¥âáï.
|
call draw_ctx_menu
|
||||||
; // Alver 26.08.2007 // {
|
jmp ctx_menu_still
|
||||||
; xor ecx, ecx
|
;------------------------------------------------------------------------------
|
||||||
; mov edx, [ctx_menu_PID]
|
align 4
|
||||||
; find_slot:
|
ctx_menu_key:
|
||||||
; inc ecx
|
mcall 2
|
||||||
; mov eax, 9
|
;--------------------------------------
|
||||||
; mov ebx, process_info_buffer
|
align 4
|
||||||
; int 0x40
|
ctx_menu_button:
|
||||||
; cmp dword [process_info_buffer + 30], edx
|
mcall 17
|
||||||
; jne find_slot
|
cmp ah, 1
|
||||||
mov ecx, [ctx_menu_PID]
|
jne @f
|
||||||
mcall 18,21
|
|
||||||
mov ecx, eax
|
|
||||||
; } \\ Alver \\
|
|
||||||
mov eax, 18
|
|
||||||
mov ebx, 3
|
|
||||||
;mov ecx, ecx ; :)
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
call draw_ctx_menu
|
mov eax, 18
|
||||||
|
mov ebx, 2
|
||||||
ctx_menu_still:
|
mov ecx, [n_slot]
|
||||||
mov eax, 10
|
jmp .lllxxx
|
||||||
int 0x40
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
cmp eax, ebp ; cmp eax, 2
|
|
||||||
jz ctx_menu_key
|
|
||||||
cmp eax, 3
|
|
||||||
jz ctx_menu_button
|
|
||||||
cmp eax, 6
|
|
||||||
jz ctx_menu_mouse
|
|
||||||
|
|
||||||
call draw_ctx_menu
|
|
||||||
|
|
||||||
jmp ctx_menu_still
|
|
||||||
|
|
||||||
ctx_menu_key:
|
|
||||||
mov eax, ebp ; mov eax, 2
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
ctx_menu_button:
|
|
||||||
mov eax, 17
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
cmp ah, 1
|
|
||||||
; // Alver 26.08.2007 // {
|
|
||||||
; jne ctx_menu_still
|
|
||||||
jne @f
|
|
||||||
; } \\ Alver \\
|
|
||||||
mov eax, 18
|
|
||||||
mov ebx, ebp ; mov eax, 2
|
|
||||||
mov ecx, [n_slot]
|
|
||||||
; // Alver 26.08.2007 // {
|
|
||||||
jmp .lllxxx
|
|
||||||
@@:
|
@@:
|
||||||
cmp ah, 2
|
cmp ah, 2
|
||||||
jne ctx_menu_still
|
jne ctx_menu_still
|
||||||
mov eax, 18
|
mov eax, 18
|
||||||
mov ebx, 22
|
mov ebx, 22
|
||||||
mov edx, [n_slot]
|
mov edx, [n_slot]
|
||||||
xor ecx, ecx
|
xor ecx, ecx
|
||||||
; \begin{diamond}[20.09.2007]
|
|
||||||
test byte [procinfo_for_detect+70], 2
|
|
||||||
setnz cl
|
|
||||||
add cl, cl
|
|
||||||
; \end{diamond}[20.09.2007]
|
|
||||||
.lllxxx:
|
|
||||||
; } \\ Alver \\
|
|
||||||
int 0x40
|
|
||||||
jmp ctx_menu_exit
|
|
||||||
|
|
||||||
ctx_menu_mouse:
|
test [procinfo_for_detect+70],byte 2
|
||||||
mov eax, 37
|
setnz cl
|
||||||
mov ebx, ebp ; mov ebx, 2
|
add cl, cl
|
||||||
int 0x40
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.lllxxx:
|
||||||
|
mcall
|
||||||
|
jmp ctx_menu_exit
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
ctx_menu_mouse:
|
||||||
|
mcall 37,2
|
||||||
|
xchg eax,ecx ; …᫨ ¥ ®¤ ¨§ ª®¯®ª ¥ ¦ â ¢®§¢à é ¥¬áï
|
||||||
|
; ¢ £« ¢ë© 横« ¯®â®ª
|
||||||
|
jecxz ctx_menu_still
|
||||||
|
|
||||||
xchg eax, ecx ; cmp eax, 0 …᫨ ¥ ®¤ ¨§ ª®¯®ª ¥ ¦ â ¢®§¢à é ¥¬áï
|
mcall 37,1
|
||||||
; ¢ £« ¢ë© 横« ¯®â®ª
|
|
||||||
jecxz ctx_menu_still
|
|
||||||
|
|
||||||
mov eax, 37
|
cmp ax, 0 ; ’ã⠯஢¥à塞 ¯à®¨§®èñ«-«¨ ª«¨ª § ¯à¥¤¥« ¬¨ ®ª ª®â¥ªá⮣®
|
||||||
xor ebx, ebx ; mov ebx, 1
|
jb ctx_menu_exit ; ¬¥î, ¥á«¨ § ¯à¥¤¥« ¬¨ â® § ªàë¢ ¥¬ ª®â¥ªá⮥ ¬¥î
|
||||||
inc ebx
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
cmp ax, 0 ; ’ã⠯஢¥à塞 ¯à®¨§®èñ«-«¨ ª«¨ª § ¯à¥¤¥« ¬¨ ®ª ª®â¥ªá⮣®
|
cmp ax, 60 ; 41
|
||||||
jb ctx_menu_exit ; ¬¥î, ¥á«¨ § ¯à¥¤¥« ¬¨ â® § ªàë¢ ¥¬ ª®â¥ªá⮥ ¬¥î
|
ja ctx_menu_exit
|
||||||
cmp ax, 60 ; 41
|
|
||||||
ja ctx_menu_exit
|
|
||||||
shr eax, 16
|
|
||||||
cmp ax, 0
|
|
||||||
jb ctx_menu_exit
|
|
||||||
cmp ax, 133
|
|
||||||
ja ctx_menu_exit
|
|
||||||
|
|
||||||
jmp ctx_menu_still
|
shr eax, 16
|
||||||
|
cmp ax, 0
|
||||||
|
jb ctx_menu_exit
|
||||||
|
|
||||||
ctx_menu_exit:
|
cmp ax, 133
|
||||||
|
ja ctx_menu_exit
|
||||||
|
|
||||||
xor eax, eax
|
jmp ctx_menu_still
|
||||||
dec eax ; mov eax, -1
|
;--------------------------------------
|
||||||
int 0x40
|
align 4
|
||||||
|
ctx_menu_exit:
|
||||||
|
or eax,-1
|
||||||
|
mcall
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
|
;func draw_ctx_menu
|
||||||
|
draw_ctx_menu:
|
||||||
|
mcall 12, 1
|
||||||
|
|
||||||
func draw_ctx_menu
|
xor eax, eax
|
||||||
|
movzx ebx, [x_coord]
|
||||||
|
shl ebx, 16
|
||||||
|
add ebx, 133
|
||||||
|
movzx ecx, [y_coord]
|
||||||
|
sub ecx, 60 ; 41
|
||||||
|
shl ecx, 16
|
||||||
|
add ecx, 60 ; 41
|
||||||
|
mov esi, [system_colours + 4] ; sc.grab
|
||||||
|
or esi, 0x81000000
|
||||||
|
mcall ,,,[system_colours + 20],[system_colours]
|
||||||
|
|
||||||
mcall 12, 1
|
mcall 8,<0,133>,<22,17>,0x40000001
|
||||||
|
|
||||||
xor eax, eax ; mov eax, 0
|
inc edx
|
||||||
movzx ebx, [x_coord]
|
mcall ,,<40,17>
|
||||||
shl ebx, 16
|
|
||||||
add ebx, 133
|
|
||||||
movzx ecx, [y_coord]
|
|
||||||
sub ecx, 60 ; 41
|
|
||||||
shl ecx, 16
|
|
||||||
add ecx, 60 ; 41
|
|
||||||
mov edx, [system_colours + 20] ; sc.work
|
|
||||||
mov esi, [system_colours + 4] ; sc.grab
|
|
||||||
or esi, 0x81000000
|
|
||||||
mov edi, [system_colours] ; sc.frame
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov eax, 8
|
mov ecx, [system_colours + 16] ; sc.grab_text
|
||||||
mov ebx, 0 * 65536 + 133
|
or ecx, 0x10000000
|
||||||
mov ecx, 22 * 65536 + 17
|
mcall 4,<36,7>,,ctx_menu_title,ctx_menu_title_end - ctx_menu_title
|
||||||
mov edx, 0x40000001
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
;mov eax, 8
|
add ebx, 1 * 65536
|
||||||
;mov ebx, 0 * 65536 + 133
|
mcall
|
||||||
;mov ecx, 40 * 65536 + 17
|
|
||||||
;mov edx, 0x40000002
|
|
||||||
;int 0x40
|
|
||||||
mov ecx, 40 * 65536 + 17
|
|
||||||
inc edx
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
shr eax, 1 ; mov eax, 4
|
mcall ,<4,28>,0x80000000,ctx_menu_text
|
||||||
mov ebx, 36 * 65536 + 7
|
|
||||||
mov ecx, [system_colours + 16] ; sc.grab_text
|
|
||||||
or ecx, 0x10000000
|
|
||||||
|
|
||||||
mov edx, ctx_menu_title
|
mov edx, ctx_menu_text2
|
||||||
|
|
||||||
mov esi, ctx_menu_title_end - ctx_menu_title
|
test byte [procinfo_for_detect+70], 2
|
||||||
int 0x40
|
jz @f
|
||||||
|
mov edx, ctx_menu_text3
|
||||||
add ebx, 1 * 65536
|
;--------------------------------------
|
||||||
int 0x40
|
align 4
|
||||||
|
|
||||||
mov ebx, 4 * 65536 + 28
|
|
||||||
mov ecx, 0x80000000
|
|
||||||
mov edx, ctx_menu_text
|
|
||||||
|
|
||||||
int 0x40
|
|
||||||
add bx, 18
|
|
||||||
mov edx, ctx_menu_text2
|
|
||||||
|
|
||||||
test byte [procinfo_for_detect+70], 2
|
|
||||||
jz @f
|
|
||||||
mov edx, ctx_menu_text3
|
|
||||||
@@:
|
@@:
|
||||||
|
add bx, 18
|
||||||
|
mcall
|
||||||
|
|
||||||
int 0x40
|
mcall 12,2
|
||||||
|
ret
|
||||||
mcall 12, 2
|
;endf
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
ret
|
align 4
|
||||||
|
|
||||||
endf
|
|
||||||
|
|
||||||
x_coord rw 1
|
x_coord rw 1
|
||||||
y_coord rw 1
|
y_coord rw 1
|
||||||
n_slot rd 1
|
n_slot rd 1
|
||||||
|
ctx_menu_PID rd 1
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
lsz ctx_menu_text,\
|
lsz ctx_menu_text,\
|
||||||
ru, <"X ‡ ªàëâì Alt + F4",0>,\
|
ru, <"X ‡ ªàëâì Alt + F4",0>,\
|
||||||
en, <"X Close Alt + F4",0>,\
|
en, <"X Close Alt + F4",0>,\
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
lsz ctx_menu_text2,\
|
lsz ctx_menu_text2,\
|
||||||
ru, <25," ‘¢¥àãâì ",0>,\
|
ru, <25," ‘¢¥àãâì ",0>,\
|
||||||
en, <25," Minimize ",0>,\
|
en, <25," Minimize ",0>,\
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
lsz ctx_menu_text3,\
|
lsz ctx_menu_text3,\
|
||||||
ru, <24," ‚®ááâ ®¢¨âì ",0>,\
|
ru, <24," ‚®ááâ ®¢¨âì ",0>,\
|
||||||
en, <24," Restore ",0>
|
en, <24," Restore ",0>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
ctx_menu_PID rd 1
|
|
||||||
|
|
||||||
ctx_menu_title:
|
ctx_menu_title:
|
||||||
db 'KolibriOS'
|
db 'KolibriOS'
|
||||||
ctx_menu_title_end:
|
ctx_menu_title_end:
|
||||||
|
;------------------------------------------------------------------------------
|
Loading…
Reference in New Issue
Block a user