1,3 → 1,4 |
; <Lrz> 04.04.2007 ®¤¥à¨§¨à®¢ « á¨á⥬㠢뤥«¥¨ï, áãé¥á⢥® ¯¥à¥¤¥« ® ã¯à ¢«¥¨¥ ¨ ®¡à ¡®âª , ¤®¡ ¢«¥® ¡«®ª¨à®¢ ¨ï ®¡à ¡®âª¨ ¤àã£¨å ¡®ªá®¢, ¢® ¢à¥¬ï ¢ë¤¥«¥¨ï ¬ë誮© ⥪áâ , ¤«ï í⮣® ¢ ⥪áâ ¯à®£à ¬¬ë ¥®¡å®¤¨¬® ¤®¡ ¢¨âì ¨¤¥â¨ä¨ª â®à ¡®ªá â.¥. dd 0x0 ¨ ¢ ¥£® ¡ã¤¥â ¯®¬¥é âìáï 㪠⥫ì editbox |
; <Lrz> 30.03.2007 ¥à¥¤¥« « ¯à®æ¥¤ãà㠢뤥«¥¨ï, ⥯¥àì ⥪á⠢뤥«ï¥âáï ⮫쪮 ⮫쪮 ¬ë誮© |
; <Lrz> 09.03.2007 ®¯¨á « ã¯à ¢«¥¨¥ mouse + shift ¢ë¤¥«¥¨¥ ¨ ¯¥à¥¬¥é¥¨¥ |
; <Lrz> 07.03.2007 ®¯¨á « ã¯à ¢«¥¨¥ á shift home + end ãá¯à ¢¨« ¥áª®«ìª® ¡ £®¢ |
891,9 → 892,18 |
;========================================================== |
.mouse: |
pusha |
mov eax,dword [mouse_flag] |
test eax,eax |
jz @f |
cmp eax,edi |
je @f |
|
popa |
ret |
;---------------------------------------------------------- |
;--- ¯®«ãç ¥¬ á®áâ®ï¨¥ ª®¯®ª ¬ëè¨ ----------------------- |
;---------------------------------------------------------- |
@@: |
mov eax,37 |
mov ebx,2 |
int 0x40 |
903,35 → 913,70 |
test eax,1 |
jnz .mouse_left_button |
and word ed_flags,ed_mouse_on_off |
xor ebx,ebx |
mov dword [mouse_flag],ebx |
popa |
ret |
;---------------------------------------------------------- |
;--- ¡à ¡®âª .mouse_wigwag |
;---------------------------------------------------------- |
.mouse_wigwag: |
shr eax,16 |
or word ed_flags,ed_shift_on+ed_shift |
|
mov ecx,structure_of_potock |
mov ebx,dword [ecx+34] |
add ebx,ed_left |
add ebx,5 |
cmp eax,ebx |
jl .left |
add ebx,ed_width |
cmp eax,ebx |
jg .right |
jmp ._mvpos |
|
.mouse_left_button: |
;---------------------------------------------------------- |
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ----------------------------- |
;--- ¬®¤¨ä¨æ¨à㥬 ª®®à¤¨ âë, â.¥. ¤®¡ ¢«ï¥¬ ª®®à¤¨ âë ®ª . |
;---------------------------------------------------------- |
mov eax,9 |
mov ebx,structure_of_potock |
or ecx,-1 |
int 0x40 |
;---------------------------------------------------------- |
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà |
;---------------------------------------------------------- |
mov eax,37 |
xor ebx,ebx |
inc ebx |
int 0x40 |
;---------------------------------------------------------- |
;--- ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë? |
;---------------------------------------------------------- |
mov ecx,structure_of_potock |
test word ed_flags,ed_mouse_on |
jne .mouse_wigwag |
;---------------------------------------------------------- |
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box ------------- |
;---------------------------------------------------------- |
mov ebx,ed_top |
mov ebx,dword [ecx+38] |
add ebx,ed_top |
add ebx,22 |
cmp ax,bx |
jl ._blur;.mouse_end_no_focus |
|
add bx,ed_height |
add ebx,ed_height |
cmp ax,bx |
jg ._blur;.mouse_end_no_focus |
|
shr eax,16 |
|
mov bx,ed_left |
mov ebx,dword [ecx+34] |
add ebx,ed_left |
add ebx,5 |
cmp ax,bx |
jl ._blur;.mouse_end_no_focus |
|
add bx,ed_width |
add ebx,ed_width |
cmp ax,bx |
jg ._blur;.mouse_end_no_focus |
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à --- |
939,16 → 984,20 |
mov ebp,ed_color |
call .clear_cursor |
pop eax |
xor dx,dx |
sub ax,ed_left |
add ax,2 |
mov bx,6 |
._mvpos: |
mov ecx,structure_of_potock |
mov ebx,dword [ecx+34] |
xor edx,edx |
sub eax,ed_left |
sub eax,ebx |
sub eax,5-2 ;â®«é¨ ®¡¢®¤ª¨ ᪨ =5 |
mov ebx,6 |
div bx |
add ax,ed_offset |
cmp ax,ed_size |
jna @f |
mov ax,ed_size |
@@: |
add eax,ed_offset |
cmp eax,ed_size |
jna ._mshift |
mov eax,ed_size |
._mshift: |
;;;;;;; |
;;¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift |
;;;;;;; |
965,18 → 1014,18 |
jne @f |
|
mov dword ed_shift_pos,eax |
or word ed_flags,ed_mouse_on |
or word ed_flags,ed_mous_adn_b;ed_mouse_on |
mov dword ed_pos,eax |
jmp .m_sh |
@@: |
cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ¥ ¨§¬¥¨«¨áì |
je @f |
je .mouse_ex |
mov ed_pos,eax |
mov ebp,dword shift_color |
mov ebx,dword ed_shift_pos |
call .sh_cl_ |
or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ |
|
or word ed_flags,ed_mous_adn_b ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on + |
mov dword [mouse_flag],edi |
.m_sh: call .draw_text |
call .draw_cursor |
;---------------------------------------------------------- |
983,21 → 1032,21 |
;--- ¯à®æ¥¤ãà ãáâ ®¢ª¨ 䮪ãá --------------------------- |
;---------------------------------------------------------- |
bts word ed_flags,1 |
jc @f |
jc .mouse_ex |
jmp .drc |
._blur: |
test word ed_flags,ed_always_focus |
jne @f |
jne .mouse_ex |
btr word ed_flags,1 ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
jnc @f |
jnc .mouse_ex |
|
mov ebp,ed_color |
call .clear_cursor |
.drc: call .draw_border |
@@: |
.mouse_ex: |
|
popa |
ret |
|
;---------------------------------------------------------- |
;--- ¯à®æ¥¤ãà à §¬ë¢ ¨ï 䮪ãá -------------------------- |
;---------------------------------------------------------- |