Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7775 → Rev 7776

/programs/other/ha/HACONFIG.ASM
2,7 → 2,7
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Compile with FASM
; Version 0.3.8: Oct 14, 2018
; Version 0.3.9: Apr 11, 2020
 
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
; All rights reserved.
30,7 → 30,7
use32 ; Tell compiler to use 32 bit instructions
org 0 ; the base address of code, always 0x0
 
; Çàãîëîâîê èñïîëíÿåìîãî ôàéëà Êîëèáðè ÎÑ
; ‡àãîëîâîê èñïîëíÿåìîãî ôàéëà Êîëèáðè ÎÑ
db 'MENUET01'
dd 1
dd START
55,8 → 55,8
Otstup = 30
 
START:
call copyKill ;ïðîñòåéøàÿ çàùèòà îò çàïóñêà âòîðîé êîïèè ïðèëîæåíèÿ
mcall 68, 11 ;èíèöèàëèçàöèÿ êó÷è
call copyKill ;ïðîñòåéøàß çàùèòà îò çàïóñêà âòîðîé êîïèè ïðèëîæåíèß
mcall 68, 11 ;èíèöèàëèçàöèß êó÷è
 
;mcall 48,3,sc,sizeof.system_colors ;ïîëó÷èòü ñèñòåìíûå öâåòà
mov eax,48 ;ïîëó÷èòü ñèñòåìíûå öâåòà
69,8 → 69,8
or eax, eax
jnz exit
 
mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
mov eax,40 ;óñòàíîâèòü ìàñêó äëß îæèäàåìûõ ñîáûòèé
mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåëÞííàß ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñß ïðè ïðî÷òåíèè)
mcall
 
load_libraries l_libs_start,load_lib_end ;çàãðóçêà áèáëèîòåê(è)
90,10 → 90,8
stdcall [ksubmenu_add], [modeMenu], eax
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
 
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
call defaultElems ;óñòàíàâëèâàåì ðàçìåðû ýëåìåíòîâ â çàâèñèìîñòè îò íàñòðîåê
call resizeElems
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëßåì ïàðàìåòðû ïî óìîë÷àíèþ
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèß
 
; Îáðàáîòêà öèêëà ñîáûòèé
event_wait:
112,16 → 110,17
je button ; Expl.: User has pressed one of the
; applications buttons.
 
invoke edit_box_mouse, editLU ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
invoke edit_box_mouse, editLU ;ïðîâåðêà ñîáûòèé ìûøè äëß editBox'îâ
invoke edit_box_mouse, editLD
invoke edit_box_mouse, editRU
invoke edit_box_mouse, editRD
;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëß êîìáîáîêñà
invoke edit_box_mouse, editRadius
 
jmp event_wait
 
 
red: ;îáðàáîòêà ñîáûòèÿ ïåðåðèñîâêè îêíà
red: ;îáðàáîòêà ñîáûòèß ïåðåðèñîâêè îêíà
call draw_window
jmp event_wait
 
143,7 → 142,7
jne .next
mov byte[hkSymbol], ah
 
push eax ecx esi ;ñîõðàíÿåì ñêàíêîä êëàâèøè
push eax ecx esi ;ñîõðàíßåì ñêàíêîä êëàâèøè
shr eax, 16
mov byte[keyscan], al
mov ecx, 0
163,7 → 162,7
;je @f
jmp @b
@@:
;è ñîõðàíÿåì åãî
;è ñîõðàíßåì åãî
mov dword[keystr.size], ecx
 
pop esi ecx eax
173,7 → 172,7
;jne @f
;cmp ah, 0
;jne @f
;ñ÷èòûâàåì óïðàâëÿþùèå êëàâèøè
;ñ÷èòûâàåì óïðàâëßþùèå êëàâèøè
;shr eax, 16
;bt eax, 0 ;left shift
;jne @f
194,7 → 193,7
noclose:
cmp ah, 2 ;êíîïêà "Ïðèìåíèòü"
jne @f ;butend
call applyButton ;âûçîâ íàøåãî îáðàáîò÷èêà íàæàòèÿ êíîïêè
call applyButton ;âûçîâ íàøåãî îáðàáîò÷èêà íàæàòèß êíîïêè
jmp event_wait
@@:
cmp ah, 4
227,13 → 226,11
mcall 9, pi, -1 ;get window coord
 
mov eax, dword[pi+34]
add eax, Otstup ;buttonModeX ;+ 5
add eax, buttonModeX ;+ 5
mov word[coordModeMenu.x], ax
 
mov eax, dword[pi+38]
add ax, word[elem.butModeY]
add ax, word[elem.butDialHeight]
dec ax ;add eax, buttonModeY + 13 ;17
add eax, buttonModeY + 13 ;17
mov word[coordModeMenu.y], ax
 
stdcall [ksubmenu_draw], [modeMenu], coordModeMenu
270,10 → 267,10
 
 
 
;èìÿ êîíôèãóðàöèîííîãî ôàéëà
;èìß êîíôèãóðàöèîííîãî ôàéëà
fileName: db 'SETTINGS/HOTANGLES.CFG', 0
 
;ñòðóêòóðà äëÿ ñîçäàíèÿ/ïåðåçàïèñè ôàéëà
;ñòðóêòóðà äëß ñîçäàíèß/ïåðåçàïèñè ôàéëà
createFile:
.func dd 2 ;íîìåð ïîäôóíêöèè
.re dd 0, 0 ;çàðåçåðâèðîâàíî
282,7 → 279,7
.path db 0
.path_adr dd fileName ;ïóòü
 
;ñòðîêà ïàðàìåòðîâ ïî óìîë÷àíèþ è å¸ ðàçìåð
;ñòðîêà ïàðàìåòðîâ ïî óìîë÷àíèþ è åÞ ðàçìåð
defaultDataForConfig db 121,13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'Space',13,10,'57',13,10,'10',13,10,'s',13,10
defaultDataSize = 85 ;48+19+4
 
294,10 → 291,10
cmp ecx, 0 ;ïóñòà ëè ñòðîêà?
jne copyParam.copy ;åñëè íåò, òî ïåðåõîäèì ê êîïèðîâàíèþ ñîäåðæèìîãî ñòðîêè (ê öèêëó)
 
mov byte[eax], '-' ;åñëè æå ïóñòî, òî çàìåíÿåì ñèìâîëîì ìèíóñ '-'
mov byte[eax], '-' ;åñëè æå ïóñòî, òî çàìåíßåì ñèìâîëîì ìèíóñ '-'
inc eax
;jmp copyParam.copyEnd ;è âûõîäèì
;äàëåå â íà÷àëå öèêëà ïðîèçîéä¸ò ñðàâíåíèå è âûõîä
;äàëåå â íà÷àëå öèêëà ïðîèçîéäÞò ñðàâíåíèå è âûõîä
 
.copy: ;êîïèðóåì ñèìâîëû
cmp ecx, 0
313,7 → 310,7
ret
 
 
addPerenos: ;äîáàâëÿåò ïåðåíîñ ñòðîêè â áóôåð
addPerenos: ;äîáàâëßåò ïåðåíîñ ñòðîêè â áóôåð
mov byte[eax], 13
inc eax
mov byte[eax], 10
327,7 → 324,7
;mov dword[createFile.size], defaultDataSize
 
;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ
mov ecx, 9*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 9 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10)
mov ecx, 9*2+1 ;1 áàéò íà ñîñòîßíèå àêòèâíîñòè è 9 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10)
add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ
add ecx, dword[editLD.size]
add ecx, dword[editRU.size]
335,9 → 332,14
add ecx, dword[editRadius.size]
add ecx, dword[hkSize] ;ðàçìåð èìåíè àêòèâàöèîííîé êíîïêè
add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè
inc ecx ; åù¸ 1 áàéò äëÿ õðàíåíèÿ ðàçìåðà ýëåìåíòîâ
inc ecx ; åùÞ 1 áàéò äëß õðàíåíèß ðàçìåðà ýëåìåíòîâ
 
;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
;cmp dword[keystr.size], 3
;jbe @f
;mcall -1
;@@:
 
;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëßåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
cmp dword[editLU.size], 0
jne @f
inc ecx
356,12 → 358,12
@@:
 
;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx
mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèÿ/ïåðåçàïèñè ôàéëà
mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî
mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó
mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèß/ïåðåçàïèñè ôàéëà
mcall 68, 12, ecx ;âûäåëßåì áëîê ïàìßòè ïîä áóôåð ñîäåðæèìîãî
mov dword[createFile.data_adr], eax ;ñîõðàíßåì àäðåñ áóôåðà â ñòðóêòóðó
 
;çàïîëíèì áóôåð ñîäåðæèìîãî:
push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì
push ebx ;ñîõðàíßåì âûáðàííûé ðåæèì
mov bl, byte[mode]
mov byte[eax], bl
pop ebx
372,31 → 374,31
push esi ebx
call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ
 
mov esi, dataBuffer.1
mov ebx, dataBuffer.size1
mov esi, dataBuffer.1 ;editLU.text
mov ebx, dataBuffer.size1 ;editLU.size
call copyParam
call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè
call addPerenos ;äîáàâëßåì ïåðåíîñ ñòðîêè
 
mov esi, dataBuffer.2
mov ebx, dataBuffer.size2
call copyParam
call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè
call addPerenos ;äîáàâëßåì ïåðåíîñ ñòðîêè
 
mov esi, dataBuffer.3
mov ebx, dataBuffer.size3
call copyParam
call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè
call addPerenos ;äîáàâëßåì ïåðåíîñ ñòðîêè
 
mov esi, dataBuffer.4
mov ebx, dataBuffer.size4
call copyParam
call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè
call addPerenos ;äîáàâëßåì ïåðåíîñ ñòðîêè
 
;ñîõðàíÿåì êíîïêó àêòèâàöèè
;ñîõðàíßåì êíîïêó àêòèâàöèè
call saveKey
call addPerenos
 
;ñîõðàíÿåì ñêàíêîä êíîïêè
;ñîõðàíßåì ñêàíêîä êíîïêè
mov esi, keystr.data ;çàïèñûâàåì ñòðîêó keystr â ôàéë
xor ebx, ebx
@@:
412,15 → 414,15
@@:
call addPerenos
 
;ñîõðàíÿåì ðàäèóñ
;!!! åñëè ðàäèóñ îñòàâëåí ïóñòûì, òî íóæíî ñîõðàíÿòü çíà÷åíèå ïî óìîë÷àíèþ (ñåé÷àñ ïèøåòñÿ '-')
;ñîõðàíßåì ðàäèóñ
;!!! åñëè ðàäèóñ îñòàâëåí ïóñòûì, òî íóæíî ñîõðàíßòü çíà÷åíèå ïî óìîë÷àíèþ (ñåé÷àñ ïèøåòñß '-')
mov esi, radiusBuffer.data
mov ebx, editRadius.size ;radiusBuffer.size
call copyParam
call addPerenos
 
;äîáàâëÿåì ðàçìåð ýëåìåíòîâ
push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì
;äîáàâëßåì ðàçìåð ýëåìåíòîâ
push ebx ;ñîõðàíßåì âûáðàííûé ðåæèì
mov bl, byte[sizeStyle]
mov byte[eax], bl
pop ebx
436,7 → 438,7
je .end
;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!!
.end:
mcall 68, 13, dword[createFile.data_adr] ;îñâîáîæäàåì ïàìÿòü ïîä áóôåð
mcall 68, 13, dword[createFile.data_adr] ;îñâîáîæäàåì ïàìßòü ïîä áóôåð
call finishHotAnglesApp ;çàâåðøàåì ðàáîòó âñåõ êîïèé ñåðâèñà @HOTANGLES
call loadConfig ;ïåðåçàãðóæàåì ôàéë êîíôèãà
call draw_window ;ïåðåðèñîâûâàåì îêíî
471,11 → 473,11
 
 
finishHotAnglesApp:
;íàõîäèì âñå êîïèè ïðèëîæåíèÿ ïî èìåíè è çàâåðøàåì èõ
;íàõîäèì âñå êîïèè ïðèëîæåíèß ïî èìåíè è çàâåðøàåì èõ
push eax ebx ecx esi edi
;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ:
mov esi, startAppData.file_name ;ïåðâàÿ ñòðîêà - èñêîìîå èìÿ ïðèëîæåíèÿ
mov edi, buf ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà
;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíßþòñß:
mov esi, startAppData.file_name ;ïåðâàß ñòðîêà - èñêîìîå èìß ïðèëîæåíèß
mov edi, buf ;âòîðàß ñòðîêà - èìß òåêóùåãî ñëîòà
add edi, 10
 
mov ecx, 1
483,7 → 485,7
mcall 9, buf, ecx ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà
mov dword[slotMax], eax
 
call compareBytes2 ;ñðàâíèâàåì èìÿ
call compareBytes2 ;ñðàâíèâàåì èìß
cmp eax, 0
jne finishHotAnglesApp.next ;åñëè íå ñîâïàëî, òî ïåðåõîäèì íà ñëåäóþùèé ñëîò
 
541,26 → 543,26
loadConfig:
push eax ebx ecx edx
mcall 68, 27, fileName ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ
mov dword[fileAdr], eax ;ñîõðàíÿåì àäðåñ áëîêà ïàìÿòè ôàéëà
mov dword[fileAdr], eax ;ñîõðàíßåì àäðåñ áëîêà ïàìßòè ôàéëà
cmp eax, 0
je loadConfig.default ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
;èíà÷å äàííûå çàãðóæåíû â ÎÇÓ, ðàçìåð â edx
cmp edx, 0 ;åñëè ôàéë ïóñò, â í¸ì íåò äàííûõ, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
cmp edx, 0 ;åñëè ôàéë ïóñò, â íÞì íåò äàííûõ, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
je loadConfig.default
.start:
add edx, eax ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ
add edx, eax ;êëàäÞì â edx - àäðåñ êîíöà êîíôèã.äàííûõ
 
.chStart:
 
push ebx
mov bl, byte[eax]
cmp bl, 48 ; åñëè çíà÷åíèå âûõîäèò çà äîïóñòèìûå ïðåäåëû, òî ïðîâåðÿåì íà 'n' (äëÿ ñîâìåñòèìîñòè)
cmp bl, 48 ; åñëè çíà÷åíèå âûõîäèò çà äîïóñòèìûå ïðåäåëû, òî ïðîâåðßåì íà 'n' (äëß ñîâìåñòèìîñòè)
jb loadConfig.checkN
cmp bl, 51
ja loadConfig.checkN
 
mov byte[mode], bl ;èíà÷å óñòàíàâëèâàåì ýòîò ðåæèì êàê åñòü
jmp loadConfig.modeEnd ;è èä¸ì äàëüøå
jmp loadConfig.modeEnd ;è èäÞì äàëüøå
.checkN:
cmp bl, 'n' ;åñëè n - òî ðåæèì "îòêëþ÷åíî"
jne @f
573,19 → 575,19
jmp loadConfig.modeEnd
@@:
mov byte[mode], 48 ;'0' èíà÷å ïî óìîë÷àíèþ îòêëþ÷åíî
;mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷¸í êëàññè÷åñêèé ðåæèì ðàáîòû
;mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷Þí êëàññè÷åñêèé ðåæèì ðàáîòû
.modeEnd:
pop ebx
;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
;jmp loadConfig.end ;êîìàíäà äëß óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
 
;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð
push edi esi ecx ebx eax
;èíèöèàëèçèðóåì óêàçàòåëè íà àäðåñà áóôåðà ñòðîêè è å¸ ðàçìåðà
;èíèöèàëèçèðóåì óêàçàòåëè íà àäðåñà áóôåðà ñòðîêè è åÞ ðàçìåðà
mov edi, dataBuffer.1
mov esi, dataBuffer.size1
;ecx - ñ÷¸ò÷èê áàéò â ñòðîêå
;ecx - ñ÷Þò÷èê áàéò â ñòðîêå
.block:
xor ecx, ecx ;îáíóëÿåì ñ÷¸ò÷èê
xor ecx, ecx ;îáíóëßåì ñ÷Þò÷èê
inc eax
cmp byte[eax], 10 ;åñëè î÷åðåäíîé êîä ñèìâîëà 10 èëè 13, òî ïðîïóñêàåì ñèìâîëû
je loadConfig.block ;äî ïåðâîãî îòëè÷íîãî îò íèõ
597,11 → 599,11
mov byte[edi], bl
inc edi
inc eax
inc ecx ;óâåëè÷èâàåì ñ÷¸ò÷èê ñèìâîëîâ â ñòðîêå
inc ecx ;óâåëè÷èâàåì ñ÷Þò÷èê ñèìâîëîâ â ñòðîêå
 
;èä¸ì äî êîíöà ýòîé ñòðîêè: ïîêà íå âñòðåòèì î÷åðåäíîé 10, 13, 0 èëè file end
.while: ;è êîïèðóåì âñ¸ â áóôåð
cmp eax, edx ;ïðîâåðÿåì çàêîí÷èëñÿ ëè ôàéë, à êîíöà ñòðîêè íå áûëî !!!
;èäÞì äî êîíöà ýòîé ñòðîêè: ïîêà íå âñòðåòèì î÷åðåäíîé 10, 13, 0 èëè file end
.while: ;è êîïèðóåì âñÞ â áóôåð
cmp eax, edx ;ïðîâåðßåì çàêîí÷èëñß ëè ôàéë, à êîíöà ñòðîêè íå áûëî !!!
ja loadConfig.ura
cmp byte[eax], 10
je loadConfig.ura
619,12 → 621,12
jae loadConfig.ura
jmp loadConfig.while
.ura:
mov byte[edi], 0 ;êëàä¸ì çàâåðøàþùèé 0 â ñòðîêó
mov dword[esi], ecx ;ñîõðàíÿåì ðàçìåð ñòðîêè
mov byte[edi], 0 ;êëàäÞì çàâåðøàþùèé 0 â ñòðîêó
mov dword[esi], ecx ;ñîõðàíßåì ðàçìåð ñòðîêè
add esi, 4 ;ïåðåõîäèì íà ðàçìåð ñëåäóþùåãî áóôåðà
sub edi, ecx ;ïåðåõîäèì íà ñëåäóþùèé áóôåð
add edi, 512
;xor ecx, ecx ;îáíóëÿåì ðàçìåð ñòðîêè
;xor ecx, ecx ;îáíóëßåì ðàçìåð ñòðîêè
 
cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì
jb loadConfig.block
636,7 → 638,7
call readScanKey
call gotoEndString
 
call readOptRadius ;ñ÷èòûâàåì çíà÷åíèå ðàäèóñà äëÿ mode 3
call readOptRadius ;ñ÷èòûâàåì çíà÷åíèå ðàäèóñà äëß mode 3
call gotoEndString
call readOptSize ;ñ÷èòûâàåì ðàçìåð ýëåìåíòîâ
call gotoEndString
652,10 → 654,10
mov ecx, dword[fileAdr] ;åñëè ôàéë áûë çàãðóæåí, òî
cmp ecx, 0
je @f
mcall 68, 13, ecx ;âûãðóæàåì ôàéë èç ïàìÿòè
mcall 68, 13, ecx ;âûãðóæàåì ôàéë èç ïàìßòè
@@:
call updateParams ;ïðèìåíÿåì íàñòðîéêè êàæäîãî áóôåðà
call setMySize ;ïðèìåíÿåì íàñòðîéêè ðàçìåðà ýëåìåíòîâ
call updateParams ;ïðèìåíßåì íàñòðîéêè êàæäîãî áóôåðà
call setMySize ;ïðèìåíßåì íàñòðîéêè ðàçìåðà ýëåìåíòîâ
pop edx ecx ebx eax
ret
 
662,12 → 664,12
 
setMySize:
push eax
;âûñòàâëÿåì mysize â çàâèñèìîñòè îò çíà÷åíèÿ sizeStyle
;âûñòàâëßåì mysize â çàâèñèìîñòè îò çíà÷åíèß sizeStyle
cmp byte[sizeStyle], '0'
jb @f
cmp byte[sizeStyle], '7'
ja @f
mov eax, 0 ;åñëè çíà÷åíèå ðàçìåðà çàäàíî, òî åãî è âûñòàâëÿåì
mov eax, 0 ;åñëè çíà÷åíèå ðàçìåðà çàäàíî, òî åãî è âûñòàâëßåì
mov al, byte[sizeStyle]
sub al, '0'
jmp .end
674,29 → 676,31
@@:
cmp byte[sizeStyle], 'a'
je .auto
cmp byte[sizeStyle], 'x'
je .x
.system: ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàÿ
push ebx ecx edx
mcall 48, 11 ;ïîëó÷àåì ñèñòåìíûé ðàçìåð øðèôòà
;òåïåðü eax - âûñîòà øðèôòà â ïèêñåëÿõ
mov ebx, 9 ;temp fix - äåëèì íà òåêóùèé ðàçìåð øðèôòà and -1
mov edx, 0
div ebx
pop edx ecx ebx
 
cmp eax, 0
je .end
cmp eax, 7
jae .size7
dec eax
;mov eax, 0 ;test
;cmp byte[sizeStyle], 's'
;je .system
.system: ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàß
; push ebx ecx
;!!!
; mov eax, 9
; mcall 48, 11 ;ïîëó÷àåì ñèñòåìíûé ðàçìåð øðèôòà
;eax - âûñîòà øðèôòà â ïèêñåëßõ
; mov ecx, eax
; push eax
; mcall 48, 12, ecx ;ïðèìåíßåì ðàçìåð øðèôòà
; pop eax
; pop ecx ebx
;temp fix - äåëèì íà òåêóùèé ðàçìåð øðèôòà and -1
; push ebx edx
; mov ebx, 9
;div ebx
; pop edx ebx
;cmp eax, 0
;je .end
;dec eax
mov eax, 0 ;xor eax, eax ;test temp
jmp .end
.x:
mov byte[sizeStyle], 'x'
mov eax, 0
jmp .end
.auto: ;a - âûñòàâëÿåì â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà
.auto: ;a - âûñòàâëßåì â çàâèñèìîñòè îò ðàçðåøåíèß ýêðàíà
;!!!
mcall 14
push ebx
xor ebx, ebx
707,10 → 711,8
mov ax, bx
.a:
pop ebx
cmp ax, 1300 ;1919 ;ðàçìåðû ïîëó÷åííûå âûøå îò 0 è íà 1 ìåíüøå
cmp ax, 1919 ;ðàçìåðû ïîëó÷åííûå âûøå îò 0 è íà 1 ìåíüøå
jb .size0
cmp ax, 1899 ;919
jb .x
cmp ax, 2047
jb .size1
cmp ax, 4095
717,14 → 719,8
jb .size2
cmp ax, 8191
jb .size3
cmp ax, 16383
jb .size4
cmp ax, 32767
jb .size5
cmp ax, 65535
jb .size6
 
jmp .size7
jmp .size4
 
.size0:
mov eax, 0
761,7 → 757,7
 
readScanKey:
;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñß, òî
ja .default ;íàñòðîéêè ïî óìîë÷àíèþ
cmp byte[eax], 10
je @f
807,7 → 803,7
 
readOptKey: ;1;3;4;5 - space or shift
;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñß, òî
ja .default ;íàñòðîéêè ïî óìîë÷àíèþ
cmp byte[eax], 10
je @f
840,7 → 836,7
mov dword[hkSize], 3
jmp .end
.notAlt:
;óáåäèìñÿ, ÷òî òàì 1 ñèìâîë, à íå ñòðîêà
;óáåäèìñß, ÷òî òàì 1 ñèìâîë, à íå ñòðîêà
cmp byte[eax+1], 10
je .oneSymb
cmp byte[eax+1], 0
849,9 → 845,9
je .oneSymb
jmp .default
.oneSymb:
;ïðîâåðÿåì, ÷òî ñèìâîë ðàçðåø¸ííûé !!!
;ïðîâåðßåì, ÷òî ñèìâîë ðàçðåøÞííûé !!!
 
;äîáàâëÿåì ñèìâîë êàê åñòü
;äîáàâëßåì ñèìâîë êàê åñòü
push ebx
;xor ebx, ebx
mov bl, byte[eax]
873,7 → 869,7
 
;ïðîõîäèì äî êîíöà òåêóùåé ñòðîêè
gotoEndString:
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñß, òî
ja @f ;âûõîäèì
cmp byte[eax], 10
je @f
889,7 → 885,7
 
readOptRadius:
;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñß, òî
ja .default ;íàñòðîéêè ïî óìîë÷àíèþ
cmp byte[eax], 10
je @f
906,7 → 902,7
mov byte[radiusBuffer.data+ecx], bl
inc ecx
inc eax
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî âûõîä
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñß, òî âûõîä
ja .readEnd
cmp byte[eax], 10
je .readEnd
937,7 → 933,7
 
readOptSize:
;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî
cmp eax, edx ;åñëè ôàéë çàêîí÷èëñß, òî
ja .default ;íàñòðîéêè ïî óìîë÷àíèþ
cmp byte[eax], 10
je @f
946,13 → 942,11
cmp byte[eax], 13
je @f
 
;ïðîâåðÿåì, ÷òî ýòî äîïóñòèìîå çíà÷åíèå: 1-7, a, s
;ïðîâåðßåì, ÷òî ýòî äîïóñòèìîå çíà÷åíèå: 1-7, a, s
cmp byte[eax], 'a'
je .setValue
cmp byte[eax], 's'
je .setValue
cmp byte[eax], 'x'
je .setValue
cmp byte[eax], '0'
je .setValue
cmp byte[eax], '1'
1045,14 → 1039,14
copyKill:
push eax ebx ecx esi edi
 
;ñïåðâà ïðî÷ò¸ì ñâîþ èíôîðìàöèþ
;ñïåðâà ïðî÷òÞì ñâîþ èíôîðìàöèþ
mcall 9, buf, -1
mov eax, dword[buf+30]
mov dword[selfPID], eax
 
;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ:
mov esi, selfName ;ïåðâàÿ ñòðîêà - èìÿ òåêóùåãî ïðèëîæåíèÿ
mov edi, buf ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà
;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíßþòñß:
mov esi, selfName ;ïåðâàß ñòðîêà - èìß òåêóùåãî ïðèëîæåíèß
mov edi, buf ;âòîðàß ñòðîêà - èìß òåêóùåãî ñëîòà
add edi, 10
 
mov ecx, 1
1084,162 → 1078,35
pop edi esi ecx ebx eax
ret
 
 
 
 
reg: dw 0
shlRegForSizeElems:
push eax edx
xor eax, eax
xor edx, edx
mov ax, word[reg]
mov dl, byte[mysize]
@@:
cmp dl, 0
je @f
shl ax, 1
dec dl
jmp @b
@@:
mov word[reg], ax
pop edx eax
ret
 
WindowsWidth = 450
WindowsHeight = 195 + 35 - 5
coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ
WindowsWidth = 550
WindowsHeight = 235
coord: ;êîîðäèíàòû îêíà ïðèëîæåíèß
.y dw 0
.x dw 0
 
 
 
 
 
BaseY = 36 ;ñìåùåíèå äî ïåðâîãî, ñàìîãî âåðõíåãî, ýëåìåíòà âíóòðè îêíà
 
elem:
.winWidth: dw 450
.winHeight: dw 225
.butAppleWidth: dw 80
.butAppleHeight: dw 20
.textDelta: dw 3 ;îòñòóï ìåæäó ñòðîêàìè ìíîãîñòðî÷íîãî òåêñòà
.butDialWidth: dw 30 ;âûñîòà è øèðèíà äëÿ 4 êíîïîê äèàëîãîâîãî îêíà
.butDialHeight: dw 14
.textHeight: dw 9 ;ðàçìåð âûñîòà øðèôòà
;.editHeight: dw
.editCommandWidth: dw 150 ;180-butDialWidth
.butModeWidth: dw 221
;.textCommandUpY: dw 74
.butModeY: dw 160
;.editRadiusWidth: dw 40
elemEnd:
 
 
;âûñòàâëÿåì âñå çíà÷åíèÿ ïî óìîë÷àíèþ
defaultElems:
mov word[elem.winWidth], 450
mov word[elem.winHeight], 225
mov word[elem.butAppleWidth], 80
mov word[elem.butAppleHeight], 20
mov word[elem.textDelta], 3
mov word[elem.butDialWidth], 30
mov word[elem.butDialHeight], 14
mov word[elem.textHeight], 9
mov word[elem.editCommandWidth], 150
mov word[elem.butModeWidth], 221
mov word[elem.butModeY], 160
;mov word[elem.editRadiusWidth], 40
ret
 
;ïðîõîäèì ïî âñåì ýëåìåíòàì è ïåðåâû÷èñëÿåì ïàðàìåòðû (ôóíêöèÿ âûïîëíÿåòñÿ 1 ðàç ïðè çàãðóçêå êîíôèãóðàöèè)
resizeElems:
push ebx esi
xor ebx, ebx
mov esi, elem
@@:
cmp esi, elemEnd
jae @f
 
mov bx, word[esi]
mov word[reg], bx
call shlRegForSizeElems
mov bx, word[reg]
mov word[esi], bx
add esi, 2
jmp @b
@@:
pop esi ebx
ret
 
 
 
 
 
 
 
 
draw_window:
;óäàëÿåì êíîïêó, åñëè åñòü
mov edx, 0x80000002
mcall 8
mcall 12, 1 ; Start window redraw
 
;óäàëÿåì åù¸ 4 êíîïêè åñëè îíè åñòü
mov edx, 0x80000004
mcall 8
mov edx, 0x80000005
mcall 8
mov edx, 0x80000006
mcall 8
mov edx, 0x80000007
mcall 8
 
mov eax, 12 ; function 12: tell os about windowdraw
mov ebx, 1 ; 1, start of draw
mcall
 
cmp byte[sizeStyle], 'x'
je draw_window_x
jmp draw_window_old
 
draw_window_x:
mov word[elem.winWidth], 450+150
mov word[elem.winHeight], 225+220/2
mov word[elem.butAppleWidth], 80+80/3
mov word[elem.butAppleHeight], 20+20/3
mov word[elem.textDelta], 3
mov word[elem.butDialWidth], 30+10
mov word[elem.butDialHeight], 14+7
mov word[elem.textHeight], 9*2
mov word[elem.editCommandWidth], 150+50
mov word[elem.butModeWidth], 221
mov word[elem.butModeY], 160+90
 
draw_window_old:
;îòîáðàçèì îêíî ïî öåíòðó ýêðàíà äëÿ ýòîãî:
;îòîáðàçèì îêíî ïî öåíòðó ýêðàíà äëß ýòîãî:
mcall 14 ;ïîëó÷èì ðàçìåðû ýêðàíà
mov dword[coord], eax ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû
shr word[coord.x], 1 ;âåðíåå ïîëîæèì èõ ïîëîâèíó
shr word[coord.y], 1
 
;âû÷èñëÿåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà
mov bx, word[elem.winWidth] ;îòíèìàåì îò ñåðåäèíû ýêðàíà ïîëîâèíó ðàçìåðà îêíà
shr bx, 1
sub word[coord.x], bx
;âû÷èñëßåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà
sub word[coord.x], WindowsWidth/2
sub word[coord.y], WindowsHeight/2
 
mov bx, word[elem.winHeight]
shr bx, 1
sub word[coord.y], bx
 
mov eax, 0 ; function 0 : define and draw window
mov ebx, 0 ; [x start] *65536 + [x size]
mov bx, word[coord.x]
shl ebx, 16
mov bx, word[elem.winWidth]
mov bx, WindowsWidth
 
mov ecx, 0
mov cx, word[coord.y] ; [y start] *65536 + [y size]
shl ecx, 16
mov cx, word[elem.winHeight]
mov cx, WindowsHeight
 
mov edx, 0x14ffffff ; color of work area RRGGBB
; 0x02000000 = window type 4 (fixed size, skinned window)
1248,422 → 1115,89
mov edi, title
mcall
 
 
;ðàçìåðû è êîîðäèíàòû
;push eax
xor eax, eax ;mov eax, 0
mov ax, word[elem.editCommandWidth]
mov dword[editLU.width], eax
mov dword[editLD.width], eax
mov dword[editRU.width], eax
mov dword[editRD.width], eax
 
;mov ax, word[elem.editRadiusWidth]
mov ax, word[elem.winWidth]
sub ax, word[elem.butModeWidth]
sub ax, Otstup
sub ax, word[elem.butAppleHeight] ;Otstup
shr ax, 1
sub ax, Otstup
mov dword[editRadius.width], eax
 
;mov ax, word[elem.butDialHeight]
xor ecx, ecx
call setNewSizeForText
mov dword[editLU.text_color], ecx ;0x90000000 ;eax
mov dword[editLD.text_color], ecx
mov dword[editRU.text_color], ecx
mov dword[editRD.text_color], ecx
mov dword[editRadius.text_color], ecx
 
;mov ecx, dword[editRadius.height]
;mov word[elem.butDialHeight], cx
 
;mov eax, 0
mov ax, word[elem.winWidth]
sub ax, Otstup
sub ax, word[elem.butDialWidth]
sub ax, word[elem.editCommandWidth]
mov dword[editRU.left], eax
mov dword[editRD.left], eax
 
mov ax, Otstup
add ax, word[elem.butDialWidth]
mov dword[editLU.left], eax
mov dword[editLD.left], eax
 
mov ax, word[elem.textHeight]
add ax, word[elem.textDelta]
shl ax, 2
add ax, BaseY+2
mov dword[editLU.top], eax
mov dword[editRU.top], eax
 
add ax, 4
;mov ax, word[elem.textHeight]
;add ax, word[elem.textDelta]
;shl ax, 2
sub ax, word[elem.textHeight]
;add ax, BaseY
add ax, word[elem.textHeight]
;add ax, 6
add ax, word[elem.butDialHeight]
add ax, word[elem.textHeight]
add ax, word[elem.textHeight]
mov dword[editLD.top], eax
mov dword[editRD.top], eax
 
;pop eax
;mcall 48,3,sc,40
;edit_boxes_set_sys_color editRadius, sc ;editLU, editLD, editRU, editRD, editRadius, sc
 
invoke edit_box_draw, editLU ;ðèñîâàíèå edit box'îâ
invoke edit_box_draw, editLD
invoke edit_box_draw, editRU
invoke edit_box_draw, editRD
 
;ðèñóåì êíîïêó
mov bx, word[elem.winWidth] ;êîîðäèíàòà X êíîïêè
sub bx, word[elem.butAppleWidth]
sub bx, Otstup
shl ebx, 16
add bx, word[elem.butAppleWidth] ;øèðèíà êíîïêè
;ðèñóåì êíîïêó è åå òåêñò
buttonAppleY = WindowsHeight-40
mcall 8, <WindowsWidth-120-Otstup, 120>, <buttonAppleY, 27>, 2, 0x00AABBCC
mcall 4, <WindowsWidth-120-Otstup+27, buttonAppleY+6>, 0x10FFFFFF, buttonText, buttonTextSize
 
mov cx, word[elem.winHeight] ;êîîðäèíàòà Y
sub cx, word[elem.butAppleHeight]
sub cx, 15
shl ecx, 16
add cx, word[elem.butAppleHeight] ;âûñîòà êíîïêè
 
mov edx, 0x00000002 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
;ðèñóåì òåêñò êíîïêè
mov bx, word[elem.winWidth] ;êîîðäèíàòà X òåêñòà
sub bx, word[elem.butAppleWidth]
sub bx, Otstup
add bx, 25
sub bx, buttonTextXoffset ;!!!use size
shl ebx, 16
add bx, word[elem.winHeight] ;êîîðäèíàòà Y òåêñòà
sub bx, word[elem.butAppleHeight]
sub bx, 15
add bx, 6 ;!!!use size
 
mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà
call setNewSizeForText
mov edx, buttonText
mov esi, buttonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
mcall 4
 
;ðèñóåì åù¸ 4 êíîïêè äëÿ äèàëîãîâîãî îêíà âûáîðà ôàéëà
;ðèñóåì åùÞ 4 êíîïêè äëß äèàëîãîâîãî îêíà âûáîðà ôàéëà
;íîìåðà 4,5,6 è 7
buttonH = 14
buttonW = 30
 
 
buttonH = 21
;ëåâûé âåðõíèé óãîë
mov ebx, Otstup ;êîîðäèíàòà X
shl ebx, 16
add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
 
;mov ecx, 85 ;êîîðäèíàòà Y 36+3*9+2*3+ 5 +9+2
;BaseY+4*(word[elem.textHeight]+word[elem.textDelta])+2
mov cx, word[elem.textHeight]
add cx, word[elem.textDelta]
shl cx, 2
add cx, BaseY+2
shl ecx, 16
add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
 
mov edx, 0x00000004 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
mcall 8, <Otstup,buttonW>, <85,buttonH>, 4, 0x00AABBCC
;ëåâûé íèæíèé óãîë
mov ebx, Otstup ;êîîðäèíàòà X
shl ebx, 16
add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
;mov ecx, 120 ;êîîðäèíàòà Y
mov cx, word[elem.textHeight]
add cx, word[elem.textDelta]
shl cx, 2
sub cx, word[elem.textHeight]
add cx, BaseY
add cx, word[elem.textHeight]
add cx, 6
add cx, word[elem.butDialHeight]
add cx, word[elem.textHeight]
add cx, word[elem.textHeight]
 
shl ecx, 16
add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
 
mov edx, 0x00000005 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
mcall 8, <Otstup,buttonW>, <120,buttonH>, 5
;ïðàâûé âåðõíèé óãîë
;mov ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
mov bx, word[elem.winWidth] ;êîîðäèíàòà X
sub bx, Otstup
sub bx, word[elem.butDialWidth]
 
shl ebx, 16
add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
 
;mov ecx, 85 ;êîîðäèíàòà Y 36+3*9+2*3+ 5 +9+2
;BaseY+4*(word[elem.textHeight]+word[elem.textDelta])+2
mov cx, word[elem.textHeight]
add cx, word[elem.textDelta]
shl cx, 2
add cx, BaseY+2
shl ecx, 16
add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
 
mov edx, 0x00000006 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
 
 
 
mcall 8, <WindowsWidth-Otstup-buttonW,buttonW>, <85,buttonH>, 6
;ïðàâûé íèæíèé óãîë
mov bx, word[elem.winWidth] ;êîîðäèíàòà X
sub bx, Otstup
sub bx, word[elem.butDialWidth]
shl ebx, 16
add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
mcall 8, <WindowsWidth-Otstup-buttonW,buttonW>, <120,buttonH>, 7
 
mov cx, word[elem.textHeight] ;êîîðäèíàòà Y
add cx, word[elem.textDelta]
shl cx, 2
sub cx, word[elem.textHeight]
add cx, BaseY
add cx, word[elem.textHeight]
add cx, 6
add cx, word[elem.butDialHeight]
add cx, word[elem.textHeight]
add cx, word[elem.textHeight]
shl ecx, 16
add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
 
mov edx, 0x00000007 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
;ðèñóåì òåêñòû äëÿ ýòèõ 4 êíîïîê
;ðèñóåì òåêñòû äëß ýòèõ 4 êíîïîê
mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà
call setNewSizeForText
mov edx, commonButtonText ;ñòðîêà òåêñòà
mov esi, commonButtonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
;êîîðäèíàòû òåêñòà (x, y)
deltaCommonTextX = 7
deltaCommonTextY = 2
;mov ebx, (Otstup+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
mov ebx, Otstup+deltaCommonTextX
shl ebx, 16
mov bx, word[elem.textHeight]
add bx, word[elem.textDelta]
shl bx, 2
add bx, BaseY+2
add bx, deltaCommonTextY
deltaCommonTextY = 6
mcall 4, <Otstup+deltaCommonTextX, 85+deltaCommonTextY>
mcall 4, <Otstup+deltaCommonTextX, 120+deltaCommonTextY>
mcall 4, <WindowsWidth-Otstup-buttonW+deltaCommonTextX, 85+deltaCommonTextY>
mcall 4, <WindowsWidth-Otstup-buttonW+deltaCommonTextX, 120+deltaCommonTextY>
 
mcall 4
 
;
;mov ebx, (Otstup+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
mov ebx, Otstup+deltaCommonTextX
shl ebx, 16
mov bx, word[elem.textHeight] ;êîîðäèíàòà Y
add bx, word[elem.textDelta]
shl bx, 2
sub bx, word[elem.textHeight]
add bx, BaseY
add bx, word[elem.textHeight]
add bx, 6
add bx, word[elem.butDialHeight]
add bx, word[elem.textHeight]
add bx, word[elem.textHeight]
add bx, deltaCommonTextY
 
mcall 4
 
 
;mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
mov bx, word[elem.winWidth] ;êîîðäèíàòà X
sub bx, Otstup
sub bx, word[elem.butDialWidth]
add bx, deltaCommonTextX
shl ebx, 16
mov bx, word[elem.textHeight]
add bx, word[elem.textDelta]
shl bx, 2
add bx, BaseY+2
add bx, deltaCommonTextY
 
mcall 4
 
;mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
mov bx, word[elem.winWidth] ;êîîðäèíàòà X
sub bx, Otstup
sub bx, word[elem.butDialWidth]
add bx, deltaCommonTextX
shl ebx, 16
mov bx, word[elem.textHeight] ;êîîðäèíàòà Y
add bx, word[elem.textDelta]
shl bx, 2
sub bx, word[elem.textHeight]
add bx, BaseY
add bx, word[elem.textHeight]
add bx, 6
add bx, word[elem.butDialHeight]
add bx, word[elem.textHeight]
add bx, word[elem.textHeight]
add bx, deltaCommonTextY
 
mcall 4
 
;delete mode button, if it exist
mov edx, 0x80000008
mcall 8
;draw button Mode
buttonModeX = 30
buttonModeY = 160
buttonModeWidth = 221
buttonModeHeight = 14
buttonModeX = 30 ;433
buttonModeY = 160 ;50
buttonModeWidth = 300
buttonModeHeight = 20
buttonModeTextYoffset = 3
buttonModeTextXoffset = 5
;mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width
mov ebx, Otstup
shl ebx, 16
add bx, word[elem.butModeWidth]
 
mov cx, word[elem.butModeY] ;buttonModeY;*65536 + buttonModeHeight ;Y + Height
shl ecx, 16
mov cx, word[elem.butDialHeight]
 
mov edx, 0x00000008 ;button id
mov esi, 0x00FFFFFF ;color button
mcall 8
 
;mov ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2) ;X + Width
mov ebx, Otstup+2
add bx, word[elem.butModeWidth]
sub bx, 20
shl ebx, 16
add bx, 20-2
 
; mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2 ;Y + Height
mov cx, word[elem.butModeY]
inc ecx
shl ecx, 16
mov cx, word[elem.butDialHeight]
sub cx, 2
 
mov edx, 0xAABBCC
mcall 13
mcall 8, <buttonModeX,buttonModeWidth>, <buttonModeY,buttonModeHeight>, 8, 0x00FFFFFF
mcall 13, <buttonModeX+2+buttonModeWidth-20, 20-2>, <buttonModeY+1, buttonModeHeight-2>, 0xAABBCC
;draw text for button Mode
mov ebx, (Otstup+buttonModeTextXoffset) * 65536 ;(x, y)
mov bx, word[elem.butModeY]
add bx, buttonModeTextYoffset
mov ecx, 0x000000
call setNewSizeForText
and ecx, 0x7FFFFFFF
mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
mov ecx, 0x10000000
call setTextModeMenu
mov esi, valueModeMenuSize
cmp byte[sizeStyle], 'x'
jne @f
mov esi, 25 ;valueModeMenuSize -3 ;ðåæèì æåñòà ïî êëàâèøå àê
@@:
mcall 4
 
mov ebx, (Otstup-12)
add bx, word[elem.butModeWidth]
shl ebx, 16
mov bx, word[elem.butModeY]
add bx, buttonModeTextYoffset
 
mov ecx, 0x80FFFFFF ;80
call setNewSizeForText
and ecx, 0x7FFFFFFF
;or ecx, 0x80000000
 
mov ebx, (buttonModeX+buttonModeWidth-12) * 65536 + (buttonModeY+buttonModeTextYoffset+3)
mov ecx, 0x80FFFFFF
mov edx, symbolDownArrow
mov esi, 1
mcall 4
 
;êíîïêà âûáîðà ãîðÿ÷åé êëàâèøè
buttonHotKeyX = 270
;êíîïêà âûáîðà ãîðß÷åé êëàâèøè
buttonHotKeyX = 350-10
buttonHotKeyWidth = 90
mov edx, 0x80000009 ;óäàëÿåì
mov edx, 0x80000009 ;óäàëßåì
mcall 8
cmp byte[mode], 49 ;ðèñóåì âûáîð êëàâèøè, òîëüêî åñëè mode > 1
jbe @f
;ðèñóåì íîâóþ
push eax ebx ecx edx esi
; mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth ;X + Width
mov ebx, Otstup
add bx, word[elem.butModeWidth]
add bx, word[elem.butAppleHeight]
shl ebx, 16
mov bx, word[elem.winWidth] ;buttonHotKeyWidth
sub bx, word[elem.butModeWidth]
sub bx, Otstup
sub bx, word[elem.butAppleHeight] ;Otstup
shr bx, 1
sub bx, Otstup
; mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
mov cx, word[elem.butModeY]
shl ecx, 16
mov cx, word[elem.butDialHeight]
 
mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth ;X + Width
mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
mov edx, 0x00000009 ;button id
mov esi, 0x00FFFFFF ;color button
mcall 8
pop esi edx ecx ebx eax
;òåêñò ïîäñêàçêè äëÿ ãîðÿ÷åé êëàâèøè
;mov ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
mov ebx, Otstup
add bx, word[elem.butModeWidth]
add bx, word[elem.butAppleHeight]
add bx, buttonModeTextYoffset
shl ebx, 16
mov bx, word[elem.butModeY]
add bx, buttonModeTextYoffset
 
; xor ecx, ecx
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x80224466
mov ecx, 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx, 0x80000000
 
;òåêñò ïîäñêàçêè äëß ãîðß÷åé êëàâèøè
mov ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
mov ecx, 0x90224466
call setTextForHotKey
mov esi, valueModeMenuSize
mcall 4
;çàãîëîâîê
push eax ebx ecx edx edi esi
;mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
mov ebx, Otstup ;buttonHotKeyX ;Otstup
add bx, word[elem.butModeWidth]
add bx, word[elem.butAppleHeight]
shl ebx, 16
add bx, word[elem.butModeY]
sub bx, 2
sub bx, word[elem.textHeight]
 
; xor ecx, ecx
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x80224466
mov ecx, 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx, 0x80000000
 
mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
mov ecx, 0x80224466
mov edx, hkCaption
mov esi, 3
mcall 4
1670,45 → 1204,17
pop esi edi edx ecx ebx eax
@@:
 
;îòîáðàæàåì íàñòðîéêó ðàäèóñà äåéñòâèÿ æåñòà, òîëüêî åñëè âûáðàí ðåæèì 3
;îòîáðàæàåì íàñòðîéêó ðàäèóñà äåéñòâèß æåñòà, òîëüêî åñëè âûáðàí ðåæèì 3
cmp byte[mode], 51
jne @f
;çàãîëîâîê
push eax ebx ecx edx edi esi
xor ebx, ebx
mov bx, word[elem.winWidth]
sub bx, Otstup
sub ebx, dword[editRadius.width]
shl ebx, 16
add bx, word[elem.butModeY]
sub bx, 2
sub bx, word[elem.textHeight]
 
; mov ecx, 0
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x80224466
 
mov ecx, 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx, 0x80000000
 
;mov ecx, 0x80224466
mov ebx, (buttonHotKeyX + buttonHotKeyWidth + 20) * 65536 + (buttonModeY-11)
mov ecx, 0x80224466
mov edx, radiusCaption
mov esi, 3
mcall 4
pop esi edi edx ecx ebx eax
 
 
xor eax, eax
mov ax, word[elem.winWidth]
sub ax, Otstup
sub eax, dword[editRadius.width]
mov dword[editRadius.left], eax
mov ax, word[elem.butModeY]
mov dword[editRadius.top], eax
 
invoke edit_box_draw, editRadius
@@:
 
1715,11 → 1221,14
call draw_super_text
 
LineLength = 62
mov ebx, 40 * 65536 + BaseY ; draw info text with function 4 (x, y)
mov ebx, Otstup * 65536 + 32 ; draw info text with function 4 (x, y)
 
mov ecx, 0x224466
call setNewSizeForText
and ecx, 0x7FFFFFFF
;xor ecx, ecx
;mov cl, 1 ;byte[mysize]
;shl ecx, 24
;add ecx, 0x224466
;or ecx, 0x00224466 ;80224466
mov ecx, 0x10224466
 
mov edx, text
mov esi, LineLength
1727,37 → 1236,15
 
.newline: ; text from the DATA AREA
mcall
add bx, word[elem.textHeight] ;9*n+3 ;12
add bx, word[elem.textDelta]
 
add ebx, 15
add edx, LineLength
cmp byte[edx], 0
jne .newline
 
mov eax, 12 ; function 12:tell os about windowdraw
mov ebx, 2 ; 2, end of draw
mcall
mcall 12, 2 ; End window redraw
 
ret
 
 
setNewSizeForText:
push ebx
mov ebx, ecx
cmp byte[sizeStyle], 'x'
je .x
mov ecx, 0
mov ch, byte[mysize]
shl ecx, 16
jmp @f
.x:
mov ecx,[sc.work_text]
or ecx,0x90000000
@@:
add ecx, ebx
pop ebx
ret
 
hkSymbol: db 0, 0
 
setTextForHotKey:
1824,7 → 1311,7
mov dword[hkSize], 1
jmp setTextForHotKey.end
@@:
mov word[hkSymbol], 0 ;åñëè æå ïîïàëî ÷òî-òî íåèçâåñòíîå, òî ñîòð¸ì åãî
mov word[hkSymbol], 0 ;åñëè æå ïîïàëî ÷òî-òî íåèçâåñòíîå, òî ñîòðÞì åãî
mov edx, hkHint
mov dword[hkSize], 5 ;shift or space - çíà÷åíèå ïî óìîë÷àíèþ
.end:
1915,19 → 1402,18
option_box_draw, 'option_box_draw',\
option_box_mouse, 'option_box_mouse'
 
commonButtonText db '...', 0 ;òåêñò äëÿ êíîïîê âûçîâà OpenDial
commonButtonText db '...', 0 ;òåêñò äëß êíîïîê âûçîâà OpenDial
commonButtonTextSize = 3
 
if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé
if lang eq ru ;åñëè ßçûê ñáîðêè ðóññêèé
 
text db "Š®­ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â §  ­ áâனªã  ªâ¨¢­ëå 㣫®¢. "
db " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. ", 0
; db " ", 0
db " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. "
db " ", 0
hed:
title db "Š®­ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
buttonText db "à¨¬¥­¨âì", 0
buttonTextSize = 9
buttonTextXoffset = 12
 
ch_text db '‚ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"', 0
 
1953,20 → 1439,20
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
 
hkCaption: db 'Š« ¢¨è :',0
;hkHint: db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0
radiusCaption: db ' ¤¨ãá:',0
 
else ;èíà÷å àíãëèéñêèé òåêñò
 
text db "This is a Hot Angles Configurator. "
db "Set the parameters bellow for yourself or disable this option.", 0
; db " ", 0
db "Set the parameters bellow for yourself or disable this option."
db " ", 0
hed:
title db "Hot Angles Configurator", 0
buttonText db "Apply", 0
buttonTextSize = 5
buttonTextXoffset = 0
 
ch_text db 'Activate "Hot Angles"',0 ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñà
ch_text db 'Activate "Hot Angles"',0 ;ñîïðîâîæäàþùèé òåêñò äëß ÷åê áîêñà
 
superText:
.lu db 'Left up angle command: ', 0
1990,6 → 1476,7
err_message_import1 db 'Error importing library ',39,'kmenu',39,0
 
hkCaption: db 'Key:',0
;hkHint: db 'press any key',0
radiusCaption: db 'Radius:',0
 
end if
2004,78 → 1491,28
draw_super_text:
push eax ebx ecx edx edi esi
 
; mov ecx, 0
; mov ch, byte[mysize]
; shl ecx, 16
; add ecx, 0x224466
mov ecx, 0x224466
call setNewSizeForText
;and ecx, 0x7FFFFFFF
or ecx, 0x80000000
mov ecx, 0
mov ch, byte[mysize]
shl ecx, 16
add ecx, 0x224466
 
;mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y)
mov bx, Otstup
shl ebx, 16
mov bx, word[elem.textHeight]
add bx, word[elem.textDelta]
shl bx, 2
sub bx, word[elem.textHeight]
add bx, BaseY
mcall 4, <Otstup,74> ,,superText.lu,superTextSize
mcall 4, <Otstup,109>,,superText.ld,superTextSize
mcall 4, <290,74> ,,superText.ru,superTextSize
mcall 4, <290,109> ,,superText.rd,superTextSize
 
;mov ecx, 0x224466
mov eax, superText.lu
mov edx, eax
mov esi, superTextSize
mcall 4
 
;mov ebx, Otstup * 65536 + 109 ;9+2+14+(9+1)
add bx, word[elem.textHeight]
add bx, 4;3
add bx, word[elem.butDialHeight]
add bx, word[elem.textHeight]
 
mov edx, superText.ld
mov esi, superTextSize
mcall 4
 
;mov ebx, 240 * 65536 + 74
mov bx, word[elem.winWidth]
sub bx, word[elem.butDialWidth]
sub bx, word[elem.editCommandWidth]
sub bx, Otstup
shl ebx, 16
mov bx, word[elem.textHeight]
add bx, word[elem.textDelta]
shl bx, 2
sub bx, word[elem.textHeight]
add bx, BaseY
 
mov edx, superText.ru
mov esi, superTextSize
mcall 4
 
;mov ebx, 240 * 65536 + 109
add bx, word[elem.textHeight]
add bx, 4;3;2
add bx, word[elem.butDialHeight]
add bx, word[elem.textHeight]
 
mov edx, superText.rd
mov esi, superTextSize
mcall 4
 
;mov ebx, Otstup * 65536 + (buttonModeY-11)
mov ebx, Otstup
shl ebx, 16
add bx, word[elem.butModeY]
sub bx, 2
sub bx, word[elem.textHeight]
 
mov ebx, Otstup * 65536 + (buttonModeY-11)
or ecx, 0x80000000
mov edx, ModeMenu
mov esi, 3
mcall 4
 
; mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
; or ecx, 0x80000000
; mov edx, hkCaption
; mov esi, 3
; mcall 4
 
pop esi edi edx ecx ebx eax
ret
 
2175,7 → 1612,7
je .end
jmp .next
.end:
mov byte[esi], 0 ;êëàä¸ì çàâåðøàþùèé íîëü
mov byte[esi], 0 ;êëàäÞì çàâåðøàþùèé íîëü
pop esi edx ecx eax
call reverseString ;äåëàåì ðåâåðñ ñòðîêè
ret
2184,11 → 1621,11
reverseString:
push eax esi edi
 
mov al, byte[esi] ;åñëè ñòðîêà ïóñòàÿ òî âûõîäèì ðåâåðñ äåëàòü íå íàäî
mov al, byte[esi] ;åñëè ñòðîêà ïóñòàß òî âûõîäèì ðåâåðñ äåëàòü íå íàäî
cmp al, 0
je reverseString.end
 
mov edi, esi ;èíà÷å íàéä¸ì ïîçèöèþ ïîñëåäíåãî ñèìâîëà ñòðîêè è ïîëîæèì å¸ â edi
mov edi, esi ;èíà÷å íàéäÞì ïîçèöèþ ïîñëåäíåãî ñèìâîëà ñòðîêè è ïîëîæèì åÞ â edi
.go_last_symbol:
mov al, byte[edi+1]
cmp al, 0
2202,7 → 1639,7
cmp esi, edi
jae @f
 
;ìåíÿåì ìåñòàìè ñèìâîëû â öèêëå
;ìåíßåì ìåñòàìè ñèìâîëû â öèêëå
mov al, byte[edi]
mov bl, byte[esi]
mov byte[edi], bl
2239,7 → 1676,7
popad
ret
;äàííûå äëÿ äèàëîãà îòêðûòèÿ ôàéëîâ
;äàííûå äëß äèàëîãà îòêðûòèß ôàéëîâ
align 4
OpenDialog_data:
.type dd 0 ;0 - îòêðûòü, 1 - ñîõðàíèòü, 2 - âûáðàòü äèðåêòîðèþ
2248,7 → 1685,7
.com_area dd 0 ;+12
.opendir_path dd plugin_path ;+16
.dir_default_path dd default_dir ;+20
.start_path dd file_name ;+24 ïóòü ê äèàëîãó îòêðûòèÿ ôàéëîâ
.start_path dd file_name ;+24 ïóòü ê äèàëîãó îòêðûòèß ôàéëîâ
.draw_window dd draw_window ;+28
.status dd 0 ;+32
.openfile_path dd openfile_path ;+36 ïóòü ê îòêðûâàåìîìó ôàéëó
2261,7 → 1698,7
.y_size dw 320 ;+52 ; Window y size
.y_start dw 10 ;+54 ; Window Y position
default_dir db '/rd/1',0 ;äèðåêòîðèÿ ïî óìîë÷àíèþ
default_dir db '/rd/1',0 ;äèðåêòîðèß ïî óìîë÷àíèþ
communication_area_name: db 'FFFFFFFF_open_dialog',0
open_dialog_name: db 'opendial',0
communication_area_default_path: db '/rd/1/File managers/',0
2305,11 → 1742,11
edMax = 0 ;max, size, pos
 
align 4
editLU edit_box 180-buttonW,Otstup+buttonW,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax ;ed_focus
editLD edit_box 180-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax
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
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax
editLU edit_box 230-buttonW,Otstup+buttonW,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax ;ed_focus
editLD edit_box 230-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax
editRU edit_box 230-buttonW,290,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax
editRD edit_box 230-buttonW,290,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax
 
align 4
import_libkmenu:
2340,7 → 1777,7
 
sizeStyle: rb 1 ;ðàçìåð òåêñòà è îñòàëüíûõ ýëåìåíòîâ îêíà
mysize: rb 1 ;rd 1
radiusBuffer: ;áóôåð äëÿ ïîëÿ ðàäèóñà æåñòà
radiusBuffer: ;áóôåð äëß ïîëß ðàäèóñà æåñòà
.data: rb 6
.size: rd 1
radiusBufferEnd:
2359,7 → 1796,7
keyscan: rb 1
keystr:
.data: rb 4 ;ñòðîêà ñî çíà÷åíèåì ñêàíêîäà àêòèâàöèîííîé êëàâèøè
.size: rd 1 ;ðàçìåð ñîäåðæèìîãî ñòðîêè áåç ïîñëåäíåãî íóëÿ
.size: rd 1 ;ðàçìåð ñîäåðæèìîãî ñòðîêè áåç ïîñëåäíåãî íóëß
 
dataBuffer:
.1: rb 512
2371,13 → 1808,13
.size3: rd 1
.size4: rd 1
;255+255+2 = 512
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëß òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0
dataBufferEnd:
 
 
I_END:
rb 256 ;1024 ;4096
align 4 ;16
rb 4096
align 16
STACKTOP:
 
MEM:
/programs/other/ha/ReadMe.txt
20,11 → 20,6
6) êëàâèøà àêòèâàöèè (äëÿ ðåæèìîâ 2 è 3): '0'..'9','a'..'z','A'..'Z',Space,Shift,Alt,Ctrl,'~' (ïðèìå÷àíèå: êëàâèøè Shift,Alt,Ctrl íå ðàáîòàþò â âåðñèè 0.3.7);
7) ñêàíêîä êëàâèøè àêòèâàöèè (äåñÿòè÷íîå ÷èñëî, èñïîëüçóåòñÿ @HOTANGLES);
8) ðàäèóñ ñðàáàòûâàíèÿ æåñòà îò íà÷àëüíîé òî÷êè â ìîìåíò íàæàòèÿ êëàâèøè (äëÿ mode 3);
9) ðàçìåð ýëåìåíòîâ îêíà êîíôèãóðàòîðà:
a - auto, àâòîìàòè÷åñêè â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà;
x - â çàâèñèìîñòè îò sc.work_text (íàèáîëåå ðàñïðîñòðàí¸ííûé ðàçìåð òåêñòà â ïðîãðàììàõ Êîëèáðè 2018 ãîäà);
çíà÷åíèå îò 1 äî 7 - íóæíûé ðàçìåð óâåëè÷åíèÿ íà îñíîâå áàçîâîãî ðàçìåðà òåêñòà (êîë-âî ðàç ñêîëüêî ðàçìåð áóäåò óìíîæåí íà 2);
s - â çàâèñèìîñòè îò ñèñòåìíûõ íàñòðîåê (îïöèÿ ïî óìîë÷àíèþ).
Åñëè íåîáõîäèìî íàñòðîèòü òîëüêî ÷àñòü óãëîâ, à îñòàëüíûå îñòàâèòü áåç äåéñòâèÿ, òî â êîíôèãóðàòîðå èëè íà íóæíîé ñòðîêå êîíôèãóðàöèîííîãî ôàéëà óêàæèòå çíàê ìèíóñ (ñèìâîë '-').
Ïðèìå÷àíèå: Äî âåðñèè 0.3.6 âêëþ÷èòåëüíî ôàéë êîíôèãóðàöèè ñîñòîÿë òîëüêî èç 5 ïåðâûõ ñòðîê.