upgrade editbox
git-svn-id: svn://kolibrios.org@402 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -84,6 +84,8 @@ pusha
|
|||||||
call .check_offset ;<3B><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⠡<EFBFBD><E2A0A1>쭠
|
call .check_offset ;<3B><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD> <20><><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⠡<EFBFBD><E2A0A1>쭠
|
||||||
;--- <20><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
;--- <20><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||||
call .draw_bg ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD> ࠡ<>祩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
call .draw_bg ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD> ࠡ<>祩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;---- <20><><EFBFBD>㥬 <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>, <20><> shift <20> <20><><EFBFBD><EFBFBD>
|
||||||
|
call .draw_shift
|
||||||
.draw_cursor_text:
|
.draw_cursor_text:
|
||||||
;--- <20><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
;--- <20><><EFBFBD>㥬 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||||
;--- <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD> ----
|
;--- <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD> ----
|
||||||
@@ -94,6 +96,18 @@ pusha
|
|||||||
call .draw_text
|
call .draw_text
|
||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> -----------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.draw_shift:
|
||||||
|
test word ed_flags,ed_shift_bac ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䫠<><E4ABA0>, <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
jz @f
|
||||||
|
mov ebp,shift_color
|
||||||
|
mov ebx,dword ed_shift_pos
|
||||||
|
call .sh_cl_
|
||||||
|
@@: ret
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> ⥪<><E2A5AA><EFBFBD> --------------------------
|
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> ⥪<><E2A5AA><EFBFBD> --------------------------
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
@@ -107,7 +121,7 @@ ret
|
|||||||
cmp eax,esi
|
cmp eax,esi
|
||||||
jae @F
|
jae @F
|
||||||
mov esi,eax ;<3B>⮡<EFBFBD> <20><> <20><>室<EFBFBD><E5AEA4><EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><>࠭<EFBFBD>
|
mov esi,eax ;<3B>⮡<EFBFBD> <20><> <20><>室<EFBFBD><E5AEA4><EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><>࠭<EFBFBD>
|
||||||
;--- <20><><EFBFBD>㥬 ⥪<><E2A5AA> ---
|
;--- <20><><EFBFBD>㥬 ⥪<><E2A5AA> ---
|
||||||
@@: mov eax,4
|
@@: mov eax,4
|
||||||
mov ebx,ed_left
|
mov ebx,ed_left
|
||||||
mov edx,ed_offset
|
mov edx,ed_offset
|
||||||
@@ -549,7 +563,6 @@ popa
|
|||||||
;<3B><><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
|
;<3B><><EFBFBD> <20><>ࠡ<EFBFBD>⪨ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
|
||||||
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> ebp=color ebx=ed_shift_pos
|
;<3B>室<EFBFBD><E5AEA4><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC><EFBFBD><EFBFBD> ebp=color ebx=ed_shift_pos
|
||||||
mov eax,dword ed_pos
|
mov eax,dword ed_pos
|
||||||
; mov ebx,dword ed_shift_pos
|
|
||||||
cmp eax,ebx
|
cmp eax,ebx
|
||||||
jae .sh_n
|
jae .sh_n
|
||||||
push eax ;<3B><><EFBFBD><EFBFBD>襥 <20> eax
|
push eax ;<3B><><EFBFBD><EFBFBD>襥 <20> eax
|
||||||
@@ -640,7 +653,6 @@ popa
|
|||||||
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 .low
|
jz .low
|
||||||
;dec eax
|
|
||||||
@@: call .draw_rectangle ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
@@: call .draw_rectangle ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE>쭨<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
ret
|
ret
|
||||||
.low: dec eax
|
.low: dec eax
|
||||||
@@ -696,7 +708,7 @@ popa
|
|||||||
.sh_ext_en:
|
.sh_ext_en:
|
||||||
call .check_offset
|
call .check_offset
|
||||||
test word ed_flags,ed_offset_fl
|
test word ed_flags,ed_offset_fl
|
||||||
jne @f
|
je @f
|
||||||
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪠ <20><>
|
;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD><ECADA8><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⪠ <20><>
|
||||||
mov eax,dword ed_shift_pos
|
mov eax,dword ed_shift_pos
|
||||||
mov ebx,dword ed_pos
|
mov ebx,dword ed_pos
|
||||||
@@ -733,7 +745,7 @@ popa
|
|||||||
call .sh_cl_
|
call .sh_cl_
|
||||||
|
|
||||||
@@: test word ed_flags,ed_shift
|
@@: test word ed_flags,ed_shift
|
||||||
je .sh_exit_ ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>אַ㣮<EFACAE>쭨<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
je .sh_exit_ ;<3B><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
mov ebp,shift_color
|
mov ebp,shift_color
|
||||||
mov ebx,dword ed_shift_pos
|
mov ebx,dword ed_shift_pos
|
||||||
call .sh_cl_
|
call .sh_cl_
|
||||||
@@ -824,7 +836,6 @@ popa
|
|||||||
pop eax ;ed_pos
|
pop eax ;ed_pos
|
||||||
mov ecx,ed_offset
|
mov ecx,ed_offset
|
||||||
sub eax,ecx
|
sub eax,ecx
|
||||||
|
|
||||||
.nxt:
|
.nxt:
|
||||||
mov ebp,eax ;<3B><EFBFBD>ઠ <20><> <20><>室 <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
mov ebp,eax ;<3B><EFBFBD>ઠ <20><> <20><>室 <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
add ebp,ebx
|
add ebp,ebx
|
||||||
@@ -926,8 +937,31 @@ pusha
|
|||||||
jna @f
|
jna @f
|
||||||
mov ax,ed_size
|
mov ax,ed_size
|
||||||
@@:
|
@@:
|
||||||
mov ed_pos,ax
|
test word ed_flags,ed_shift_bac
|
||||||
call .check_offset
|
je @f
|
||||||
|
mov ebp,dword ed_color
|
||||||
|
mov ebx,dword ed_shift_pos
|
||||||
|
push eax
|
||||||
|
call .sh_cl_
|
||||||
|
and word ed_flags,ed_shift_cl
|
||||||
|
pop eax
|
||||||
|
|
||||||
|
@@:
|
||||||
|
test word ed_flags,ed_shift
|
||||||
|
je @f
|
||||||
|
mov ebx,ed_pos
|
||||||
|
mov ed_shift_pos,ebx
|
||||||
|
|
||||||
|
mov ed_pos,eax
|
||||||
|
mov ebp,dword shift_color
|
||||||
|
|
||||||
|
call .sh_cl_
|
||||||
|
or word ed_flags,ed_shift_bac ;<3B><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD>
|
||||||
|
and word ed_flags,ed_shift_off
|
||||||
|
jmp .m_sh
|
||||||
|
@@:
|
||||||
|
mov ed_pos,ax
|
||||||
|
.m_sh: call .draw_text
|
||||||
call .draw_cursor
|
call .draw_cursor
|
||||||
;----------------------------------------------------------
|
;----------------------------------------------------------
|
||||||
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䮪<><E4AEAA><EFBFBD> ---------------------------
|
;--- <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> 䮪<><E4AEAA><EFBFBD> ---------------------------
|
||||||
@@ -941,6 +975,7 @@ pusha
|
|||||||
jne @f
|
jne @f
|
||||||
btr word ed_flags,1 ; <20> <20><> <20> 䮪<><E4AEAA><EFBFBD>, <20><>室<EFBFBD><E5AEA4>
|
btr word ed_flags,1 ; <20> <20><> <20> 䮪<><E4AEAA><EFBFBD>, <20><>室<EFBFBD><E5AEA4>
|
||||||
jnc @f
|
jnc @f
|
||||||
|
|
||||||
mov ebp,ed_color
|
mov ebp,ed_color
|
||||||
call .clear_cursor
|
call .clear_cursor
|
||||||
.drc: call .draw_border
|
.drc: call .draw_border
|
||||||
@@ -1032,6 +1067,28 @@ struc edit_box width,left,top,color,focus_border_color,\
|
|||||||
.shift_old dd 0
|
.shift_old dd 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struc edit_box1 width,left,top,color,focus_border_color,\
|
||||||
|
blur_border_color,text_color,max,text,flags,ed_size
|
||||||
|
{
|
||||||
|
.width dd width
|
||||||
|
.left dd left
|
||||||
|
.top dd top
|
||||||
|
.color dd color
|
||||||
|
.focus_border_color dd focus_border_color
|
||||||
|
.blur_border_color dd blur_border_color
|
||||||
|
.text_color dd text_color
|
||||||
|
.max dd max
|
||||||
|
.text dd text
|
||||||
|
.flags dw flags+0
|
||||||
|
.size dd ed_size
|
||||||
|
.pos dd 0
|
||||||
|
.offset dd 0
|
||||||
|
.cl_curs_x dd 0
|
||||||
|
.cl_curs_y dd 0
|
||||||
|
.shift dd 0
|
||||||
|
.shift_old dd 0
|
||||||
|
}
|
||||||
|
|
||||||
macro edit_boxes_set_sys_color start,end,color_table
|
macro edit_boxes_set_sys_color start,end,color_table
|
||||||
{
|
{
|
||||||
mov edi,start
|
mov edi,start
|
||||||
|
@@ -82,7 +82,7 @@ draw_window: ;
|
|||||||
;DATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;DATA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
editboxes:
|
editboxes:
|
||||||
edit1 edit_box 168,5,10,0xffffff,0,0,0,99,ed_buffer.2,ed_figure_only
|
edit1 edit_box 168,5,10,0xffffff,0,0,0,99,ed_buffer.2,ed_figure_only
|
||||||
edit2 edit_box 168,5,30,0xffffff,0,0,0,512,ed_buffer.1,ed_focus
|
edit2 edit_box1 250,5,30,0xffffff,0,0,0,308,hed,ed_focus,53
|
||||||
edit3 edit_box 35,5,50,0xffffff,0,0,0,9,ed_buffer.3,ed_figure_only
|
edit3 edit_box 35,5,50,0xffffff,0,0,0,9,ed_buffer.3,ed_figure_only
|
||||||
edit4 edit_box 16,5,70,0xffffff,0,0,0,1,ed_buffer.4,ed_figure_only
|
edit4 edit_box 16,5,70,0xffffff,0,0,0,1,ed_buffer.4,ed_figure_only
|
||||||
editboxes_end:
|
editboxes_end:
|
||||||
@@ -97,6 +97,7 @@ ed_buffer:
|
|||||||
;buffer: dd 0
|
;buffer: dd 0
|
||||||
buffer_end:
|
buffer_end:
|
||||||
hed db 'EDITBOX optimization and retype <Lrz> date 07.03.2007',0
|
hed db 'EDITBOX optimization and retype <Lrz> date 07.03.2007',0
|
||||||
|
rb 256
|
||||||
i_end1:
|
i_end1:
|
||||||
rb 1024
|
rb 1024
|
||||||
i_end:
|
i_end:
|
Reference in New Issue
Block a user