Upgrade macros
git-svn-id: svn://kolibrios.org@507 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -45,6 +45,10 @@ pusha
|
||||
call .draw_cursor
|
||||
@@:
|
||||
call .draw_text
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<3B><>騩 <20><>室 <20><> editbox <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㭪権 <20> <20><><EFBFBD><EFBFBD> <20><>ࠡ<EFBFBD><E0A0A1>稪<EFBFBD><E7A8AA>
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
.editbox_exit:
|
||||
edit_ex
|
||||
;==========================================================
|
||||
;=== <20><>ࠡ<EFBFBD>⪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =================================
|
||||
@@ -52,7 +56,7 @@ edit_ex
|
||||
.key:
|
||||
pusha
|
||||
test word ed_flags,ed_focus ; <20> <20><> <20> 䮪<><E4AEAA><EFBFBD>, <20><>室<EFBFBD><E5AEA4>
|
||||
je .no_figure
|
||||
je .editbox_exit
|
||||
;<3B><EFBFBD>ઠ <20><><EFBFBD><EFBFBD><EFBFBD> shift ?
|
||||
call .check_shift
|
||||
;----------------------------------------------------------
|
||||
@@ -68,193 +72,18 @@ use_key_no_process up,down,esc
|
||||
;<3B><EFBFBD>ઠ <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <20><> 䫠<> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㦭<EFBFBD> <20>뢮<EFBFBD><EBA2AE><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>㦭<EFBFBD><E3A6AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ⠪<><E2A0AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_key_figures_only
|
||||
;<EFBFBD><EFBFBD>ઠ <20><> shift
|
||||
@@: test word ed_flags,ed_shift_on
|
||||
je @f
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos
|
||||
push eax
|
||||
mov edx,ed_size
|
||||
mov ecx,ed_pos
|
||||
pusha
|
||||
;clear
|
||||
; mov ebp,edx ;ed_size
|
||||
; call .clear_bg
|
||||
mov ebp,ed_color
|
||||
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
|
||||
; <20><EFBFBD><E0AEA2>塞, <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@: 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 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠢ<><E0A0A2>
|
||||
.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
|
||||
@@: ; ᤢ<><E1A4A2><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD>
|
||||
mov ecx,ed_size
|
||||
push edi eax
|
||||
mov ebp,edi
|
||||
mov esi,ed_text ; <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B>㤥<EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ப<EFBFBD><E0AEAA>
|
||||
add esi,ecx ;add ed_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> max size
|
||||
mov edi,esi
|
||||
|
||||
cmp ecx,ebx ;<3B> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ⥪<>饬<EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮨<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
je .In_k
|
||||
|
||||
test word [ebp+40],ed_insert ;IF insert is enable <20>.<2E>. edi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>㥬 <20><>१ ebp
|
||||
jne .ins_v
|
||||
;clear
|
||||
pusha
|
||||
mov edi,ebp
|
||||
mov ebp,ed_size
|
||||
call .clear_bg
|
||||
popa
|
||||
sub ecx,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
inc edi ;<3B><><EFBFBD><EFBFBD>⨬ <20><><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD> <20> <20>ࠢ<EFBFBD>
|
||||
std
|
||||
inc ecx
|
||||
@@:
|
||||
;--------
|
||||
lodsb
|
||||
stosb
|
||||
;--------
|
||||
loop @b
|
||||
.In_k: cld
|
||||
pop eax
|
||||
mov al,ah
|
||||
stosb
|
||||
pop edi
|
||||
; <20><>⠢<EFBFBD>塞 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤠, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; 㢥<><E3A2A5>稢<EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>樨
|
||||
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
|
||||
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> backspace ---
|
||||
.backspace:
|
||||
; <20><EFBFBD><E0AEA2>塞, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ?
|
||||
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
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<3B><EFBFBD>ઠ <20><> shift <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
are_key_shift_press
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; <20><EFBFBD><E0AEA2>塞, <20><>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD>쭥<EFBFBD><ECADA5><EFBFBD><EFBFBD> <20><>ࠡ<EFBFBD>⪠
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
are_key_cur_end
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<EFBFBD><EFBFBD>ࠡ<EFBFBD>⪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> insert,delete.backspase,home,end,left,right
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_work_key
|
||||
;==========================================================
|
||||
;=== <20><>ࠡ<EFBFBD>⪠ <20><><EFBFBD><EFBFBD> =======================================
|
||||
;==========================================================
|
||||
@@ -273,7 +102,7 @@ pusha
|
||||
and word ed_flags,ed_mouse_on_off
|
||||
xor ebx,ebx
|
||||
mov dword [mouse_flag],ebx
|
||||
edit_ex
|
||||
jmp .editbox_exit
|
||||
.mouse_left_button:
|
||||
;----------------------------------------------------------
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><> 䮪<><E4AEAA><EFBFBD><EFBFBD><E0AEA2> <20> <20><>㣨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -288,110 +117,10 @@ edit_ex
|
||||
;--- <20><><EFBFBD><EFBFBD>砥<EFBFBD> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>⭮<EFBFBD><E2ADAE>⥫쭮 0 <20>.<2E> <20>ᥩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD>
|
||||
;----------------------------------------------------------
|
||||
@@: mcall 37,0
|
||||
;----------------------------------------------------------
|
||||
;--- <20> <20><> 㤥ন<E3A4A5><E0A6A8><EFBFBD><EFBFBD> <20><> <20><> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>誨, <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD>?
|
||||
;----------------------------------------------------------
|
||||
test word ed_flags,ed_mouse_on
|
||||
jne .mouse_wigwag
|
||||
;----------------------------------------------------------
|
||||
;--- <20><EFBFBD><E0AEA2>塞, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 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
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||
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:
|
||||
;;;;;;;
|
||||
;;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠡ<EFBFBD>⪨ shift <20> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> 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 ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD>
|
||||
bts word ed_flags,1 ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䮪<><E4AEAA><EFBFBD>
|
||||
jmp .m_sh
|
||||
@@:
|
||||
cmp eax,dword ed_shift_pos ;<3B> <20><><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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 ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> +shift_on +
|
||||
.m_sh: call .draw_text
|
||||
call .draw_cursor
|
||||
;----------------------------------------------------------
|
||||
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䮪<><E4AEAA><EFBFBD> ---------------------------
|
||||
;----------------------------------------------------------
|
||||
jmp .drc
|
||||
._blur:
|
||||
test word ed_flags,ed_always_focus
|
||||
jne .mouse_ex
|
||||
btr word ed_flags,1 ; <20> <20><> <20> 䮪<><E4AEAA><EFBFBD>, <20><>室<EFBFBD><E5AEA4>
|
||||
jnc .mouse_ex
|
||||
|
||||
mov ebp,ed_color
|
||||
call .clear_cursor
|
||||
.drc: call .draw_border
|
||||
.mouse_ex:
|
||||
|
||||
edit_ex
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><>誨 <20><><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <20><><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>ઠ <20><> + <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_work_mause scr_h,scr_w
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<3B><>騥 <20>㭪樨 <20><>ࠡ<EFBFBD>⪨
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -400,118 +129,14 @@ use_general_func
|
||||
;<3B>㭪樨 <20><><EFBFBD> ࠡ<><E0A0A1><EFBFBD> <20> key
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_key_func
|
||||
;----------------------------------------------------------
|
||||
;--- <20><><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD> 䮪<EFBFBD><EFBFBD><EFBFBD> --------------------------
|
||||
;----------------------------------------------------------
|
||||
;.blur:
|
||||
;pusha
|
||||
;._blur:
|
||||
;btr ed_flags,1
|
||||
;jnc @f
|
||||
;call .draw_border
|
||||
;call .clear_cursor
|
||||
;@@:
|
||||
;edit_ex
|
||||
|
||||
;----------------------------------------------------------
|
||||
;--- <20><>ࠡ<EFBFBD>⪠ .mouse_wigwag
|
||||
;----------------------------------------------------------
|
||||
.mouse_wigwag:
|
||||
shr eax,16
|
||||
or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;;<3B><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4> <20><>室 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> 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 ; <20><><EFBFBD>⨬ <20><> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD> <20><>誨 <20><> <20><><EFBFBD> <20> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> editbox <20><> <20><><EFBFBD> <20>
|
||||
mov ebx,6
|
||||
div ebx
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;;<3B><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>, <20> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> editbox
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;<3B><><EFBFBD><EFBFBD>稫<EFBFBD> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20> eax <20><>誨, <20>.<2E>. <20>㤠 <20><><EFBFBD> <20><>६<EFBFBD><E0A5AC>⨫<EFBFBD><E2A8AB><EFBFBD>
|
||||
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪠ <20><>
|
||||
add eax,ed_offset ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD>
|
||||
cmp eax,dword ed_size ;<3B> <20><>諨 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD>, <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ja .mwigvag
|
||||
.mdraw:
|
||||
mov dword ed_pos,eax ;<3B><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪠ <20><>
|
||||
mov ecx,dword ed_shift_pos
|
||||
mov ebx,dword ed_shift_pos_old
|
||||
mov dword ed_shift_pos_old,eax ;<3B><><EFBFBD>ᥬ <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD>ன <20><><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B><EFBFBD>ઠ <20> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><><EFBFBD><EFBFBD><EFBFBD>⥩
|
||||
cmp ecx,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD>塞 <20>㤠 <20>뫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> 蠣 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
je .m1_shem ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>뫮 ࠭<><E0A0AD>
|
||||
jb .msmaller ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뫮 ->
|
||||
cmp ebx,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뫮 <20><> <20>⮣<EFBFBD> <- <20> <20><><EFBFBD> <20><> <20><EFBFBD><E0AEA2>塞 ᥩ<><E1A5A9><EFBFBD> <20>㤠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4>
|
||||
ja .m1_shem ;<3B> <20>뫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <- <20><> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
je .mwigvag ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>뫮, <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebp,ed_color ;<3B><><EFBFBD> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c ed_pos ed_shift_pos_old
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> ebp=color ebx=ed_shift_pos
|
||||
call .sh_cl_
|
||||
jmp .mwigvag
|
||||
.msmaller:
|
||||
cmp ebx,eax
|
||||
jb .m1_shem
|
||||
mov ebp,ed_color
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> ebp=color ebx=ed_shift_pos
|
||||
call .sh_cl_
|
||||
jmp .mwigvag
|
||||
;alike =
|
||||
.m1_shem:
|
||||
mov ebp,shift_color
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> 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
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;<EFBFBD>㭪樨 <EFBFBD><EFBFBD><EFBFBD> ࠡ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> mouse
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
use_mouse_func scr_w
|
||||
}
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;Bit mask from editbox
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
ed_figure_only= 1000000000000000b ;<3B><><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD>
|
||||
ed_always_focus= 100000000000000b
|
||||
ed_focus= 10b ;䮪<><E4AEAA> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
@@ -6,7 +6,8 @@ You bunny wrote .....
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.....
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> aka <Lrz>
|
||||
; <Lrz> 14.05.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <Lrz> 18.05.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <Lrz> 14.05.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mcall <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <Lrz> 09.05.2007 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> edit_box.mac
|
||||
; <Lrz> 19.04.2007 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; <Lrz> 14.04.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Mario79)
|
||||
|
@@ -593,17 +593,17 @@ macro use_key_no_process up,down,esc
|
||||
if up eq
|
||||
else
|
||||
cmp ah,177
|
||||
jz .no_figure
|
||||
jz .editbox_exit
|
||||
end if
|
||||
if down eq
|
||||
else
|
||||
cmp ah,178
|
||||
jz .no_figure
|
||||
jz .editbox_exit
|
||||
end if
|
||||
if esc eq
|
||||
else
|
||||
cmp ah,27 ;ESC - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ))
|
||||
jz .no_figure
|
||||
jz .editbox_exit
|
||||
end if
|
||||
}
|
||||
|
||||
@@ -612,15 +612,416 @@ macro use_key_figures_only
|
||||
test word ed_flags,ed_figure_only ; ⮫쪮 <20><><EFBFBD><EFBFBD><EFBFBD> ?
|
||||
jz @f
|
||||
cmp ah,'0'
|
||||
jb .no_figure
|
||||
jb .editbox_exit
|
||||
cmp ah,'9'
|
||||
ja .no_figure
|
||||
ja .editbox_exit
|
||||
@@:
|
||||
}
|
||||
macro are_key_shift_press
|
||||
{
|
||||
test word ed_flags,ed_shift_on
|
||||
je @f
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ࠢ<><E0A0A2>
|
||||
jmp .editbox_exit
|
||||
|
||||
@@: ; ᤢ<><E1A4A2><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD>
|
||||
mov ecx,ed_size
|
||||
push edi eax
|
||||
mov ebp,edi
|
||||
mov esi,ed_text ; <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B>㤥<EFBFBD> ࠡ<><E0A0A1><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ப<EFBFBD><E0AEAA>
|
||||
add esi,ecx ;add ed_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> max size
|
||||
mov edi,esi
|
||||
|
||||
cmp ecx,ebx ;<3B> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ⥪<>饬<EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮨<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
je .In_k
|
||||
|
||||
test word [ebp+40],ed_insert ;IF insert is enable <20>.<2E>. edi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>㥬 <20><>१ ebp
|
||||
jne .ins_v
|
||||
;clear
|
||||
pusha
|
||||
mov edi,ebp
|
||||
mov ebp,ed_size
|
||||
call .clear_bg
|
||||
popa
|
||||
sub ecx,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
inc edi ;<3B><><EFBFBD><EFBFBD>⨬ <20><><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD> <20> <20>ࠢ<EFBFBD>
|
||||
std
|
||||
inc ecx
|
||||
@@:
|
||||
;--------
|
||||
lodsb
|
||||
stosb
|
||||
;--------
|
||||
loop @b
|
||||
.In_k: cld
|
||||
pop eax
|
||||
mov al,ah
|
||||
stosb
|
||||
pop edi
|
||||
; <20><>⠢<EFBFBD>塞 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㤠, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; 㢥<><E3A2A5>稢<EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>樨
|
||||
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
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> backspace ---
|
||||
.backspace:
|
||||
; <20><EFBFBD><E0AEA2>塞, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ?
|
||||
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
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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
|
||||
{
|
||||
;----------------------------------------------------------
|
||||
;--- <20><>ࠡ<EFBFBD>⪠ .mouse_wigwag
|
||||
;----------------------------------------------------------
|
||||
.mouse_wigwag:
|
||||
shr eax,16
|
||||
or word ed_flags,ed_shift_bac+ed_shift_on+ed_shift
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;;<3B><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4> <20><>室 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> 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 ; <20><><EFBFBD>⨬ <20><> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD> <20><>誨 <20><> <20><><EFBFBD> <20> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> editbox <20><> <20><><EFBFBD> <20>
|
||||
mov ebx,6
|
||||
div ebx
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;;<3B><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>, <20> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> editbox
|
||||
;;;;;;;;;;;;;;;;;;
|
||||
;<3B><><EFBFBD><EFBFBD>稫<EFBFBD> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20> eax <20><>誨, <20>.<2E>. <20>㤠 <20><><EFBFBD> <20><>६<EFBFBD><E0A5AC>⨫<EFBFBD><E2A8AB><EFBFBD>
|
||||
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪠ <20><>
|
||||
add eax,ed_offset ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD>
|
||||
cmp eax,dword ed_size ;<3B> <20><>諨 <20><> <20>।<EFBFBD><E0A5A4><EFBFBD>, <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ja .mwigvag
|
||||
.mdraw:
|
||||
mov dword ed_pos,eax ;<3B><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪠ <20><>
|
||||
mov ecx,dword ed_shift_pos
|
||||
mov ebx,dword ed_shift_pos_old
|
||||
mov dword ed_shift_pos_old,eax ;<3B><><EFBFBD>ᥬ <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD>ன <20><><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;<3B><EFBFBD>ઠ <20> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><><EFBFBD><EFBFBD><EFBFBD>⥩
|
||||
cmp ecx,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD>塞 <20>㤠 <20>뫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> 蠣 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
je .m1_shem ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>뫮 ࠭<><E0A0AD>
|
||||
jb .msmaller ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뫮 ->
|
||||
cmp ebx,eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뫮 <20><> <20>⮣<EFBFBD> <- <20> <20><><EFBFBD> <20><> <20><EFBFBD><E0AEA2>塞 ᥩ<><E1A5A9><EFBFBD> <20>㤠 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ந<EFBFBD>室<EFBFBD><E5AEA4>
|
||||
ja .m1_shem ;<3B> <20>뫮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <- <20><> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
je .mwigvag ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>뫮, <20><> <20><>祣<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
mov ebp,ed_color ;<3B><><EFBFBD> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c ed_pos ed_shift_pos_old
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> ebp=color ebx=ed_shift_pos
|
||||
call .sh_cl_
|
||||
jmp .mwigvag
|
||||
.msmaller:
|
||||
cmp ebx,eax
|
||||
jb .m1_shem
|
||||
mov ebp,ed_color
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> ebp=color ebx=ed_shift_pos
|
||||
call .sh_cl_
|
||||
jmp .mwigvag
|
||||
;alike =
|
||||
.m1_shem:
|
||||
mov ebp,shift_color
|
||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> 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
|
||||
;----------------------------------------------------------
|
||||
;--- <20> <20><> 㤥ন<E3A4A5><E0A6A8><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>誨, <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD>?
|
||||
;----------------------------------------------------------
|
||||
{
|
||||
test word ed_flags,ed_mouse_on
|
||||
jne .mouse_wigwag
|
||||
;----------------------------------------------------------
|
||||
;--- <20><EFBFBD><E0AEA2>塞, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 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
|
||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD>塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||
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:
|
||||
;;;;;;;
|
||||
;;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ࠡ<EFBFBD>⪨ shift <20> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> 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 ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD>
|
||||
bts word ed_flags,1 ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䮪<><E4AEAA><EFBFBD>
|
||||
jmp .m_sh
|
||||
@@:
|
||||
cmp eax,dword ed_shift_pos ;<3B> <20><><EFBFBD><EFBFBD>樨 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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 ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> +shift_on +
|
||||
.m_sh: call .draw_text
|
||||
call .draw_cursor
|
||||
;----------------------------------------------------------
|
||||
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䮪<><E4AEAA><EFBFBD> ---------------------------
|
||||
;----------------------------------------------------------
|
||||
jmp .drc
|
||||
._blur:
|
||||
test word ed_flags,ed_always_focus
|
||||
jne .editbox_exit
|
||||
btr word ed_flags,1 ; <20> <20><> <20> 䮪<><E4AEAA><EFBFBD>, <20><>室<EFBFBD><E5AEA4>
|
||||
jnc .editbox_exit
|
||||
|
||||
mov ebp,ed_color
|
||||
call .clear_cursor
|
||||
.drc: call .draw_border
|
||||
jmp .editbox_exit
|
||||
}
|
||||
|
||||
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD>
|
||||
|
Reference in New Issue
Block a user