't_edit' use font size

git-svn-id: svn://kolibrios.org@6256 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2016-02-19 16:00:48 +00:00
parent 114bc20ddc
commit 04752bcd9c
6 changed files with 280 additions and 287 deletions

View File

@ -1,6 +1,6 @@
;***************************************************************************** ;*****************************************************************************
; Box_Lib - library of graphical components ; Box_Lib - library of graphical components
; Copyright (C) KolibriOS team 2008-2013. All rights reserved. ; Copyright (C) KolibriOS team 2008-2016. All rights reserved.
; ;
; Authors: ; Authors:
; Alexey Teplov aka <Lrz> ; Alexey Teplov aka <Lrz>
@ -18,6 +18,7 @@ public EXPORTS
section '.flat' code readable align 16 section '.flat' code readable align 16
include '../../../../macros.inc' include '../../../../macros.inc'
include '../../../../proc32.inc' include '../../../../proc32.inc'
include '../../../../KOSfuncs.inc'
include 'bl_sys.mac' include 'bl_sys.mac'
include 'box_lib.mac' ;macro which should make life easier :) include 'box_lib.mac' ;macro which should make life easier :)
;include '../../../../debug.inc' ;include '../../../../debug.inc'
@ -337,12 +338,12 @@ dd sz_ted_but_redo, ted_but_redo
dd sz_ted_but_reverse, ted_but_reverse dd sz_ted_but_reverse, ted_but_reverse
dd sz_ted_but_find_next, ted_but_find_next dd sz_ted_but_find_next, ted_but_find_next
dd sz_ted_text_colored, ted_text_colored dd sz_ted_text_colored, ted_text_colored
dd sz_ted_version, 0x00000004 dd sz_ted_version, 0x00000005
dd sz_Frame_draw, frame.draw dd sz_Frame_draw, frame.draw
dd szVersion_frame, 0x00010001 dd szVersion_frame, 0x00010001
dd sz_progressbar_draw, progressbar_draw dd sz_progressbar_draw, progressbar_draw
dd sz_progressbar_progress, progressbar_progress dd sz_progressbar_progress, progressbar_progress
dd 0,0 dd 0,0
@ -446,7 +447,7 @@ sz_ted_text_colored db 'ted_text_colored',0
sz_ted_version db 'version_text_edit',0 sz_ted_version db 'version_text_edit',0
sz_Frame_draw db 'frame_draw',0 sz_Frame_draw db 'frame_draw',0
szVersion_frame db 'version_frame',0 szVersion_frame db 'version_frame',0
sz_progressbar_draw db 'progressbar_draw', 0 sz_progressbar_draw db 'progressbar_draw', 0
sz_progressbar_progress db 'progressbar_progress', 0 sz_progressbar_progress db 'progressbar_progress', 0

View File

@ -426,6 +426,7 @@ ted_fun_draw_panel_syntax equ dword[edi+234] ;㪠
ted_fun_save_err equ dword[edi+238] ;㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­® ted_fun_save_err equ dword[edi+238] ;㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­®
ted_increase_size equ dword[edi+242] ;ç¨á«® ᨬ¢®«®¢ ­  ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ­¥å¢ âª¥ ted_increase_size equ dword[edi+242] ;ç¨á«® ᨬ¢®«®¢ ­  ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ­¥å¢ âª¥
ted_ptr_free_symb equ dword[edi+246] ;㪠§ â¥«ì ­  ᢮¡®¤­ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦­® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢­ãâà¨ í«¥¬¥­â  ¤«ï ã᪮७¨ï ¢áâ ¢ª¨ ⥪áâ ) ted_ptr_free_symb equ dword[edi+246] ;㪠§ â¥«ì ­  ᢮¡®¤­ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦­® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢­ãâà¨ í«¥¬¥­â  ¤«ï ã᪮७¨ï ¢áâ ¢ª¨ ⥪áâ )
ted_font_size equ dword[edi+250] ;¬­®¦¨â¥«ì ¤«ï à §¬¥à  èà¨äâ  (¯à¨ ¨§¬¥­¥­¨¨ ­ã¦­® â ª¦¥ ¨§¬¥­ïâì ¯ à ¬¥âàë ted_rec_w, ted_rec_h)
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
ted_opt_ed_move_cursor equ 1 ;¤¢¨£ âì ªãàá®à ¯®á«¥ ¤®¡ ¢«¥­¨ï ⥪áâ  ted_opt_ed_move_cursor equ 1 ;¤¢¨£ âì ªãàá®à ¯®á«¥ ¤®¡ ¢«¥­¨ï ⥪áâ 
ted_opt_ed_change_time equ 2 ;¤®¡ ¢«ïâì ¨§¬¥­¥­¨ï ¯à¨ । ªâ¨à®¢ ­¨¨ ⥪áâ  ted_opt_ed_change_time equ 2 ;¤®¡ ¢«ïâì ¨§¬¥­¥­¨ï ¯à¨ । ªâ¨à®¢ ­¨¨ ⥪áâ 

View File

@ -1,6 +1,6 @@
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj ; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS ; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 21.01.2016 IgorA ; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 19.02.2016 IgorA
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï ; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
;input: ;input:
@ -169,7 +169,7 @@ proc ted_init_scroll_bars, edit:dword, opt:dword
mov edx,ted_wnd_l mov edx,ted_wnd_l
add edx,ted_rec_l add edx,ted_rec_l
mov word[ebx+sb_offs_start_x],dx ;¢ëáâ ¢«ï¥¬ «¥¢ë© ®âáâ㯠£®à¨§. áªà®««¨­£  mov word[ebx+sb_offs_start_x],dx ;¢ëáâ ¢«ï¥¬ «¥¢ë© ®âáâ㯠£®à¨§. áªà®««¨­£ 
mov eax,ted_wnd_h ;calculate lines in page mov eax,ted_wnd_h ;calculate lines in page
mov edx,ted_wnd_t mov edx,ted_wnd_t
add edx,eax add edx,eax
mov word[ebx+sb_offs_start_y],dx ;¢ëáâ ¢«ï¥¬ ¢¥àå­¨© ®âáâ㯠£®à¨§. áªà®««¨­£  mov word[ebx+sb_offs_start_y],dx ;¢ëáâ ¢«ï¥¬ ¢¥àå­¨© ®âáâ㯠£®à¨§. áªà®««¨­£ 
@ -1254,43 +1254,43 @@ endp
; ecx = position to inserted cell ; ecx = position to inserted cell
align 4 align 4
ted_char_add: ted_char_add:
.loop_b:
cmp ecx,ted_tex_end
jge .end_f
cmp dword[ecx+10],0
jne @f
cmp dword[ecx+14],0
je .loop_e
@@:
add ecx,sizeof.symbol
jmp .loop_b
align 4
.loop_e:
.loop_b: push eax ebx
cmp ecx,ted_tex_end mov eax,ted_tim_ch
jge .end_f mov dword[ecx+10],eax
cmp dword[ecx+10],0 mov ax,si
jne @f mov byte[ecx],al
cmp dword[ecx+14],0
je .loop_e
@@:
add ecx,sizeof.symbol
jmp .loop_b
.loop_e:
push eax ebx call ted_get_text_arr_index ; *** eax=pos ***
mov eax,ted_tim_ch mov [ecx+2],eax ;tex[i].perv=pos;
mov dword[ecx+10],eax m2m dword[ecx+6],dword[edx+6] ;tex[i].next=tex[pos].next;
mov ax,si
mov byte[ecx],al
call ted_get_text_arr_index ; *** eax=pos *** push edx
mov [ecx+2],eax ;tex[i].perv=pos; mov edx,ecx
m2m dword[ecx+6],dword[edx+6] ;tex[i].next=tex[pos].next; call ted_get_text_arr_index ; *** eax=i ***
pop edx
push edx mov [edx+6],eax ;tex[pos].next=i; // áá뫪¨ ¯¥à¥­ ¯à ¢«ï¥¬
mov edx,ecx mov ebx,[ecx+6]
call ted_get_text_arr_index ; *** eax=i *** ConvertIndexToPointer ebx
pop edx mov [ebx+2],eax ;tex[tex[i].next].perv=i; // ...
pop ebx eax
mov [edx+6],eax ;tex[pos].next=i; // áá뫪¨ ¯¥à¥­ ¯à ¢«ï¥¬ .end_f:
mov ebx,[ecx+6] call ted_text_colored
ConvertIndexToPointer ebx ret
mov [ebx+2],eax ;tex[tex[i].next].perv=i; // ...
pop ebx eax
.end_f:
call ted_text_colored
ret
;description: ;description:
; äã­ªæ¨ï ¤«ï ᬥ­ë ª®¤¨à®¢®ª ; äã­ªæ¨ï ¤«ï ᬥ­ë ª®¤¨à®¢®ª
@ -1397,31 +1397,29 @@ endp
; bl = 0 - no delete ; bl = 0 - no delete
; bl = 1 - delete ; bl = 1 - delete
align 4 align 4
proc ted_text_del, edit:dword, del_opt:dword proc ted_text_del uses ecx edx edi, edit:dword, del_opt:dword
push cx edx edi mov edi,dword[edit]
mov edi,dword[edit] mov ebx,dword[del_opt]
mov ebx,dword[del_opt]
xor cl,cl xor cl,cl
test ebx,ted_opt_ed_move_cursor test ebx,ted_opt_ed_move_cursor
jz @f jz @f
call ted_cur_move_left call ted_cur_move_left
cmp dl,0 cmp dl,0
je .no_del je .no_del
@@: @@:
call ted_get_pos_by_cursor call ted_get_pos_by_cursor
cmp ted_gp_opt,1 cmp ted_gp_opt,1
je .no_del je .no_del
test ebx,ted_opt_ed_change_time test ebx,ted_opt_ed_change_time
jz @f jz @f
inc ted_tim_ch inc ted_tim_ch
@@: @@:
m2m dword [edx+14], ted_tim_ch m2m dword[edx+14], ted_tim_ch
mov cl,1 mov cl,1
.no_del: .no_del:
mov bl,cl mov bl,cl
pop edi edx cx ret
ret
endp endp
;input: ;input:
@ -1435,7 +1433,6 @@ proc ted_sel_text_del uses ebx ecx edx esi, del_opt:dword
call ted_is_select call ted_is_select
cmp al,0 cmp al,0
je .end_f je .end_f
call ted_sel_normalize call ted_sel_normalize
mov esi,ted_seln_x1 mov esi,ted_seln_x1
@ -1461,6 +1458,7 @@ proc ted_sel_text_del uses ebx ecx edx esi, del_opt:dword
and dword[del_opt],esi ;n_tim=false; and dword[del_opt],esi ;n_tim=false;
call ted_iterat_next call ted_iterat_next
jmp @b jmp @b
align 4
@@: @@:
test dword[del_opt],ted_opt_ed_change_time test dword[del_opt],ted_opt_ed_change_time
jz @f jz @f
@ -2985,79 +2983,74 @@ endp
; this function need to optimize output ; this function need to optimize output
align 4 align 4
proc ted_draw_cursor_sumb proc ted_draw_cursor_sumb
pushad pushad
mov eax,SF_DRAW_RECT
mov ebx,ted_wnd_l
add ebx,ted_rec_l
mov edx,ted_cur_x
imul edx,ted_rec_w
add ebx,edx
shl ebx,16
add ebx,ted_rec_w
mov eax,13 ;rect mov ecx,ted_wnd_t ;calc rect -> y0,y1
mov ebx,ted_wnd_l add ecx,ted_rec_t
add ebx,ted_rec_l mov edx,ted_cur_y
mov edx,ted_cur_x imul edx,ted_rec_h
imul edx,ted_rec_w add ecx,edx
add ebx,edx shl ecx,16
shl ebx,16 add ecx,ted_rec_h
add ebx,ted_rec_w
mov ecx,ted_wnd_t ;calc rect -> y0,y1 mov edx,ted_color_wnd_work
add ecx,ted_rec_t push ecx
mov edx,ted_cur_y call ted_sel_normalize
imul edx,ted_rec_h
add ecx,edx
shl ecx,16
add ecx,ted_rec_h
mov edx,ted_color_wnd_work mov esi,ted_scr_w
push ecx mov ecx,dword[esi+sb_offs_position]
call ted_sel_normalize sub ted_seln_y0,ecx
sub ted_seln_y1,ecx
mov esi,ted_scr_w mov ecx,ted_cur_y
mov ecx,dword[esi+sb_offs_position] cmp ecx,ted_seln_y0
sub ted_seln_y0,ecx jl .no_cur_sel
sub ted_seln_y1,ecx cmp ecx,ted_seln_y1
jg .no_cur_sel
mov ecx,ted_cur_y mov edx,ted_color_select ;¬¥­ï¥¬ 梥â ä®­  ­  梥⠢뤥«¥­¨ï
cmp ecx,ted_seln_y0
jl .no_cur_sel
cmp ecx,ted_seln_y1
jg .no_cur_sel
mov edx,ted_color_select ;¬¥­ï¥¬ 梥â ä®­  ­  梥⠢뤥«¥­¨ï
mov esi,ted_scr_h mov esi,ted_scr_h
cmp ecx,ted_seln_y0 cmp ecx,ted_seln_y0
jne @f jne @f
mov ecx,ted_cur_x mov ecx,ted_cur_x
add ecx,dword[esi+sb_offs_position] add ecx,dword[esi+sb_offs_position]
cmp ecx,ted_seln_x0 cmp ecx,ted_seln_x0
jge @f jge @f
mov edx,ted_color_wnd_work mov edx,ted_color_wnd_work
@@: @@:
mov ecx,ted_cur_y
cmp ecx,ted_seln_y1
jne .no_cur_sel
mov ecx,ted_cur_x
add ecx,dword[esi+sb_offs_position]
cmp ecx,ted_seln_x1
jl .no_cur_sel
mov edx,ted_color_wnd_work
.no_cur_sel:
pop ecx
int 0x40 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª 
mov ecx,ted_cur_y call ted_get_pos_by_cursor ;¡¥à¥¬ ¯®§¨æ¨î ᨬ¢®« 
cmp ecx,ted_seln_y1 cmp ted_gp_opt,2
jne .no_cur_sel jne @f
mov ecx,ted_cur_x mov esi,1
add ecx,dword[esi+sb_offs_position] ror ecx,16
cmp ecx,ted_seln_x1 mov bx,cx
jl .no_cur_sel add ebx,0x10001
mov edx,ted_color_wnd_work call ted_get_symb_color
call ted_convert_invis_symb
.no_cur_sel: mcall SF_DRAW_TEXT ;à¨á®¢ ­¨¥ ᨬ¢®« 
pop ecx @@:
int 0x40 ;à¨á®¢ ­¨¥ ¯àאַ㣮«ì­¨ª  popad
ret
call ted_get_pos_by_cursor ;¡¥à¥¬ ¯®§¨æ¨î ᨬ¢®« 
cmp ted_gp_opt,2
jne @f
mov eax,4
mov esi,1
ror ecx,16
mov bx,cx
add ebx,0x10001
call ted_get_symb_color
call ted_convert_invis_symb
int 0x40 ;à¨á®¢ ­¨¥ ᨬ¢®« 
@@:
popad
ret
endp endp
;input: ;input:
@ -3068,32 +3061,33 @@ endp
; if ted_mode_color=0 then ecx=ted_color_wnd_text ; if ted_mode_color=0 then ecx=ted_color_wnd_text
align 4 align 4
ted_get_symb_color: ted_get_symb_color:
mov ecx,ted_color_wnd_text ;§ ¤ ¥¬ 梥â ⥪áâ  ¯® 㬮«ç ­¨î mov ecx,ted_color_wnd_text ;§ ¤ ¥¬ 梥â ⥪áâ  ¯® 㬮«ç ­¨î
push eax edx push eax edx
cmp ted_mode_color,0 cmp ted_mode_color,0
je .exit je .exit
jmp .on_first jmp .on_first
@@: @@:
call ted_iterat_perv call ted_iterat_perv
cmp edx,ted_tex_1 cmp edx,ted_tex_1
jle .exit jle .exit
.on_first: .on_first:
xor eax,eax xor eax,eax
mov al,byte[edx+1] mov al,byte[edx+1]
cmp al,0 ;¥á«¨ al=0 ⮠梥⠭¥ ¬¥­ï¥âáï or al,al ;¥á«¨ al=0 ⮠梥⠭¥ ¬¥­ï¥âáï
je @b jz @b
cmp eax,ted_colors_text_count cmp eax,ted_colors_text_count
jge .exit jge .exit
shl ax,2 ;㬭®¦ ¥¬ ¨­¤¥ªá æ¢¥â  ­  4 ¡ ©â  shl ax,2 ;㬭®¦ ¥¬ ¨­¤¥ªá æ¢¥â  ­  4 ¡ ©â 
mov ecx,ted_text_colors ;¯à¨¡ ¢«ï¥¬ ᬥ饭¨¥ 1-£® æ¢¥â  mov ecx,ted_text_colors ;¯à¨¡ ¢«ï¥¬ ᬥ饭¨¥ 1-£® 梥â 
add ecx,eax add ecx,eax
mov ecx,dword[ecx] ;ãáâ ­ ¢«¨¢ ¥¬ ⥪ã騩 梥â ⥪áâ  ¯® ᬥ饭¨î mov ecx,dword[ecx] ;ãáâ ­ ¢«¨¢ ¥¬ ⥪ã騩 梥â ⥪áâ  ¯® ᬥ饭¨î
.exit: .exit:
pop edx eax or ecx,ted_font_size
ret pop edx eax
ret
;input: ;input:
; edx = pointer to text ; edx = pointer to text
@ -3136,7 +3130,7 @@ proc ted_draw, edit:dword
pushad pushad
mov edi,dword[edit] mov edi,dword[edit]
mov eax,4 ;draw text mov eax,SF_DRAW_TEXT
mov ecx,ted_text_colors mov ecx,ted_text_colors
mov ecx,dword[ecx] mov ecx,dword[ecx]
@ -3186,7 +3180,7 @@ proc ted_draw, edit:dword
add eax,ted_wnd_t add eax,ted_wnd_t
cmp bx,ax cmp bx,ax
jg .no_draw_text jg .no_draw_text
mov eax,4 mov eax,SF_DRAW_TEXT
;optimized output /\ ;optimized output /\
and ebx,0xffff and ebx,0xffff
ror ebx,16 ror ebx,16
@ -3198,6 +3192,7 @@ proc ted_draw, edit:dword
stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num] stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num]
call ted_opt_draw_line_left call ted_opt_draw_line_left
jmp @b jmp @b
align 4
.no_13: .no_13:
int 0x40 int 0x40
@ -3246,7 +3241,7 @@ proc ted_draw, edit:dword
shl ecx,16 shl ecx,16
mov cx,word[eax+sb_offs_size_y] mov cx,word[eax+sb_offs_size_y]
inc cx inc cx
mcall 13,,,ted_color_wnd_capt ;[sc.work] mcall SF_DRAW_RECT,,,ted_color_wnd_capt ;[sc.work]
;right-bottom square ;right-bottom square
mov ebx,ted_wnd_l mov ebx,ted_wnd_l
@ -3274,7 +3269,7 @@ align 4
proc ted_draw_main_cursor proc ted_draw_main_cursor
pushad pushad
mov eax,13 ;draw cursor mov eax,SF_DRAW_RECT ;draw cursor
mov ecx,ted_wnd_t ;calc rect -> y0,y1 mov ecx,ted_wnd_t ;calc rect -> y0,y1
add ecx,ted_rec_t add ecx,ted_rec_t
mov edx,ted_cur_y mov edx,ted_cur_y
@ -3309,7 +3304,6 @@ proc ted_draw_main_cursor
call ted_get_pos_by_cursor call ted_get_pos_by_cursor
cmp ted_gp_opt,2 cmp ted_gp_opt,2
jne @f jne @f
mov eax,4 ;draw text
mov esi,1 mov esi,1
ror ecx,16 ror ecx,16
mov bx,cx mov bx,cx
@ -3322,11 +3316,11 @@ proc ted_draw_main_cursor
sub bx,cx sub bx,cx
.no_up_tetx: .no_up_tetx:
mov ecx,ted_color_cur_text mov ecx,ted_color_cur_text
or ecx,ted_font_size
call ted_convert_invis_symb call ted_convert_invis_symb
int 0x40 mcall SF_DRAW_TEXT
@@: @@:
mov eax,4
mov ebx,ted_wnd_l mov ebx,ted_wnd_l
add ebx,ted_rec_l add ebx,ted_rec_l
shl ebx,16 shl ebx,16
@ -3335,7 +3329,7 @@ proc ted_draw_main_cursor
mov ecx,ted_color_wnd_bord mov ecx,ted_color_wnd_bord
or ecx,0x80000000 or ecx,0x80000000
lea edx,[txtRow] lea edx,[txtRow]
int 0x40 ;¢ë¢®¤ ¯®¤¯¨á¨ '‘âப ' mcall SF_DRAW_TEXT ;¢ë¢®¤ ¯®¤¯¨á¨ '‘âப '
add ebx,0x500000 add ebx,0x500000
lea edx,[txtCol] lea edx,[txtCol]
@ -3427,17 +3421,15 @@ proc ted_draw_buffer
mov eax,20 ;®¡à¥§ª  ¯®¤¯¨á¨ ¤® 20 ᨬ¢®«®¢ mov eax,20 ;®¡à¥§ª  ¯®¤¯¨á¨ ¤® 20 ᨬ¢®«®¢
.crop_buf: .crop_buf:
mov esi,eax mov esi,eax
mov eax,4 mcall SF_DRAW_TEXT ;¢ë¢®¤ ᮤ¥à¦¨¬®£® ¡ãä¥à 
int 0x40 ;¢ë¢®¤ ᮤ¥à¦¨¬®£® ¡ãä¥à 
sub ebx,50 shl 16 sub ebx,50 shl 16
lea edx,[txtBuf] lea edx,[txtBuf]
mov esi,edx mov esi,edx
call tl_strlen call tl_strlen
mov esi,eax mov esi,eax
mov eax,4
xor ecx,0x40000000 ;㡨ࠥ¬ 梥â ä®­  xor ecx,0x40000000 ;㡨ࠥ¬ 梥â ä®­ 
int 0x40 ;¢ë¢®¤ ¯®¤¯¨á¨ ¤«ï ¡ãä¥à  mcall SF_DRAW_TEXT ;¢ë¢®¤ ¯®¤¯¨á¨ ¤«ï ¡ãä¥à 
@@: @@:
popad popad
ret ret
@ -3459,8 +3451,8 @@ proc ted_draw_help_f1
mov ecx,ted_wnd_t mov ecx,ted_wnd_t
add ecx,13 add ecx,13
shl ecx,16 shl ecx,16
add ecx,ted_rec_h add ecx,9 ;9 - ¢ëá®â  0-£® èà¨äâ , áâ ¢¨âì ted_rec_h ¯®ª  ¥é¥ à ­®
mcall 13,,,ted_color_wnd_capt mcall SF_DRAW_RECT,,,ted_color_wnd_capt
cmp ted_help_id,-1 cmp ted_help_id,-1
je @f je @f
@ -3483,7 +3475,7 @@ proc ted_draw_help_f1
mov ecx,dword[ecx] mov ecx,dword[ecx]
or ecx,0xc0000000 ;SetTextStyles or ecx,0xc0000000 ;SetTextStyles
mov esi,edi mov esi,edi
mcall 4,,,,,ted_color_wnd_work mcall SF_DRAW_TEXT,,,,,ted_color_wnd_work
mov edi,esi mov edi,esi
mov esi,edx mov esi,edx
@ -3500,7 +3492,7 @@ proc ted_draw_help_f1
imul eax,6 ;è¨à¨­  ᨬ¢®«  ¢ á¨áâ. èà¨ä⥠imul eax,6 ;è¨à¨­  ᨬ¢®«  ¢ á¨áâ. èà¨äâ¥
shl eax,16 shl eax,16
add ebx,eax add ebx,eax
mcall 4 mcall SF_DRAW_TEXT
@@: @@:
popad popad
ret ret
@ -3510,64 +3502,61 @@ endp
; edi = pointer to tedit struct ; edi = pointer to tedit struct
align 4 align 4
proc ted_draw_line_numbers proc ted_draw_line_numbers
pushad pushad
;top panel with caption
;top panel with caption mov ebx,ted_wnd_l
mov ebx,ted_wnd_l
; add ebx,ted_rec_l ; add ebx,ted_rec_l
shl ebx,16 shl ebx,16
add ebx,ted_wnd_w add ebx,ted_wnd_w
; sub ebx,ted_rec_l ; sub ebx,ted_rec_l
mov edx,ted_color_wnd_work mov edx,ted_color_wnd_work
mov ecx,ted_wnd_t mov ecx,ted_wnd_t
shl ecx,16 shl ecx,16
add ecx,ted_rec_t add ecx,ted_rec_t
mov eax,13 mov edx,ted_color_wnd_capt
mov edx,ted_color_wnd_capt mcall SF_DRAW_RECT
int 0x40
;line numbers ;line numbers
mov ebx,0x40000 ;format mov ebx,0x40000 ;format
mov ecx,ted_scr_w mov ecx,ted_scr_w
mov ecx,dword[ecx+sb_offs_position] mov ecx,dword[ecx+sb_offs_position]
inc ecx inc ecx
mov edx,3 mov edx,3
add edx,ted_wnd_l add edx,ted_wnd_l
rol edx,16 rol edx,16
add edx,ted_wnd_t add edx,ted_wnd_t
add edx,ted_rec_t add edx,ted_rec_t
@@: @@:
push ebx ecx edx push ebx ecx edx
;left panel with numbers ;left panel with numbers
mov ebx,ted_wnd_l mov ebx,ted_wnd_l
shl ebx,16 shl ebx,16
add ebx,ted_rec_l add ebx,ted_rec_l
mov ecx,ted_rec_h mov ecx,ted_rec_h
rol ecx,16 rol ecx,16
mov cx,dx mov cx,dx
rol ecx,16 rol ecx,16
mov eax,13 mov edx,ted_color_wnd_capt
mov edx,ted_color_wnd_capt mcall SF_DRAW_RECT ;à¨á㥬 ¯àאַ㣮«ì­¨ª ¯®¤ ­®¬¥à®¬ áâப¨
int 0x40 ;à¨á㥬 ¯àאַ㣮«ì­¨ª ¯®¤ ­®¬¥à®¬ áâப¨
pop edx ecx ebx pop edx ecx ebx
mov eax,47 mov eax,47
mov esi,ted_color_wnd_bord mov esi,ted_color_wnd_bord
int 0x40 ;à¨á㥬 ­®¬¥à áâப¨ int 0x40 ;à¨á㥬 ­®¬¥à áâப¨
inc ecx inc ecx
add edx,ted_rec_h add edx,ted_rec_h
sub edx,ted_wnd_t sub edx,ted_wnd_t
mov esi,edx mov esi,edx
and esi,0xffff and esi,0xffff
cmp esi,ted_wnd_h cmp esi,ted_wnd_h
jge @f jge @f
add edx,ted_wnd_t add edx,ted_wnd_t
jmp @b jmp @b
@@: align 4
@@:
popad popad
ret ret
endp endp
;output: ;output:
@ -3611,7 +3600,7 @@ proc ted_draw_cur_line, edit:dword
cmp ted_gp_opt,2 cmp ted_gp_opt,2
jne .no_draw_text jne .no_draw_text
; mov eax,4 ;draw text ; mov eax,SF_DRAW_TEXT
call ted_get_symb_color call ted_get_symb_color
mov esi,1 ;draw 1 symbol mov esi,1 ;draw 1 symbol
@@: @@:
@ -3627,7 +3616,7 @@ proc ted_draw_cur_line, edit:dword
call ted_get_symb_color call ted_get_symb_color
.no_col_change: .no_col_change:
mov eax,4 ;draw text mov eax,SF_DRAW_TEXT
cmp byte [edx],13 cmp byte [edx],13
jne .no_13 jne .no_13
cmp ted_mode_invis,1 cmp ted_mode_invis,1
@ -3753,14 +3742,13 @@ proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_l
mov edx,ted_color_select ;draw selected line mov edx,ted_color_select ;draw selected line
.no_select: .no_select:
mov eax,13 ;rect mcall SF_DRAW_RECT ;§ ªà áª  ¯®«­®© áâப¨ 梥⮬ ä®­  ¨«¨ 梥⮬ ¢ë¤¥«¥­¨ï
int 0x40 ;§ ªà áª  ¯®«­®© áâப¨ 梥⮬ ä®­  ¨«¨ 梥⮬ ¢ë¤¥«¥­¨ï
call ted_is_select call ted_is_select
cmp al,0 or al,al
je .no_clear jz .no_clear
mov al,13 ;rect mov al,SF_DRAW_RECT
xor cx,cx xor cx,cx
add ecx,ted_rec_h add ecx,ted_rec_h
cmp ted_seln_y0,esi cmp ted_seln_y0,esi
@ -3823,10 +3811,11 @@ ted_get_first_visible_pos:
call ted_iterat_next call ted_iterat_next
cmp edx,ted_tex_1 cmp edx,ted_tex_1
jle @f jle @f
cmp byte [edx],13 cmp byte[edx],13
jne @b jne @b
inc ecx inc ecx
jmp @b jmp @b
align 4
@@: @@:
cmp ecx,dword[eax+sb_offs_position] cmp ecx,dword[eax+sb_offs_position]
@ -3850,61 +3839,59 @@ ted_get_first_visible_pos:
;description: ;description:
; äã­ªæ¨ï ­ã¦­  ¤«ï ®¯â¨¬¨§ æ¨¨ ¢ë¢®¤  ⥪áâ  ; äã­ªæ¨ï ­ã¦­  ¤«ï ®¯â¨¬¨§ æ¨¨ ¢ë¢®¤  ⥪áâ 
align 4 align 4
proc ted_opt_draw_line_left proc ted_opt_draw_line_left uses ebx
push ebx mov ebx,ted_scr_h
mov ebx,dword[ebx+sb_offs_position]
or ebx,ebx
jz .ret_f
push eax
mov eax,edx
mov ebx,ted_scr_h cmp edx,ted_tex
mov ebx,dword[ebx+sb_offs_position] jne @f
cmp ebx,0 call ted_iterat_next
je .ret_f jmp .beg_cycle
push eax @@:
mov eax,edx
cmp edx,ted_tex or ebx,ebx
jne @f jz @f
call ted_iterat_next
jmp .beg_cycle
@@:
cmp ebx,0 cmp byte[edx],13
je @f jne @f
call ted_iterat_next
cmp byte[edx],13 .beg_cycle:
jne @f @@:
call ted_iterat_next cmp edx,ted_tex_1
.beg_cycle: jle @f
@@: cmp byte[edx],13
cmp edx,ted_tex_1 je @f
jle @f or ebx,ebx
cmp byte[edx],13 jz @f
je @f
cmp ebx,0
je @f
;-------------------------------------- ;--------------------------------------
xor eax,eax ;eax ¡ã¤¥â ¬¥­ïâìáï xor eax,eax ;eax ¡ã¤¥â ¬¥­ïâìáï
mov al,byte[edx+1] mov al,byte[edx+1]
cmp al,0 or al,al
je .no_color jz .no_color
cmp eax,ted_colors_text_count cmp eax,ted_colors_text_count
jge .no_color jge .no_color
xor ecx,ecx xor ecx,ecx
mov cl,byte[edx+1] mov cl,byte[edx+1]
shl cx,2 shl cx,2
add ecx,ted_text_colors add ecx,ted_text_colors
mov ecx,dword[ecx] mov ecx,dword[ecx]
.no_color: .no_color:
;-------------------------------------- ;--------------------------------------
mov eax,edx mov eax,edx
call ted_iterat_next call ted_iterat_next
dec ebx dec ebx
jmp @b jmp @b
@@: align 4
mov edx,eax @@:
pop eax mov edx,eax
.ret_f: pop eax
call ted_get_symb_color .ret_f:
pop ebx call ted_get_symb_color
ret ret
endp endp
;input: ;input:
@ -4038,7 +4025,6 @@ ted_wnd_main_click:
push eax push eax
shr eax,16 shr eax,16
and eax,0xffff
sub eax,ted_wnd_l sub eax,ted_wnd_l
sub eax,ted_rec_l sub eax,ted_rec_l

File diff suppressed because one or more lines are too long

View File

@ -3,12 +3,10 @@
use32 use32
org 0x0 org 0x0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 1, start, i_end, mem, stacktop dd 1, start, i_end, mem, stacktop, file_name, sys_path
dd file_name ; command line
dd sys_path
MAX_COLOR_WORD_LEN equ 40 MAX_COLOR_WORD_LEN equ 40
maxChars equ 100002 ;(...+2) maxChars equ 100002 ;(ª®««¨ç¥á⢮ ᨬ¢®«®¢ ¢ ­®¢®¬ ¤®ªã¬¥­â¥ + 2)
BUF_SIZE equ 4096 ;buffer for copy|paste BUF_SIZE equ 4096 ;buffer for copy|paste
maxSyntaxFileSize equ 410000 maxSyntaxFileSize equ 410000
TOOLBAR_ICONS_SIZE equ 1200*20 TOOLBAR_ICONS_SIZE equ 1200*20
@ -31,7 +29,9 @@ include 'wnd_k_words.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
align 4
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
run_file_70 FileInfoBlock
align 4 align 4
start: start:
@ -201,8 +201,12 @@ mov ebp,lib0
mov dword[tedit0.rec.width],eax mov dword[tedit0.rec.width],eax
stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h stdcall dword[ini_get_int],file_name,ini_sec_window,key_symbol_h,ini_def_symbol_h
mov dword[tedit0.rec.height],eax mov dword[tedit0.rec.height],eax
lea eax,[eax+eax*2] ;lea eax,[eax+eax*2]
mov dword[tedit0.rec.top],eax ;mov dword[tedit0.rec.top],eax
;font size
stdcall dword[ini_get_int],file_name,ini_sec_window,key_font_s,ini_def_font_s
shl eax,24
mov dword[tedit0.font_size],eax
;ä ©«®¢ë¥ à áè¨à¥­¨ï ;ä ©«®¢ë¥ à áè¨à¥­¨ï
xor edx,edx xor edx,edx
mov ebx,synt_auto_open mov ebx,synt_auto_open
@ -578,17 +582,17 @@ i_end:
last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á  last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤­¥£® ¯®¤ª«î祭­®£® ä ©«  ᨭ⠪á¨á 
buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨ buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï ¨ ¢áâ ¢ª¨
buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ  buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª  ⥪áâ 
run_file_70 FileInfoBlock
sc system_colors sc system_colors
rb sizeof.system_colors
IncludeUGlobals IncludeUGlobals
align 16 align 16
procinfo process_information procinfo process_information
rb 1024 rb 1024
thread: thread:
rb 1024 rb 4096
align 16
thread_coords: thread_coords:
rb 4096 rb 4096
align 16
stacktop: stacktop:
sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©« sys_path: ;¯ãâì ®âªã¤  § ¯ãá⨫áï ¨á¯®«­ï¥¬ë© ä ©«
rb 4096 rb 4096

View File

@ -3,8 +3,9 @@ t=20
l=200 l=200
w=570 w=570
h=490 h=490
symbol_w=7 symbol_w=14
symbol_h=11 symbol_h=20
font_s=1
scroll_type=0 scroll_type=0
[Options] [Options]
syntax_0=asm.syn syntax_0=asm.syn