t_edit: new algoritm text selection

img_transform: update program

git-svn-id: svn://kolibrios.org@8036 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2020-06-10 14:53:12 +00:00
parent 05a05aaf23
commit 12edb27757
2 changed files with 268 additions and 91 deletions

View File

@@ -1,6 +1,6 @@
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> box_lib.obj
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TextEditor <20><><EFBFBD> Kolibri OS
; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 29.01.2019 IgorA
; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10.06.2020 IgorA
; <20><> <20><><EFBFBD> <20><EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><><EFBFBD><E6A5AD><EFBFBD>
;input:
@@ -337,8 +337,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi
jmp @f
.no_red_0:
call ted_draw_main_cursor
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_sel_end
@@:
cmp ah,80 ;177 ;Down
jne @f
@@ -350,8 +349,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi
jmp @f
.no_red_1:
call ted_draw_main_cursor
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_sel_end
@@:
cmp ah,75 ;176 ;Left
jne @f
@@ -363,8 +361,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi
jmp @f
.no_red_2:
call ted_draw_main_cursor
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_sel_end
@@:
cmp ah,77 ;179 ;Right
jne @f
@@ -376,8 +373,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi
jmp @f
.no_red_3:
call ted_draw_main_cursor
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_sel_end
@@:
cmp ah,71 ;180 ;Home
jne @f
@@ -389,8 +385,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi
jmp @f
.no_red_4:
call ted_draw_main_cursor
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_sel_end
@@:
cmp ah,79 ;181 ;End
jne @f
@@ -402,8 +397,7 @@ proc ted_key, edit:dword, table:dword, control:dword
stdcall ted_draw,edi
jmp @f
.no_red_5:
call ted_draw_main_cursor
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_sel_end
@@:
cmp ah,73 ;184 ;PageUp
jne @f
@@ -412,6 +406,7 @@ proc ted_key, edit:dword, table:dword, control:dword
je @f
call ted_scroll_set_redraw
stdcall ted_draw,edi
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@:
cmp ah,81 ;183 ;PageDown
jne @f
@@ -632,6 +627,29 @@ proc ted_sel_start uses eax ecx
ret
endp
;input:
; edi = pointer to tedit struct
;description:
; <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
align 16
proc ted_sel_end uses eax
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call ted_is_select
or al,al
jz @f
xor eax,eax
mov ted_sel_x0,eax
mov ted_sel_x1,eax
mov ted_sel_y0,eax
mov ted_sel_y1,eax
stdcall ted_draw,edi
jmp .end_f
@@:
call ted_draw_main_cursor
.end_f:
ret
endp
;input:
; edi = pointer to tedit struct
;description:
@@ -1396,7 +1414,7 @@ proc ted_convert_sel_text, conv_fun:dword
@@:
.end_f:
popad
mov esi,dword[conv_cou]
mov esi,[conv_cou]
ret
endp
@@ -3223,56 +3241,56 @@ endp
; edi = pointer to tedit struct
align 16
proc ted_sel_key_left
cmp ted_drag_k,1
je @f
call ted_sel_start
@@:
push dx
call ted_cur_move_left
call ted_sel_move
cmp ted_drag_k,1
je @f
mov ted_drag_k,1
mov dl,8
@@:
cmp dl,8
jne @f
call ted_scroll_set_redraw
stdcall ted_draw,edi
jmp .end_f
@@:
stdcall ted_draw_cur_line,edi
.end_f:
pop dx
ret
cmp ted_drag_k,1
je @f
call ted_sel_start
@@:
push dx
call ted_cur_move_left
call ted_sel_move
cmp ted_drag_k,1
je @f
mov ted_drag_k,1
mov dl,8
@@:
cmp dl,8
jne @f
call ted_scroll_set_redraw
stdcall ted_draw,edi
jmp .end_f
@@:
stdcall ted_draw_cur_line,edi
.end_f:
pop dx
ret
endp
;input:
; edi = pointer to tedit struct
align 16
proc ted_sel_key_right
cmp ted_drag_k,1
je @f
call ted_sel_start
@@:
push dx
call ted_cur_move_right
call ted_sel_move
cmp ted_drag_k,1
je @f
mov ted_drag_k,1
mov dl,8
@@:
cmp dl,8
jne @f
call ted_scroll_set_redraw
stdcall ted_draw,edi
jmp .end_f
@@:
stdcall ted_draw_cur_line,edi
.end_f:
pop dx
ret
cmp ted_drag_k,1
je @f
call ted_sel_start
@@:
push dx
call ted_cur_move_right
call ted_sel_move
cmp ted_drag_k,1
je @f
mov ted_drag_k,1
mov dl,8
@@:
cmp dl,8
jne @f
call ted_scroll_set_redraw
stdcall ted_draw,edi
jmp .end_f
@@:
stdcall ted_draw_cur_line,edi
.end_f:
pop dx
ret
endp
;input: