fixed bug

git-svn-id: svn://kolibrios.org@306 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov (
2007-02-01 07:20:59 +00:00
parent dbd82dd523
commit e7be690de5
2 changed files with 37 additions and 29 deletions

View File

@@ -1,3 +1,4 @@
; <Lrz> 01.02.2007 <20><><EFBFBD>⪠ edit_box, <20><><EFBFBD><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD>.
; <Lrz> 26.01.2007 <20><><EFBFBD><EFBFBD><><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .check_offset ; <Lrz> 26.01.2007 <20><><EFBFBD><EFBFBD><><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .check_offset
; <Lrz> 24.01.2007 <20><>䨪ᥫ <20><><EFBFBD><EFBFBD> <20><EFBFBD><EBA7A2><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> )). ; <Lrz> 24.01.2007 <20><>䨪ᥫ <20><><EFBFBD><EFBFBD> <20><EFBFBD><EBA7A2><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> )).
; <Lrz> 22.01.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E3A4A0><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>४⭠<E0A5AA><><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襩 del & backspase ; <Lrz> 22.01.2007 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><><E0A0A1><EFBFBD> <20> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E3A4A0><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>४⭠<E0A5AA><><E0A0A1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>襩 del & backspase
@@ -127,12 +128,12 @@ ret
;--- <20><><EFBFBD>㥬 ⥪<><E2A5AA> --- ;--- <20><><EFBFBD>㥬 ⥪<><E2A5AA> ---
@@: mov eax,4 @@: mov eax,4
mov ebx,ed_left mov ebx,ed_left
mov edx,ed_offset
add ebx,2 add ebx,2
shl ebx,16 shl ebx,16
mov bx,ed_top mov bx,ed_top
add ebx,4 add ebx,4
mov ecx,ed_text_color mov ecx,ed_text_color
mov edx,ed_offset
add edx,ed_text add edx,ed_text
int 0x40 int 0x40
ret ret
@@ -143,19 +144,16 @@ ret
;edx - color ;edx - color
;---------------------------------------------------------- ;----------------------------------------------------------
.draw_bg_eax: .draw_bg_eax:
;pusha
mov ecx,ed_top mov ecx,ed_top
add ecx,1 add ecx,1
shl ecx,16 shl ecx,16
mov cx,13 mov cx,13
mov eax,13 mov eax,13
int 0x40 int 0x40
;popa
ret ret
jmp @f jmp @f
.draw_bg: .draw_bg:
;pusha
mov ebx,ed_left mov ebx,ed_left
add ebx,1 add ebx,1
shl ebx,16 shl ebx,16
@@ -164,23 +162,21 @@ ret
@@: @@:
mov ecx,ed_top mov ecx,ed_top
mov eax,13
add ecx,1 add ecx,1
shl ecx,16 shl ecx,16
mov edx,ed_color
mov cx,ed_height mov cx,ed_height
sub ecx,1 sub ecx,1
int 0x40
mov edx,ed_color
mov eax,13
int 0x40
;popa
ret ret
;---------------------------------------------------------- ;----------------------------------------------------------
;--- <20><><EFBFBD><EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢠ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -------------- ;--- <20><><EFBFBD><EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢠ ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --------------
;---------------------------------------------------------- ;----------------------------------------------------------
.get_n: .get_n:
xor edx,edx ;१<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> edx:eax <20> eax - <20><><EFBFBD><EFBFBD>
mov eax,ed_width ;<3B><><EFBFBD><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mov eax,ed_width ;<3B><><EFBFBD><EFBFBD><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
xor edx,edx ;१<><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> edx:eax <20> eax - <20><><EFBFBD><EFBFBD>
sub eax,4 ;<3B><><EFBFBD>⨬ 4 sub eax,4 ;<3B><><EFBFBD>⨬ 4
mov ebx,6 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> mov ebx,6 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
div ebx ;ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 6 div ebx ;ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 6
@@ -210,14 +206,12 @@ ret
shl ebx,1 shl ebx,1
;imul ebx,6 ;imul ebx,6
add bx,ed_left add bx,ed_left
mov ecx,ed_top
inc ebx inc ebx
add ecx,2
mov ebp,ebx mov ebp,ebx
;push bx
shl ebx,16 shl ebx,16
mov bx,bp mov bx,bp
;pop bx
mov ecx,ed_top
add ecx,2
mov ebp,ecx mov ebp,ecx
shl ecx,16 shl ecx,16
@@ -281,7 +275,7 @@ ret
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;---------------------------------------------------------- ;----------------------------------------------------------
.check_offset: .check_offset:
pushad pushad
mov ecx,ed_pos mov ecx,ed_pos
mov ebx,ed_offset mov ebx,ed_offset
cmp ebx,ecx cmp ebx,ecx
@@ -346,12 +340,12 @@ ret
call .draw_bg call .draw_bg
mov dword [esp+28],-1 mov dword [esp+28],-1
popad popad
ret ret
@@: @@:
mov dword [esp+28],0 mov dword [esp+28],0
popad popad
ret ret
@@ -432,7 +426,7 @@ pusha
;<3B><EFBFBD><20><> shift ;<3B><EFBFBD><20><> shift
test word ed_flags,ed_shift_on @@: test word ed_flags,ed_shift_on
je @f je @f
;<3B><EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos ;<3B><EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos
push eax push eax
@@ -465,9 +459,7 @@ pusha
or word ed_flags,ed_insert or word ed_flags,ed_insert
jmp .no_figure jmp .no_figure
.ins_v: .ins_v:
pop eax edi dec dword [ebp+38];ed_size ;processing is insert
dec dword ed_size ;processing is insert
push edi eax
sub esi,ecx sub esi,ecx
add esi,ebx add esi,ebx
mov edi,esi mov edi,esi
@@ -530,9 +522,6 @@ pusha
jnz .del_bac jnz .del_bac
test word ed_flags,ed_shift_on test word ed_flags,ed_shift_on
jne .bac_del jne .bac_del
;jmp @b
popa popa
ret ret
.del_bac: .del_bac:
@@ -562,8 +551,8 @@ pusha
call .clear_cursor call .clear_cursor
call .check_offset call .check_offset
;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;
cmp eax,0 test eax,eax
je @f jne @f
call .draw_bg call .draw_bg
ret ret
;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;
@@ -737,8 +726,6 @@ pusha
;<3B><EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos ;<3B><EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos
.del_char: .del_char:
mov esi,ed_text mov esi,ed_text
test word ed_flags,ed_shift_on test word ed_flags,ed_shift_on
je @f je @f
mov eax,dword ed_shift_pos mov eax,dword ed_shift_pos
@@ -865,6 +852,8 @@ ret
;.blur: ;.blur:
;pusha ;pusha
._blur: ._blur:
test word ed_flags,ed_always_focus
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
call .clear_cursor call .clear_cursor
@@ -888,6 +877,7 @@ ret
;ret ;ret
} }
ed_figure_only=1000000000000000b ed_figure_only=1000000000000000b
ed_always_focus=100000000000000b
ed_focus=10b ed_focus=10b
ed_shift_on=1000b ed_shift_on=1000b
ed_shift=100b ed_shift=100b
@@ -967,4 +957,22 @@ macro edit_boxes_set_sys_color start,end,color_table
mov ed_blur_border_color,eax mov ed_blur_border_color,eax
add edi,ed_struc_size add edi,ed_struc_size
loop @b loop @b
}
macro draw_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.draw
}
macro mouse_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.mouse
}
macro key_edit_box ed_ptr
{
mov edi,ed_ptr
call edit_box.key
} }

View File

@@ -101,7 +101,7 @@ ed_buffer:
;text_b: db '<27><><EFBFBD>-<2D><><><E1A8AC><EFBFBD><EFBFBD><EFBFBD>' ;text_b: db '<27><><EFBFBD>-<2D><><><E1A8AC><EFBFBD><EFBFBD><EFBFBD>'
;buffer: dd 0 ;buffer: dd 0
buffer_end: buffer_end:
hed db 'EDITBOX optimization and retype <Lrz> date 26.01.2007' hed db 'EDITBOX optimization and retype <Lrz> date 01.02.2007'
i_end1: i_end1:
rb 2048 rb 2048
i_end: i_end: