forked from KolibriOS/kolibrios
box_lib: fix clear cursor in 'editbox'
info3ds: crop zeros after floating point git-svn-id: svn://kolibrios.org@7128 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
3befb301cf
commit
7dad6439fe
@ -1373,9 +1373,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ;
|
||||
lmodel_ambient dd 0.3, 0.3, 0.3, 1.0 ; <20> à ¬¥âàë ä®®¢®£® ®á¢¥é¥¨ï
|
||||
|
||||
if lang eq ru
|
||||
capt db 'info 3ds ¢¥àá¨ï 18.04.17',0 ;¯®¤¯¨áì ®ª
|
||||
capt db 'info 3ds ¢¥àá¨ï 10.12.17',0 ;¯®¤¯¨áì ®ª
|
||||
else
|
||||
capt db 'info 3ds version 18.04.17',0 ;window caption
|
||||
capt db 'info 3ds version 10.12.17',0 ;window caption
|
||||
end if
|
||||
|
||||
align 16
|
||||
|
@ -59,6 +59,7 @@ Data_String DB 32 DUP (?)
|
||||
;* ‚ëå®¤ë¥ ¯ à ¬¥âàë: *
|
||||
;* Data_String - áâப -१ã«ìâ â. *
|
||||
;*******************************************************
|
||||
align 4
|
||||
DoubleFloat_to_String:
|
||||
pushad
|
||||
; <EFBFBD>¥§ã«ìâ â § ¯¨áë¢ âì ¢ áâபã Data_String
|
||||
@ -150,10 +151,11 @@ DoubleFloat_to_String:
|
||||
; Žè¨¡ª - ¥â § ç é¨å æ¨äà
|
||||
jmp .Error
|
||||
; ‘ª®¯¨à®¢ âì § ç éãî ç áâì ç¨á« ¢ ç «® áâப¨
|
||||
align 4
|
||||
.N4: rep movsb
|
||||
jmp .End
|
||||
|
||||
; Žè¨¡ª
|
||||
align 4
|
||||
.Error:
|
||||
mov AL,'E'
|
||||
stosb
|
||||
@ -165,12 +167,14 @@ DoubleFloat_to_String:
|
||||
stosb
|
||||
jmp .End
|
||||
; <EFBFBD>¥à¥¯®«¥¨¥ à §à冷© á¥âª¨
|
||||
align 4
|
||||
.Overflow:
|
||||
mov AL,'#'
|
||||
stosb
|
||||
xor AL,AL
|
||||
stosb
|
||||
; Š®¥æ ¯à®æ¥¤ãàë
|
||||
align 4
|
||||
.End:
|
||||
popad
|
||||
ret
|
||||
@ -183,6 +187,7 @@ DoubleFloat_to_String:
|
||||
;* ‚ëå®¤ë¥ ¯ à ¬¥âàë: *
|
||||
;* Data_Double - ç¨á«® ¢ ¤¢®¨ç®¬ ª®¤¥. *
|
||||
;****************************************************
|
||||
align 4
|
||||
String_to_DoubleFloat:
|
||||
pushad
|
||||
cld
|
||||
@ -202,6 +207,7 @@ String_to_DoubleFloat:
|
||||
jne .ShiftIgnoreEnd
|
||||
loop .ShiftIgnore
|
||||
jmp .Error
|
||||
align 4
|
||||
.ShiftIgnoreEnd:
|
||||
; <EFBFBD>஢¥à塞 § ª ç¨á«
|
||||
cmp AL,'-'
|
||||
@ -222,6 +228,7 @@ String_to_DoubleFloat:
|
||||
cmp AL,0 ;ª®¥æ áâப¨?
|
||||
jne .NotDot
|
||||
jmp .ASCIItoBCDConversionEnd
|
||||
align 4
|
||||
.NotDot:
|
||||
; “¢¥«¨ç¨âì 1 § 票¥ ¯®§¨æ¨¨ â®çª¨,
|
||||
; ¥á«¨ ® ¥é¥ ¥ ¢áâà¥ç « áì
|
||||
@ -284,7 +291,7 @@ String_to_DoubleFloat:
|
||||
.NoDiv:; ‚ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç®¬ ä®à¬ â¥
|
||||
fstp [Data_Double]
|
||||
jmp .End
|
||||
|
||||
align 4
|
||||
.Error:; <EFBFBD>ਠ«î¡®© ®è¨¡ª¥ ®¡ã«¨âì १ã«ìâ â
|
||||
fldz ;§ ¥á⨠®«ì á á⥪ ᮯà®æ¥áá®à
|
||||
fstp [Data_Double]
|
||||
@ -293,8 +300,7 @@ String_to_DoubleFloat:
|
||||
ret
|
||||
|
||||
align 4
|
||||
proc str_cat, str1:dword, str2:dword
|
||||
push eax ecx edi esi
|
||||
proc str_cat uses eax ecx edi esi, str1:dword, str2:dword
|
||||
mov esi,dword[str2]
|
||||
stdcall str_len,esi
|
||||
mov ecx,eax
|
||||
@ -304,7 +310,6 @@ proc str_cat, str1:dword, str2:dword
|
||||
add edi,eax
|
||||
cld
|
||||
repne movsb
|
||||
pop esi edi ecx eax
|
||||
ret
|
||||
endp
|
||||
|
||||
@ -321,4 +326,34 @@ proc str_len, str1:dword
|
||||
@@:
|
||||
sub eax,[str1]
|
||||
ret
|
||||
endp
|
||||
|
||||
align 4
|
||||
proc String_crop_0 uses eax ebx ecx edi
|
||||
mov edi,Data_String
|
||||
mov al,'.'
|
||||
mov ecx,32
|
||||
repne scasb
|
||||
mov ebx,edi
|
||||
mov edi,Data_String
|
||||
xor al,al
|
||||
mov ecx,32
|
||||
repne scasb
|
||||
cmp ebx,edi
|
||||
jg .end_f
|
||||
dec edi
|
||||
.cycle0:
|
||||
dec edi
|
||||
cmp edi,Data_String
|
||||
jle .end_f
|
||||
cmp byte[edi],'0'
|
||||
jne .cycle0end
|
||||
mov byte[edi],0
|
||||
jmp .cycle0
|
||||
.cycle0end:
|
||||
cmp byte[edi],'.'
|
||||
jne .end_f
|
||||
mov byte[edi],0
|
||||
.end_f:
|
||||
ret
|
||||
endp
|
@ -114,6 +114,7 @@ pushad
|
||||
fld dword[ebx]
|
||||
fstp qword[Data_Double]
|
||||
call DoubleFloat_to_String
|
||||
call String_crop_0
|
||||
add ebx,4
|
||||
stdcall str_len, Data_String
|
||||
mov esi,txt_space
|
||||
@ -439,6 +440,7 @@ prop_button:
|
||||
fld dword[ebx]
|
||||
fstp qword[Data_Double]
|
||||
call DoubleFloat_to_String
|
||||
call String_crop_0
|
||||
add ebx,4
|
||||
stdcall str_len, Data_String
|
||||
mov esi,txt_space
|
||||
@ -543,14 +545,17 @@ get_point_coords:
|
||||
fld dword[ebx]
|
||||
fstp qword[Data_Double]
|
||||
call DoubleFloat_to_String
|
||||
call String_crop_0
|
||||
stdcall [edit_box_set_text], edit1, Data_String
|
||||
fld dword[ebx+4]
|
||||
fstp qword[Data_Double]
|
||||
call DoubleFloat_to_String
|
||||
call String_crop_0
|
||||
stdcall [edit_box_set_text], edit2, Data_String
|
||||
fld dword[ebx+8]
|
||||
fstp qword[Data_Double]
|
||||
call DoubleFloat_to_String
|
||||
call String_crop_0
|
||||
stdcall [edit_box_set_text], edit3, Data_String
|
||||
stdcall [edit_box_draw], edit1
|
||||
stdcall [edit_box_draw], edit2
|
||||
@ -775,6 +780,7 @@ pushad
|
||||
fld dword[ebx]
|
||||
fstp qword[Data_Double]
|
||||
call DoubleFloat_to_String
|
||||
call String_crop_0
|
||||
add ebx,4
|
||||
stdcall str_len, Data_String
|
||||
mov esi,txt_space
|
||||
|
@ -781,28 +781,33 @@ edit_box.get_n:
|
||||
;----------------------------------------------------------
|
||||
; in: ebp = Color
|
||||
edit_box.clear_cursor:
|
||||
mov edx, ebp
|
||||
movzx ebx, word cl_curs_x
|
||||
movzx ecx, word cl_curs_y
|
||||
jmp edit_box.draw_curs
|
||||
cmp ebx, ed_left ;¯®¯ ¤ ¥â «¨ ªãàá®à ⥪á⮢®¥ ¯®«¥?
|
||||
jle @f
|
||||
mov edx, ebp
|
||||
movzx ecx, word cl_curs_y
|
||||
cmp ecx, ed_top
|
||||
jg edit_box.draw_curs
|
||||
@@:
|
||||
ret
|
||||
|
||||
edit_box.draw_cursor:
|
||||
mov edx, ed_text_color
|
||||
mov edx, ed_text_color
|
||||
mov eax, ed_pos
|
||||
sub eax, ed_offset
|
||||
mul dword ed_char_width
|
||||
mul dword ed_char_width
|
||||
mov ebx, eax
|
||||
add ebx, ed_left
|
||||
inc ebx
|
||||
inc ebx
|
||||
mov ecx, ed_top
|
||||
add ecx, 2
|
||||
add ecx, 2
|
||||
mov cl_curs_x, bx
|
||||
mov cl_curs_y, cx
|
||||
edit_box.draw_curs:
|
||||
mov eax, ebx
|
||||
edit_box.draw_curs:
|
||||
mov eax, ebx
|
||||
shl ebx, 16
|
||||
or ebx, eax
|
||||
mov eax, ecx
|
||||
mov eax, ecx
|
||||
shl ecx, 16
|
||||
or ecx, eax
|
||||
add ecx, ed_height
|
||||
|
Loading…
Reference in New Issue
Block a user