1,6 → 1,6 |
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 21.01.2016 IgorA |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 19.02.2016 IgorA |
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
|
;input: |
1254,7 → 1254,6 |
; ecx = position to inserted cell |
align 4 |
ted_char_add: |
|
.loop_b: |
cmp ecx,ted_tex_end |
jge .end_f |
1265,6 → 1264,7 |
@@: |
add ecx,sizeof.symbol |
jmp .loop_b |
align 4 |
.loop_e: |
|
push eax ebx |
1397,8 → 1397,7 |
; bl = 0 - no delete |
; bl = 1 - delete |
align 4 |
proc ted_text_del, edit:dword, del_opt:dword |
push cx edx edi |
proc ted_text_del uses ecx edx edi, edit:dword, del_opt:dword |
mov edi,dword[edit] |
mov ebx,dword[del_opt] |
|
1420,7 → 1419,6 |
mov cl,1 |
.no_del: |
mov bl,cl |
pop edi edx cx |
ret |
endp |
|
1435,7 → 1433,6 |
call ted_is_select |
cmp al,0 |
je .end_f |
|
call ted_sel_normalize |
|
mov esi,ted_seln_x1 |
1461,6 → 1458,7 |
and dword[del_opt],esi ;n_tim=false; |
call ted_iterat_next |
jmp @b |
align 4 |
@@: |
test dword[del_opt],ted_opt_ed_change_time |
jz @f |
2986,8 → 2984,7 |
align 4 |
proc ted_draw_cursor_sumb |
pushad |
|
mov eax,13 ;rect |
mov eax,SF_DRAW_RECT |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
mov edx,ted_cur_x |
3029,7 → 3026,6 |
jge @f |
mov edx,ted_color_wnd_work |
@@: |
|
mov ecx,ted_cur_y |
cmp ecx,ted_seln_y1 |
jne .no_cur_sel |
3038,7 → 3034,6 |
cmp ecx,ted_seln_x1 |
jl .no_cur_sel |
mov edx,ted_color_wnd_work |
|
.no_cur_sel: |
pop ecx |
int 0x40 ;à¨á®¢ ¨¥ ¯àאַ㣮«ì¨ª |
3046,7 → 3041,6 |
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 |
3053,9 → 3047,8 |
add ebx,0x10001 |
call ted_get_symb_color |
call ted_convert_invis_symb |
int 0x40 ;à¨á®¢ ¨¥ ᨬ¢®« |
mcall SF_DRAW_TEXT ;à¨á®¢ ¨¥ ᨬ¢®« |
@@: |
|
popad |
ret |
endp |
3081,8 → 3074,8 |
.on_first: |
xor eax,eax |
mov al,byte[edx+1] |
cmp al,0 ;¥á«¨ al=0 ⮠梥⠥ ¬¥ï¥âáï |
je @b |
or al,al ;¥á«¨ al=0 ⮠梥⠥ ¬¥ï¥âáï |
jz @b |
|
cmp eax,ted_colors_text_count |
jge .exit |
3092,6 → 3085,7 |
add ecx,eax |
mov ecx,dword[ecx] ;ãáâ ¢«¨¢ ¥¬ ⥪ã騩 梥â ⥪áâ ¯® ᬥ饨î |
.exit: |
or ecx,ted_font_size |
pop edx eax |
ret |
|
3136,7 → 3130,7 |
pushad |
mov edi,dword[edit] |
|
mov eax,4 ;draw text |
mov eax,SF_DRAW_TEXT |
mov ecx,ted_text_colors |
mov ecx,dword[ecx] |
|
3186,7 → 3180,7 |
add eax,ted_wnd_t |
cmp bx,ax |
jg .no_draw_text |
mov eax,4 |
mov eax,SF_DRAW_TEXT |
;optimized output /\ |
and ebx,0xffff |
ror ebx,16 |
3198,6 → 3192,7 |
stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num] |
call ted_opt_draw_line_left |
jmp @b |
align 4 |
.no_13: |
|
int 0x40 |
3246,7 → 3241,7 |
shl ecx,16 |
mov cx,word[eax+sb_offs_size_y] |
inc cx |
mcall 13,,,ted_color_wnd_capt ;[sc.work] |
mcall SF_DRAW_RECT,,,ted_color_wnd_capt ;[sc.work] |
|
;right-bottom square |
mov ebx,ted_wnd_l |
3274,7 → 3269,7 |
proc ted_draw_main_cursor |
pushad |
|
mov eax,13 ;draw cursor |
mov eax,SF_DRAW_RECT ;draw cursor |
mov ecx,ted_wnd_t ;calc rect -> y0,y1 |
add ecx,ted_rec_t |
mov edx,ted_cur_y |
3309,7 → 3304,6 |
call ted_get_pos_by_cursor |
cmp ted_gp_opt,2 |
jne @f |
mov eax,4 ;draw text |
mov esi,1 |
ror ecx,16 |
mov bx,cx |
3322,11 → 3316,11 |
sub bx,cx |
.no_up_tetx: |
mov ecx,ted_color_cur_text |
or ecx,ted_font_size |
call ted_convert_invis_symb |
int 0x40 |
mcall SF_DRAW_TEXT |
@@: |
|
mov eax,4 |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
shl ebx,16 |
3335,7 → 3329,7 |
mov ecx,ted_color_wnd_bord |
or ecx,0x80000000 |
lea edx,[txtRow] |
int 0x40 ;¢ë¢®¤ ¯®¤¯¨á¨ 'âப ' |
mcall SF_DRAW_TEXT ;¢ë¢®¤ ¯®¤¯¨á¨ 'âப ' |
|
add ebx,0x500000 |
lea edx,[txtCol] |
3427,8 → 3421,7 |
mov eax,20 ;®¡à¥§ª ¯®¤¯¨á¨ ¤® 20 ᨬ¢®«®¢ |
.crop_buf: |
mov esi,eax |
mov eax,4 |
int 0x40 ;¢ë¢®¤ ᮤ¥à¦¨¬®£® ¡ãä¥à |
mcall SF_DRAW_TEXT ;¢ë¢®¤ ᮤ¥à¦¨¬®£® ¡ãä¥à |
|
sub ebx,50 shl 16 |
lea edx,[txtBuf] |
3435,9 → 3428,8 |
mov esi,edx |
call tl_strlen |
mov esi,eax |
mov eax,4 |
xor ecx,0x40000000 ;ã¡¨à ¥¬ 梥â ä® |
int 0x40 ;¢ë¢®¤ ¯®¤¯¨á¨ ¤«ï ¡ãä¥à |
mcall SF_DRAW_TEXT ;¢ë¢®¤ ¯®¤¯¨á¨ ¤«ï ¡ãä¥à |
@@: |
popad |
ret |
3459,8 → 3451,8 |
mov ecx,ted_wnd_t |
add ecx,13 |
shl ecx,16 |
add ecx,ted_rec_h |
mcall 13,,,ted_color_wnd_capt |
add ecx,9 ;9 - ¢ëá®â 0-£® èà¨äâ , áâ ¢¨âì ted_rec_h ¯®ª ¥é¥ à ® |
mcall SF_DRAW_RECT,,,ted_color_wnd_capt |
|
cmp ted_help_id,-1 |
je @f |
3483,7 → 3475,7 |
mov ecx,dword[ecx] |
or ecx,0xc0000000 ;SetTextStyles |
mov esi,edi |
mcall 4,,,,,ted_color_wnd_work |
mcall SF_DRAW_TEXT,,,,,ted_color_wnd_work |
mov edi,esi |
|
mov esi,edx |
3500,7 → 3492,7 |
imul eax,6 ;è¨à¨ ᨬ¢®« ¢ á¨áâ. èà¨ä⥠|
shl eax,16 |
add ebx,eax |
mcall 4 |
mcall SF_DRAW_TEXT |
@@: |
popad |
ret |
3511,7 → 3503,6 |
align 4 |
proc ted_draw_line_numbers |
pushad |
|
;top panel with caption |
mov ebx,ted_wnd_l |
; add ebx,ted_rec_l |
3522,9 → 3513,8 |
mov ecx,ted_wnd_t |
shl ecx,16 |
add ecx,ted_rec_t |
mov eax,13 |
mov edx,ted_color_wnd_capt |
int 0x40 |
mcall SF_DRAW_RECT |
|
;line numbers |
mov ebx,0x40000 ;format |
3547,9 → 3537,8 |
rol ecx,16 |
mov cx,dx |
rol ecx,16 |
mov eax,13 |
mov edx,ted_color_wnd_capt |
int 0x40 ;à¨á㥬 ¯àאַ㣮«ì¨ª ¯®¤ ®¬¥à®¬ áâப¨ |
mcall SF_DRAW_RECT ;à¨á㥬 ¯àאַ㣮«ì¨ª ¯®¤ ®¬¥à®¬ áâப¨ |
pop edx ecx ebx |
|
mov eax,47 |
3564,8 → 3553,8 |
jge @f |
add edx,ted_wnd_t |
jmp @b |
align 4 |
@@: |
|
popad |
ret |
endp |
3611,7 → 3600,7 |
|
cmp ted_gp_opt,2 |
jne .no_draw_text |
; mov eax,4 ;draw text |
; mov eax,SF_DRAW_TEXT |
call ted_get_symb_color |
mov esi,1 ;draw 1 symbol |
@@: |
3627,7 → 3616,7 |
call ted_get_symb_color |
.no_col_change: |
|
mov eax,4 ;draw text |
mov eax,SF_DRAW_TEXT |
cmp byte [edx],13 |
jne .no_13 |
cmp ted_mode_invis,1 |
3753,14 → 3742,13 |
mov edx,ted_color_select ;draw selected line |
.no_select: |
|
mov eax,13 ;rect |
int 0x40 ;§ ªà ᪠¯®«®© áâப¨ 梥⮬ ä® ¨«¨ 梥⮬ ¢ë¤¥«¥¨ï |
mcall SF_DRAW_RECT ;§ ªà ᪠¯®«®© áâப¨ 梥⮬ ä® ¨«¨ 梥⮬ ¢ë¤¥«¥¨ï |
|
call ted_is_select |
cmp al,0 |
je .no_clear |
or al,al |
jz .no_clear |
|
mov al,13 ;rect |
mov al,SF_DRAW_RECT |
xor cx,cx |
add ecx,ted_rec_h |
cmp ted_seln_y0,esi |
3827,6 → 3815,7 |
jne @b |
inc ecx |
jmp @b |
align 4 |
@@: |
|
cmp ecx,dword[eax+sb_offs_position] |
3850,13 → 3839,11 |
;description: |
; äãªæ¨ï 㦠¤«ï ®¯â¨¬¨§ 樨 ¢ë¢®¤ ⥪áâ |
align 4 |
proc ted_opt_draw_line_left |
push ebx |
|
proc ted_opt_draw_line_left uses ebx |
mov ebx,ted_scr_h |
mov ebx,dword[ebx+sb_offs_position] |
cmp ebx,0 |
je .ret_f |
or ebx,ebx |
jz .ret_f |
push eax |
mov eax,edx |
|
3866,8 → 3853,8 |
jmp .beg_cycle |
@@: |
|
cmp ebx,0 |
je @f |
or ebx,ebx |
jz @f |
|
cmp byte[edx],13 |
jne @f |
3878,13 → 3865,13 |
jle @f |
cmp byte[edx],13 |
je @f |
cmp ebx,0 |
je @f |
or ebx,ebx |
jz @f |
;-------------------------------------- |
xor eax,eax ;eax ¡ã¤¥â ¬¥ïâìáï |
mov al,byte[edx+1] |
cmp al,0 |
je .no_color |
or al,al |
jz .no_color |
cmp eax,ted_colors_text_count |
jge .no_color |
xor ecx,ecx |
3898,12 → 3885,12 |
call ted_iterat_next |
dec ebx |
jmp @b |
align 4 |
@@: |
mov edx,eax |
pop eax |
.ret_f: |
call ted_get_symb_color |
pop ebx |
ret |
endp |
|
4038,7 → 4025,6 |
|
push eax |
shr eax,16 |
and eax,0xffff |
sub eax,ted_wnd_l |
sub eax,ted_rec_l |
|