Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7442 → Rev 7443

/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'à;