Fixed deletion of selected text in the Editbox with "Backspace"

"Shift+Delete", "Shift+Backspace" with selected text still work wrong.

git-svn-id: svn://kolibrios.org@1858 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
lev 2011-02-09 01:01:22 +00:00
parent ba8ddae0aa
commit 4a76b34dcc

View File

@ -62,18 +62,18 @@ pushad
;---------------------------------------------------------- ;----------------------------------------------------------
;--- ¯à®¢¥à塞, çâ® ­ ¦ â® -------------------------------- ;--- ¯à®¢¥à塞, çâ® ­ ¦ â® --------------------------------
;---------------------------------------------------------- ;----------------------------------------------------------
use_key_process backspase,delete,left,right,home,end,insert use_key_process backspace,delete,left,right,home,end,insert
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪  ;‡ £«ã誠 ­  ®¡à ¡®âªã ª« ¢¨è ¢¢¥àå ¨ ¢­¨§ â.¥. ¯à¨ ®¡­ à㦥­¨¨ íâ¨å ª®¤®¢ ¯à®¨á室¨â ¢ë室 ¨§ ®¡à ¡®â稪 
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll
;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  --- ;--- ­ ¦ â  ¤àã£ ï ª« ¢¨è  ---
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;<3B>஢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥ ¥á«¨ â ª®©­¥®¡å®¤¨¬®á⨠­¥â ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á ;<3B>஢¥àª  ãáâ ­®¢«¥­ «¨ ä« £ ¯à¨ ª®â®à®¬ ­ã¦­® ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ ­ã¦­®¬ ¡®ªá¥, ¥á«¨ â ª®© ­¥®¡å®¤¨¬®á⨠­¥â, ­ã¦­® § ª®¬¥­â¨à®¢ âì ¬ ªà®á
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_key_figures_only use_key_figures_only
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;¯à®¢¥àª  ­  shift ¡ë« «¨ ­ ¦ â ;¯à®¢¥àª  ­  shift, ¡ë« «¨ ­ ¦ â
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
are_key_shift_press are_key_shift_press
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -81,7 +81,7 @@ are_key_shift_press
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
are_key_cur_end are_key_cur_end
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspase,home,end,left,right ;Ž¡à ¡®âª  ª« ¢¨è insert,delete.backspace,home,end,left,right
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_work_key use_work_key
} }
@ -142,43 +142,22 @@ use_key_func
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”㭪樨 ¤«ï à ¡®âë á mouse ;”㭪樨 ¤«ï à ¡®âë á mouse
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_mouse_func use_mouse_func
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox ;Bit mask from editbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
} }
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;­¨¦¥ à á¯®«®¦¥­ë ä㭪樨 ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì  «£®à¨â¬ ;­¨¦¥ à á¯®«®¦¥­ë ä㭪樨 ª®â®à묨 ॠ«¨§ã¥âáï ¢¥áì  «£®à¨â¬
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯«ì§ãîâáï ¡®ªá®¬ ;Œ ªà®á ¤«ï ¢ë¢®¤  ®á­®¢­ëå ä㭪権 ª®â®àë¥ ¨á¯®«ì§ãîâáï ¡®ªá®¬
macro use_general_func macro use_general_func
{ {
;debug_func ;debug_func
;---------------------------------------------------------- ;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­®© ç á⨠----------------- ;--- ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ ¢ë¤¥«¥­­®© ç á⨠-----------------
;---------------------------------------------------------- ;----------------------------------------------------------
edit_box.draw_shift: edit_box.draw_shift:
test word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« á⨠test word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
@ -200,7 +179,7 @@ edit_box.draw_text:
cmp eax,esi cmp eax,esi
jae @F jae @F
mov esi,eax ;çâ®¡ë ­¥ ¢ë室¨âì §  ¯à¥¤¥«ë íªà ­  mov esi,eax ;çâ®¡ë ­¥ ¢ë室¨âì §  ¯à¥¤¥«ë íªà ­ 
;--- à¨á㥬 ⥪áâ --- ;--- à¨á㥬 ⥪áâ ---
@@: mov eax,4 @@: mov eax,4
mov ebx,ed_left mov ebx,ed_left
mov edx,ed_offset mov edx,ed_offset
@ -234,17 +213,17 @@ edit_box.draw_bg_eax:
shl ecx,16 shl ecx,16
add ecx,ed_height add ecx,ed_height
dec ecx dec ecx
mcall mcall
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 é¨à¨­¥ ª®¬¯®­¥­â  ;--- ¯à®æ¥¤ãà  ¯®«ã祭¨ï ª®«¨ç¥á⢠ ᨬ¢®«®¢ ¢ ⥪ã饩 è¨à¨­¥ ª®¬¯®­¥­â 
;---------------------------------------------------------- ;----------------------------------------------------------
edit_box.get_n: edit_box.get_n:
mov eax,ed_width ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â  mov eax,ed_width ;¯®«ã祬 è¨à¨­ã ª®¬¯®­¥­â 
xor edx,edx ;१ã«ìâ â à á¯®«®£ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª xor edx,edx ;१ã«ìâ â à á¯®« £ ¥âáï ¢ ¯ à¥ edx:eax ¢ eax - ®áâ â®ª
sub eax,4 ;¢ëç⨬ 4 sub eax,4 ;¢ëç⥬ 4
mov ebx,6 ;§ £à㧬¨ ¤¥«¨â¥«ì mov ebx,6 ;§ £à㧨¬ ¤¥«¨â¥«ì
div ebx ;à §¬¤¥«¨¬ ­  6 div ebx ;à §¤¥«¨¬ ­  6
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  -------------------------- ;--- ¯à®æ¥¤ãà  à¨á®¢ ­¨ï ªãàá®à  --------------------------
@ -272,14 +251,14 @@ edit_box.draw_cursor:
shl ebx,16 shl ebx,16
mov bx,bp mov bx,bp
mov ebp,ecx mov ebp,ecx
shl ecx,16 shl ecx,16
mov cx,bp mov cx,bp
add ecx,ed_height-4 add ecx,ed_height-4
mov cl_curs_x,ebx mov cl_curs_x,ebx
mov cl_curs_y,ecx mov cl_curs_y,ecx
edit_box.draw_curs: edit_box.draw_curs:
mcall 38 mcall 38
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
@ -325,8 +304,8 @@ ret
;---------------------------------------------------------- ;----------------------------------------------------------
;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, --- ;--- ¯à®¢¥àª , § è¥« «¨ ªãàá®à §  £à ­¨æë ¨, ¥á«¨ ­ ¤®, ---
;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------ ;--- ¨§¬¥­ï¥¬ ᬥ饭¨¥ ------------------------------------
;--- ¥á«¨ ᬥ饭¨¥ ¡ë«® ãáâ ­®¢ª  ä« £  ed_offset_cl ¨­ ç¥ ;--- ¥á«¨ ᬥ饭¨¥ ¡ë«®, ãáâ ­®¢ª  ä« £  ed_offset_cl, ¨­ ç¥,
; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl ; ¥á«¨ ­¨ç¥£® ­¥ ¨§¬¥­¨«®áì, â® ¢ëáâ ¢«¥­¨¥ ed_offset_fl
; ¢ ®¡é¥© ¡¨â®¢®© ¬ âà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags ; ¢ ®¡é¥© ¡¨â®¢®© ¬ âà¨æ¥ á®áâ®ï­¨ï ª®¬¯®­¥­â®¢ word ed_flags
;---------------------------------------------------------- ;----------------------------------------------------------
edit_box.check_offset: edit_box.check_offset:
@ -337,7 +316,7 @@ pushad
ja edit_box.sub_8 ja edit_box.sub_8
push ebx push ebx
call edit_box.get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ã¬¥­é îâáï ¢ è¨à¨­¥ ª®¬¯®­¥­â , ¢ ¯ à¥ ॣ¨áâ஢ edx:eax call edit_box.get_n ;¯®«ã稬 ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ã¬¥é îâáï ¢ è¨à¨­¥ ª®¬¯®­¥­â , ¢ ¯ à¥ ॣ¨áâ஢ edx:eax
pop ebx pop ebx
mov edx,ebx mov edx,ebx
add edx,eax ;ed_offset+width editbox add edx,eax ;ed_offset+width editbox
@ -374,7 +353,7 @@ edit_box.chk_d: mov ed_offset,ebx
call edit_box.draw_bg call edit_box.draw_bg
and word ed_flags,ed_offset_cl and word ed_flags,ed_offset_cl
edit_ex edit_ex
@@: @@:
or word ed_flags,ed_offset_fl or word ed_flags,ed_offset_fl
edit_ex edit_ex
@ -389,11 +368,11 @@ pushad
xor al,al xor al,al
cld cld
repne scasb ;¯®¨áª ¢ áâப¥ edi ᨬ¢®«  al repne scasb ;¯®¨áª ¢ áâப¥ edi ᨬ¢®«  al
mov ecx,edi ;ecx = text + ¬¨­. §­ ç¥­¨¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨­­ë áâப¨ text mov ecx,edi ;ecx = text + ¬¨­. §­ ç¥­¨¥ ¨§: 1) ed_max ¨«¨ 2) ¤«¨­ë áâப¨ text
mov edi,dword[edit] mov edi,dword[edit]
mov esi,dword[text] mov esi,dword[text]
sub ecx,esi ;ecx = ¤«¨­­  áâப¨ text (­® ­¥ ¡®«ìè¥ ç¥¬ ed_max) sub ecx,esi ;ecx = ¤«¨­  áâப¨ text (­® ­¥ ¡®«ìè¥ ç¥¬ ed_max)
dec ecx dec ecx
mov ed_size,ecx ;áâ ¢¨¬ ­®¢ë© à §¬¥à áâப¨ mov ed_size,ecx ;áâ ¢¨¬ ­®¢ë© à §¬¥à áâப¨
mov ed_pos,ecx ;áâ ¢¨¬ ªãàá®à ¢ ª®­¥æ ­®¢®© áâப¨ mov ed_pos,ecx ;áâ ¢¨¬ ªãàá®à ¢ ª®­¥æ ­®¢®© áâப¨
@ -418,7 +397,7 @@ edit_box_key.shift: ;;;;;;;SHIFT
call edit_box_key.sh_cl_ call edit_box_key.sh_cl_
jmp edit_box.draw_cursor_text jmp edit_box.draw_cursor_text
;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
edit_box_key.f_exit: edit_box_key.f_exit:
call edit_box.check_offset call edit_box.check_offset
and word ed_flags,ed_shift_cl and word ed_flags,ed_shift_cl
call edit_box_key.enable_null call edit_box_key.enable_null
@ -437,9 +416,9 @@ edit_box_key.sh_cl_:
jmp edit_box_key.sh_n1 jmp edit_box_key.sh_n1
;¥á«¨ ¨­ ç¥ ;¥á«¨ ¨­ ç¥
edit_box_key.sh_n: edit_box_key.sh_n:
push ebx push ebx
push eax push eax
edit_box_key.sh_n1: edit_box_key.sh_n1:
call edit_box.check_offset call edit_box.check_offset
call edit_box.get_n call edit_box.get_n
mov edx,eax ;size of ed_box mov edx,eax ;size of ed_box
@ -449,7 +428,7 @@ edit_box_key.sh_n1:
pop ebx ;¡®«ì襥 pop ebx ;¡®«ì襥
pop eax ;¬¥­ì襥 pop eax ;¬¥­ì襥
cmp eax,ecx ;áà ¢­¥­¨¥ á ¬¥­ì襣® á offset. cmp eax,ecx ;áà ¢­¥­¨¥ ¬¥­ì襣® á offset.
jae edit_box_key.f_f ;¥á«¨ ¡®«ìè¥ jae edit_box_key.f_f ;¥á«¨ ¡®«ìè¥
xor eax,eax xor eax,eax
cmp edx,ebx ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬 cmp edx,ebx ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
@ -457,9 +436,9 @@ edit_box_key.sh_n1:
sub ebx,ecx sub ebx,ecx
jmp edit_box_key.nxt_f jmp edit_box_key.nxt_f
@@: mov ebx,edx @@: mov ebx,edx
sub ebx,ecx sub ebx,ecx
jmp edit_box_key.nxt_f jmp edit_box_key.nxt_f
edit_box_key.f_f: edit_box_key.f_f:
sub eax,ecx sub eax,ecx
cmp edx,ebx ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬 cmp edx,ebx ;cà ¢­¨¬ à §¬¥à w_off á ¡®«ì訬
jle @f jle @f
@ -467,7 +446,7 @@ edit_box_key.f_f:
sub ebx,eax sub ebx,eax
jmp edit_box_key.nxt_f jmp edit_box_key.nxt_f
@@: @@:
mov ebx,edx mov ebx,edx
sub ebx,ecx sub ebx,ecx
sub ebx,eax sub ebx,eax
edit_box_key.nxt_f: edit_box_key.nxt_f:
@ -478,7 +457,7 @@ edit_box_key.nxt_f:
inc ebx inc ebx
shl ebx,16 shl ebx,16
lea ecx,[edx*2+edx] lea ecx,[edx*2+edx]
shl ecx,1 shl ecx,1
mov bx,cx mov bx,cx
inc ebx inc ebx
mov edx,ebp;shift_color mov edx,ebp;shift_color
@ -494,23 +473,23 @@ edit_box_key.drw_sim:
call edit_box_key.draw_rectangle ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬ call edit_box_key.draw_rectangle ;­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª á § ¤ ­­ë¬ 梥⮬
jmp @b jmp @b
;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;”ãªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift ;”ã­ªæ¨ï ãáâ ­®¢ª¨ ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨¨ ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
;‹®£¨ª : ;‹®£¨ª :
;;;;;;;;;; ;;;;;;;;;;
edit_box_key.draw_wigwag: edit_box_key.draw_wigwag:
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå ;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
mov ebp,shift_color mov ebp,shift_color
call edit_box.clear_cursor call edit_box.clear_cursor
or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« á⨠or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £  ¢ë¤¥«¥­­®© ®¡« áâ¨
mov ebp,shift_color mov ebp,shift_color
mov eax,dword ed_pos mov eax,dword ed_pos
test word ed_flags,ed_left_fl test word ed_flags,ed_left_fl
jz edit_box_key.low jz edit_box_key.low
jmp @f jmp @f
;;;;;;;;;; ;;;;;;;;;;
;”ãªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨ï ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift ;”ã­ªæ¨ï 㤠«¥­¨ï ¢ë¤¥«¥­¨ï ¯à¨ ¤¢¨¦¥­¨¨ ¢«¥¢® ¨ ¢¯à ¢® ¨ ­ ¦ â¨¨ shift
;‹®£¨ª : ;‹®£¨ª :
;;;;;;;;;; ;;;;;;;;;;
edit_box_key.draw_wigwag_cl: edit_box_key.draw_wigwag_cl:
;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå ;äã­ªæ¨ï ãáâ ­®¢ª¨ ¯¥à¥¬¥­­ëå
@ -536,7 +515,7 @@ edit_box_key.sh_first_sh:
or word ed_flags,ed_shift_on or word ed_flags,ed_shift_on
@@: ret @@: ret
;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift ;Ž¡à ¡®âª  ªà ©­¨å ¯®«®¦¥­¨© ¢ editbox ¯à¨ ­ ¦ â®¬ shift
;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨¥, ¥á«¨ ­¥â shift ;¯à®¨§¢®¤¨â á­ï⨥ ¢ë¤¥«¥­¨ï, ¥á«¨ ­¥â shift
;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â ;¨­ ç¥ ¢®®¡é¥ ¢ë室¨â
edit_box_key.sh_st_of: edit_box_key.sh_st_of:
test word ed_flags,ed_shift test word ed_flags,ed_shift
@ -546,16 +525,16 @@ edit_box_key.sh_st_of:
mov ebp,ed_color mov ebp,ed_color
mov ebx,dword ed_shift_pos mov ebx,dword ed_shift_pos
call edit_box_key.sh_cl_ ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â  call edit_box_key.sh_cl_ ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â 
and word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣® çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥ and word ed_flags,ed_shift_cl ; ®ç¨á⪠ ®â ⮣®, çâ® ã¡à «¨ ¢ë¤¥«¥­¨¥
jmp edit_box.draw_cursor_text jmp edit_box.draw_cursor_text
@@: @@:
and word ed_flags,ed_shift_off and word ed_flags,ed_shift_off
popad popad
ret 4 ret 4
;¯à®¢¥àª  á®áâ®ï­¨ï shift ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥? ;¯à®¢¥àª  á®áâ®ï­¨ï shift, ¡ë« «¨ ®­ ­ ¦ â à ­ìè¥?
edit_box_key.sh_enable: edit_box_key.sh_enable:
test word ed_flags,ed_shift test word ed_flags,ed_shift
jne edit_box_key.sh_ext_en ;­ à¨á®¢ âì § ªà è¥­ë© ¯àאַ㣮«ì­¨ª jne edit_box_key.sh_ext_en ;­ à¨á®¢ âì § ªà è¥­­ë© ¯àאַ㣮«ì­¨ª
test word ed_flags,ed_shift_bac test word ed_flags,ed_shift_bac
je @f je @f
@ -563,24 +542,24 @@ edit_box_key.sh_enable:
mov ebp,ed_color mov ebp,ed_color
mov ebx,dword ed_shift_pos mov ebx,dword ed_shift_pos
call edit_box_key.sh_cl_ ;®ç¨á⪠ ¢ë¤¥«¥­®£® äà £¬¥­â  call edit_box_key.sh_cl_ ;®ç¨á⪠ ¢ë¤¥«¥­­®£® äà £¬¥­â 
call edit_box_key.draw_wigwag_cl call edit_box_key.draw_wigwag_cl
and word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­® and word ed_flags,ed_shift_cl ; 1¢ à ­¥ ­ã¦­®
ret ret
@@: mov ebp,ed_color @@: mov ebp,ed_color
call edit_box.clear_cursor call edit_box.clear_cursor
call edit_box.check_offset call edit_box.check_offset
ret ret
edit_box_key.sh_ext_en: edit_box_key.sh_ext_en:
call edit_box.check_offset call edit_box.check_offset
test word ed_flags,ed_offset_fl test word ed_flags,ed_offset_fl
je @f je @f
;<3B>¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å ;<3B>¨á®¢ ­¨¥ § ªà è¥­­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ¨å ®ç¨á⪠
mov eax,dword ed_shift_pos mov eax,dword ed_shift_pos
mov ebx,dword ed_pos mov ebx,dword ed_pos
mov ecx,dword ed_shift_pos_old mov ecx,dword ed_shift_pos_old
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩ ;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­­ëå ®¡« á⥩
cmp eax,ecx cmp eax,ecx
je edit_box_key.1_shem je edit_box_key.1_shem
jb edit_box_key.smaller jb edit_box_key.smaller
@ -618,7 +597,7 @@ edit_box_key.sh_home_end:
call edit_box_key.sh_cl_ call edit_box_key.sh_cl_
or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« á⨠or word ed_flags,ed_shift_bac ;ãáâ ­®¢ª  ä« £ , ¢ë¤¥«¥­­®© ®¡« áâ¨
jmp edit_box_key.sh_e_end jmp edit_box_key.sh_e_end
edit_box_key.sh_exit_: edit_box_key.sh_exit_:
call edit_box.draw_bg call edit_box.draw_bg
call edit_box.check_offset call edit_box.check_offset
ret ret
@ -645,17 +624,17 @@ edit_box_key.del_char:
cmp eax,ecx cmp eax,ecx
jae edit_box_key.dh_n jae edit_box_key.dh_n
mov ed_pos,eax ;çâ® ¡ë ­¥ ¡ë«® ã¡¥£ ­¨ï ªãàá®à  mov ed_pos,eax ;çâ®¡ë ­¥ ¡ë«® ã¡¥£ ­¨ï ªãàá®à 
mov ebp,ecx mov ebp,ecx
sub ebp,eax sub ebp,eax
add ebx,eax ;eax ¬¥­ìè¥ add ebx,eax ;eax ¬¥­ìè¥
sub edx,ecx sub edx,ecx
add esi,ecx add esi,ecx
mov dword ed_shift_pos,ebp mov dword ed_shift_pos,ebp
jmp edit_box_key.del_ch_sh jmp edit_box_key.del_ch_sh
;¥á«¨ ¨­ ç¥ ;¥á«¨ ¨­ ç¥
edit_box_key.dh_n: edit_box_key.dh_n:
mov ebp,eax mov ebp,eax
sub ebp,ecx sub ebp,ecx
add ebx,ecx add ebx,ecx
@ -664,7 +643,7 @@ edit_box_key.dh_n:
mov dword ed_shift_pos,ebp mov dword ed_shift_pos,ebp
jmp edit_box_key.del_ch_sh jmp edit_box_key.del_ch_sh
@@: add esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãää¥àã @@: add esi,ecx ;㪠§ â¥«ì + ᬥ饭¨¥ ª ॠ«ì­®¬ã ¡ãä¥àã
mov ebx,esi mov ebx,esi
inc esi inc esi
cld cld
@ -679,7 +658,7 @@ edit_box_key.del_ch_sh:
stosb stosb
dec edx dec edx
jns @b jns @b
pop edi pop edi
ret ret
;¢ëç¨á«¨âì § ªà è¨¢ ¥¬ãî ®¡« áâì ;¢ëç¨á«¨âì § ªà è¨¢ ¥¬ãî ®¡« áâì
@ -690,7 +669,7 @@ edit_box_key.clear_bg:
mov ebx,ed_offset mov ebx,ed_offset
add eax,ebx ;eax = w_off= ed_offset+width add eax,ebx ;eax = w_off= ed_offset+width
mov ebx,ebp ;ed_size mov ebx,ebp ;ed_size
cmp eax,ebx cmp eax,ebx
jb @f jb @f
mov eax,ed_pos mov eax,ed_pos
@ -701,8 +680,8 @@ edit_box_key.clear_bg:
@@: mov ebx,ed_pos @@: mov ebx,ed_pos
push ebx push ebx
sub eax,ebx sub eax,ebx
mov ebx,eax ;It is don't optimal mov ebx,eax ;It is not optimal
pop eax ;ed_pos pop eax ;ed_pos
mov ecx,ed_offset mov ecx,ed_offset
sub eax,ecx sub eax,ecx
@ -721,7 +700,7 @@ edit_box_key.nxt:
inc ebx inc ebx
shl ebx,16 shl ebx,16
lea ecx,[edx*2+edx] lea ecx,[edx*2+edx]
shl ecx,1 shl ecx,1
mov bx,cx mov bx,cx
mov edx,ed_color mov edx,ed_color
call edit_box.draw_bg_eax call edit_box.draw_bg_eax
@ -732,7 +711,7 @@ edit_box_key.nxt:
;<3B> à¨á®¢ âì ¯àאַ㣮«ì­¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp ;<3B> à¨á®¢ âì ¯àאַ㣮«ì­¨ª, 梥⠯¥à¥¤ ¥âáï ¢ ebp
;¢å®¤­ë¥ ¯ à ¬¥âàë: ;¢å®¤­ë¥ ¯ à ¬¥âàë:
;eax=dword ed_pos ;eax=dword ed_pos
;ebp=-梥â ed_color or shift_color ;ebp=-梥â ed_color or shift_color
edit_box_key.draw_rectangle: edit_box_key.draw_rectangle:
mov ecx,dword ed_offset mov ecx,dword ed_offset
sub eax,ecx sub eax,ecx
@ -756,40 +735,40 @@ pusha ;
or word ed_flags,ed_shift ;ãáâ ­®¢¨¬ ä« £ or word ed_flags,ed_shift ;ãáâ ­®¢¨¬ ä« £
@@:edit_ex @@:edit_ex
} }
;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï ;¬ ªà®á ª« ¢¨è ­  ª®â®àë¥ ¯à®¨á室¨â ॠªæ¨ï
macro use_key_process backspase,delete,left,right,home,end,insert macro use_key_process backspace,delete,left,right,home,end,insert
{ {
if backspase eq if backspace eq
else else
cmp ah,8 cmp ah,8
jz edit_box_key.backspace jz edit_box_key.backspace
end if end if
if delete eq if delete eq
else else
cmp ah,0xb6 cmp ah,0xb6
jz edit_box_key.delete jz edit_box_key.delete
end if end if
if left eq if left eq
else else
cmp ah,176 cmp ah,176
jz edit_box_key.left jz edit_box_key.left
end if end if
if right eq if right eq
else else
cmp ah,179 cmp ah,179
jz edit_box_key.right jz edit_box_key.right
end if end if
if home eq if home eq
else else
cmp ah,180 cmp ah,180
jz edit_box_key.home jz edit_box_key.home
end if end if
if home eq if home eq
else else
cmp ah,181 cmp ah,181
jz edit_box_key.end jz edit_box_key.end
end if end if
if insert eq if insert eq
else else
cmp ah,185 ;insert cmp ah,185 ;insert
jz edit_box_key.insert jz edit_box_key.insert
@ -798,45 +777,45 @@ end if
macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll macro use_key_no_process up,down,esc,enter,tab,numl,capsl,scrolll
{ {
if up eq if up eq
else else
cmp ah,177 cmp ah,177
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if down eq if down eq
else else
cmp ah,178 cmp ah,178
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if esc eq if esc eq
else else
cmp ah,27 ;ESC - ª« ¢¨è  )) cmp ah,27 ;ESC - ª« ¢¨è  ))
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if enter eq if enter eq
else else
cmp ah,13 ;ENTER - ª« ¢¨è  )) cmp ah,13 ;ENTER - ª« ¢¨è  ))
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if tab eq if tab eq
else else
cmp ah,9 ;TAB - ª« ¢¨è  )) cmp ah,9 ;TAB - ª« ¢¨è  ))
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if numl eq if numl eq
else else
cmp ah,4 ;Num Lock - ª« ¢¨è  )) cmp ah,4 ;Num Lock - ª« ¢¨è  ))
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if capsl eq if capsl eq
else else
cmp ah,2 ;Caps Lock - ª« ¢¨è  )) cmp ah,2 ;Caps Lock - ª« ¢¨è  ))
jz edit_box.editbox_exit jz edit_box.editbox_exit
end if end if
if scrolll eq if scrolll eq
else else
cmp ah,1 ;Scroll Lock - ª« ¢¨è  )) cmp ah,1 ;Scroll Lock - ª« ¢¨è  ))
jz edit_box.editbox_exit jz edit_box.editbox_exit
@ -846,7 +825,7 @@ end if
macro use_key_figures_only macro use_key_figures_only
{ {
test word ed_flags,ed_figure_only ; ⮫쪮 æ¨äàë ? test word ed_flags,ed_figure_only ; ⮫쪮 æ¨äàë?
jz @f jz @f
cmp ah,'0' cmp ah,'0'
jb edit_box.editbox_exit jb edit_box.editbox_exit
@ -871,7 +850,7 @@ macro are_key_shift_press
mov ebp,ed_size mov ebp,ed_size
call edit_box_key.clear_bg call edit_box_key.clear_bg
;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
popa popa
call edit_box_key.del_char call edit_box_key.del_char
;;;; ;;;;
mov eax,dword ed_shift_pos mov eax,dword ed_shift_pos
@ -906,7 +885,7 @@ macro are_key_cur_end
cmp ecx,ebx ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥ cmp ecx,ebx ;…᫨ ã ­ á ¯®§¨æ¨ï ªãàá®à  = ⥪ã饬ã à §¬¥àã ­ ¯¥ç â ­­ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®­æ¥
je edit_box_key.In_k je edit_box_key.In_k
test dword bp_flags,ed_insert ;IF insert is enable â.ª. edi ¨§¬¥­¥­  ¤à¥á㥬 ç¥à¥§ ebp test dword bp_flags,ed_insert ;IF insert is enabled â.ª. edi ¨§¬¥­¥­,  ¤à¥á㥬 ç¥à¥§ ebp
jne edit_box_key.ins_v jne edit_box_key.ins_v
;clear ;clear
pusha pusha
@ -915,16 +894,16 @@ pusha
call edit_box_key.clear_bg call edit_box_key.clear_bg
popa popa
sub ecx,ebx ;<3B> ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥­¨ï. sub ecx,ebx ;<3B> ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥­¨ï.
inc edi ;‘¬¥á⨬ ­ è¨ ᨬ¢®«ë ¢ ¯à ¢® inc edi ;‘¬¥á⨬ ­ è¨ ᨬ¢®«ë ¢¯à ¢®
std std
inc ecx inc ecx
@@: @@:
;-------- ;--------
lodsb lodsb
stosb stosb
;-------- ;--------
loop @b loop @b
edit_box_key.In_k: edit_box_key.In_k:
cld cld
pop eax pop eax
mov al,ah mov al,ah
@ -961,7 +940,7 @@ pusha
popa popa
jmp edit_box_key.In_k jmp edit_box_key.In_k
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
edit_box_key.delete: edit_box_key.delete:
mov edx,ed_size mov edx,ed_size
mov ecx,ed_pos mov ecx,ed_pos
cmp edx,ecx cmp edx,ecx
@ -970,18 +949,18 @@ edit_box_key.delete:
jne edit_box_key.del_bac jne edit_box_key.del_bac
popad popad
ret 4 ret 4
edit_box_key.bac_del: edit_box_key.bac_del:
call edit_box_key.del_char call edit_box_key.del_char
jmp edit_box_key.draw_all jmp edit_box_key.draw_all
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--- ­ ¦ â  ª« ¢¨è  backspace --- ;--- ­ ¦ â  ª« ¢¨è  backspace ---
edit_box_key.backspace: edit_box_key.backspace:
; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ? test word ed_flags,ed_shift_on
jne edit_box_key.delete
; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï?
mov ecx,ed_pos mov ecx,ed_pos
test ecx,ecx test ecx,ecx
jnz edit_box_key.del_bac jnz edit_box_key.del_bac
test word ed_flags,ed_shift_on
jne edit_box_key.bac_del
popad popad
ret 4 ret 4
@ -1021,7 +1000,7 @@ edit_box_key.draw_all2:
ret ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--- ­ ¦ â  ª« ¢¨è  left --- ;--- ­ ¦ â  ª« ¢¨è  left ---
edit_box_key.left: edit_box_key.left:
mov ebx,ed_pos mov ebx,ed_pos
test ebx,ebx test ebx,ebx
jz edit_box_key.sh_st_of jz edit_box_key.sh_st_of
@ -1032,7 +1011,7 @@ edit_box_key.left:
jmp edit_box.draw_cursor_text jmp edit_box.draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;--- ­ ¦ â  ª« ¢¨è  right --- ;--- ­ ¦ â  ª« ¢¨è  right ---
edit_box_key.right: edit_box_key.right:
mov ebx,ed_pos mov ebx,ed_pos
cmp ebx,ed_size cmp ebx,ed_size
je edit_box_key.sh_st_of je edit_box_key.sh_st_of
@ -1042,7 +1021,7 @@ edit_box_key.right:
call edit_box_key.sh_enable call edit_box_key.sh_enable
jmp edit_box.draw_cursor_text jmp edit_box.draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
edit_box_key.home: edit_box_key.home:
mov ebx,ed_pos mov ebx,ed_pos
test ebx,ebx test ebx,ebx
jz edit_box_key.sh_st_of jz edit_box_key.sh_st_of
@ -1052,7 +1031,7 @@ edit_box_key.home:
call edit_box_key.sh_home_end call edit_box_key.sh_home_end
jmp edit_box.draw_cursor_text jmp edit_box.draw_cursor_text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
edit_box_key.end: edit_box_key.end:
mov ebx,ed_pos mov ebx,ed_pos
cmp ebx,dword ed_size cmp ebx,dword ed_size
je edit_box_key.sh_st_of je edit_box_key.sh_st_of
@ -1083,31 +1062,31 @@ edit_box_mouse.mouse_wigwag:
add ebx,ed_width add ebx,ed_width
cmp eax,ebx cmp eax,ebx
ja edit_box_mouse.mright ja edit_box_mouse.mright
sub ebx,ed_width sub ebx,ed_width
xor edx,edx xor edx,edx
sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å sub eax,ebx ; ¢ëç⥬ ¨§ ª®®à¤¨­ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨­ âë ¤® editbox ¯® ®á¨ å
mov ebx,6 mov ebx,6
div ebx div ebx
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox ;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;
;<3B>®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì ;<3B>®«ã稫¨ ª®®à¤¨­ âë ¢ eax ¬ë誨, â.¥. ªã¤  ®­  ¯¥à¥¬¥á⨫ áì
;<3B>¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å ;<3B>¨á®¢ ­¨¥ § ªà è¥­­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ¨å ®ç¨á⪠
add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饭¨¥ add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饭¨¥
cmp eax,dword ed_size ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì cmp eax,dword ed_size ;¥á«¨ ¢ë諨 §  ¯à¥¤¥«ë, â® ­¨ç¥£® ­¥ ¤¥« âì
ja edit_box_mouse.mwigvag ja edit_box_mouse.mwigvag
edit_box_mouse.mdraw: edit_box_mouse.mdraw:
mov dword ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥ mov dword ed_pos,eax ;á®åà ­¨¬ ­®¢®¥ §­ ç¥­¨¥
;<3B>¨á®¢ ­¨¥ § ªà è¥­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ®ç¨á⪠ ¨å ;<3B>¨á®¢ ­¨¥ § ªà è¥­­ëå ¯àאַ㣮«ì­¨ª®¢ ¨ ¨å ®ç¨á⪠
mov ecx,dword ed_shift_pos mov ecx,dword ed_shift_pos
mov ebx,dword ed_shift_pos_old mov ebx,dword ed_shift_pos_old
mov dword ed_shift_pos_old,eax ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à  mov dword ed_shift_pos_old,eax ;¢­¥á¥¬ ­®¢®¥ §­ ç¥­¨¥ áâ à®© ¯®§¨æ¨¨ ªãàá®à 
;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­ëå ®¡« á⥩ ;¯à®¢¥àª  ¨ à¨á®¢ ­¨¥ § ªà è¥­­ëå ®¡« á⥩
cmp ecx,ebx ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤ cmp ecx,ebx ;¢ëïá­ï¥¬ ªã¤  ¡ë«® ¤¢¨¦¥­¨¥ ­  ®¤¨­ è £ ­ § ¤
je edit_box_mouse.m1_shem ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥ je edit_box_mouse.m1_shem ;¤¢¨¦¥­¨ï ­¥ ¡ë«® à ­¥¥
jb edit_box_mouse.msmaller ;¤¢¨¦¥­¨¥ ¡ë«® -> jb edit_box_mouse.msmaller ;¤¢¨¦¥­¨¥ ¡ë«® ->
cmp ebx,eax ;¤¢¨¦¥­¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤  ¤¢¨¦¥­¨¥ ¯à®¨á室¨â cmp ebx,eax ;¤¢¨¦¥­¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤  ¤¢¨¦¥­¨¥ ¯à®¨á室¨â
ja edit_box_mouse.m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥­¨¥ <- â® ­ã¦­® § ªà á¨âì ®¡« áâì ja edit_box_mouse.m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥­¨¥ <- â® ­ã¦­® § ªà á¨âì ®¡« áâì
@ -1124,7 +1103,7 @@ edit_box_mouse.msmaller:
call edit_box_key.sh_cl_ call edit_box_key.sh_cl_
jmp edit_box_mouse.mwigvag jmp edit_box_mouse.mwigvag
;alike = ;alike =
edit_box_mouse.m1_shem: edit_box_mouse.m1_shem:
mov ebp,shift_color mov ebp,shift_color
;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos ;¢å®¤­ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
mov ebx,ecx mov ebx,ecx
@ -1137,7 +1116,7 @@ edit_box_mouse.mwigvag:
; ret ; ret
edit_box_mouse.mleft: edit_box_mouse.mleft:
mov eax,ed_pos mov eax,ed_pos
cmp eax,0 cmp eax,0
jbe edit_box_mouse.mwigvag jbe edit_box_mouse.mwigvag
dec eax dec eax
call edit_box.check_offset call edit_box.check_offset
@ -1159,7 +1138,7 @@ edit_box_mouse.mright:
push eax push eax
call edit_box_key.sh_cl_ call edit_box_key.sh_cl_
pop eax pop eax
jmp edit_box_mouse.mdraw jmp edit_box_mouse.mdraw
} }
macro use_work_mouse macro use_work_mouse
@ -1175,7 +1154,7 @@ macro use_work_mouse
mov ebx,ed_top mov ebx,ed_top
cmp ax,bx cmp ax,bx
jl edit_box_mouse._blur;.mouse_end_no_focus jl edit_box_mouse._blur;.mouse_end_no_focus
add ebx,ed_height add ebx,ed_height
cmp ax,bx cmp ax,bx
jg edit_box_mouse._blur;.mouse_end_no_focus jg edit_box_mouse._blur;.mouse_end_no_focus
@ -1189,7 +1168,7 @@ macro use_work_mouse
add ebx,ed_width add ebx,ed_width
cmp ax,bx cmp ax,bx
jg edit_box_mouse._blur;.mouse_end_no_focus jg edit_box_mouse._blur;.mouse_end_no_focus
;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  --- ;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  ---
push eax push eax
@ -1219,10 +1198,10 @@ edit_box_mouse._mshift:
call edit_box_key.sh_cl_ call edit_box_key.sh_cl_
and word ed_flags,ed_shift_bac_cl and word ed_flags,ed_shift_bac_cl
pop eax pop eax
@@: @@:
test word ed_flags,ed_mouse_on test word ed_flags,ed_mouse_on
jne @f jne @f
mov dword ed_shift_pos,eax mov dword ed_shift_pos,eax
or word ed_flags,ed_mouse_on or word ed_flags,ed_mouse_on
mov dword ed_pos,eax mov dword ed_pos,eax
@ -1238,15 +1217,15 @@ edit_box_mouse._mshift:
bts word ed_flags,1 ;ãáâ ­®¢ª  䮪ãá  bts word ed_flags,1 ;ãáâ ­®¢ª  䮪ãá 
jmp edit_box_mouse.m_sh jmp edit_box_mouse.m_sh
@@: @@:
cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ­¥ ¨§¬¥­¨«¨áì
je edit_box.editbox_exit je edit_box.editbox_exit
mov ed_pos,eax mov ed_pos,eax
mov ebp,dword shift_color mov ebp,dword shift_color
mov ebx,dword ed_shift_pos mov ebx,dword ed_shift_pos
call edit_box_key.sh_cl_ call edit_box_key.sh_cl_
or word ed_flags,ed_mous_adn_b ;ãáâ ­®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on + or word ed_flags,ed_mous_adn_b ;ãáâ ­®¢¨¬ ¡¨â, çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
edit_box_mouse.m_sh: edit_box_mouse.m_sh:
call edit_box.draw_text call edit_box.draw_text
call edit_box.draw_cursor call edit_box.draw_cursor
;---------------------------------------------------------- ;----------------------------------------------------------
@ -1269,7 +1248,7 @@ edit_box_mouse.drc: call edit_box.draw_border
; Œ ªà®á ¢ë室  ; Œ ªà®á ¢ë室 
macro edit_ex macro edit_ex
{ {
popad popad
ret ret
} }
macro debug macro debug
@ -1300,23 +1279,23 @@ macro debug
macro debug_func macro debug_func
{ {
.str: .str:
mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«® mov ecx,0x0a ;§ ¤ ¥âáï á¨á⥬  áç¨á«¥­¨ï, ¨§¬¥­ïîâáï ॣ¨áâàë ebx,eax,ecx,edx, ¢å®¤­ë¥ ¯ à ¬¥âàë eax - ç¨á«®
à¥à¥¢®¤ ç¨á«  ¢ ASCII áâப㠢§®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­ï edi  ¤à¥á ªã¤  § ¯¨á뢠âì, ¡ã¤¥¬ áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®© ¥à¥¢®¤ ç¨á«  ¢ ASCII áâபã, ¢å®¤­ë¥ ¤ ­­ë¥ ecx=á¨á⥬  áç¨á«¥­¨ï, edi  ¤à¥á ªã¤  ¡ã¤¥¬ § ¯¨á뢠âì áâபã, ¯à¨ç¥¬ ª®­¥æ ¯¥à¥¬¥­­®©
cmp eax,ecx ;áà ¢­¨âì ¥á«¨ ¢ eax ¬¥­ìè¥ ç¥¬ ¢ ecx â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax cmp eax,ecx ;áà ¢­¨âì, ¥á«¨ ¢ eax ¬¥­ìè¥, 祬 ¢ ecx, â® ¯¥à¥©â¨ ­  @@-1 â.¥. ­  pop eax
jb @f jb @f
xor edx,edx ;®ç¨áâ¨âì edx xor edx,edx ;®ç¨áâ¨âì edx
div ecx ;à §¤¥«¨âì - ®áâ â®ª ¢ edx div ecx ;à §¤¥«¨âì - ®áâ â®ª ¢ edx
push edx ;¯®«®¦¨âì ¢ á⥪ push edx ;¯®«®¦¨âì ¢ á⥪
;dec edi ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨ ;dec edi ;ᬥ饭¨¥ ­¥®¡å®¤¨¬®¥ ¤«ï § ¯¨á¨ á ª®­æ  áâப¨
call .str;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â  ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx call .str ;¯¥à¥©â¨ ­  á ¬ã ᥡï â.¥. ¢ë§¢ âì á ¬ã á¥¡ï ¨ â ª ¤® ⮣® ¬®¬¥­â , ¯®ª  ¢ eax ­¥ áâ ­¥â ¬¥­ìè¥ ç¥¬ ¢ ecx
pop eax pop eax
@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï)) @@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al, 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­¨ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
;sbb al,$69 ;- ç¥áâ­® ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â ;sbb al,$69 ;- ç¥áâ­®, ¤ ­­ ï ¨­áâàãªæ¨ï ¬¥­ï § áâ ¢«ï¥â § ¤ã¬ âìáï â.¥. ï ­¥ §­ î ª ª íâ® à ¡®â ¥â
;das ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥) ;das ;¯®á«¥ ¤ ­­®© ª®¬ ­¤ë ª ª ¡ë ¯à®¨á室¨â 㬥­ì襭¨¥ al ­  66h (¢ ª­¨£¥ ­ ¯¨á ­® ¤à㣮¥)
or al,0x30 ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥ or al,0x30 ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥, 祬 ¤¢¥ ¢ëè¥
stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祩ªã ¯ ¬ï⨠es:edi
ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï ret ;¢¥à­ãâìáï ®ç¥­ì ¨­â¥à¥á­ë© 室, â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âáï ª®«-¢® ¢ë§®¢®¢, â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
} }
ed_struc_size=76 ed_struc_size=76