forked from KolibriOS/kolibrios
HACONFIG 0.3.8: support resizing elements
git-svn-id: svn://kolibrios.org@7469 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
0628c12e58
commit
8ca01fd1e3
@ -2,7 +2,7 @@
|
|||||||
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; Compile with FASM
|
; Compile with FASM
|
||||||
; Version 0.3.7: Oct 14, 2018
|
; Version 0.3.8: Oct 14, 2018
|
||||||
|
|
||||||
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
@ -91,6 +91,8 @@ START:
|
|||||||
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
|
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
|
||||||
|
|
||||||
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
|
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
|
||||||
|
call defaultElems ;óńňŕíŕâëčâŕĺě đŕçěĺđű ýëĺěĺíňîâ â çŕâčńčěîńňč îň íŕńňđîĺę
|
||||||
|
call resizeElems
|
||||||
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
|
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
|
||||||
|
|
||||||
; Îáðàáîòêà öèêëà ñîáûòèé
|
; Îáðàáîòêà öèêëà ñîáûòèé
|
||||||
@ -114,7 +116,6 @@ event_wait:
|
|||||||
invoke edit_box_mouse, editLD
|
invoke edit_box_mouse, editLD
|
||||||
invoke edit_box_mouse, editRU
|
invoke edit_box_mouse, editRU
|
||||||
invoke edit_box_mouse, editRD
|
invoke edit_box_mouse, editRD
|
||||||
;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëÿ êîìáîáîêñà
|
|
||||||
invoke edit_box_mouse, editRadius
|
invoke edit_box_mouse, editRadius
|
||||||
|
|
||||||
jmp event_wait
|
jmp event_wait
|
||||||
@ -226,11 +227,13 @@ noclose:
|
|||||||
mcall 9, pi, -1 ;get window coord
|
mcall 9, pi, -1 ;get window coord
|
||||||
|
|
||||||
mov eax, dword[pi+34]
|
mov eax, dword[pi+34]
|
||||||
add eax, buttonModeX ;+ 5
|
add eax, Otstup ;buttonModeX ;+ 5
|
||||||
mov word[coordModeMenu.x], ax
|
mov word[coordModeMenu.x], ax
|
||||||
|
|
||||||
mov eax, dword[pi+38]
|
mov eax, dword[pi+38]
|
||||||
add eax, buttonModeY + 13 ;17
|
add ax, word[elem.butModeY]
|
||||||
|
add ax, word[elem.butDialHeight]
|
||||||
|
dec ax ;add eax, buttonModeY + 13 ;17
|
||||||
mov word[coordModeMenu.y], ax
|
mov word[coordModeMenu.y], ax
|
||||||
|
|
||||||
stdcall [ksubmenu_draw], [modeMenu], coordModeMenu
|
stdcall [ksubmenu_draw], [modeMenu], coordModeMenu
|
||||||
@ -334,11 +337,6 @@ applyButton:
|
|||||||
add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè
|
add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè
|
||||||
inc ecx ; åù¸ 1 áàéò äëÿ õðàíåíèÿ ðàçìåðà ýëåìåíòîâ
|
inc ecx ; åù¸ 1 áàéò äëÿ õðàíåíèÿ ðàçìåðà ýëåìåíòîâ
|
||||||
|
|
||||||
;cmp dword[keystr.size], 3
|
|
||||||
;jbe @f
|
|
||||||
;mcall -1
|
|
||||||
;@@:
|
|
||||||
|
|
||||||
;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
|
;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
|
||||||
cmp dword[editLU.size], 0
|
cmp dword[editLU.size], 0
|
||||||
jne @f
|
jne @f
|
||||||
@ -374,8 +372,8 @@ applyButton:
|
|||||||
push esi ebx
|
push esi ebx
|
||||||
call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ
|
call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ
|
||||||
|
|
||||||
mov esi, dataBuffer.1 ;editLU.text
|
mov esi, dataBuffer.1
|
||||||
mov ebx, dataBuffer.size1 ;editLU.size
|
mov ebx, dataBuffer.size1
|
||||||
call copyParam
|
call copyParam
|
||||||
call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè
|
call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè
|
||||||
|
|
||||||
@ -676,31 +674,29 @@ setMySize:
|
|||||||
@@:
|
@@:
|
||||||
cmp byte[sizeStyle], 'a'
|
cmp byte[sizeStyle], 'a'
|
||||||
je .auto
|
je .auto
|
||||||
;cmp byte[sizeStyle], 's'
|
cmp byte[sizeStyle], 'x'
|
||||||
;je .system
|
je .x
|
||||||
.system: ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàÿ
|
.system: ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàÿ
|
||||||
; push ebx ecx
|
push ebx ecx edx
|
||||||
;!!!
|
mcall 48, 11 ;ďîëó÷ŕĺě ńčńňĺěíűé đŕçěĺđ řđčôňŕ
|
||||||
; mov eax, 9
|
;ňĺďĺđü eax - âűńîňŕ řđčôňŕ â ďčęńĺë˙ő
|
||||||
; mcall 48, 11 ;ïîëó÷àåì ñèñòåìíûé ðàçìåð øðèôòà
|
mov ebx, 9 ;temp fix - äĺëčě íŕ ňĺęóůčé đŕçěĺđ řđčôňŕ and -1
|
||||||
;eax - âûñîòà øðèôòà â ïèêñåëÿõ
|
mov edx, 0
|
||||||
; mov ecx, eax
|
div ebx
|
||||||
; push eax
|
pop edx ecx ebx
|
||||||
; mcall 48, 12, ecx ;ïðèìåíÿåì ðàçìåð øðèôòà
|
|
||||||
; pop eax
|
cmp eax, 0
|
||||||
; pop ecx ebx
|
je .end
|
||||||
;temp fix - äåëèì íà òåêóùèé ðàçìåð øðèôòà and -1
|
cmp eax, 7
|
||||||
; push ebx edx
|
jae .size7
|
||||||
; mov ebx, 9
|
dec eax
|
||||||
;div ebx
|
;mov eax, 0 ;test
|
||||||
; pop edx ebx
|
jmp .end
|
||||||
;cmp eax, 0
|
.x:
|
||||||
;je .end
|
mov byte[sizeStyle], 'x'
|
||||||
;dec eax
|
mov eax, 0
|
||||||
mov eax, 0 ;xor eax, eax ;test temp
|
|
||||||
jmp .end
|
jmp .end
|
||||||
.auto: ;a - âûñòàâëÿåì â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà
|
.auto: ;a - âûñòàâëÿåì â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà
|
||||||
;!!!
|
|
||||||
mcall 14
|
mcall 14
|
||||||
push ebx
|
push ebx
|
||||||
xor ebx, ebx
|
xor ebx, ebx
|
||||||
@ -711,16 +707,24 @@ setMySize:
|
|||||||
mov ax, bx
|
mov ax, bx
|
||||||
.a:
|
.a:
|
||||||
pop ebx
|
pop ebx
|
||||||
cmp ax, 1919 ;ðàçìåðû ïîëó÷åííûå âûøå îò 0 è íà 1 ìåíüøå
|
cmp ax, 1300 ;1919 ;đŕçěĺđű ďîëó÷ĺííűĺ âűřĺ îň 0 č íŕ 1 ěĺíüřĺ
|
||||||
jb .size0
|
jb .size0
|
||||||
|
cmp ax, 1899 ;919
|
||||||
|
jb .x
|
||||||
cmp ax, 2047
|
cmp ax, 2047
|
||||||
jb .size1
|
jb .size1
|
||||||
cmp ax, 4095
|
cmp ax, 4095
|
||||||
jb .size2
|
jb .size2
|
||||||
cmp ax, 8191
|
cmp ax, 8191
|
||||||
jb .size3
|
jb .size3
|
||||||
|
cmp ax, 16383
|
||||||
|
jb .size4
|
||||||
|
cmp ax, 32767
|
||||||
|
jb .size5
|
||||||
|
cmp ax, 65535
|
||||||
|
jb .size6
|
||||||
|
|
||||||
jmp .size4
|
jmp .size7
|
||||||
|
|
||||||
.size0:
|
.size0:
|
||||||
mov eax, 0
|
mov eax, 0
|
||||||
@ -947,6 +951,8 @@ readOptSize:
|
|||||||
je .setValue
|
je .setValue
|
||||||
cmp byte[eax], 's'
|
cmp byte[eax], 's'
|
||||||
je .setValue
|
je .setValue
|
||||||
|
cmp byte[eax], 'x'
|
||||||
|
je .setValue
|
||||||
cmp byte[eax], '0'
|
cmp byte[eax], '0'
|
||||||
je .setValue
|
je .setValue
|
||||||
cmp byte[eax], '1'
|
cmp byte[eax], '1'
|
||||||
@ -1078,12 +1084,100 @@ copyKill:
|
|||||||
pop edi esi ecx ebx eax
|
pop edi esi ecx ebx eax
|
||||||
ret
|
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
|
WindowsWidth = 450
|
||||||
WindowsHeight = 195 + 35 - 5
|
WindowsHeight = 195 + 35 - 5
|
||||||
coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ
|
coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ
|
||||||
.y dw 0
|
.y dw 0
|
||||||
.x 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:
|
draw_window:
|
||||||
;óäàëÿåì êíîïêó, åñëè åñòü
|
;óäàëÿåì êíîïêó, åñëè åñòü
|
||||||
mov edx, 0x80000002
|
mov edx, 0x80000002
|
||||||
@ -1103,6 +1197,24 @@ draw_window:
|
|||||||
mov ebx, 1 ; 1, start of draw
|
mov ebx, 1 ; 1, start of draw
|
||||||
mcall
|
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 ;ïîëó÷èì ðàçìåðû ýêðàíà
|
mcall 14 ;ïîëó÷èì ðàçìåðû ýêðàíà
|
||||||
mov dword[coord], eax ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû
|
mov dword[coord], eax ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû
|
||||||
@ -1110,19 +1222,24 @@ draw_window:
|
|||||||
shr word[coord.y], 1
|
shr word[coord.y], 1
|
||||||
|
|
||||||
;âû÷èñëÿåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà
|
;âû÷èñëÿåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà
|
||||||
sub word[coord.x], WindowsWidth/2
|
mov bx, word[elem.winWidth] ;îňíčěŕĺě îň ńĺđĺäčíű ýęđŕíŕ ďîëîâčíó đŕçěĺđŕ îęíŕ
|
||||||
sub word[coord.y], WindowsHeight/2
|
shr bx, 1
|
||||||
|
sub word[coord.x], bx
|
||||||
|
|
||||||
|
mov bx, word[elem.winHeight]
|
||||||
|
shr bx, 1
|
||||||
|
sub word[coord.y], bx
|
||||||
|
|
||||||
mov eax, 0 ; function 0 : define and draw window
|
mov eax, 0 ; function 0 : define and draw window
|
||||||
mov ebx, 0 ; [x start] *65536 + [x size]
|
mov ebx, 0 ; [x start] *65536 + [x size]
|
||||||
mov bx, word[coord.x]
|
mov bx, word[coord.x]
|
||||||
shl ebx, 16
|
shl ebx, 16
|
||||||
mov bx, WindowsWidth
|
mov bx, word[elem.winWidth]
|
||||||
|
|
||||||
mov ecx, 0
|
mov ecx, 0
|
||||||
mov cx, word[coord.y] ; [y start] *65536 + [y size]
|
mov cx, word[coord.y] ; [y start] *65536 + [y size]
|
||||||
shl ecx, 16
|
shl ecx, 16
|
||||||
mov cx, WindowsHeight
|
mov cx, word[elem.winHeight]
|
||||||
|
|
||||||
mov edx, 0x14ffffff ; color of work area RRGGBB
|
mov edx, 0x14ffffff ; color of work area RRGGBB
|
||||||
; 0x02000000 = window type 4 (fixed size, skinned window)
|
; 0x02000000 = window type 4 (fixed size, skinned window)
|
||||||
@ -1131,21 +1248,110 @@ draw_window:
|
|||||||
mov edi, title
|
mov edi, title
|
||||||
mcall
|
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, editLU ;ðèñîâàíèå edit box'îâ
|
||||||
invoke edit_box_draw, editLD
|
invoke edit_box_draw, editLD
|
||||||
invoke edit_box_draw, editRU
|
invoke edit_box_draw, editRU
|
||||||
invoke edit_box_draw, editRD
|
invoke edit_box_draw, editRD
|
||||||
|
|
||||||
;ðèñóåì êíîïêó
|
;ðèñóåì êíîïêó
|
||||||
buttonAppleY = WindowsHeight-35 ;160
|
mov bx, word[elem.winWidth] ;ęîîđäčíŕňŕ X ęíîďęč
|
||||||
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè
|
sub bx, word[elem.butAppleWidth]
|
||||||
mov ecx, buttonAppleY*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè
|
sub bx, Otstup
|
||||||
mov edx, 0x00000002 ;2 ;íîìåð êíîïêè
|
shl ebx, 16
|
||||||
|
add bx, word[elem.butAppleWidth] ;řčđčíŕ ęíîďęč
|
||||||
|
|
||||||
|
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 ;öâåò êíîïêè
|
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
||||||
mcall 8
|
mcall 8
|
||||||
;ðèñóåì òåêñò êíîïêè
|
;ðèñóåì òåêñò êíîïêè
|
||||||
mov ebx, (WindowsWidth-80-Otstup+25-buttonTextXoffset) * 65536 + (buttonAppleY+6) ;êîîðäèíàòû òåêñòà (x, y)
|
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 ;áåëûé öâåò òåêñòà
|
mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà
|
||||||
|
call setNewSizeForText
|
||||||
mov edx, buttonText
|
mov edx, buttonText
|
||||||
mov esi, buttonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
|
mov esi, buttonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
|
||||||
mcall 4
|
mcall 4
|
||||||
@ -1154,79 +1360,241 @@ draw_window:
|
|||||||
;íîìåðà 4,5,6 è 7
|
;íîìåðà 4,5,6 è 7
|
||||||
buttonH = 14
|
buttonH = 14
|
||||||
buttonW = 30
|
buttonW = 30
|
||||||
|
|
||||||
|
|
||||||
;ëåâûé âåðõíèé óãîë
|
;ëåâûé âåðõíèé óãîë
|
||||||
mov ebx, Otstup*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
|
mov ebx, Otstup ;ęîîđäčíŕňŕ X
|
||||||
mov ecx, 85*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
|
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 edx, 0x00000004 ;íîìåð êíîïêè
|
||||||
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
||||||
mcall 8
|
mcall 8
|
||||||
|
|
||||||
;ëåâûé íèæíèé óãîë
|
;ëåâûé íèæíèé óãîë
|
||||||
mov ebx, Otstup*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
|
mov ebx, Otstup ;ęîîđäčíŕňŕ X
|
||||||
mov ecx, 120*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
|
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 edx, 0x00000005 ;íîìåð êíîïêè
|
||||||
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
||||||
mcall 8
|
mcall 8
|
||||||
|
|
||||||
;ïðàâûé âåðõíèé óãîë
|
;ïðàâûé âåðõíèé óãîë
|
||||||
mov ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
|
;mov ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;ęîîđäčíŕňŕ X, řčđčíŕ ęíîďęč
|
||||||
mov ecx, 85*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
|
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 edx, 0x00000006 ;íîìåð êíîïêè
|
||||||
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
||||||
mcall 8
|
mcall 8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;ïðàâûé íèæíèé óãîë
|
;ïðàâûé íèæíèé óãîë
|
||||||
mov ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
|
mov bx, word[elem.winWidth] ;ęîîđäčíŕňŕ X
|
||||||
mov ecx, 120*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
|
sub bx, Otstup
|
||||||
|
sub bx, word[elem.butDialWidth]
|
||||||
|
shl ebx, 16
|
||||||
|
add bx, word[elem.butDialWidth] ;řčđčíŕ ęíîďęč
|
||||||
|
|
||||||
|
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 edx, 0x00000007 ;íîìåð êíîïêè
|
||||||
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
mov esi, 0x00AABBCC ;öâåò êíîïêè
|
||||||
mcall 8
|
mcall 8
|
||||||
|
|
||||||
;ðèñóåì òåêñòû äëÿ ýòèõ 4 êíîïîê
|
;ðèñóåì òåêñòû äëÿ ýòèõ 4 êíîïîê
|
||||||
mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà
|
mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà
|
||||||
|
call setNewSizeForText
|
||||||
mov edx, commonButtonText ;ñòðîêà òåêñòà
|
mov edx, commonButtonText ;ñòðîêà òåêñòà
|
||||||
mov esi, commonButtonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
|
mov esi, commonButtonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
|
||||||
;êîîðäèíàòû òåêñòà (x, y)
|
;êîîðäèíàòû òåêñòà (x, y)
|
||||||
deltaCommonTextX = 7
|
deltaCommonTextX = 7
|
||||||
deltaCommonTextY = 2
|
deltaCommonTextY = 2
|
||||||
mov ebx, (Otstup+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
|
;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
|
||||||
|
|
||||||
mcall 4
|
mcall 4
|
||||||
mov ebx, (Otstup+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
|
|
||||||
|
;
|
||||||
|
;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
|
mcall 4
|
||||||
mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
|
|
||||||
|
|
||||||
|
;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
|
mcall 4
|
||||||
mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
|
|
||||||
|
;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
|
mcall 4
|
||||||
|
|
||||||
;delete mode button, if it exist
|
;delete mode button, if it exist
|
||||||
mov edx, 0x80000008
|
mov edx, 0x80000008
|
||||||
mcall 8
|
mcall 8
|
||||||
;draw button Mode
|
;draw button Mode
|
||||||
buttonModeX = 30 ;433
|
buttonModeX = 30
|
||||||
buttonModeY = 160 ;50
|
buttonModeY = 160
|
||||||
buttonModeWidth = 221
|
buttonModeWidth = 221
|
||||||
buttonModeHeight = 14 ;20
|
buttonModeHeight = 14
|
||||||
buttonModeTextYoffset = 3;6
|
buttonModeTextYoffset = 3
|
||||||
buttonModeTextXoffset = 5
|
buttonModeTextXoffset = 5
|
||||||
mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width
|
;mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width
|
||||||
mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
|
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 edx, 0x00000008 ;button id
|
||||||
mov esi, 0x00FFFFFF ;color button
|
mov esi, 0x00FFFFFF ;color button
|
||||||
mcall 8
|
mcall 8
|
||||||
mov ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2) ;X + Width
|
|
||||||
mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2 ;Y + Height
|
;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
|
mov edx, 0xAABBCC
|
||||||
mcall 13
|
mcall 13
|
||||||
;draw text for button Mode
|
;draw text for button Mode
|
||||||
mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
|
mov ebx, (Otstup+buttonModeTextXoffset) * 65536 ;(x, y)
|
||||||
|
mov bx, word[elem.butModeY]
|
||||||
|
add bx, buttonModeTextYoffset
|
||||||
mov ecx, 0x000000
|
mov ecx, 0x000000
|
||||||
|
call setNewSizeForText
|
||||||
|
and ecx, 0x7FFFFFFF
|
||||||
call setTextModeMenu
|
call setTextModeMenu
|
||||||
mov esi, valueModeMenuSize
|
mov esi, valueModeMenuSize
|
||||||
|
cmp byte[sizeStyle], 'x'
|
||||||
|
jne @f
|
||||||
|
mov esi, 25 ;valueModeMenuSize -3 ;đĺćčě ćĺńňŕ ďî ęëŕâčřĺ ŕę
|
||||||
|
@@:
|
||||||
mcall 4
|
mcall 4
|
||||||
mov ebx, (buttonModeX+buttonModeWidth-12) * 65536 + (buttonModeY+buttonModeTextYoffset)
|
|
||||||
mov ecx, 0x80FFFFFF
|
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 edx, symbolDownArrow
|
mov edx, symbolDownArrow
|
||||||
|
mov esi, 1
|
||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
;êíîïêà âûáîðà ãîðÿ÷åé êëàâèøè
|
;êíîïêà âûáîðà ãîðÿ÷åé êëàâèøè
|
||||||
buttonHotKeyX = 280-10
|
buttonHotKeyX = 270
|
||||||
buttonHotKeyWidth = 90
|
buttonHotKeyWidth = 90
|
||||||
mov edx, 0x80000009 ;óäàëÿåì
|
mov edx, 0x80000009 ;óäàëÿåì
|
||||||
mcall 8
|
mcall 8
|
||||||
@ -1234,22 +1602,68 @@ draw_window:
|
|||||||
jbe @f
|
jbe @f
|
||||||
;ðèñóåì íîâóþ
|
;ðèñóåì íîâóþ
|
||||||
push eax ebx ecx edx esi
|
push eax ebx ecx edx esi
|
||||||
mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth ;X + Width
|
; mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth ;X + Width
|
||||||
mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
|
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 edx, 0x00000009 ;button id
|
mov edx, 0x00000009 ;button id
|
||||||
mov esi, 0x00FFFFFF ;color button
|
mov esi, 0x00FFFFFF ;color button
|
||||||
mcall 8
|
mcall 8
|
||||||
pop esi edx ecx ebx eax
|
pop esi edx ecx ebx eax
|
||||||
;òåêñò ïîäñêàçêè äëÿ ãîðÿ÷åé êëàâèøè
|
;òåêñò ïîäñêàçêè äëÿ ãîðÿ÷åé êëàâèøè
|
||||||
mov ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
|
;mov ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
|
||||||
mov ecx, 0x80224466
|
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
|
||||||
|
|
||||||
call setTextForHotKey
|
call setTextForHotKey
|
||||||
mov esi, valueModeMenuSize
|
mov esi, valueModeMenuSize
|
||||||
mcall 4
|
mcall 4
|
||||||
;çàãîëîâîê
|
;çàãîëîâîê
|
||||||
push eax ebx ecx edx edi esi
|
push eax ebx ecx edx edi esi
|
||||||
mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
|
;mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
|
||||||
mov ecx, 0x80224466
|
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 edx, hkCaption
|
mov edx, hkCaption
|
||||||
mov esi, 3
|
mov esi, 3
|
||||||
mcall 4
|
mcall 4
|
||||||
@ -1261,26 +1675,51 @@ draw_window:
|
|||||||
jne @f
|
jne @f
|
||||||
;çàãîëîâîê
|
;çàãîëîâîê
|
||||||
push eax ebx ecx edx edi esi
|
push eax ebx ecx edx edi esi
|
||||||
mov ebx, (buttonHotKeyX + buttonHotKeyWidth + 20) * 65536 + (buttonModeY-11)
|
xor ebx, ebx
|
||||||
mov ecx, 0x80224466
|
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 edx, radiusCaption
|
mov edx, radiusCaption
|
||||||
mov esi, 3
|
mov esi, 3
|
||||||
mcall 4
|
mcall 4
|
||||||
pop esi edi edx ecx ebx eax
|
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
|
invoke edit_box_draw, editRadius
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
call draw_super_text
|
call draw_super_text
|
||||||
|
|
||||||
LineLength = 62
|
LineLength = 62
|
||||||
mov ebx, 40 * 65536 + 36 ; draw info text with function 4 (x, y)
|
mov ebx, 40 * 65536 + BaseY ; draw info text with function 4 (x, y)
|
||||||
|
|
||||||
;xor ecx, ecx
|
|
||||||
;mov cl, 1 ;byte[mysize]
|
|
||||||
;shl ecx, 24
|
|
||||||
;add ecx, 0x224466
|
|
||||||
;or ecx, 0x00224466 ;80224466
|
|
||||||
mov ecx, 0x224466
|
mov ecx, 0x224466
|
||||||
|
call setNewSizeForText
|
||||||
|
and ecx, 0x7FFFFFFF
|
||||||
|
|
||||||
mov edx, text
|
mov edx, text
|
||||||
mov esi, LineLength
|
mov esi, LineLength
|
||||||
@ -1288,7 +1727,9 @@ draw_window:
|
|||||||
|
|
||||||
.newline: ; text from the DATA AREA
|
.newline: ; text from the DATA AREA
|
||||||
mcall
|
mcall
|
||||||
add ebx, 12
|
add bx, word[elem.textHeight] ;9*n+3 ;12
|
||||||
|
add bx, word[elem.textDelta]
|
||||||
|
|
||||||
add edx, LineLength
|
add edx, LineLength
|
||||||
cmp byte[edx], 0
|
cmp byte[edx], 0
|
||||||
jne .newline
|
jne .newline
|
||||||
@ -1299,6 +1740,24 @@ draw_window:
|
|||||||
|
|
||||||
ret
|
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
|
hkSymbol: db 0, 0
|
||||||
|
|
||||||
setTextForHotKey:
|
setTextForHotKey:
|
||||||
@ -1462,8 +1921,8 @@ commonButtonTextSize = 3
|
|||||||
if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé
|
if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé
|
||||||
|
|
||||||
text db "Š®ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â § áâனªã ªâ¨¢ëå 㣫®¢. "
|
text db "Š®ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â § áâனªã ªâ¨¢ëå 㣫®¢. "
|
||||||
db "<22> áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. "
|
db "<22> áâன⥠Ż ŕ ŹĽâŕë ŻŽ¤ áĽĄď ¨Ť¨ ŽâŞŤîç¨âĽ íâă ŽŻć¨î. ", 0
|
||||||
db " ", 0
|
; db " ", 0
|
||||||
hed:
|
hed:
|
||||||
title db "Š®ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
|
title db "Š®ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
|
||||||
buttonText db "<22>ਬ¥¨âì", 0
|
buttonText db "<22>ਬ¥¨âì", 0
|
||||||
@ -1494,14 +1953,13 @@ head_f_i:
|
|||||||
err_message_import1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
|
err_message_import1 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
|
||||||
|
|
||||||
hkCaption: db 'Š« ¢¨è :',0
|
hkCaption: db 'Š« ¢¨è :',0
|
||||||
;hkHint: db '<27> ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0
|
|
||||||
radiusCaption: db '<27> ¤¨ãá:',0
|
radiusCaption: db '<27> ¤¨ãá:',0
|
||||||
|
|
||||||
else ;èíà÷å àíãëèéñêèé òåêñò
|
else ;èíà÷å àíãëèéñêèé òåêñò
|
||||||
|
|
||||||
text db "This is a Hot Angles Configurator. "
|
text db "This is a Hot Angles Configurator. "
|
||||||
db "Set the parameters bellow for yourself or disable this option."
|
db "Set the parameters bellow for yourself or disable this option.", 0
|
||||||
db " ", 0
|
; db " ", 0
|
||||||
hed:
|
hed:
|
||||||
title db "Hot Angles Configurator", 0
|
title db "Hot Angles Configurator", 0
|
||||||
buttonText db "Apply", 0
|
buttonText db "Apply", 0
|
||||||
@ -1532,7 +1990,6 @@ head_f_i:
|
|||||||
err_message_import1 db 'Error importing library ',39,'kmenu',39,0
|
err_message_import1 db 'Error importing library ',39,'kmenu',39,0
|
||||||
|
|
||||||
hkCaption: db 'Key:',0
|
hkCaption: db 'Key:',0
|
||||||
;hkHint: db 'press any key',0
|
|
||||||
radiusCaption: db 'Radius:',0
|
radiusCaption: db 'Radius:',0
|
||||||
|
|
||||||
end if
|
end if
|
||||||
@ -1547,45 +2004,78 @@ hkSize: rd 1 ;
|
|||||||
draw_super_text:
|
draw_super_text:
|
||||||
push eax ebx ecx edx edi esi
|
push eax ebx ecx edx edi esi
|
||||||
|
|
||||||
mov ecx, 0
|
; mov ecx, 0
|
||||||
mov ch, byte[mysize]
|
; mov ch, byte[mysize]
|
||||||
shl ecx, 16
|
; shl ecx, 16
|
||||||
add ecx, 0x224466
|
; add ecx, 0x224466
|
||||||
|
mov ecx, 0x224466
|
||||||
|
call setNewSizeForText
|
||||||
|
;and ecx, 0x7FFFFFFF
|
||||||
|
or ecx, 0x80000000
|
||||||
|
|
||||||
|
;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
|
||||||
|
|
||||||
mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y)
|
|
||||||
;mov ecx, 0x224466
|
;mov ecx, 0x224466
|
||||||
mov eax, superText.lu
|
mov eax, superText.lu
|
||||||
mov edx, eax
|
mov edx, eax
|
||||||
mov esi, superTextSize
|
mov esi, superTextSize
|
||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
mov ebx, Otstup * 65536 + 109
|
;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 edx, superText.ld
|
||||||
mov esi, superTextSize
|
mov esi, superTextSize
|
||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
mov ebx, 240 * 65536 + 74
|
;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 edx, superText.ru
|
||||||
mov esi, superTextSize
|
mov esi, superTextSize
|
||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
mov ebx, 240 * 65536 + 109
|
;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 edx, superText.rd
|
||||||
mov esi, superTextSize
|
mov esi, superTextSize
|
||||||
mcall 4
|
mcall 4
|
||||||
|
|
||||||
mov ebx, Otstup * 65536 + (buttonModeY-11)
|
;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]
|
||||||
|
|
||||||
or ecx, 0x80000000
|
or ecx, 0x80000000
|
||||||
mov edx, ModeMenu
|
mov edx, ModeMenu
|
||||||
mov esi, 3
|
mov esi, 3
|
||||||
mcall 4
|
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
|
pop esi edi edx ecx ebx eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -1886,8 +2376,8 @@ dataBufferEnd:
|
|||||||
|
|
||||||
|
|
||||||
I_END:
|
I_END:
|
||||||
rb 4096
|
rb 256 ;1024 ;4096
|
||||||
align 16
|
align 4 ;16
|
||||||
STACKTOP:
|
STACKTOP:
|
||||||
|
|
||||||
MEM:
|
MEM:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Hot Angles
|
Hot Angles
|
||||||
|
|
||||||
Version 0.3.7: Oct 14, 2018
|
Version 0.3.8: Oct 16, 2018
|
||||||
RU
|
RU
|
||||||
|
|
||||||
Комплект утилит (аналог Hot Corners в других ОС) для расширения возможностей рабочего стола пользователя. Название выбрано путём голосования. В комплект входят две утилиты:
|
Комплект утилит (аналог Hot Corners в других ОС) для расширения возможностей рабочего стола пользователя. Название выбрано путём голосования. В комплект входят две утилиты:
|
||||||
@ -22,17 +22,19 @@ HACONFIG -
|
|||||||
8) радиус срабатывания жеста от начальной точки в момент нажатия клавиши (для mode 3);
|
8) радиус срабатывания жеста от начальной точки в момент нажатия клавиши (для mode 3);
|
||||||
9) размер элементов окна конфигуратора:
|
9) размер элементов окна конфигуратора:
|
||||||
a - auto, автоматически в зависимости от разрешения экрана;
|
a - auto, автоматически в зависимости от разрешения экрана;
|
||||||
|
x - в зависимости от sc.work_text (наиболее распространнённый размер текста в программах Колибри 2018 года);
|
||||||
значение от 1 до 7 - нужный размер на основе размера текста;
|
значение от 1 до 7 - нужный размер на основе размера текста;
|
||||||
s - в зависимости от системных настроек (опция по умолчанию).
|
s - в зависимости от системных настроек (опция по умолчанию).
|
||||||
Если необходимо настроить только часть углов, а остальные оставить без действия, то в конфигураторе или на нужной строке конфигурационного файла укажите знак минус (символ '-').
|
Если необходимо настроить только часть углов, а остальные оставить без действия, то в конфигураторе или на нужной строке конфигурационного файла укажите знак минус (символ '-').
|
||||||
Примечание: До версии 0.3.6 включительно файл конфигурации состоял только из 5 первых строк.
|
Примечание: До версии 0.3.6 включительно файл конфигурации состоял только из 5 первых строк.
|
||||||
|
|
||||||
Обе утилиты содержат защиту от повторного запуска.
|
Обе утилиты содержат защиту от повторного запуска.
|
||||||
Утилита @HOTANGLES добавлена в автозагрузку ОС.
|
Утилита @HOTANGLES добавлена в автозагрузку ОС (но отключена в собственном файле конфигурации на последних версиях сборок Колибри). Строчка из файла автозапуска (AUTORUN.DAT):
|
||||||
|
/SYS/@HOTANGLES "" 0 # Start Hot Angles
|
||||||
@HOTANGLES не запустится, если конфигурационный файл отсутствует или был переименован.
|
@HOTANGLES не запустится, если конфигурационный файл отсутствует или был переименован.
|
||||||
HACONFIG при отсутствии конфигурационного файла выставляет все поля по умолчанию, но не создаёт файл конфигурации самостоятельно (для этого необходимо нажать кнопку "Применить", тогда отсутствующий файл конфигурации будет создан, а существующий перезаписан).
|
HACONFIG при отсутствии конфигурационного файла выставляет все поля по умолчанию, но не создаёт файл конфигурации самостоятельно (для этого необходимо нажать кнопку "Применить", тогда отсутствующий файл конфигурации будет создан, а существующий перезаписан).
|
||||||
При первом старте утилиты все углы рабочей области настроены на запуск конфигуратора, где вы можете настроить утилиту под себя или отключить её.
|
При первом старте утилиты все углы рабочей области настроены на запуск конфигуратора, где вы можете настроить утилиту под себя или отключить её.
|
||||||
Hot Angles начиная с revision #7392 включен в состав дистрибутива и добавлен в автозапуск при старте системы. Поддержка русского языка добавлена в revision #7395. Начиная с версии 0.3.5 добавлен второй режим работы утилиты и возможность выбора программ через Open Dialog.
|
Hot Angles начиная с revision #7392 включен в состав дистрибутива и добавлен в автозапуск при старте системы. Поддержка русского языка добавлена в revision #7395. Начиная с версии 0.3.5 добавлен второй режим работы утилиты и возможность выбора программ через Open Dialog. В версии 0.3.8 заработала опция задания размера текста, но пострадал код и качество интерфейса.
|
||||||
|
|
||||||
В директории extra, рядом с исходным кодом утилит, расположены дополнительные функциональные блоки. На текущий момент директория содержит: 1 утилиту.
|
В директории extra, рядом с исходным кодом утилит, расположены дополнительные функциональные блоки. На текущий момент директория содержит: 1 утилиту.
|
||||||
MIN - минимизировать/свернуть все окна (кроме системных). Вы можете назначить запуск MIN на любой активный угол вашего рабочего стола, чтобы одним движением курсора в этот угол свернуть все окна на экране.
|
MIN - минимизировать/свернуть все окна (кроме системных). Вы можете назначить запуск MIN на любой активный угол вашего рабочего стола, чтобы одним движением курсора в этот угол свернуть все окна на экране.
|
||||||
@ -73,7 +75,7 @@ http://websvn.kolibrios.org/dl.php?repname=Kolibri+OS&path=%2Fprograms%2Fother%2
|
|||||||
|
|
||||||
Известные недоработки, которые будут исправлены в следующих версиях:
|
Известные недоработки, которые будут исправлены в следующих версиях:
|
||||||
[+] отсутствие русского языка;
|
[+] отсутствие русского языка;
|
||||||
[-] используется маленький шрифт текста;
|
[+] используется маленький шрифт текста;
|
||||||
[+] нет возможности запуска приложения с параметрами;
|
[+] нет возможности запуска приложения с параметрами;
|
||||||
[+] знак минус не влияет на попытку запуска в конкретном углу;
|
[+] знак минус не влияет на попытку запуска в конкретном углу;
|
||||||
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
|
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
|
||||||
|
Loading…
Reference in New Issue
Block a user