/programs/other/ha/HACONFIG.ASM |
---|
2,7 → 2,7 |
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
; Compile with FASM |
; Version 0.3.5: Oct 5, 2018 |
; Version 0.3.6: Oct 9, 2018 |
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
; All rights reserved. |
45,11 → 45,13 |
include '../../proc32.inc' |
include '../../dll.inc' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;êîìïîíåíòû checkBox è editBox |
;![ |
include '../../develop/libraries/box_lib/load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê |
@use_library |
;@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
;!] |
KMENUITEM_NORMAL equ 0 |
KMENUITEM_SUBMENU equ 1 |
KMENUITEM_SEPARATOR equ 2 |
Otstup = 30 |
START: |
67,7 → 69,7 |
or eax, eax |
jnz exit |
invoke init_checkbox, ch1 |
;invoke init_checkbox, ch1 |
mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé |
mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè) |
77,6 → 79,20 |
;mcall 48,3,sc,sizeof.system_colors ;ïîëó÷èòü ñèñòåìíûå öâåòà |
stdcall [OpenDialog_Init],OpenDialog_data ;ïîäãîòîâêà äèàëîãà |
;mode menu |
stdcall [kmenu_init], sc ;kmenu initialisation |
stdcall [ksubmenu_new] |
mov [modeMenu], eax |
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu0, 110 |
stdcall [ksubmenu_add], [modeMenu], eax |
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu1, 111 |
stdcall [ksubmenu_add], [modeMenu], eax |
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu2, 112 |
stdcall [ksubmenu_add], [modeMenu], eax |
stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu3, 113 |
stdcall [ksubmenu_add], [modeMenu], eax |
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu] |
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ |
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ |
101,7 → 117,8 |
invoke edit_box_mouse, editLD |
invoke edit_box_mouse, editRU |
invoke edit_box_mouse, editRD |
invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà |
;invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà |
;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëÿ êîìáîáîêñà |
jmp event_wait |
159,6 → 176,43 |
call but_open_dlg |
jmp event_wait |
@@: |
cmp ah, 8 |
jne @f |
push eax ebx ecx |
mcall 9, pi, -1 ;get window coord |
mov eax, dword[pi+34] |
add eax, buttonModeX ;+ 5 |
mov word[coordModeMenu.x], ax |
mov eax, dword[pi+38] |
add eax, buttonModeY + 17 ;20 ;42 |
mov word[coordModeMenu.y], ax |
stdcall [ksubmenu_draw], [modeMenu], coordModeMenu |
pop ecx ebx eax |
jmp event_wait |
@@: |
cmp ah, 110 |
jne @f |
mov byte[mode], 48 ;'0' |
jmp event_wait |
@@: |
cmp ah, 111 |
jne @f |
mov byte[mode], 49 ;'1' |
jmp event_wait |
@@: |
cmp ah, 112 |
jne @f |
mov byte[mode], 50 ;'2' |
jmp event_wait |
@@: |
cmp ah, 113 |
jne @f |
mov byte[mode], 51 ;'3' |
jmp event_wait |
@@: |
butend: |
jmp event_wait ;this is for ignored events, useful at development |
255,11 → 309,17 |
;jne @f |
;@@: |
; |
mov byte[eax], 48;'0' ;110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò |
cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;âûñòàâëåí checkBox èëè íåò? |
jne applyButton.no |
mov byte[eax], 49;'1' ;121 ;èíà÷å êëàä¸ì 'y' |
.no: |
push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì |
mov bl, byte[mode] |
mov byte[eax], bl |
pop ebx |
;; mov byte[eax], 48;'0' ;110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò |
;; cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;âûñòàâëåí checkBox èëè íåò? |
;; jne applyButton.no |
;; mov byte[eax], 49;'1' ;121 ;èíà÷å êëàä¸ì 'y' |
;;.no: |
inc eax |
call addPerenos |
414,17 → 474,37 |
add edx, eax ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ |
.chStart: |
cmp byte[eax], 49;'1' ;121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ |
jne @f ;loadConfig.no |
.yes: |
mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle |
jmp loadConfig.chEnd |
push ebx |
mov bl, byte[eax] |
cmp bl, 48 ; åñëè çíà÷åíèå âûõîäèò çà äîïóñòèìûå ïðåäåëû, òî ïðîâåðÿåì íà 'n' (äëÿ ñîâìåñòèìîñòè) |
jb loadConfig.checkN |
cmp bl, 51 |
ja loadConfig.checkN |
mov byte[mode], bl ;èíà÷å óñòàíàâëèâàåì ýòîò ðåæèì êàê åñòü |
jmp loadConfig.modeEnd ;è èä¸ì äàëüøå |
.checkN: |
cmp bl, 'n' ;åñëè n - òî ðåæèì "îòêëþ÷åíî" |
jne @f |
mov byte[mode], 48 ;'0' |
jmp loadConfig.modeEnd |
@@: |
cmp byte[eax], 50;'2' ;âòîðîé ðåæèì àêòèâèðîâàí |
je loadConfig.yes |
.no: |
mov word[ch1.flags], 100b ;ch_flag_middle |
.chEnd: |
mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷¸í êëàññè÷åñêèé ðåæèì ðàáîòû |
.modeEnd: |
pop ebx |
;; cmp byte[eax], 49;'1' ;121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ |
;; jne @f ;loadConfig.no |
;;.yes: |
;; mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle |
;; jmp loadConfig.chEnd |
;;@@: |
;; cmp byte[eax], 50;'2' ;âòîðîé ðåæèì àêòèâèðîâàí |
;; je loadConfig.yes |
;;.no: |
;; mov word[ch1.flags], 100b ;ch_flag_middle |
;;.chEnd: |
;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê |
;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð |
644,7 → 724,7 |
invoke edit_box_draw, editRU |
invoke edit_box_draw, editRD |
invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ |
;invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ |
;ðèñóåì êíîïêó |
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè |
705,6 → 785,28 |
mcall 4 |
;delete mode button, if it exist |
mov edx, 0x80000008 |
mcall 8 |
;draw button Mode |
buttonModeX = 30 ;433 |
buttonModeY = 160 ;50 |
buttonModeWidth = 221 |
buttonModeHeight = 20 |
buttonModeTextXoffset = 5 |
mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width |
mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height |
mov edx, 0x00000008 ;button id |
mov esi, 0x00AABBCC ;color button |
mcall 8 |
;draw text for button Mode |
mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+6) ;(x, y) |
mov ecx, 0xFFFFFF |
call setTextModeMenu |
mov esi, valueModeMenuSize |
mcall 4 |
call draw_super_text |
LineLength = 62 |
728,6 → 830,29 |
ret |
setTextModeMenu: |
cmp byte[mode], 48 |
jne @f |
mov edx, valueModeMenu0 |
ret |
@@: |
cmp byte[mode], 49 |
jne @f |
mov edx, valueModeMenu1 |
ret |
@@: |
cmp byte[mode], 50 |
jne @f |
mov edx, valueModeMenu2 |
ret |
@@: |
cmp byte[mode], 51 |
jne @f |
mov edx, valueModeMenu3 |
ret |
@@: |
mov edx, valueModeMenu1 |
ret |
align 16 |
749,7 → 874,7 |
;DATA äàííûå check_box èñïîëüçóåò ñèñòåìíûå öâåòà |
;êîîðäèíàòû (x,y) = (30, 160) ðàçìåð ÷åêáîêñà 12, öâåò òåêñòà 0x224466 |
ch1 check_box2 30 shl 16 + 12, 160 shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0x224466, ch_text, 110b ; ch_flag_en and ch_flag_middle |
;ch1 check_box2 30 shl 16 + 12, 160 shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0x224466, ch_text, 110b ; ch_flag_en and ch_flag_middle |
commonButtonText db '...', 0 ;òåêñò äëÿ êíîïîê âûçîâà OpenDial |
commonButtonTextSize = 3 |
774,6 → 899,13 |
.rd db '®¬ ¤ ¯à ¢®£® ¨¦¥£® 㣫 : ', 0 |
superTextSize = 30 |
valueModeMenuSize = 32 |
ModeMenu db '¥¦¨¬ à ¡®âë:',0 |
valueModeMenu0 db '®âª«î祮 ',0 |
valueModeMenu1 db 'ª« áá¨ç¥áª¨© ०¨¬ ',0 |
valueModeMenu2 db '०¨¬ £®àï祩 ª« ¢¨è¨ ',0 |
valueModeMenu3 db '०¨¬ ¦¥áâ ¯® ª« ¢¨è¥ ªâ¨¢ 樨',0 |
else ;èíà÷å àíãëèéñêèé òåêñò |
text db "This is a Hot Angles Configurator. " |
794,6 → 926,13 |
.rd db 'Right down angle command:', 0 |
superTextSize = 25 |
valueModeMenuSize = 32 |
ModeMenu db 'Mode:',0 |
valueModeMenu0 db 'disabled ',0 |
valueModeMenu1 db 'classic mode ',0 |
valueModeMenu2 db 'hot key mode ',0 |
valueModeMenu3 db 'activation key gesture mode ',0 |
end if |
821,6 → 960,12 |
mov esi, superTextSize |
mcall 4 |
mov ebx, Otstup * 65536 + (buttonModeY-11) |
or ecx, 0x80000000 |
mov edx, ModeMenu |
mov esi, 3 |
mcall 4 |
pop esi edi edx ecx ebx eax |
ret |
949,12 → 1094,17 |
Filter: |
dd Filter.end - Filter.1 |
.1: |
;db 'ASM',0 |
;db 'KEX',0 |
;db 'TXT',0 |
.end: |
db 0 |
mode db 49 ;'1' |
modeMenu dd 0 |
coordModeMenu: |
.x dw 100 |
.y dw 200 |
align 4 |
proclib_import: ;îïèñàíèå ýêñïîðòèðóåìûõ ôóíêöèé |
OpenDialog_Init dd aOpenDialog_Init |
967,28 → 1117,20 |
head_f_l db 'Ñèñòåìíàÿ îøèáêà',0 |
err_message_found_lib0 db 'Íå íàéäåíà áèáëèîòåêà ',39,'proc_lib.obj',39,0 |
err_message_import0 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè ',39,'proc_lib.obj',39,0 |
err_message_found_lib1 db 'Íå íàéäåíà áèáëèîòåêà ',39,'kmenu.obj',39,0 ;'¥ ©¤¥ ¡¨¡«¨®â¥ª ' |
err_message_import1 db 'Îøèáêà ïðè èìïîðòå áèáëèîòåêè ',39,'kmenu',39,0 ;'訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ' |
system_dir0 db '/sys/lib/' |
lib0_name db 'proc_lib.obj',0 |
lib1_name db 'kmenu.obj',0 |
;library structures |
l_libs_start: |
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i |
lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i |
load_lib_end: |
;txt_open db 'Îòêðûòü',0 |
sys_path: rb 4096 |
file_name: rb 4096 |
plugin_path: rb 4096 |
openfile_path: rb 4096 |
filename_area: rb 256 |
rb 1024 |
procinfo process_information |
;!] |
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü |
edMax = 0 ;max, size, pos |
998,9 → 1140,45 |
editRU edit_box 180-buttonW,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax |
editRD edit_box 180-buttonW,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax |
align 4 |
import_libkmenu: |
kmenu_init dd akmenu_init |
kmainmenu_draw dd akmainmenu_draw |
kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent |
ksubmenu_new dd aksubmenu_new |
ksubmenu_delete dd aksubmenu_delete |
ksubmenu_draw dd aksubmenu_draw |
ksubmenu_add dd aksubmenu_add |
kmenuitem_new dd akmenuitem_new |
kmenuitem_delete dd akmenuitem_delete |
kmenuitem_draw dd akmenuitem_draw |
dd 0,0 |
akmenu_init db 'kmenu_init',0 |
akmainmenu_draw db 'kmainmenu_draw',0 |
akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0 |
aksubmenu_new db 'ksubmenu_new',0 |
aksubmenu_delete db 'ksubmenu_delete',0 |
aksubmenu_draw db 'ksubmenu_draw',0 |
aksubmenu_add db 'ksubmenu_add',0 |
akmenuitem_new db 'kmenuitem_new',0 |
akmenuitem_delete db 'kmenuitem_delete',0 |
akmenuitem_draw db 'kmenuitem_draw',0 |
mouse_dd dd ? |
sc system_colors |
button_press rd 0 ;for kmenu |
sys_path: rb 4096 |
file_name: rb 4096 |
plugin_path: rb 4096 |
openfile_path: rb 4096 |
filename_area: rb 256 |
rb 1024 |
procinfo process_information |
pi rb 1024 |
dataBuffer: |
.1: rb 512 |
.2: rb 512 |
/programs/other/ha/HOTANGLES.ASM |
---|
2,7 → 2,7 |
; Hot Angles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
; Compile with FASM |
; Version 0.3.5: Oct 5, 2018 |
; Version 0.3.6: Oct 9, 2018 |
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
; All rights reserved. |
53,6 → 53,13 |
jne @f |
mcall -1 |
@@: |
;ðåæèì æåñòà ïî ãîðÿ÷åé êëàâèøå? |
cmp byte[mode], 3 ;ïîäïèñûâàåìñÿ íà èíòåðåñíûå íàì ñîáûòèÿ â çàâèñèìîñòè îò ðåæèìà ðàáîòû |
jne @f |
mov ebx, 00000100000000000000000000100010b ;åñëè äà, òî ïîäïèñûâàåìñÿ íà êëàâèøè |
mcall 40 |
jmp init03 |
@@: |
;ðåæèì àêòèâàöèè ãîðÿ÷åé êëàâèøåé? |
cmp byte[mode], 2 ;ïîäïèñûâàåìñÿ íà èíòåðåñíûå íàì ñîáûòèÿ â çàâèñèìîñòè îò ðåæèìà ðàáîòû |
jne @f |
110,8 → 117,24 |
cmp ah, byte[keyActivate] ;åñëè íàæàòà íàøà ãîðÿ÷àÿ êëàâèøà |
jne @f |
;for mode 3 [ |
cmp byte[keyState], 1 |
je hotkey.e |
push eax ebx |
mcall 37, 0 ;çàïîìèíàåì òåêóùèå(íà÷àëüíûå) êîîðäèíàòû ìûøè |
;mov dword[o.x], eax |
mov word[o.y], ax |
shr eax, 16 |
mov word[o.x], ax |
pop ebx eax |
mov byte[keyState], 1 |
mov byte[state], UNLOCKd |
.e: |
;] |
;mov byte[state], UNLOCKd |
jmp hotkey.end |
@@: |
push edx |
127,7 → 150,7 |
@@: |
pop edx |
.end: |
jmp mode02 |
jmp dword[backAdr] |
init01: |
449,10 → 472,165 |
ret |
;MODE 3 |
init03: |
mov dword[radius2], 100; 10*10 |
mov dword[backAdr], mode03 |
call setHotKey |
mode03: |
mcall 10 |
cmp eax, 2 ;îáðàáîòêà íàæàòèÿ êëàâèøè |
je hotkey |
;cmp byte[keyState], 0 |
;je mode03 |
cmp eax, 6 ;îáðàáîòêà ïåðåìåùåíèé è íàæàòèÿ ìûøè |
je mouse03 |
jmp mode03 |
mouse03: |
cmp byte[keyState], 0 ;åñëè êëàâèøà íå çàæàòà, òî îáíîâèì íà÷àëüíûå êîîðäèíàòû |
je mouse03.updateCoord |
cmp byte[state], LOCKd ;åñëè óãîë çàáëîêèðîâàí, òî îáíîâèì íà÷àëüíûå êîîðäèíàòû |
je mouse03.updateCoord |
call checkPointInCircle ;èíà÷å åñëè ïðåîäîëåëè ðàäèóñ àêòèâàöèè, òî âûçûâàåì äåéñòâèå íóæíîãî óãëà |
jmp @f |
.updateCoord: |
push eax ebx |
mcall 37, 0 ;çàïîìèíàåì òåêóùèå(íà÷àëüíûå) êîîðäèíàòû ìûøè |
;mov dword[o.x], eax |
mov word[o.y], ax |
shr eax, 16 |
mov word[o.x], ax |
pop ebx eax |
@@: |
jmp dword[backAdr] |
radius2 dd 0 ;êâàäðàò ðàäèóñà äëÿ mode 3 |
o: ;êîîðäèíàòû íà÷àëüíîé è òåêóùåé òî÷êè |
.x: dw 0 |
.y: dw 0 |
.cx: dw 0 |
.cy: dw 0 |
;ïðîâåðêà âûõîäà çà ïðåäåëû êðóãà |
; sqrt( (x2-x1)^2 + (y2-y1)^2 ) <= radius |
; (x2-x1)^2 + (y2-y1)^2 <= radius^2 |
checkPointInCircle: |
push eax ebx ecx edx |
mcall 37, 0 ;ïîëó÷àåì òåêóùèå êîîðäèíàòû ìûøè |
;mov dword[o.cx], eax |
mov word[o.cy], ax |
shr eax, 16 |
mov word[o.cx], ax |
xor eax, eax |
xor edx, edx |
mov ax, word[o.x] |
mov dx, word[o.cx] |
cmp dx, ax |
jae @f |
sub ax, dx |
mov dx, ax |
jmp .xend |
@@: |
sub dx, ax |
.xend: |
mov eax, edx |
mul dx |
mov ebx, eax |
xor eax, eax |
xor edx, edx |
mov ax, word[o.y] |
mov dx, word[o.cy] |
cmp dx, ax |
jae @f |
sub ax, dx |
mov dx, ax |
jmp .yend |
@@: |
sub dx, ax |
.yend: |
mov eax, edx |
mul dx |
add ebx, eax |
cmp ebx, dword[radius2] |
jbe @f |
call activateCorner ;èíà÷å àêòèâèðóåì íóæíûé óãîë |
@@: |
pop edx ecx ebx eax |
ret |
;âûÿñíèòü â ñòîðîíó êàêîãî óãëà óøëè è àêòèâèðîâàòü åãî |
activateCorner: |
push eax ecx |
xor eax, eax |
mov ax, word[o.cx] |
cmp ax, word[o.x] |
je activateCorner.end ;åñëè êîîðäèíàòà ðàâíà, òî âûõîäèì (òàêîãî áûòü íå äîëæíî) |
ja activateCorner.right |
;èíà÷å ëåâàÿ ñòîðîíà |
mov ax, word[o.cy] |
cmp ax, word[o.y] |
je activateCorner.end ;åñëè êîîðäèíàòà ðàâíà, òî âûõîäèì (òàêîãî áûòü íå äîëæíî) |
jb activateCorner.leftup |
;èíà÷å ëåâûé íèæíèé óãîë |
mov ecx, 1 |
call run_command |
mov byte[keyState], 0 |
mov byte[state], LOCKd |
jmp activateCorner.end |
.leftup: |
;ëåâûé âåðõíèé óãîë |
mov ecx, 0 |
call run_command |
mov byte[keyState], 0 |
mov byte[state], LOCKd |
jmp activateCorner.end |
.right: ;ïðàâàÿ ñòîðîíà ýêðàíà |
mov ax, word[o.cy] |
cmp ax, word[o.y] |
je activateCorner.end ;åñëè êîîðäèíàòà ðàâíà, òî âûõîäèì (òàêîãî áûòü íå äîëæíî) |
jb activateCorner.rightup |
;èíà÷å ïðàâûé íèæíèé óãîë |
mov ecx, 3 |
call run_command |
mov byte[keyState], 0 |
mov byte[state], LOCKd |
jmp activateCorner.end |
.rightup: |
;ïðàâûé âåðõíèé óãîë |
mov ecx, 2 |
call run_command |
mov byte[keyState], 0 |
mov byte[state], LOCKd |
jmp activateCorner.end |
.end: |
pop ecx eax |
ret |
keyActivate db 41 ;16 ;'Q' ;êëàâèøà àêòèâàöèè |
keyState db 0 ;0-êëàâèøà íå àêòèâíà, 1 - êëàâèøà àêòèâíà |
backAdr rd 1 ;dd 0 ; àäðåñ äëÿ âîçâðàòà èç ïðîâåðêè ìûøè |
backAdr rd 1 ;àäðåñ äëÿ âîçâðàòà èç ïðîâåðêè ìûøè |
;slotMax dd 0 |
;selfPID dd 0 |
463,8 → 641,8 |
;ñòðóêòóðêà äàííûõ äëÿ õðàíåíèÿ ïàðàìåòðîâ ýêðàíà |
screen: |
.width rw 1 ;dw 0 |
.height rw 1 ;dw 0 |
.width rw 1 |
.height rw 1 |
state: rb 1 ;ñîñòîÿíèå: 0=unlock, 1=lock |
mode: rb 1 ;ðåæèì ðàáîòû ïðèëîæåíèÿ: 0=íå ðàáîòàåò, 1=êëàññè÷åñêèé, 2=ïî ãîðÿ÷åé êëàâèøå |
/programs/other/ha/ReadMe.txt |
---|
1,6 → 1,6 |
Hot Angles |
Version 0.3.5: Oct 5, 2018 |
Version 0.3.6: Oct 9, 2018 |
RU |
Êîìïëåêò óòèëèò (àíàëîã Hot Corners â äðóãèõ ÎÑ) äëÿ ðàñøèðåíèÿ âîçìîæíîñòåé ðàáî÷åãî ñòîëà ïîëüçîâàòåëÿ. Íàçâàíèå âûáðàíî ïóò¸ì ãîëîñîâàíèÿ.  êîìïëåêò âõîäÿò äâå óòèëèòû: |
10,7 → 10,9 |
1) ñîñòîÿíèå àêòèâíîñòè îïöèè (îäèí ñèìâîë): |
1 èëè y - îïöèÿ àêòèâíà, àêòèâèðîâàí êëàññè÷åñêèé ðåæèì ðàáîòû óãîëêîâ, |
2 - îïöèÿ àêòèâíà, àêòèâèðîâàí ðåæèì ðàáîòû ïî ãîðÿ÷åé êëàâèøå, |
n èëè ëþáîé äðóãîé ñèìâîë - îïöèÿ îòêëþ÷åíà; |
3 - îïöèÿ àêòèâíà, àêòèâèðîâàí ðåæèì æåñòà ïðè çàæàòîé àêòèâàöèîííîé êëàâèøå, |
n èëè 0 - îïöèÿ îòêëþ÷åíà, |
ëþáîé äðóãîé ñèìâîë - ïîâåäåíèå ïî óìîë÷àíèþ (çàâèñèò îò âåðñèè); |
2) êîìàíäà (ïîëíîå èìÿ ïðèëîæåíèÿ) äëÿ âåðõíåãî ëåâîãî óãëà ýêðàíà; |
3) êîìàíäà (ïîëíîå èìÿ ïðèëîæåíèÿ) äëÿ ëåâîãî íèæíåãî óãëà ýêðàíà; |
4) êîìàíäà (ïîëíîå èìÿ ïðèëîæåíèÿ) äëÿ ïðàâîãî âåðõíåãî óãëà ýêðàíà; |
33,12 → 35,16 |
-------------------------------------------------- |
Òåêóùàÿ âåðñèÿ êîíôèãóðàòîðà è óòèëèòû ðàáîòàþò ñòàáèëüíî òîëüêî â êëàññè÷åñêîì ðåæèìå. |
 êëàññè÷åñêîì ðåæèìå óãîë àêòèâèðóåòñÿ ïóò¸ì íàâåäåíèÿ êóðñîðà. Âñ¸ ïðîèñõîäèò àâòîìàòè÷åñêè. Âû íàâîäèòå ìûøü â çàäàííûé óãîë ðàáî÷åãî ñòîëà, è çàïóñêàåòñÿ ïðèëîæåíèå, ñâÿçàííîå ñ ýòèì óãëîì. |
Ýòîò ðåæèì àêòèâèðóåòñÿ ñèìâîëîì '1' èëè ñèìâîëîì 'y' â íà÷àëå êîíôèãóðàöèîííîãî ôàéëà. |
Ýòîò ðåæèì àêòèâèðóåòñÿ ñèìâîëîì '1' â íà÷àëå êîíôèãóðàöèîííîãî ôàéëà. |
Íà÷èíàÿ ñ âåðñèè 0.3.5 óòèëèòà @HOTANGLES ïîääåðæèâàåò âòîðîé ðåæèì ðàáîòû - àêòèâàöèþ óãëîâ ïî ãîðÿ÷åé êëàâèøå. Ýòà ôóíêöèîíàëüíîñòü òåñòèðóåòñÿ, ïîýòîìó íàñòðîèòü å¸ ÷åðåç êîíôèãóðàòîð íåëüçÿ. |
Àêòèâèðóåòñÿ ðåæèì ñèìâîëîì '2' â íà÷àëå êîíôèãóðàöèîííîãî ôàéëà. Èçìåíèòü êëàâèøó àêòèâàöèè íåëüçÿ, ïî óìîë÷àíèþ ýòî ñèìâîë òèëüäà '~' èëè '`'.  ýòîì ðåæèìå äëÿ àêòèâàöèè óãëà òðåáóåòñÿ çàæàòü êëàâèøó òèëüäà è, îäíîâðåìåííî ñ ýòèì, íàâåñòè êóðñîð â íóæíûé óãîë ðàáî÷åãî ñòîëà. |
Íà÷èíàÿ ñ âåðñèè 0.3.6 ïîääåðæèâàåòñÿ òðåòèé ðåæèì ðàáîòû - àêòèâàöèÿ æåñòîì ïðè çàæàòîé àêòèâàöèîííîé êëàâèøå. Ýòîò ðåæèì íàõîäèòñÿ â òåñòèðîâàíèè. Êëàâèøà àêòèâàöèè - òèëüäà '~'. Èçìåíèòü êëàâèøó íåëüçÿ.  ýòîì ðåæèìå äëÿ àêòèâàöèè óãëà íåîáõîäèìî çàæàòü êëàâèøó òèëüäà è ñìåñòèòü êóðñîð íà ðàññòîÿíèå 10 ïèêñåëåé â ñòîðîíó íóæíîãî óãëà. Ñïîðíûå íàïðàâëåíèÿ (âåðòèêàëüíî ââåðõ èëè âíèç è ãîðèçîíòàëüíî âëåâî èëè âïðàâî) èãíîðèðóþòñÿ. Ðåæèì ïðåäïîëàãàåò èñïîëüçîâàíèå èç öåíòðà ýêðàíà, èç óãëà ýðàíà ìîæíî âûçâàòü òîëüêî ïðîòèâîïîëîæíûé åìó ïî äèàãîíàëè óãîë. Ýòîò ðåæèì â ôàéëå êîíôèãóðàöèè îòìå÷àåòñÿ ñèìâîëîì '3'. |
'n' è '0' â íà÷àëå êîíôèãóðàöèîííîãî ôàéëà îòêëþ÷àþò óòèëèòó. Íà÷èíàÿ ñ âåðñèè 0.3.6 â êîíôèãóðàòîðå HACONFIG åñòü âîçìîæíîñòü âûáðàòü ëþáîé èç ýòèõ 4 ðåæèìîâ ðàáîòû Hot Angles. |
Ïðî÷èå ðåêîìåíäàöèè: |
-------------------------------------------------- |
Íåêîòîðûì ïîëüçîâàòåëÿì ìîæåò áûòü óäîáíî íàñòðîèòü îòêðûòèå ìåíþ ïðè ïîïàäàíèè â óãîë åãî ðàñïîëîæåíèÿ. Íàïðèìåð, åñëè ó âàñ êíîïêà "Ìåíþ" ðàñïîëîæåíà â ëåâîì íèæíåì óãëó, òî çàäàéòå äëÿ ýòîãî óãëà êîìàíäó: |
65,8 → 71,8 |
[+] çíàê ìèíóñ íå âëèÿåò íà ïîïûòêó çàïóñêà â êîíêðåòíîì óãëó; |
[+] ïóñòîå ïîëå â êîíôèãóðàòîðå è ïóñòàÿ ñòðîêà â êîíôèãóðàöèîííîì ôàéëå íåâåðíî îáðàáàòûâàþòñÿ; |
[-] ïîâðåæäåíèå ôàéëà êîíôèãóðàöèè ïîñëå ìíîãîêðàòíîãî âêë./âûêë. îïöèè Hot Angles; |
[-] ðåæèì ÿâíîé êîìàíäû êëàâèøåé àêòèâàöèè: çàæèìàåì ãîðÿ÷óþ êëàâèøó (íàïðèìåð, shift), íàâîäèì êóðñîð â óãîë - ïðîèñõîäèò ðåàêöèÿ; |
[-] ðåæèì æåñòà/íàïðàâëåíèÿ: çàæèìàåì àêòèâèðóþùóþ êëàâèøó, ïîñëå ýòîãî ïðèëîæåíèå àíàëèçèðóåò ìûøü, â çàâèñèìîñòè îò íàïðàâëåíèÿ äâèæåíèÿ ìûøè (îò íà÷àëüíûõ êîîðäèíàò â ìîìåíò àêòèâàöèè îïöèè) âûáèðàåòñÿ àêòèâèðóåìûé óãîë - ïðîèñõîäèò ðåàêöèÿ; |
[+] ðåæèì ÿâíîé êîìàíäû êëàâèøåé àêòèâàöèè: çàæèìàåì ãîðÿ÷óþ êëàâèøó (íàïðèìåð, shift), íàâîäèì êóðñîð â óãîë - ïðîèñõîäèò ðåàêöèÿ; |
[+] ðåæèì æåñòà/íàïðàâëåíèÿ: çàæèìàåì àêòèâèðóþùóþ êëàâèøó, ïîñëå ýòîãî ïðèëîæåíèå àíàëèçèðóåò ìûøü, â çàâèñèìîñòè îò íàïðàâëåíèÿ äâèæåíèÿ ìûøè (îò íà÷àëüíûõ êîîðäèíàò â ìîìåíò àêòèâàöèè îïöèè) âûáèðàåòñÿ àêòèâèðóåìûé óãîë - ïðîèñõîäèò ðåàêöèÿ; |
[+] äîáàâèòü äèàëîã âûáîðà ïóòè OpenDialog â êîíôèãóðàòîðå; |
[+] ïåðåõîä íà EditBox èç áèáëèîòåêè box_lib; |
[+] ðàçìàçûâàíèå òåêñòà èëè åãî íàñëîåíèå ïðè ââîäå â ïîëå EditBox'à; |
/roadmap.txt |
---|
25,11 → 25,11 |
[-] semblance of cron; |
[-] jabber xmpp-client; |
[-] drive format utility (only for fully supported FS); |
[-] development and discussion of architecture Kolibri Machine Controller(KMC), semblance of LinuxCNC, based on MachineKit; |
[+] development and discussion of architecture Kolibri Machine Controller(KMC), semblance of LinuxCNC, based on MachineKit; |
[+] Apps: CNC Editor, Hot Angles, SysMon; |
[-] modify&improve apps: IconEdit, uPDF; |
[-] new app "Notes"; |
[-] port / adapt one of the existing text editors with code highlighting; |
[+] new app "Notes"; |
[+] port / adapt one of the existing text editors with code highlighting; |
[-] QR-code in boot log and QR-code utility; |
[-] fixing a branch/tags in SVN. |
59,11 → 59,11 |
[-] ïðèëîæåíèå àíàëîã cron; |
[-] jabber xmpp-êëèåíò; |
[-] óòèëèòà ôîðìàòèðîâàíèÿ äèñêîâ (òîëüêî äëÿ ïîëíîñòüþ ïîääåðæèâàåìûõ ÔÑ); |
[-] ïðîðàáîòêà àðõèòåêòóðû Kolibri Machine Controller(KMC), àíàëîãà LinuxCNC, íà îñíîâå MachineKit; |
[+] ïðîðàáîòêà àðõèòåêòóðû Kolibri Machine Controller(KMC), àíàëîãà LinuxCNC, íà îñíîâå MachineKit; |
[+] ïðèëîæåíèÿ: CNC Editor, Hot Angles, SysMon; |
[-] äîðàáîòàòü/óëó÷øèòü ïðèëîæåíèÿ: IconEdit, uPDF; |
[-] ðàçðàáîòàòü íîâîå ïðèëîæåíèå "Notes"; |
[-] ïîðòèðîâàòü îäèí èç ñóùåñòâóþùèõ òåêñòîâûõ ðåäàêòîðîâ ñ ïîäñâåòêîé êîäà; |
[+] ðàçðàáîòàòü íîâîå ïðèëîæåíèå "Notes"; |
[+] ïîðòèðîâàòü îäèí èç ñóùåñòâóþùèõ òåêñòîâûõ ðåäàêòîðîâ ñ ïîäñâåòêîé êîäà; |
[-] QR-êîä â ëîãå çàãðóçêè è óòèëèòà ðàáîòû ñ QR-êîäàìè; |
[-] ôèêñàöèÿ âåòâè/òåãà â SVN (ñêîðåå tags, ò.ê. äî ýòîãî âåòâè èñïîëüçîâàëèñü äëÿ ñáîðîê ïîä êîíêðåòíûå àðõèòåêòóðû, à òåãè êàê ðàç äëÿ ôèêñàöèè âåðñèé). |