2,7 → 2,7 |
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
; Compile with FASM |
; Version 0.2: Sep 19, 2018 |
; Version 0.3: Sep 22, 2018 |
|
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
; All rights reserved. |
42,11 → 42,14 |
; Íà÷àëî îáëàñòè êîäà |
include 'lang.inc' ;ïîääåðæêà ÿçûêîâ ïðè êîìïèëÿöèè |
include '../../macros.inc' |
include 'editbox.inc' |
use_edit_box |
include 'check.inc' ;âêëþ÷èòü ôàéë check.inc |
version_ch1 ;íåîáõîäèìûé ìàêðîñ äëÿ âêëþ÷åíèÿ new âåðñèè check_box1 |
use_check_box ;èñïîëüçóÿ ìàêðîñû, âíåñòè ïðîöåäóðû äëÿ ðèñîâàíèÿ ÷åê áîêñà |
include '../../proc32.inc' |
include '../../dll.inc' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
;;include 'editbox.inc' |
;;use_edit_box |
;;include 'check.inc' ;âêëþ÷èòü ôàéë check.inc |
;;version_ch1 ;íåîáõîäèìûé ìàêðîñ äëÿ âêëþ÷åíèÿ new âåðñèè check_box1 |
;;use_check_box ;èñïîëüçóÿ ìàêðîñû, âíåñòè ïðîöåäóðû äëÿ ðèñîâàíèÿ ÷åê áîêñà |
|
Otstup = 30 |
|
60,6 → 63,13 |
mov edx, sizeof.system_colors |
mcall |
|
|
stdcall dll.Load, @IMPORT |
or eax, eax |
jnz exit |
|
invoke init_checkbox, ch1 |
|
mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé |
mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè) |
mcall |
84,8 → 94,14 |
je button ; Expl.: User has pressed one of the |
; applications buttons. |
|
mouse_edit_boxes editboxes,editboxes_end |
mouse_check_boxes check_boxes,check_boxes_end ;ïðîâåðêà ÷åê áîêñà |
;mouse_edit_boxes editboxes,editboxes_end |
;mouse_check_boxes check_boxes,check_boxes_end ;ïðîâåðêà ÷åê áîêñà |
invoke edit_box_mouse, editLU |
invoke edit_box_mouse, editLD |
invoke edit_box_mouse, editRU |
invoke edit_box_mouse, editRD |
invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà |
|
jmp event_wait |
|
|
96,7 → 112,11 |
key: ; Keypress event handler |
mov eax, 2 ; The key is returned in ah. The key must be |
mcall ; read and cleared from the system queue. |
key_edit_boxes editboxes,editboxes_end |
;key_edit_boxes editboxes,editboxes_end |
invoke edit_box_key, editLU |
invoke edit_box_key, editLD |
invoke edit_box_key, editRU |
invoke edit_box_key, editRD |
jmp event_wait ; Just read the key, ignore it and jump to event_wait. |
|
button: ; Buttonpress event handler |
105,6 → 125,7 |
|
cmp ah,1 ; button id=1 ? |
jne noclose |
exit: |
mov eax,-1 ; Function -1 : close this program |
mcall |
noclose: |
176,7 → 197,7 |
|
;çàïîëíèì áóôåð ñîäåðæèìîãî: |
mov byte[eax], 110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò |
cmp word[ch1.flags], ch_flag_en ;âûñòàâëåí checkBox èëè íåò? |
cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;110b ;ch_flag_en ;âûñòàâëåí checkBox èëè íåò? |
jne applyButton.no |
mov byte[eax], 121 ;èíà÷å êëàä¸ì 'y' |
.no: |
332,10 → 353,10 |
cmp byte[eax], 121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ |
jne loadConfig.no |
.yes: |
mov word[ch1.flags], ch_flag_en |
mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;110b ;ch_flag_en |
jmp loadConfig.chEnd |
.no: |
mov word[ch1.flags], 0 |
mov word[ch1.flags], 100b ;0 and ch_flag_middle ;100b |
.chEnd: |
;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê |
|
542,9 → 563,15 |
mov edi, title |
mcall |
|
draw_check_boxes check_boxes,check_boxes_end ;ðèñîâàíèå ÷åêáîêñîâ |
draw_edit_boxes editboxes,editboxes_end ;ðèñîâàíèå edit box'îâ |
;draw_check_boxes check_boxes,check_boxes_end ;ðèñîâàíèå ÷åêáîêñîâ |
;draw_edit_boxes editboxes,editboxes_end ;ðèñîâàíèå edit box'îâ |
invoke edit_box_draw, editLU ;ðèñîâàíèå edit box'îâ |
invoke edit_box_draw, editLD |
invoke edit_box_draw, editRU |
invoke edit_box_draw, editRD |
|
invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ |
|
;ðèñóåì êíîïêó |
mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè |
mov ecx, 160*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè |
583,17 → 610,36 |
|
|
|
align 4 |
align 16 |
@IMPORT: |
|
library box_lib, 'box_lib.obj' |
|
import box_lib,\ |
edit_box_draw, 'edit_box',\ |
edit_box_key, 'edit_box_key',\ |
edit_box_mouse, 'edit_box_mouse',\ |
init_checkbox, 'init_checkbox2',\ |
check_box_draw, 'check_box_draw2',\ |
check_box_mouse, 'check_box_mouse2',\ |
option_box_draw, 'option_box_draw',\ |
option_box_mouse, 'option_box_mouse' |
|
|
|
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
;DATA äàííûå äëÿ check_box1 - èñïîëüçóåò ñèñòåìíûå öâåòà |
;Ôîðìàò äàííûõ ÷åê áîêñà: |
; êîîðäèíàòà õ, êîîðäèíàòà ó, óêàçàòåëü íà íà÷àëî ñòðîêè, äëèíà ñòðîêè |
;ñîñòîÿíèå ðàáîòû óòèëèòû: àêòèâíà/íåò |
check_boxes: |
ch1 check_box1 30,160,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en |
check_boxes_end: |
;check_boxes: |
; ch1 check_box1 30,160,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en |
;check_boxes_end: |
|
;êîîðäèíàòû (x,y) = (30, 160) ðàçìåð ÷åêáîêñà 12, öâåò òåêñòà 0x224466 |
ch1 check_box2 30 shl 16 + 12, 160 shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0x224466, ch_text, 110b ; ch_flag_en and ch_flag_middle |
|
|
if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé |
|
text db "®ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â § áâனªã ªâ¨¢ëå 㣫®¢. " |
605,9 → 651,10 |
buttonTextSize = 9 |
buttonTextXoffset = 12 |
|
ch_text: ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ |
.1 db 'ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"' |
.e1: |
ch_text db 'ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"', 0 |
;ch_text: ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ |
;.1 db 'ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"' |
;.e1: |
|
superText: |
.lu db '®¬ ¤ «¥¢®£® ¢¥à奣® 㣫 : ', 0 |
627,9 → 674,9 |
buttonTextSize = 5 |
buttonTextXoffset = 0 |
|
ch_text: ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ |
.1 db 'Activate "Hot Angles"' |
.e1: |
ch_text db 'Activate "Hot Angles"',0 ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñà |
;.1 db 'Activate "Hot Angles"',0 |
;.e1: |
|
superText: |
.lu db 'Left up angle command: ', 0 |
669,19 → 716,25 |
ret |
|
|
edMaxSize = 510 |
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü |
edMax = 0 ;max, size, pos |
|
editboxes: |
editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax |
editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,0,edMax,edMax |
editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,0,edMax,edMax |
editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,0,edMax,edMax |
editboxes_end: |
align 4 |
editLU edit_box 180,Otstup,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax ;ed_focus |
editLD edit_box 180,Otstup,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax |
editRU edit_box 180,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax |
editRD edit_box 180,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax |
|
data_of_code dd 0 |
mouse_flag dd 0x0 |
;editboxes: |
;editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax |
;editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,0,edMax,edMax |
;editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,0,edMax,edMax |
;editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,0,edMax,edMax |
;editboxes_end: |
|
;data_of_code dd 0 |
;mouse_flag dd 0x0 |
|
dataBuffer: |
.1: rb 512 |
.2: rb 512 |
695,6 → 748,7 |
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0 |
dataBufferEnd: |
|
mouse_dd dd ? |
sc system_colors |
|
I_END: |