forked from KolibriOS/kolibrios
MyKey.asm: fixed version from Asper
git-svn-id: svn://kolibrios.org@1900 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
812af66c89
commit
9e1fc1c321
@ -68,8 +68,7 @@ STARTAPP:
|
|||||||
test eax, eax
|
test eax, eax
|
||||||
jnz close_app
|
jnz close_app
|
||||||
|
|
||||||
; Get memory for editboxes text
|
mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS ; Get memory for editboxes text
|
||||||
mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS
|
|
||||||
mov dword [buf_cmd_line], eax
|
mov dword [buf_cmd_line], eax
|
||||||
mov dword [edit1.text], eax
|
mov dword [edit1.text], eax
|
||||||
mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS
|
mcall 68, 12, MAX_HOTKEYS_NUM*PATH_MAX_CHARS
|
||||||
@ -133,7 +132,9 @@ key:
|
|||||||
|
|
||||||
push eax
|
push eax
|
||||||
mcall 66, 3
|
mcall 66, 3
|
||||||
mov dword [modifiers], eax
|
;mov edx, eax
|
||||||
|
;and edx, 0x00000FF;F
|
||||||
|
mov dword [modifiers], eax;edx
|
||||||
pop eax
|
pop eax
|
||||||
|
|
||||||
test word [edit1.flags], 10b
|
test word [edit1.flags], 10b
|
||||||
@ -171,7 +172,8 @@ key:
|
|||||||
dec cl
|
dec cl
|
||||||
mov bl, cl
|
mov bl, cl
|
||||||
and ebx, 0xFF
|
and ebx, 0xFF
|
||||||
shl ebx, 2
|
shl ebx, 2;5
|
||||||
|
; mov esi, ebx
|
||||||
add ebx, dword Hotkeys.codes
|
add ebx, dword Hotkeys.codes
|
||||||
|
|
||||||
mov edx, dword [ebx]
|
mov edx, dword [ebx]
|
||||||
@ -347,11 +349,6 @@ Load_HotkeyList:
|
|||||||
call ReadIni
|
call ReadIni
|
||||||
|
|
||||||
mov al, byte [butt]
|
mov al, byte [butt]
|
||||||
mov ah, byte [hotkeys_num]
|
|
||||||
cmp al, ah
|
|
||||||
jle @f
|
|
||||||
mov al, ah
|
|
||||||
@@:
|
|
||||||
and eax, 0xFF
|
and eax, 0xFF
|
||||||
sub al, FIRST_ITEM_BUTTON_ID
|
sub al, FIRST_ITEM_BUTTON_ID
|
||||||
mov cl, byte PATH_MAX_CHARS
|
mov cl, byte PATH_MAX_CHARS
|
||||||
@ -361,6 +358,7 @@ Load_HotkeyList:
|
|||||||
add ebx, dword [buf_cmd_params]
|
add ebx, dword [buf_cmd_params]
|
||||||
|
|
||||||
|
|
||||||
|
;mov [butt], FIRST_ITEM_BUTTON_ID
|
||||||
mov esi, eax
|
mov esi, eax
|
||||||
call strlen
|
call strlen
|
||||||
mov dword [edit1.size], ecx
|
mov dword [edit1.size], ecx
|
||||||
@ -543,6 +541,7 @@ it_test_key_modifiers:
|
|||||||
push eax
|
push eax
|
||||||
mcall 66, 3 ;get control keys state
|
mcall 66, 3 ;get control keys state
|
||||||
mov edx, eax
|
mov edx, eax
|
||||||
|
;and edx, 0x00000FFF
|
||||||
.lshift:
|
.lshift:
|
||||||
test al, 1 ; LShift ?
|
test al, 1 ; LShift ?
|
||||||
jz .rshift
|
jz .rshift
|
||||||
@ -595,6 +594,7 @@ it_set_keycode_name:
|
|||||||
mov esi, aPlus
|
mov esi, aPlus
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
call strncat
|
call strncat
|
||||||
|
;stdcall outtextxy, 10, 100, ctrl_key_names, 6, 0x00FF0000
|
||||||
.rshift:
|
.rshift:
|
||||||
test al, 2 ; RShift ?
|
test al, 2 ; RShift ?
|
||||||
jz .lctrl
|
jz .lctrl
|
||||||
@ -605,6 +605,7 @@ it_set_keycode_name:
|
|||||||
mov esi, aPlus
|
mov esi, aPlus
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
call strncat
|
call strncat
|
||||||
|
;stdcall outtextxy, 184, 100, ctrl_key_names+29, 6, 0x00FF0000
|
||||||
.lctrl:
|
.lctrl:
|
||||||
test al, 4 ; LCtrl ?
|
test al, 4 ; LCtrl ?
|
||||||
jz .rctrl
|
jz .rctrl
|
||||||
@ -615,6 +616,7 @@ it_set_keycode_name:
|
|||||||
mov esi, aPlus
|
mov esi, aPlus
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
call strncat
|
call strncat
|
||||||
|
;stdcall outtextxy, 52, 100, ctrl_key_names+7, 5, 0x00FF0000
|
||||||
.rctrl:
|
.rctrl:
|
||||||
test al, 8 ; RCtrl ?
|
test al, 8 ; RCtrl ?
|
||||||
jz .lalt
|
jz .lalt
|
||||||
@ -625,6 +627,7 @@ it_set_keycode_name:
|
|||||||
mov esi, aPlus
|
mov esi, aPlus
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
call strncat
|
call strncat
|
||||||
|
;stdcall outtextxy, 148, 100, ctrl_key_names+23, 5, 0x00FF0000
|
||||||
.lalt:
|
.lalt:
|
||||||
test al, 0x10 ; LAlt ?
|
test al, 0x10 ; LAlt ?
|
||||||
jz .ralt
|
jz .ralt
|
||||||
@ -635,6 +638,7 @@ it_set_keycode_name:
|
|||||||
mov esi, aPlus
|
mov esi, aPlus
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
call strncat
|
call strncat
|
||||||
|
;stdcall outtextxy, 88, 100, ctrl_key_names+13, 4, 0x00FF0000
|
||||||
.ralt:
|
.ralt:
|
||||||
test al, 0x20 ; RAlt ?
|
test al, 0x20 ; RAlt ?
|
||||||
jz @f
|
jz @f
|
||||||
@ -645,6 +649,7 @@ it_set_keycode_name:
|
|||||||
mov esi, aPlus
|
mov esi, aPlus
|
||||||
mov ecx, 3
|
mov ecx, 3
|
||||||
call strncat
|
call strncat
|
||||||
|
;stdcall outtextxy, 118, 100, ctrl_key_names+18, 4, 0x00FF0000
|
||||||
@@:
|
@@:
|
||||||
mov esi, it_ascii_keymap
|
mov esi, it_ascii_keymap
|
||||||
and edx, 0xFF
|
and edx, 0xFF
|
||||||
@ -652,6 +657,12 @@ it_set_keycode_name:
|
|||||||
mov ecx, 1
|
mov ecx, 1
|
||||||
call strncat
|
call strncat
|
||||||
|
|
||||||
|
if 1;DEBUG
|
||||||
|
mov esi, edi;Hotkeys.code_names
|
||||||
|
call SysMsgBoardStr
|
||||||
|
newline
|
||||||
|
end if
|
||||||
|
|
||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -895,7 +906,7 @@ RunProgram:
|
|||||||
|
|
||||||
; Application Title
|
; Application Title
|
||||||
labelt db 'MyKey v.0.2'
|
labelt db 'MyKey v.0.2'
|
||||||
mykey_window dd 0 ; Slot number of MyKey main thread
|
mykey_window dd 0 ; Slot number of MyKey
|
||||||
|
|
||||||
|
|
||||||
;########### Input Thread data start ############
|
;########### Input Thread data start ############
|
||||||
@ -921,6 +932,7 @@ SaveKeyText db 'Save',0
|
|||||||
|
|
||||||
|
|
||||||
hotkeys_num db 0;15
|
hotkeys_num db 0;15
|
||||||
|
;keyboard_mode db 0 ; Scan or ASCII keys to send ? 0 - ASCII , 1 - Scan
|
||||||
butt db FIRST_ITEM_BUTTON_ID ; Pressed button ID
|
butt db FIRST_ITEM_BUTTON_ID ; Pressed button ID
|
||||||
modifiers dd 0
|
modifiers dd 0
|
||||||
|
|
||||||
@ -928,8 +940,8 @@ modifiers dd 0
|
|||||||
edit1 edit_box 350, 220, 30, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_line, 0, 0
|
edit1 edit_box 350, 220, 30, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_line, 0, 0
|
||||||
edit2 edit_box 350, 220, 50, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_params, 0, 0
|
edit2 edit_box 350, 220, 50, 0xffffff, 0xAA80, 0x0000ff, 0x0, 0x0, PATH_MAX_CHARS+1, buf_cmd_params, 0, 0
|
||||||
|
|
||||||
buf_cmd_line dd 0
|
buf_cmd_line dd 0 ;db MAX_HOTKEYS_NUM*PATH_MAX_CHARS dup(0) ; !Make it dynamic!!!
|
||||||
buf_cmd_params dd 0
|
buf_cmd_params dd 0 ;db MAX_HOTKEYS_NUM*PATH_MAX_CHARS dup(0) ; !Make it dynamic!!!
|
||||||
|
|
||||||
sys_path:
|
sys_path:
|
||||||
system_dir0 db '/sys/lib/'
|
system_dir0 db '/sys/lib/'
|
||||||
@ -957,7 +969,8 @@ align 16
|
|||||||
importTable:
|
importTable:
|
||||||
library \
|
library \
|
||||||
libini, 'libini.obj';, \
|
libini, 'libini.obj';, \
|
||||||
; boxlib, 'boxlib.obj' \
|
; boxlib, 'boxlib.obj', \
|
||||||
|
; libio, 'libio.obj', \
|
||||||
|
|
||||||
;import boxlib, \
|
;import boxlib, \
|
||||||
;edit_box_draw , 'edit_box', \
|
;edit_box_draw , 'edit_box', \
|
||||||
@ -1010,7 +1023,7 @@ aRamSaver db '/sys/rdsave',0
|
|||||||
app_path rb 255
|
app_path rb 255
|
||||||
ini_path rb 255
|
ini_path rb 255
|
||||||
|
|
||||||
Hotkeys: ;(name = 32 b) + (modifiers = 3 b) + (keycode = 1 b) + (keycode_name = 64 b) = 100 bytes for 1 hotkey
|
Hotkeys: ;(name = 32 b) + (modifiers = 3 b) + (keycode = 1 b) = 36 byte for 1 hotkey
|
||||||
.names:
|
.names:
|
||||||
db 'My1',0
|
db 'My1',0
|
||||||
rb 28
|
rb 28
|
||||||
|
Loading…
Reference in New Issue
Block a user