Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7469 → Rev 7468

/programs/other/ha/HACONFIG.ASM
2,7 → 2,7
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Compile with FASM
; Version 0.3.8: Oct 14, 2018
; Version 0.3.7: Oct 14, 2018
 
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
; All rights reserved.
91,8 → 91,6
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
 
call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
call defaultElems ;óñòàíàâëèâàåì ðàçìåðû ýëåìåíòîâ â çàâèñèìîñòè îò íàñòðîåê
call resizeElems
call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
 
; Îáðàáîòêà öèêëà ñîáûòèé
116,6 → 114,7
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
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
337,6 → 334,11
add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè
inc ecx ; åù¸ 1 áàéò äëÿ õðàíåíèÿ ðàçìåðà ýëåìåíòîâ
 
;cmp dword[keystr.size], 3
;jbe @f
;mcall -1
;@@:
 
;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
cmp dword[editLU.size], 0
jne @f
372,8 → 374,8
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 ;äîáàâëÿåì ïåðåíîñ ñòðîêè
 
674,29 → 676,31
@@:
cmp byte[sizeStyle], 'a'
je .auto
cmp byte[sizeStyle], 'x'
je .x
;cmp byte[sizeStyle], 's'
;je .system
.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
; 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 - âûñòàâëÿåì â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà
;!!!
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
951,8 → 947,6
je .setValue
cmp byte[eax], 's'
je .setValue
cmp byte[eax], 'x'
je .setValue
cmp byte[eax], '0'
je .setValue
cmp byte[eax], '1'
1084,27 → 1078,6
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: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ
1111,73 → 1084,6
.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
1197,24 → 1103,6
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 ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû
1222,24 → 1110,19
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,75 → 1131,6
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
1323,35 → 1137,15
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] ;øèðèíà êíîïêè
 
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 ;íîìåð êíîïêè
buttonAppleY = WindowsHeight-35 ;160
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè
mov ecx, buttonAppleY*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè
mov edx, 0x00000002 ;2 ;íîìåð êíîïêè
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 ebx, (WindowsWidth-80-Otstup+25-buttonTextXoffset) * 65536 + (buttonAppleY+6) ;êîîðäèíàòû òåêñòà (x, y)
mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà
call setNewSizeForText
mov edx, buttonText
mov esi, buttonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ
mcall 4
1360,94 → 1154,27
;íîìåðà 4,5,6 è 7
buttonH = 14
buttonW = 30
 
 
;ëåâûé âåðõíèé óãîë
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 ebx, Otstup*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
mov ecx, 85*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
mov edx, 0x00000004 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
;ëåâûé íèæíèé óãîë
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 ebx, Otstup*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
mov ecx, 120*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
mov edx, 0x00000005 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
;ïðàâûé âåðõíèé óãîë
;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 ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
mov ecx, 85*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
mov edx, 0x00000006 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
 
 
 
 
;ïðàâûé íèæíèé óãîë
mov bx, word[elem.winWidth] ;êîîðäèíàòà X
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 ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
mov ecx, 120*65536 + buttonH ;êîîðäèíàòà Y, âûñîòà êíîïêè
mov edx, 0x00000007 ;íîìåð êíîïêè
mov esi, 0x00AABBCC ;öâåò êíîïêè
mcall 8
1454,74 → 1181,18
 
;ðèñóåì òåêñòû äëÿ ýòèõ 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
 
mov ebx, (Otstup+deltaCommonTextX) * 65536 + (85 + 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
 
mov ebx, (Otstup+deltaCommonTextX) * 65536 + (120 + 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
 
mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (85 + 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
 
mov ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
mcall 4
 
;delete mode button, if it exist
1528,73 → 1199,34
mov edx, 0x80000008
mcall 8
;draw button Mode
buttonModeX = 30
buttonModeY = 160
buttonModeX = 30 ;433
buttonModeY = 160 ;50
buttonModeWidth = 221
buttonModeHeight = 14
buttonModeTextYoffset = 3
buttonModeHeight = 14 ;20
buttonModeTextYoffset = 3;6
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 ebx, buttonModeX*65536 + buttonModeWidth ;X + Width
mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
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 ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2) ;X + Width
mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2 ;Y + Height
mov edx, 0xAABBCC
mcall 13
;draw text for button Mode
mov ebx, (Otstup+buttonModeTextXoffset) * 65536 ;(x, y)
mov bx, word[elem.butModeY]
add bx, buttonModeTextYoffset
mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y)
mov ecx, 0x000000
call setNewSizeForText
and ecx, 0x7FFFFFFF
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)
mov ecx, 0x80FFFFFF
mov edx, symbolDownArrow
mov esi, 1
mcall 4
 
;êíîïêà âûáîðà ãîðÿ÷åé êëàâèøè
buttonHotKeyX = 270
buttonHotKeyX = 280-10
buttonHotKeyWidth = 90
mov edx, 0x80000009 ;óäàëÿåì
mcall 8
1602,68 → 1234,22
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, 0x80224466
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
1675,40 → 1261,12
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 → 1273,14
call draw_super_text
 
LineLength = 62
mov ebx, 40 * 65536 + BaseY ; draw info text with function 4 (x, y)
mov ebx, 40 * 65536 + 36 ; 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
call setNewSizeForText
and ecx, 0x7FFFFFFF
 
mov edx, text
mov esi, LineLength
1727,9 → 1288,7
 
.newline: ; text from the DATA AREA
mcall
add bx, word[elem.textHeight] ;9*n+3 ;12
add bx, word[elem.textDelta]
 
add ebx, 12
add edx, LineLength
cmp byte[edx], 0
jne .newline
1740,24 → 1299,6
 
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:
1921,8 → 1462,8
if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé
 
text db "Š®­ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â §  ­ áâனªã  ªâ¨¢­ëå 㣫®¢. "
db " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. ", 0
; db " ", 0
db " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. "
db " ", 0
hed:
title db "Š®­ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
buttonText db "à¨¬¥­¨âì", 0
1953,13 → 1494,14
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
1990,6 → 1532,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,24 → 1547,12
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
 
mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y)
;mov ecx, 0x224466
mov eax, superText.lu
mov edx, eax
2028,54 → 1559,33
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 ebx, Otstup * 65536 + 109
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 ebx, 240 * 65536 + 74
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 ebx, 240 * 65536 + 109
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
 
2376,8 → 1886,8
 
 
I_END:
rb 256 ;1024 ;4096
align 4 ;16
rb 4096
align 16
STACKTOP:
 
MEM:
/programs/other/ha/ReadMe.txt
1,6 → 1,6
Hot Angles
 
Version 0.3.8: Oct 16, 2018
Version 0.3.7: Oct 14, 2018
RU
 
Êîìïëåêò óòèëèò (àíàëîã Hot Corners â äðóãèõ ÎÑ) äëÿ ðàñøèðåíèÿ âîçìîæíîñòåé ðàáî÷åãî ñòîëà ïîëüçîâàòåëÿ. Íàçâàíèå âûáðàíî ïóò¸ì ãîëîñîâàíèÿ.  êîìïëåêò âõîäÿò äâå óòèëèòû:
22,7 → 22,6
8) ðàäèóñ ñðàáàòûâàíèÿ æåñòà îò íà÷àëüíîé òî÷êè â ìîìåíò íàæàòèÿ êëàâèøè (äëÿ mode 3);
9) ðàçìåð ýëåìåíòîâ îêíà êîíôèãóðàòîðà:
a - auto, àâòîìàòè÷åñêè â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà;
x - â çàâèñèìîñòè îò sc.work_text (íàèáîëåå ðàñïðîñòðàíí¸ííûé ðàçìåð òåêñòà â ïðîãðàììàõ Êîëèáðè 2018 ãîäà);
çíà÷åíèå îò 1 äî 7 - íóæíûé ðàçìåð íà îñíîâå ðàçìåðà òåêñòà;
s - â çàâèñèìîñòè îò ñèñòåìíûõ íàñòðîåê (îïöèÿ ïî óìîë÷àíèþ).
Åñëè íåîáõîäèìî íàñòðîèòü òîëüêî ÷àñòü óãëîâ, à îñòàëüíûå îñòàâèòü áåç äåéñòâèÿ, òî â êîíôèãóðàòîðå èëè íà íóæíîé ñòðîêå êîíôèãóðàöèîííîãî ôàéëà óêàæèòå çíàê ìèíóñ (ñèìâîë '-').
29,12 → 28,11
Ïðèìå÷àíèå: Äî âåðñèè 0.3.6 âêëþ÷èòåëüíî ôàéë êîíôèãóðàöèè ñîñòîÿë òîëüêî èç 5 ïåðâûõ ñòðîê.
 
Îáå óòèëèòû ñîäåðæàò çàùèòó îò ïîâòîðíîãî çàïóñêà.
Óòèëèòà @HOTANGLES äîáàâëåíà â àâòîçàãðóçêó ÎÑ (íî îòêëþ÷åíà â ñîáñòâåííîì ôàéëå êîíôèãóðàöèè íà ïîñëåäíèõ âåðñèÿõ ñáîðîê Êîëèáðè). Ñòðî÷êà èç ôàéëà àâòîçàïóñêà (AUTORUN.DAT):
/SYS/@HOTANGLES "" 0 # Start Hot Angles
Óòèëèòà @HOTANGLES äîáàâëåíà â àâòîçàãðóçêó ÎÑ.
@HOTANGLES íå çàïóñòèòñÿ, åñëè êîíôèãóðàöèîííûé ôàéë îòñóòñòâóåò èëè áûë ïåðåèìåíîâàí.
HACONFIG ïðè îòñóòñòâèè êîíôèãóðàöèîííîãî ôàéëà âûñòàâëÿåò âñå ïîëÿ ïî óìîë÷àíèþ, íî íå ñîçäà¸ò ôàéë êîíôèãóðàöèè ñàìîñòîÿòåëüíî (äëÿ ýòîãî íåîáõîäèìî íàæàòü êíîïêó "Ïðèìåíèòü", òîãäà îòñóòñòâóþùèé ôàéë êîíôèãóðàöèè áóäåò ñîçäàí, à ñóùåñòâóþùèé ïåðåçàïèñàí).
Ïðè ïåðâîì ñòàðòå óòèëèòû âñå óãëû ðàáî÷åé îáëàñòè íàñòðîåíû íà çàïóñê êîíôèãóðàòîðà, ãäå âû ìîæåòå íàñòðîèòü óòèëèòó ïîä ñåáÿ èëè îòêëþ÷èòü å¸.
Hot Angles íà÷èíàÿ ñ revision #7392 âêëþ÷åí â ñîñòàâ äèñòðèáóòèâà è äîáàâëåí â àâòîçàïóñê ïðè ñòàðòå ñèñòåìû. Ïîääåðæêà ðóññêîãî ÿçûêà äîáàâëåíà â revision #7395. Íà÷èíàÿ ñ âåðñèè 0.3.5 äîáàâëåí âòîðîé ðåæèì ðàáîòû óòèëèòû è âîçìîæíîñòü âûáîðà ïðîãðàìì ÷åðåç Open Dialog.  âåðñèè 0.3.8 çàðàáîòàëà îïöèÿ çàäàíèÿ ðàçìåðà òåêñòà, íî ïîñòðàäàë êîä è êà÷åñòâî èíòåðôåéñà.
Hot Angles íà÷èíàÿ ñ revision #7392 âêëþ÷åí â ñîñòàâ äèñòðèáóòèâà è äîáàâëåí â àâòîçàïóñê ïðè ñòàðòå ñèñòåìû. Ïîääåðæêà ðóññêîãî ÿçûêà äîáàâëåíà â revision #7395. Íà÷èíàÿ ñ âåðñèè 0.3.5 äîáàâëåí âòîðîé ðåæèì ðàáîòû óòèëèòû è âîçìîæíîñòü âûáîðà ïðîãðàìì ÷åðåç Open Dialog.
 
 äèðåêòîðèè extra, ðÿäîì ñ èñõîäíûì êîäîì óòèëèò, ðàñïîëîæåíû äîïîëíèòåëüíûå ôóíêöèîíàëüíûå áëîêè. Íà òåêóùèé ìîìåíò äèðåêòîðèÿ ñîäåðæèò: 1 óòèëèòó.
MIN - ìèíèìèçèðîâàòü/ñâåðíóòü âñå îêíà (êðîìå ñèñòåìíûõ). Âû ìîæåòå íàçíà÷èòü çàïóñê MIN íà ëþáîé àêòèâíûé óãîë âàøåãî ðàáî÷åãî ñòîëà, ÷òîáû îäíèì äâèæåíèåì êóðñîðà â ýòîò óãîë ñâåðíóòü âñå îêíà íà ýêðàíå.
75,7 → 73,7
 
Èçâåñòíûå íåäîðàáîòêè, êîòîðûå áóäóò èñïðàâëåíû â ñëåäóþùèõ âåðñèÿõ:
[+] îòñóòñòâèå ðóññêîãî ÿçûêà;
[+] èñïîëüçóåòñÿ ìàëåíüêèé øðèôò òåêñòà;
[-] èñïîëüçóåòñÿ ìàëåíüêèé øðèôò òåêñòà;
[+] íåò âîçìîæíîñòè çàïóñêà ïðèëîæåíèÿ ñ ïàðàìåòðàìè;
[+] çíàê ìèíóñ íå âëèÿåò íà ïîïûòêó çàïóñêà â êîíêðåòíîì óãëó;
[+] ïóñòîå ïîëå â êîíôèãóðàòîðå è ïóñòàÿ ñòðîêà â êîíôèãóðàöèîííîì ôàéëå íåâåðíî îáðàáàòûâàþòñÿ;