Boxlib: the tree_list can use large fonts
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TreeList <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TreeList <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥪<EFBFBD> box_lib.obj
|
||||||
; <20><> <20><><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><>業<EFBFBD><E6A5AD><EFBFBD>
|
; <20><> <20><><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><>業<EFBFBD><E6A5AD><EFBFBD>
|
||||||
; <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD> 12.01.2021 IgorA
|
; <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD> 31.03.2025 IgorA
|
||||||
|
|
||||||
|
|
||||||
struct TreeNode
|
struct TreeNode
|
||||||
@@ -14,6 +14,52 @@ struct TreeNode
|
|||||||
ends
|
ends
|
||||||
|
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; ecx - 0xXX...... font options
|
||||||
|
;output:
|
||||||
|
; eax - font height in pixels
|
||||||
|
align 4
|
||||||
|
proc get_font_h uses ebx
|
||||||
|
mov eax,ecx
|
||||||
|
shr eax,24
|
||||||
|
bt eax,4
|
||||||
|
jc @f
|
||||||
|
bt eax,5
|
||||||
|
jc @f
|
||||||
|
mov ebx,9
|
||||||
|
jmp .siz0
|
||||||
|
@@:
|
||||||
|
mov ebx,16
|
||||||
|
.siz0:
|
||||||
|
and eax,7
|
||||||
|
inc eax
|
||||||
|
imul eax,ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
;input:
|
||||||
|
; ecx - 0xXX...... font options
|
||||||
|
;output:
|
||||||
|
; eax - font width in pixels
|
||||||
|
align 4
|
||||||
|
proc get_font_w uses ebx
|
||||||
|
mov eax,ecx
|
||||||
|
shr eax,24
|
||||||
|
bt eax,4
|
||||||
|
jc @f
|
||||||
|
bt eax,5
|
||||||
|
jc @f
|
||||||
|
mov ebx,6
|
||||||
|
jmp .siz0
|
||||||
|
@@:
|
||||||
|
mov ebx,8
|
||||||
|
.siz0:
|
||||||
|
and eax,7
|
||||||
|
inc eax
|
||||||
|
imul eax,ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
;<3B>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠ <20> <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
;<3B>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᯨ᪠ <20> <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
align 16
|
align 16
|
||||||
proc tl_data_init uses eax ecx edi, tlist:dword
|
proc tl_data_init uses eax ecx edi, tlist:dword
|
||||||
@@ -463,34 +509,24 @@ proc tl_draw, tlist:dword
|
|||||||
|
|
||||||
cmp tl_capt_cy,9 ;9 - minimum caption height
|
cmp tl_capt_cy,9 ;9 - minimum caption height
|
||||||
jl @f
|
jl @f
|
||||||
mov ebx,edi ;calculate cursor position
|
call tl_draw_caption_cur_pos
|
||||||
mov eax,tl_cur_pos
|
|
||||||
inc eax
|
|
||||||
lea edi,[txt_capt_cur.v]
|
|
||||||
stdcall tl_convert_to_str, 5
|
|
||||||
|
|
||||||
mov edi,ebx
|
|
||||||
mov eax,tl_tim_undo
|
mov eax,tl_tim_undo
|
||||||
|
or eax,eax
|
||||||
|
jz @f
|
||||||
|
mov ebx,edi ;save edi
|
||||||
lea edi,[txt_capt_otm.v]
|
lea edi,[txt_capt_otm.v]
|
||||||
stdcall tl_convert_to_str, 5
|
stdcall tl_convert_to_str, 5
|
||||||
mov edi,ebx ;restore edi
|
mov edi,ebx ;restore edi
|
||||||
|
|
||||||
mov eax,SF_DRAW_TEXT ;captions
|
|
||||||
mov ebx,tl_box_left
|
|
||||||
shl ebx,16
|
|
||||||
add ebx,5*65536+3
|
|
||||||
add ebx,tl_box_top
|
|
||||||
mov ecx,tl_col_txt
|
|
||||||
or ecx,0x80000000
|
|
||||||
lea edx,[txt_capt_cur]
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov ebx,tl_box_left
|
mov ebx,tl_box_left
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
add ebx,100*65536+3
|
add ebx,100*65536+3
|
||||||
|
mov ecx,tl_col_txt
|
||||||
|
and ecx,0x00ffffff
|
||||||
|
or ecx,0x80000000
|
||||||
add ebx,tl_box_top
|
add ebx,tl_box_top
|
||||||
lea edx,[txt_capt_otm]
|
lea edx,[txt_capt_otm]
|
||||||
int 0x40
|
mcall SF_DRAW_TEXT ;undo
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
;cycle to nodes
|
;cycle to nodes
|
||||||
@@ -1163,10 +1199,11 @@ proc tl_draw_node_caption uses ebx ecx edx esi
|
|||||||
ror ecx,16
|
ror ecx,16
|
||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
add bx,tl_img_cy ;<3B><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
add bx,tl_img_cy ;<3B><>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
sub bx,9 ;<3B>⭨<EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
||||||
mov ecx,tl_col_txt
|
mov ecx,tl_col_txt
|
||||||
and ecx,0xffffff
|
call get_font_h
|
||||||
mcall SF_DRAW_TEXT
|
sub bx,ax ;<3B>⭨<EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
||||||
|
and ecx,0x37ffffff
|
||||||
|
mcall SF_DRAW_TEXT ;node text
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
@@ -1179,13 +1216,15 @@ endp
|
|||||||
align 4
|
align 4
|
||||||
proc tl_get_draw_text_len uses eax ecx edx
|
proc tl_get_draw_text_len uses eax ecx edx
|
||||||
mov esi,eax ;<3B><>६ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
mov esi,eax ;<3B><>६ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD>
|
||||||
|
mov ecx,tl_col_txt
|
||||||
|
call get_font_w
|
||||||
|
mov ecx,eax
|
||||||
mov eax,tl_box_left
|
mov eax,tl_box_left
|
||||||
add eax,tl_box_width
|
add eax,tl_box_width
|
||||||
cmp eax,ebx
|
cmp eax,ebx
|
||||||
jle .text_null ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><>࠭<EFBFBD><E0A0AD>
|
jle .text_null ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><>࠭<EFBFBD><E0A0AD>
|
||||||
sub eax,ebx
|
sub eax,ebx
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov ecx,6 ;<3B><>ਭ<EFBFBD> <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
div ecx ;ᬮ<>ਬ <>쪮 ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
div ecx ;ᬮ<>ਬ <>쪮 ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>࠭<EFBFBD>
|
||||||
cmp esi,eax
|
cmp esi,eax
|
||||||
jl @f
|
jl @f
|
||||||
@@ -1858,10 +1897,8 @@ pushad
|
|||||||
.po8:
|
.po8:
|
||||||
call tl_node_move_po8 ;㧫<> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>塞 8 <20><>뫮<EFBFBD>
|
call tl_node_move_po8 ;㧫<> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>塞 8 <20><>뫮<EFBFBD>
|
||||||
.cur_mov:
|
.cur_mov:
|
||||||
push dword edi
|
stdcall tl_cur_perv, edi
|
||||||
call tl_cur_perv
|
stdcall tl_draw, edi
|
||||||
push dword edi
|
|
||||||
call tl_draw
|
|
||||||
@@:
|
@@:
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
@@ -1981,10 +2018,11 @@ tl_draw_caption_cur_pos:
|
|||||||
add ebx,5*65536+3
|
add ebx,5*65536+3
|
||||||
add ebx,tl_box_top
|
add ebx,tl_box_top
|
||||||
mov ecx,tl_col_txt
|
mov ecx,tl_col_txt
|
||||||
|
and ecx,0x00ffffff
|
||||||
or ecx,0xc0000000 ;0x40000000 <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD> 䮭 梥⮬ edi
|
or ecx,0xc0000000 ;0x40000000 <20><><EFBFBD><EFBFBD><EFBFBD>訢<EFBFBD><E8A8A2><EFBFBD> 䮭 梥⮬ edi
|
||||||
lea edx,[txt_capt_cur]
|
lea edx,[txt_capt_cur]
|
||||||
mov edi,tl_col_zag
|
mov edi,tl_col_zag
|
||||||
mcall SF_DRAW_TEXT ;captions
|
mcall SF_DRAW_TEXT ;row number
|
||||||
popad
|
popad
|
||||||
@@:
|
@@:
|
||||||
ret
|
ret
|
||||||
|
Reference in New Issue
Block a user