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: |