HACONFIG 0.3.8: support resizing elements

git-svn-id: svn://kolibrios.org@7469 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
theonlymirage 2018-10-16 03:28:51 +00:00
parent 0628c12e58
commit 8ca01fd1e3
2 changed files with 619 additions and 127 deletions

View File

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

View File

@ -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
Известные недоработки, которые будут исправлены в следующих версиях: Известные недоработки, которые будут исправлены в следующих версиях:
[+] отсутствие русского языка; [+] отсутствие русского языка;
[-] используется маленький шрифт текста; [+] используется маленький шрифт текста;
[+] нет возможности запуска приложения с параметрами; [+] нет возможности запуска приложения с параметрами;
[+] знак минус не влияет на попытку запуска в конкретном углу; [+] знак минус не влияет на попытку запуска в конкретном углу;
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются; [+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;