auto switch keyboard mode

git-svn-id: svn://kolibrios.org@4263 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
0CodErr 2013-11-20 21:13:33 +00:00
parent 4f0860e3e7
commit a8de84cc11

View File

@ -25,6 +25,9 @@ C_KEYCOLOR equ 0x00344556 ; Control button color
L_KEYCOLOR equ 0x00258778 ; Lock button color L_KEYCOLOR equ 0x00258778 ; Lock button color
TEXTCOLOR equ 0x00FFFFFF ; Button caption color TEXTCOLOR equ 0x00FFFFFF ; Button caption color
ASCII_KEYMAP_SIZE equ 128
PROCINFO_SIZE equ 1024
PROCINFO_BUFF equ ascii_keymap + ASCII_KEYMAP_SIZE
STARTAPP: STARTAPP:
mov ecx, 1 ; to send scancodes. mov ecx, 1 ; to send scancodes.
@ -164,12 +167,19 @@ draw_window:
mul byte [keyboard_mode] mul byte [keyboard_mode]
add eax, SwitchText add eax, SwitchText
stdcall draw_button, 513,28,46,20,106,0x00700000,eax,6,TEXTCOLOR ; Scan/ASCII switch stdcall draw_button, 513,28,46,20,106,0x00700000,eax,6,TEXTCOLOR ; Scan/ASCII switch
xor al, al
xchg al, [red_type]
test al, 2
jnz .skip_end_draw_window ; if we draw switch button without redraw window then end_draw_window not need
@@: @@:
.draw_indicators_area: .draw_indicators_area:
call lights_on call lights_on
mov byte [red_type], 0
end_draw_window end_draw_window
.skip_end_draw_window:
ret ret
get_zkey_window_slot_number: get_zkey_window_slot_number:
@ -184,8 +194,15 @@ set_event_mask:
still: still:
call get_receiver_window_slot_number call get_receiver_window_slot_number
call get_receiver_window_keyboard_mode ; return in ecx keyboard_mode for set_keyboard_mode
call set_keyboard_mode
; delete_switch_button
mov eax, 8
mov edx, 0x80700000
int 0x40
mov byte [red_type], 2
call draw_window.draw_switch_button
mov eax, 10 ; Wait for an event in the queue. mov eax, 10 ; Wait for an event in the queue.
int 0x40 int 0x40
@ -369,6 +386,14 @@ get_receiver_window_slot_number:
@@: @@:
ret ret
get_receiver_window_keyboard_mode:
mov eax, 9
mov ebx, PROCINFO_BUFF
mov ecx, [receiver_window]
int 0x40
movzx ecx, byte [ebx + 75]
ret
;************************************ ;************************************
;* input: edx = code of the key * ;* input: edx = code of the key *
;************************************ ;************************************