forked from KolibriOS/kolibrios
Upgrade macros
git-svn-id: svn://kolibrios.org@507 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
56299dc76d
commit
6bca21ea5f
@ -45,6 +45,10 @@ pusha
|
|||||||
call .draw_cursor
|
call .draw_cursor
|
||||||
@@:
|
@@:
|
||||||
call .draw_text
|
call .draw_text
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;Ž¡é¨© ¢ë室 ¨§ editbox ¤«ï ¢á¥å äãªæ¨© ¨ ¯®áâ ®¡à ¡®â稪®¢
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
.editbox_exit:
|
||||||
edit_ex
|
edit_ex
|
||||||
;==========================================================
|
;==========================================================
|
||||||
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
;=== ®¡à ¡®âª ª« ¢¨ âãàë =================================
|
||||||
@ -52,7 +56,7 @@ edit_ex
|
|||||||
.key:
|
.key:
|
||||||
pusha
|
pusha
|
||||||
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
test word ed_flags,ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
||||||
je .no_figure
|
je .editbox_exit
|
||||||
;<3B>஢¥àª ¦ â shift ?
|
;<3B>஢¥àª ¦ â shift ?
|
||||||
call .check_shift
|
call .check_shift
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@ -68,193 +72,18 @@ use_key_no_process up,down,esc
|
|||||||
;<3B>஢¥àª ãáâ ®¢«¥ «¨ ä« £ ¯à¨ ª®â®à®¬ 㦮 ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ 㦮¬ ¡®ªá¥ ¥á«¨ â ª®©¥®¡å®¤¨¬®á⨠¥â 㦮 § ª®¬¥â¨à®¢ âì ¬ ªà®á
|
;<3B>஢¥àª ãáâ ®¢«¥ «¨ ä« £ ¯à¨ ª®â®à®¬ 㦮 ¢ë¢®¤¨âì ⮫쪮 æ¨äàë ¢ 㦮¬ ¡®ªá¥ ¥á«¨ â ª®©¥®¡å®¤¨¬®á⨠¥â 㦮 § ª®¬¥â¨à®¢ âì ¬ ªà®á
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
use_key_figures_only
|
use_key_figures_only
|
||||||
;¯à®¢¥àª shift
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@@: test word ed_flags,ed_shift_on
|
;¯à®¢¥àª shift ¡ë« «¨ ¦ â
|
||||||
je @f
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;‚å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos
|
are_key_shift_press
|
||||||
push eax
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
mov edx,ed_size
|
; ¯à®¢¥à塞, 室¨âáï «¨ ªãàá®à ¢ ª®æ¥ + ¤ «ì¥©è ï ®¡à ¡®âª
|
||||||
mov ecx,ed_pos
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
pusha
|
are_key_cur_end
|
||||||
;clear
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; mov ebp,edx ;ed_size
|
;Ž¡à ¡®âª ª« ¢¨è insert,delete.backspase,home,end,left,right
|
||||||
; call .clear_bg
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
mov ebp,ed_color
|
use_work_key
|
||||||
mov ebx,dword ed_shift_pos
|
|
||||||
call .sh_cl_
|
|
||||||
|
|
||||||
.sh_nxt:popa
|
|
||||||
call .del_char
|
|
||||||
;;;;
|
|
||||||
mov eax,dword ed_shift_pos
|
|
||||||
mov ebx,ed_size
|
|
||||||
sub ebx,eax
|
|
||||||
mov ed_size,ebx
|
|
||||||
pop eax
|
|
||||||
; ¯à®¢¥à塞, 室¨âáï «¨ ªãàá®à ¢ ª®æ¥
|
|
||||||
@@: mov ecx,ed_size
|
|
||||||
mov edx, ed_max
|
|
||||||
test word ed_flags,ed_insert
|
|
||||||
jne @f
|
|
||||||
cmp ecx,edx
|
|
||||||
jae .no_figure
|
|
||||||
@@: mov ebx, ed_pos
|
|
||||||
cmp ebx,edx
|
|
||||||
jl @f ; ¥á«¨ ¬¥ìè¥ ¨«¨ à ¢®
|
|
||||||
.no_figure:
|
|
||||||
edit_ex
|
|
||||||
.insert: test word ed_flags,ed_insert ;not word ed_insert
|
|
||||||
je .insert_1
|
|
||||||
and word ed_flags,ed_insert_cl
|
|
||||||
jmp .no_figure
|
|
||||||
.insert_1:
|
|
||||||
or word ed_flags,ed_insert
|
|
||||||
jmp .no_figure
|
|
||||||
.ins_v:
|
|
||||||
dec dword [ebp+42];ed_size ;processing is insert
|
|
||||||
sub esi,ecx
|
|
||||||
add esi,ebx
|
|
||||||
mov edi,esi
|
|
||||||
;clear
|
|
||||||
pusha
|
|
||||||
mov edi,ebp
|
|
||||||
mov ebp,ed_pos
|
|
||||||
call .clear_bg
|
|
||||||
popa
|
|
||||||
jmp .In_k
|
|
||||||
@@: ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à ¢¯à ¢®
|
|
||||||
mov ecx,ed_size
|
|
||||||
push edi eax
|
|
||||||
mov ebp,edi
|
|
||||||
mov esi,ed_text ; “ª § â¥«ì ¡ãä¥à
|
|
||||||
;<3B>㤥¬ à ¡®â âì á® áâப®©
|
|
||||||
add esi,ecx ;add ed_size ¤®¡ ¢¨¬ max size
|
|
||||||
mov edi,esi
|
|
||||||
|
|
||||||
cmp ecx,ebx ;…᫨ ã á ¯®§¨æ¨ï ªãàá®à = ⥪ã饬ã à §¬¥àã ¯¥ç â ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®æ¥
|
|
||||||
je .In_k
|
|
||||||
|
|
||||||
test word [ebp+40],ed_insert ;IF insert is enable â.ª. edi ¨§¬¥¥ ¤à¥á㥬 ç¥à¥§ ebp
|
|
||||||
jne .ins_v
|
|
||||||
;clear
|
|
||||||
pusha
|
|
||||||
mov edi,ebp
|
|
||||||
mov ebp,ed_size
|
|
||||||
call .clear_bg
|
|
||||||
popa
|
|
||||||
sub ecx,ebx ;<3B> ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥¨ï.
|
|
||||||
inc edi ;‘¬¥á⨬ è¨ á¨¬¢®«ë ¢ ¯à ¢®
|
|
||||||
std
|
|
||||||
inc ecx
|
|
||||||
@@:
|
|
||||||
;--------
|
|
||||||
lodsb
|
|
||||||
stosb
|
|
||||||
;--------
|
|
||||||
loop @b
|
|
||||||
.In_k: cld
|
|
||||||
pop eax
|
|
||||||
mov al,ah
|
|
||||||
stosb
|
|
||||||
pop edi
|
|
||||||
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
|
|
||||||
; 㢥«¨ç¨¢ ¥¬ § 票¥ à §¬¥à ¨ ¯®§¨æ¨¨
|
|
||||||
inc dword ed_size
|
|
||||||
inc dword ed_pos
|
|
||||||
call .draw_all2
|
|
||||||
jmp .shift;.draw_cursor_text
|
|
||||||
.delete:
|
|
||||||
mov edx,ed_size
|
|
||||||
mov ecx,ed_pos
|
|
||||||
cmp edx,ecx
|
|
||||||
jg .bac_del
|
|
||||||
test word ed_flags,ed_shift_on
|
|
||||||
jne .del_bac
|
|
||||||
edit_ex
|
|
||||||
.bac_del:
|
|
||||||
call .del_char
|
|
||||||
jmp .draw_all
|
|
||||||
|
|
||||||
;--- ¦ â ª« ¢¨è backspace ---
|
|
||||||
.backspace:
|
|
||||||
; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
|
|
||||||
mov ecx,ed_pos
|
|
||||||
test ecx,ecx
|
|
||||||
jnz .del_bac
|
|
||||||
test word ed_flags,ed_shift_on
|
|
||||||
jne .bac_del
|
|
||||||
|
|
||||||
edit_ex
|
|
||||||
.del_bac:
|
|
||||||
mov edx,ed_size
|
|
||||||
cmp edx,ecx ;if ed_pos=ed_size
|
|
||||||
je @f
|
|
||||||
dec ecx
|
|
||||||
call .del_char
|
|
||||||
@@: test word ed_flags,ed_shift_on
|
|
||||||
jne .bac_del
|
|
||||||
dec dword ed_pos
|
|
||||||
.draw_all:
|
|
||||||
push .shift;.draw_cursor_text;eax
|
|
||||||
|
|
||||||
test word ed_flags,ed_shift_on
|
|
||||||
je @f
|
|
||||||
mov eax,dword ed_shift_pos
|
|
||||||
mov ebx,ed_size
|
|
||||||
sub ebx,eax
|
|
||||||
mov ed_size,ebx
|
|
||||||
|
|
||||||
mov ebp,ed_color
|
|
||||||
call .clear_cursor
|
|
||||||
call .check_offset
|
|
||||||
call .draw_bg
|
|
||||||
ret
|
|
||||||
@@: dec dword ed_size
|
|
||||||
|
|
||||||
.draw_all2:
|
|
||||||
and word ed_flags,ed_shift_cl
|
|
||||||
mov ebp,ed_color
|
|
||||||
call .clear_cursor
|
|
||||||
call .check_offset
|
|
||||||
mov ebp,ed_size
|
|
||||||
call .clear_bg
|
|
||||||
ret
|
|
||||||
;--- ¦ â ª« ¢¨è left ---
|
|
||||||
.left: mov ebx,ed_pos
|
|
||||||
test ebx,ebx
|
|
||||||
jz .sh_st_of
|
|
||||||
or word ed_flags,ed_left_fl
|
|
||||||
call .sh_first_sh
|
|
||||||
dec dword ed_pos
|
|
||||||
call .sh_enable
|
|
||||||
jmp .draw_cursor_text
|
|
||||||
;--- ¦ â ª« ¢¨è right ---
|
|
||||||
.right: mov ebx,ed_pos
|
|
||||||
cmp ebx,ed_size
|
|
||||||
je .sh_st_of
|
|
||||||
and word ed_flags,ed_right_fl
|
|
||||||
call .sh_first_sh
|
|
||||||
inc dword ed_pos
|
|
||||||
call .sh_enable
|
|
||||||
jmp .draw_cursor_text
|
|
||||||
.home:
|
|
||||||
mov ebx,ed_pos
|
|
||||||
test ebx,ebx
|
|
||||||
jz .sh_st_of
|
|
||||||
call .sh_first_sh
|
|
||||||
xor eax,eax
|
|
||||||
mov ed_pos,eax
|
|
||||||
call .sh_home_end
|
|
||||||
jmp .draw_cursor_text
|
|
||||||
.end:
|
|
||||||
mov ebx,ed_pos
|
|
||||||
cmp ebx,dword ed_size
|
|
||||||
je .sh_st_of
|
|
||||||
call .sh_first_sh
|
|
||||||
mov eax,ed_size
|
|
||||||
mov ed_pos,eax
|
|
||||||
call .sh_home_end
|
|
||||||
jmp .draw_cursor_text
|
|
||||||
;==========================================================
|
;==========================================================
|
||||||
;=== ®¡à ¡®âª ¬ëè¨ =======================================
|
;=== ®¡à ¡®âª ¬ëè¨ =======================================
|
||||||
;==========================================================
|
;==========================================================
|
||||||
@ -273,7 +102,7 @@ pusha
|
|||||||
and word ed_flags,ed_mouse_on_off
|
and word ed_flags,ed_mouse_on_off
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov dword [mouse_flag],ebx
|
mov dword [mouse_flag],ebx
|
||||||
edit_ex
|
jmp .editbox_exit
|
||||||
.mouse_left_button:
|
.mouse_left_button:
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- ¡«®ª¨à®¢ª ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ¨¨ ¨å ªãàá®à
|
;--- ¡«®ª¨à®¢ª ®â 䮪ãá¨à®¢ª¨ ¢ ¤àã£¨å ¡®ªá å ¯à¨ ¯®¯ ¤ ¨¨ ¨å ªãàá®à
|
||||||
@ -288,110 +117,10 @@ edit_ex
|
|||||||
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà
|
;--- ¯®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® 0 â.¥ ¢á¥© ®¡« á⨠íªà
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@@: mcall 37,0
|
@@: mcall 37,0
|
||||||
;----------------------------------------------------------
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;--- € ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë?
|
;”ãªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã票¥ ª®®à¤¨ â ¨ ¯à®¢¥àª ¨å + ¢ë¤¥«¥¨ï
|
||||||
;----------------------------------------------------------
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
test word ed_flags,ed_mouse_on
|
use_work_mause scr_h,scr_w
|
||||||
jne .mouse_wigwag
|
|
||||||
;----------------------------------------------------------
|
|
||||||
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
|
|
||||||
;----------------------------------------------------------
|
|
||||||
mov ebx,[procinfo.box.top]
|
|
||||||
add ebx,ed_top
|
|
||||||
if scr_h eq
|
|
||||||
else
|
|
||||||
add ebx,scr_h
|
|
||||||
end if
|
|
||||||
cmp ax,bx
|
|
||||||
jl ._blur;.mouse_end_no_focus
|
|
||||||
|
|
||||||
add ebx,ed_height
|
|
||||||
cmp ax,bx
|
|
||||||
jg ._blur;.mouse_end_no_focus
|
|
||||||
|
|
||||||
shr eax,16
|
|
||||||
|
|
||||||
mov ebx,[procinfo.box.left]
|
|
||||||
add ebx,ed_left
|
|
||||||
if scr_w eq
|
|
||||||
else
|
|
||||||
add ebx,scr_w
|
|
||||||
end if
|
|
||||||
cmp ax,bx
|
|
||||||
jl ._blur;.mouse_end_no_focus
|
|
||||||
|
|
||||||
add ebx,ed_width
|
|
||||||
cmp ax,bx
|
|
||||||
jg ._blur;.mouse_end_no_focus
|
|
||||||
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à ---
|
|
||||||
push eax
|
|
||||||
mov ebp,ed_color
|
|
||||||
call .clear_cursor
|
|
||||||
pop eax
|
|
||||||
._mvpos:
|
|
||||||
mov ebx,dword [procinfo.box.left]
|
|
||||||
xor edx,edx
|
|
||||||
sub eax,ed_left
|
|
||||||
sub eax,ebx
|
|
||||||
if scr_w eq
|
|
||||||
else
|
|
||||||
add ebx,scr_w
|
|
||||||
sub eax,2
|
|
||||||
end if
|
|
||||||
mov ebx,6
|
|
||||||
div bx
|
|
||||||
add eax,ed_offset
|
|
||||||
cmp eax,ed_size
|
|
||||||
jna ._mshift
|
|
||||||
mov eax,ed_size
|
|
||||||
._mshift:
|
|
||||||
;;;;;;;
|
|
||||||
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift
|
|
||||||
;;;;;;;
|
|
||||||
test word ed_flags,ed_shift_bac
|
|
||||||
je @f
|
|
||||||
mov ebp,dword ed_color
|
|
||||||
mov ebx,dword ed_shift_pos
|
|
||||||
push eax
|
|
||||||
call .sh_cl_
|
|
||||||
and word ed_flags,ed_shift_bac_cl
|
|
||||||
pop eax
|
|
||||||
@@:
|
|
||||||
test word ed_flags,ed_mouse_on
|
|
||||||
jne @f
|
|
||||||
|
|
||||||
mov dword ed_shift_pos,eax
|
|
||||||
or word ed_flags,ed_mouse_on
|
|
||||||
mov dword ed_pos,eax
|
|
||||||
mov dword [mouse_flag],edi ;ãáâ ®¢¨¬ ¨¤¥â¨ä¨ª â®à
|
|
||||||
bts word ed_flags,1 ;ãáâ ®¢ª 䮪ãá
|
|
||||||
jmp .m_sh
|
|
||||||
@@:
|
|
||||||
cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ¥ ¨§¬¥¨«¨áì
|
|
||||||
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 ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
|
|
||||||
.m_sh: call .draw_text
|
|
||||||
call .draw_cursor
|
|
||||||
;----------------------------------------------------------
|
|
||||||
;--- ¯à®æ¥¤ãà ãáâ ®¢ª¨ 䮪ãá ---------------------------
|
|
||||||
;----------------------------------------------------------
|
|
||||||
jmp .drc
|
|
||||||
._blur:
|
|
||||||
test word ed_flags,ed_always_focus
|
|
||||||
jne .mouse_ex
|
|
||||||
btr word ed_flags,1 ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
|
||||||
jnc .mouse_ex
|
|
||||||
|
|
||||||
mov ebp,ed_color
|
|
||||||
call .clear_cursor
|
|
||||||
.drc: call .draw_border
|
|
||||||
.mouse_ex:
|
|
||||||
|
|
||||||
edit_ex
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;Ž¡é¨¥ äãªæ¨¨ ®¡à ¡®âª¨
|
;Ž¡é¨¥ äãªæ¨¨ ®¡à ¡®âª¨
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -400,118 +129,14 @@ use_general_func
|
|||||||
;”ãªæ¨¨ ¤«ï à ¡®âë á key
|
;”ãªæ¨¨ ¤«ï à ¡®âë á key
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
use_key_func
|
use_key_func
|
||||||
;----------------------------------------------------------
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;--- ¯à®æ¥¤ãà à §¬ë¢ ¨ï 䮪ãá --------------------------
|
;”ãªæ¨¨ ¤«ï à ¡®âë á mouse
|
||||||
;----------------------------------------------------------
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;.blur:
|
use_mouse_func scr_w
|
||||||
;pusha
|
|
||||||
;._blur:
|
|
||||||
;btr ed_flags,1
|
|
||||||
;jnc @f
|
|
||||||
;call .draw_border
|
|
||||||
;call .clear_cursor
|
|
||||||
;@@:
|
|
||||||
;edit_ex
|
|
||||||
|
|
||||||
;----------------------------------------------------------
|
|
||||||
;--- Ž¡à ¡®âª .mouse_wigwag
|
|
||||||
;----------------------------------------------------------
|
|
||||||
.mouse_wigwag:
|
|
||||||
shr eax,16
|
|
||||||
or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
|
|
||||||
;;;;;;;;;;;;;;;;;;
|
|
||||||
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox
|
|
||||||
;;;;;;;;;;;;;;;;;;
|
|
||||||
mov ebx,[procinfo.box.left]
|
|
||||||
add ebx,ed_left
|
|
||||||
if scr_w eq
|
|
||||||
else
|
|
||||||
add ebx,scr_w
|
|
||||||
end if
|
|
||||||
cmp eax,ebx
|
|
||||||
jb .mleft
|
|
||||||
|
|
||||||
add ebx,ed_width
|
|
||||||
cmp eax,ebx
|
|
||||||
ja .mright
|
|
||||||
|
|
||||||
sub ebx,ed_width
|
|
||||||
|
|
||||||
xor edx,edx
|
|
||||||
sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨ âë ¤® editbox ¯® ®á¨ å
|
|
||||||
mov ebx,6
|
|
||||||
div ebx
|
|
||||||
;;;;;;;;;;;;;;;;;;
|
|
||||||
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
|
|
||||||
;;;;;;;;;;;;;;;;;;
|
|
||||||
;<3B>®«ã稫¨ ª®®à¤¨ âë ¢ eax ¬ë誨, â.¥. ªã¤ ® ¯¥à¥¬¥á⨫ áì
|
|
||||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
|
||||||
add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饨¥
|
|
||||||
cmp eax,dword ed_size ;¥á«¨ ¢ë諨 § ¯à¥¤¥«ë, â® ¨ç¥£® ¥ ¤¥« âì
|
|
||||||
ja .mwigvag
|
|
||||||
.mdraw:
|
|
||||||
mov dword ed_pos,eax ;á®åà ¨¬ ®¢®¥ § 票¥
|
|
||||||
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
|
||||||
mov ecx,dword ed_shift_pos
|
|
||||||
mov ebx,dword ed_shift_pos_old
|
|
||||||
mov dword ed_shift_pos_old,eax ;¢¥á¥¬ ®¢®¥ § 票¥ áâ ன ¯®§¨æ¨¨ ªãàá®à
|
|
||||||
;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩
|
|
||||||
cmp ecx,ebx ;¢ëïá塞 ªã¤ ¡ë«® ¤¢¨¦¥¨¥ ®¤¨ è £ § ¤
|
|
||||||
je .m1_shem ;¤¢¨¦¥¨ï ¥ ¡ë«® à ¥¥
|
|
||||||
jb .msmaller ;¤¢¨¦¥¨¥ ¡ë«® ->
|
|
||||||
cmp ebx,eax ;¤¢¨¦¥¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤ ¤¢¨¦¥¨¥ ¯à®¨á室¨â
|
|
||||||
ja .m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥¨¥ <- ⮠㦮 § ªà á¨âì ®¡« áâì
|
|
||||||
je .mwigvag ;¥á«¨ ¨§¬¥¥¨ï ¥ ¡ë«®, â® ¨ç¥£® ¥ ¤¥« âì
|
|
||||||
mov ebp,ed_color ;âãâ 㦮 ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old
|
|
||||||
;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
|
|
||||||
call .sh_cl_
|
|
||||||
jmp .mwigvag
|
|
||||||
.msmaller:
|
|
||||||
cmp ebx,eax
|
|
||||||
jb .m1_shem
|
|
||||||
mov ebp,ed_color
|
|
||||||
;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
|
|
||||||
call .sh_cl_
|
|
||||||
jmp .mwigvag
|
|
||||||
;alike =
|
|
||||||
.m1_shem:
|
|
||||||
mov ebp,shift_color
|
|
||||||
;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
|
|
||||||
mov ebx,ecx
|
|
||||||
call .sh_cl_
|
|
||||||
jmp .mwigvag
|
|
||||||
.mwigvag:
|
|
||||||
and word ed_flags,ed_shift_mcl
|
|
||||||
jmp .draw_cursor_text
|
|
||||||
; popa
|
|
||||||
; ret
|
|
||||||
.mleft:
|
|
||||||
mov eax,ed_pos
|
|
||||||
cmp eax,0
|
|
||||||
jbe .mwigvag
|
|
||||||
dec eax
|
|
||||||
call .check_offset
|
|
||||||
push eax
|
|
||||||
mov ebx,ed_shift_pos
|
|
||||||
mov ebp,shift_color
|
|
||||||
call .sh_cl_
|
|
||||||
pop eax
|
|
||||||
jmp .mdraw
|
|
||||||
.mright:
|
|
||||||
mov eax,ed_pos
|
|
||||||
mov ebx,ed_size
|
|
||||||
cmp eax,ebx
|
|
||||||
jae .mwigvag
|
|
||||||
inc eax
|
|
||||||
call .check_offset
|
|
||||||
mov ebx,ed_shift_pos
|
|
||||||
mov ebp,shift_color
|
|
||||||
push eax
|
|
||||||
call .sh_cl_
|
|
||||||
pop eax
|
|
||||||
jmp .mdraw
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;Bit mask from editbox
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
ed_figure_only= 1000000000000000b ;®¤¨ ᨬ¢®«ë
|
ed_figure_only= 1000000000000000b ;®¤¨ ᨬ¢®«ë
|
||||||
ed_always_focus= 100000000000000b
|
ed_always_focus= 100000000000000b
|
||||||
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥¨ï
|
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥¨ï
|
||||||
|
@ -6,7 +6,8 @@ You bunny wrote .....
|
|||||||
Это не много фольклера, связанное, с тем, что написание программ длинные и муторный процесс, и он не обходиться без выражений подобного содержания, но не попадающего в коментарии и основной код.....
|
Это не много фольклера, связанное, с тем, что написание программ длинные и муторный процесс, и он не обходиться без выражений подобного содержания, но не попадающего в коментарии и основной код.....
|
||||||
|
|
||||||
Теплов Алексей Юрьевич aka <Lrz>
|
Теплов Алексей Юрьевич aka <Lrz>
|
||||||
; <Lrz> 14.05.2007 Использование макросов,удобочитаемось программы
|
; <Lrz> 18.05.2007 Улучшение понимания работы программы за счет вынеса основных функций в отдельные макросы
|
||||||
|
; <Lrz> 14.05.2007 Использование макросов,удобочитаемось программы использование макроса mcall для вызова сис. функций
|
||||||
; <Lrz> 09.05.2007 Общая доработка макросов,замена несколько меток, миграция кода в edit_box.mac
|
; <Lrz> 09.05.2007 Общая доработка макросов,замена несколько меток, миграция кода в edit_box.mac
|
||||||
; <Lrz> 19.04.2007 Общая доработка макросов
|
; <Lrz> 19.04.2007 Общая доработка макросов
|
||||||
; <Lrz> 14.04.2007 Исправлено управление мышкой, при удалении последнего символа в буфере пишеться 0 (спасибо Mario79)
|
; <Lrz> 14.04.2007 Исправлено управление мышкой, при удалении последнего символа в буфере пишеться 0 (спасибо Mario79)
|
||||||
|
@ -593,17 +593,17 @@ macro use_key_no_process up,down,esc
|
|||||||
if up eq
|
if up eq
|
||||||
else
|
else
|
||||||
cmp ah,177
|
cmp ah,177
|
||||||
jz .no_figure
|
jz .editbox_exit
|
||||||
end if
|
end if
|
||||||
if down eq
|
if down eq
|
||||||
else
|
else
|
||||||
cmp ah,178
|
cmp ah,178
|
||||||
jz .no_figure
|
jz .editbox_exit
|
||||||
end if
|
end if
|
||||||
if esc eq
|
if esc eq
|
||||||
else
|
else
|
||||||
cmp ah,27 ;ESC - ª« ¢¨è ))
|
cmp ah,27 ;ESC - ª« ¢¨è ))
|
||||||
jz .no_figure
|
jz .editbox_exit
|
||||||
end if
|
end if
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -612,15 +612,416 @@ 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 .no_figure
|
jb .editbox_exit
|
||||||
cmp ah,'9'
|
cmp ah,'9'
|
||||||
ja .no_figure
|
ja .editbox_exit
|
||||||
|
@@:
|
||||||
|
}
|
||||||
|
macro are_key_shift_press
|
||||||
|
{
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
je @f
|
||||||
|
;‚å®¤ë¥ ¤ ë¥ edx=ed_size;ecx=ed_pos
|
||||||
|
push eax
|
||||||
|
mov edx,ed_size
|
||||||
|
mov ecx,ed_pos
|
||||||
|
pusha
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
mov ebp,ed_color
|
||||||
|
mov ebx,dword ed_shift_pos
|
||||||
|
call .sh_cl_
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
popa
|
||||||
|
call .del_char
|
||||||
|
;;;;
|
||||||
|
mov eax,dword ed_shift_pos
|
||||||
|
mov ebx,ed_size
|
||||||
|
sub ebx,eax
|
||||||
|
mov ed_size,ebx
|
||||||
|
pop eax
|
||||||
|
@@:
|
||||||
|
}
|
||||||
|
macro are_key_cur_end
|
||||||
|
{
|
||||||
|
mov ecx,ed_size
|
||||||
|
mov edx, ed_max
|
||||||
|
test word ed_flags,ed_insert
|
||||||
|
jne @f
|
||||||
|
cmp ecx,edx
|
||||||
|
jae .editbox_exit
|
||||||
|
@@: mov ebx, ed_pos
|
||||||
|
cmp ebx,edx
|
||||||
|
jl @f ; ¥á«¨ ¬¥ìè¥ ¨«¨ à ¢®
|
||||||
|
jmp .editbox_exit
|
||||||
|
|
||||||
|
@@: ; ᤢ¨£ ¥¬ ᨬ¢®«ë ¯®á«¥ ªãàá®à ¢¯à ¢®
|
||||||
|
mov ecx,ed_size
|
||||||
|
push edi eax
|
||||||
|
mov ebp,edi
|
||||||
|
mov esi,ed_text ; “ª § â¥«ì ¡ãä¥à
|
||||||
|
;<3B>㤥¬ à ¡®â âì á® áâப®©
|
||||||
|
add esi,ecx ;add ed_size ¤®¡ ¢¨¬ max size
|
||||||
|
mov edi,esi
|
||||||
|
|
||||||
|
cmp ecx,ebx ;…᫨ ã á ¯®§¨æ¨ï ªãàá®à = ⥪ã饬ã à §¬¥àã ¯¥ç â ëå ᨬ¢®«®¢ â.¥. ªãàá®à á⮨⠢ ª®æ¥
|
||||||
|
je .In_k
|
||||||
|
|
||||||
|
test word [ebp+40],ed_insert ;IF insert is enable â.ª. edi ¨§¬¥¥ ¤à¥á㥬 ç¥à¥§ ebp
|
||||||
|
jne .ins_v
|
||||||
|
;clear
|
||||||
|
pusha
|
||||||
|
mov edi,ebp
|
||||||
|
mov ebp,ed_size
|
||||||
|
call .clear_bg
|
||||||
|
popa
|
||||||
|
sub ecx,ebx ;<3B> ©¤¥¬ ª®«-¢® ᨬ¢®«®¢ ¤«ï ¯¥à¥¤¢¨¦¥¨ï.
|
||||||
|
inc edi ;‘¬¥á⨬ è¨ á¨¬¢®«ë ¢ ¯à ¢®
|
||||||
|
std
|
||||||
|
inc ecx
|
||||||
|
@@:
|
||||||
|
;--------
|
||||||
|
lodsb
|
||||||
|
stosb
|
||||||
|
;--------
|
||||||
|
loop @b
|
||||||
|
.In_k: cld
|
||||||
|
pop eax
|
||||||
|
mov al,ah
|
||||||
|
stosb
|
||||||
|
pop edi
|
||||||
|
; ¢áâ ¢«ï¥¬ ª®¤ ª« ¢¨è¨ â㤠, £¤¥ ªãàá®à
|
||||||
|
; 㢥«¨ç¨¢ ¥¬ § 票¥ à §¬¥à ¨ ¯®§¨æ¨¨
|
||||||
|
inc dword ed_size
|
||||||
|
inc dword ed_pos
|
||||||
|
call .draw_all2
|
||||||
|
jmp .shift
|
||||||
|
}
|
||||||
|
macro use_work_key
|
||||||
|
{
|
||||||
|
.insert: test word ed_flags,ed_insert ;not word ed_insert
|
||||||
|
je @f
|
||||||
|
and word ed_flags,ed_insert_cl
|
||||||
|
jmp .editbox_exit
|
||||||
|
@@:
|
||||||
|
or word ed_flags,ed_insert
|
||||||
|
jmp .editbox_exit
|
||||||
|
.ins_v:
|
||||||
|
dec dword [ebp+42];ed_size ;processing is insert
|
||||||
|
sub esi,ecx
|
||||||
|
add esi,ebx
|
||||||
|
mov edi,esi
|
||||||
|
;clear
|
||||||
|
pusha
|
||||||
|
mov edi,ebp
|
||||||
|
mov ebp,ed_pos
|
||||||
|
call .clear_bg
|
||||||
|
popa
|
||||||
|
jmp .In_k
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
.delete:
|
||||||
|
mov edx,ed_size
|
||||||
|
mov ecx,ed_pos
|
||||||
|
cmp edx,ecx
|
||||||
|
jg .bac_del
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
jne .del_bac
|
||||||
|
edit_ex
|
||||||
|
.bac_del:
|
||||||
|
call .del_char
|
||||||
|
jmp .draw_all
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;--- ¦ â ª« ¢¨è backspace ---
|
||||||
|
.backspace:
|
||||||
|
; ¯à®¢¥à塞, ªãàá®à ã «¥¢®£® ªà ï ?
|
||||||
|
mov ecx,ed_pos
|
||||||
|
test ecx,ecx
|
||||||
|
jnz .del_bac
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
jne .bac_del
|
||||||
|
|
||||||
|
edit_ex
|
||||||
|
.del_bac:
|
||||||
|
mov edx,ed_size
|
||||||
|
cmp edx,ecx ;if ed_pos=ed_size
|
||||||
|
je @f
|
||||||
|
dec ecx
|
||||||
|
call .del_char
|
||||||
|
@@: test word ed_flags,ed_shift_on
|
||||||
|
jne .bac_del
|
||||||
|
dec dword ed_pos
|
||||||
|
.draw_all:
|
||||||
|
push .shift;.draw_cursor_text;eax
|
||||||
|
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
je @f
|
||||||
|
mov eax,dword ed_shift_pos
|
||||||
|
mov ebx,ed_size
|
||||||
|
sub ebx,eax
|
||||||
|
mov ed_size,ebx
|
||||||
|
|
||||||
|
mov ebp,ed_color
|
||||||
|
call .clear_cursor
|
||||||
|
call .check_offset
|
||||||
|
call .draw_bg
|
||||||
|
ret
|
||||||
|
@@: dec dword ed_size
|
||||||
|
|
||||||
|
.draw_all2:
|
||||||
|
and word ed_flags,ed_shift_cl
|
||||||
|
mov ebp,ed_color
|
||||||
|
call .clear_cursor
|
||||||
|
call .check_offset
|
||||||
|
mov ebp,ed_size
|
||||||
|
call .clear_bg
|
||||||
|
ret
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;--- ¦ â ª« ¢¨è left ---
|
||||||
|
.left: mov ebx,ed_pos
|
||||||
|
test ebx,ebx
|
||||||
|
jz .sh_st_of
|
||||||
|
or word ed_flags,ed_left_fl
|
||||||
|
call .sh_first_sh
|
||||||
|
dec dword ed_pos
|
||||||
|
call .sh_enable
|
||||||
|
jmp .draw_cursor_text
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;--- ¦ â ª« ¢¨è right ---
|
||||||
|
.right: mov ebx,ed_pos
|
||||||
|
cmp ebx,ed_size
|
||||||
|
je .sh_st_of
|
||||||
|
and word ed_flags,ed_right_fl
|
||||||
|
call .sh_first_sh
|
||||||
|
inc dword ed_pos
|
||||||
|
call .sh_enable
|
||||||
|
jmp .draw_cursor_text
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
.home:
|
||||||
|
mov ebx,ed_pos
|
||||||
|
test ebx,ebx
|
||||||
|
jz .sh_st_of
|
||||||
|
call .sh_first_sh
|
||||||
|
xor eax,eax
|
||||||
|
mov ed_pos,eax
|
||||||
|
call .sh_home_end
|
||||||
|
jmp .draw_cursor_text
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
.end:
|
||||||
|
mov ebx,ed_pos
|
||||||
|
cmp ebx,dword ed_size
|
||||||
|
je .sh_st_of
|
||||||
|
call .sh_first_sh
|
||||||
|
mov eax,ed_size
|
||||||
|
mov ed_pos,eax
|
||||||
|
call .sh_home_end
|
||||||
|
jmp .draw_cursor_text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro use_mouse_func scr_w
|
||||||
|
{
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- Ž¡à ¡®âª .mouse_wigwag
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.mouse_wigwag:
|
||||||
|
shr eax,16
|
||||||
|
or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
|
||||||
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ª®£¤ ¯à®¨á室¨â ¢ë室 § ¯à¥¤¥«ë editbox
|
||||||
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
mov ebx,[procinfo.box.left]
|
||||||
|
add ebx,ed_left
|
||||||
|
if scr_w eq
|
||||||
|
else
|
||||||
|
add ebx,dword scr_w
|
||||||
|
end if
|
||||||
|
cmp eax,ebx
|
||||||
|
jb .mleft
|
||||||
|
|
||||||
|
add ebx,ed_width
|
||||||
|
cmp eax,ebx
|
||||||
|
ja .mright
|
||||||
|
|
||||||
|
sub ebx,ed_width
|
||||||
|
|
||||||
|
xor edx,edx
|
||||||
|
sub eax,ebx ; ¢ëç⨬ ¨§ ª®®à¤¨ â ¬ë誨 ¯® ®á¨ å ª®®à¤¨ âë ¤® editbox ¯® ®á¨ å
|
||||||
|
mov ebx,6
|
||||||
|
div ebx
|
||||||
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
;;¯à®æ¥¤ãà ®¡à ¡®âª¨ ¯®«®¦¥¨ï ¢ë¤¥«¥®£® ⥪áâ , ¢ ¯à¥¤¥« å ®¡« á⨠editbox
|
||||||
|
;;;;;;;;;;;;;;;;;;
|
||||||
|
;<3B>®«ã稫¨ ª®®à¤¨ âë ¢ eax ¬ë誨, â.¥. ªã¤ ® ¯¥à¥¬¥á⨫ áì
|
||||||
|
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
||||||
|
add eax,ed_offset ;¤®¡ ¢¨¬ ᬥ饨¥
|
||||||
|
cmp eax,dword ed_size ;¥á«¨ ¢ë諨 § ¯à¥¤¥«ë, â® ¨ç¥£® ¥ ¤¥« âì
|
||||||
|
ja .mwigvag
|
||||||
|
.mdraw:
|
||||||
|
mov dword ed_pos,eax ;á®åà ¨¬ ®¢®¥ § 票¥
|
||||||
|
;<3B>¨á®¢ ¨¥ § ªà è¥ëå ¯àאַ㣮«ì¨ª®¢ ¨ ®ç¨á⪠¨å
|
||||||
|
mov ecx,dword ed_shift_pos
|
||||||
|
mov ebx,dword ed_shift_pos_old
|
||||||
|
mov dword ed_shift_pos_old,eax ;¢¥á¥¬ ®¢®¥ § 票¥ áâ ன ¯®§¨æ¨¨ ªãàá®à
|
||||||
|
;¯à®¢¥àª ¨ à¨á®¢ ¨¥ § ªà è¥ëå ®¡« á⥩
|
||||||
|
cmp ecx,ebx ;¢ëïá塞 ªã¤ ¡ë«® ¤¢¨¦¥¨¥ ®¤¨ è £ § ¤
|
||||||
|
je .m1_shem ;¤¢¨¦¥¨ï ¥ ¡ë«® à ¥¥
|
||||||
|
jb .msmaller ;¤¢¨¦¥¨¥ ¡ë«® ->
|
||||||
|
cmp ebx,eax ;¤¢¨¦¥¨¥ ¡ë«® ¤® í⮣® <- ¨ âãâ ¬ë ¯à®¢¥à塞 ᥩç á ªã¤ ¤¢¨¦¥¨¥ ¯à®¨á室¨â
|
||||||
|
ja .m1_shem ;¥á«¨ ¡ë«® ¤¢¨¦¥¨¥ <- ⮠㦮 § ªà á¨âì ®¡« áâì
|
||||||
|
je .mwigvag ;¥á«¨ ¨§¬¥¥¨ï ¥ ¡ë«®, â® ¨ç¥£® ¥ ¤¥« âì
|
||||||
|
mov ebp,ed_color ;âãâ 㦮 ®ç¨áâ¨âì ®¡« áâì c ed_pos ed_shift_pos_old
|
||||||
|
;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
|
||||||
|
call .sh_cl_
|
||||||
|
jmp .mwigvag
|
||||||
|
.msmaller:
|
||||||
|
cmp ebx,eax
|
||||||
|
jb .m1_shem
|
||||||
|
mov ebp,ed_color
|
||||||
|
;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
|
||||||
|
call .sh_cl_
|
||||||
|
jmp .mwigvag
|
||||||
|
;alike =
|
||||||
|
.m1_shem:
|
||||||
|
mov ebp,shift_color
|
||||||
|
;¢å®¤ë¥ ¯ à ¬¥âàë ebp=color ebx=ed_shift_pos
|
||||||
|
mov ebx,ecx
|
||||||
|
call .sh_cl_
|
||||||
|
jmp .mwigvag
|
||||||
|
.mwigvag:
|
||||||
|
and word ed_flags,ed_shift_mcl
|
||||||
|
jmp .draw_cursor_text
|
||||||
|
; popa
|
||||||
|
; ret
|
||||||
|
.mleft:
|
||||||
|
mov eax,ed_pos
|
||||||
|
cmp eax,0
|
||||||
|
jbe .mwigvag
|
||||||
|
dec eax
|
||||||
|
call .check_offset
|
||||||
|
push eax
|
||||||
|
mov ebx,ed_shift_pos
|
||||||
|
mov ebp,shift_color
|
||||||
|
call .sh_cl_
|
||||||
|
pop eax
|
||||||
|
jmp .mdraw
|
||||||
|
.mright:
|
||||||
|
mov eax,ed_pos
|
||||||
|
mov ebx,ed_size
|
||||||
|
cmp eax,ebx
|
||||||
|
jae .mwigvag
|
||||||
|
inc eax
|
||||||
|
call .check_offset
|
||||||
|
mov ebx,ed_shift_pos
|
||||||
|
mov ebp,shift_color
|
||||||
|
push eax
|
||||||
|
call .sh_cl_
|
||||||
|
pop eax
|
||||||
|
jmp .mdraw
|
||||||
|
}
|
||||||
|
|
||||||
|
macro use_work_mause scr_h,scr_w
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- € ¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §ë¥ áâ®à®ë?
|
||||||
|
;----------------------------------------------------------
|
||||||
|
{
|
||||||
|
test word ed_flags,ed_mouse_on
|
||||||
|
jne .mouse_wigwag
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
mov ebx,[procinfo.box.top]
|
||||||
|
add ebx,ed_top
|
||||||
|
if scr_h eq
|
||||||
|
else
|
||||||
|
add ebx,scr_h
|
||||||
|
end if
|
||||||
|
cmp ax,bx
|
||||||
|
jl ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
|
add ebx,ed_height
|
||||||
|
cmp ax,bx
|
||||||
|
jg ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
|
shr eax,16
|
||||||
|
|
||||||
|
mov ebx,[procinfo.box.left]
|
||||||
|
add ebx,ed_left
|
||||||
|
if scr_w eq
|
||||||
|
else
|
||||||
|
add ebx,scr_w
|
||||||
|
end if
|
||||||
|
cmp ax,bx
|
||||||
|
jl ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
|
add ebx,ed_width
|
||||||
|
cmp ax,bx
|
||||||
|
jg ._blur;.mouse_end_no_focus
|
||||||
|
;--- ¨§¬¥ï¥¬ ¯®§¨æ¨î ªãàá®à ---
|
||||||
|
push eax
|
||||||
|
mov ebp,ed_color
|
||||||
|
call .clear_cursor
|
||||||
|
pop eax
|
||||||
|
._mvpos:
|
||||||
|
mov ebx,dword [procinfo.box.left]
|
||||||
|
xor edx,edx
|
||||||
|
sub eax,ed_left
|
||||||
|
sub eax,ebx
|
||||||
|
if scr_w eq
|
||||||
|
else
|
||||||
|
add ebx,scr_w
|
||||||
|
sub eax,2
|
||||||
|
end if
|
||||||
|
mov ebx,6
|
||||||
|
div bx
|
||||||
|
add eax,ed_offset
|
||||||
|
cmp eax,ed_size
|
||||||
|
jna ._mshift
|
||||||
|
mov eax,ed_size
|
||||||
|
._mshift:
|
||||||
|
;;;;;;;
|
||||||
|
;;‘¥ªæ¨ï ®¡à ¡®âª¨ shift ¨ ¢ë¤¥«¥¨ï ¯® shift
|
||||||
|
;;;;;;;
|
||||||
|
test word ed_flags,ed_shift_bac
|
||||||
|
je @f
|
||||||
|
mov ebp,dword ed_color
|
||||||
|
mov ebx,dword ed_shift_pos
|
||||||
|
push eax
|
||||||
|
call .sh_cl_
|
||||||
|
and word ed_flags,ed_shift_bac_cl
|
||||||
|
pop eax
|
||||||
|
@@:
|
||||||
|
test word ed_flags,ed_mouse_on
|
||||||
|
jne @f
|
||||||
|
|
||||||
|
mov dword ed_shift_pos,eax
|
||||||
|
or word ed_flags,ed_mouse_on
|
||||||
|
mov dword ed_pos,eax
|
||||||
|
mov dword [mouse_flag],edi ;ãáâ ®¢¨¬ ¨¤¥â¨ä¨ª â®à
|
||||||
|
bts word ed_flags,1 ;ãáâ ®¢ª 䮪ãá
|
||||||
|
jmp .m_sh
|
||||||
|
@@:
|
||||||
|
cmp eax,dword ed_shift_pos ;¥á«¨ ¯®§¨æ¨¨ ¥ ¨§¬¥¨«¨áì
|
||||||
|
je .editbox_exit
|
||||||
|
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 ;ãáâ ®¢¨¬ ¡¨â çâ® ¬ë ¢ë¤¥«¨«¨ +shift_on +
|
||||||
|
.m_sh: call .draw_text
|
||||||
|
call .draw_cursor
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- ¯à®æ¥¤ãà ãáâ ®¢ª¨ 䮪ãá ---------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
jmp .drc
|
||||||
|
._blur:
|
||||||
|
test word ed_flags,ed_always_focus
|
||||||
|
jne .editbox_exit
|
||||||
|
btr word ed_flags,1 ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬
|
||||||
|
jnc .editbox_exit
|
||||||
|
|
||||||
|
mov ebp,ed_color
|
||||||
|
call .clear_cursor
|
||||||
|
.drc: call .draw_border
|
||||||
|
jmp .editbox_exit
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
; Œ ªà®á ¢ë室
|
; Œ ªà®á ¢ë室
|
||||||
|
Loading…
Reference in New Issue
Block a user