forked from KolibriOS/kolibrios
't_edit' add commands [Ctrl]+[End], [Ctrl]+[A]
'msgbox' change select button use [Tab] key git-svn-id: svn://kolibrios.org@4988 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -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> 27.06.2014 IgorA
|
||||
; 䠩<> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> ࠧ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 28.06.2014 IgorA
|
||||
; <20><> <20><><EFBFBD> <20>ਬ<EFBFBD><E0A8AC><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><>業<EFBFBD><E6A5AD><EFBFBD>
|
||||
|
||||
;input:
|
||||
@@ -9,8 +9,8 @@
|
||||
;output:
|
||||
; reg = pointer to 'tex' struct
|
||||
macro ConvertIndexToPointer reg {
|
||||
imul reg,sizeof.symbol
|
||||
add reg,ted_tex
|
||||
imul reg,sizeof.symbol
|
||||
add reg,ted_tex
|
||||
}
|
||||
|
||||
;--- out_reg = ted_key_words_data[ind_reg].Text[0] ---
|
||||
@@ -27,13 +27,14 @@ TED_PANEL_FIND equ 1 ;
|
||||
TED_PANEL_SYNTAX equ 2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>롮<EFBFBD><EBA1AE> 䠩<><E4A0A9><EFBFBD> <20><><EFBFBD>ᢥ⪨
|
||||
TED_PANEL_WIDTH equ 150 ;<3B><>ਭ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
TED_LINES_IN_NEW_FILE equ 30 ;<3B><> <20><>ப <20> <20><><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||
MAX_COLOR_WORD_LEN equ 40
|
||||
;------------------------------------------------------------------------------
|
||||
struct TexSelect
|
||||
x0 dd ?
|
||||
y0 dd ?
|
||||
x1 dd ?
|
||||
y1 dd ?
|
||||
x0 dd ?
|
||||
y0 dd ?
|
||||
x1 dd ?
|
||||
y1 dd ?
|
||||
ends
|
||||
|
||||
struct TexColViv
|
||||
@@ -46,12 +47,12 @@ struct TexColViv
|
||||
ends
|
||||
|
||||
struct symbol
|
||||
c db ? ; +0 ᨬ<><E1A8AC><EFBFBD>
|
||||
col db ? ; +1 梥<>
|
||||
perv dd ? ; +2
|
||||
next dd ? ; +6 㪠<><E3AAA0>⥫<EFBFBD>
|
||||
tc dd ? ; +10 <20>६. ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD>
|
||||
td dd ? ; +14 <20>६. 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD>
|
||||
c db ? ; +0 ᨬ<><E1A8AC><EFBFBD>
|
||||
col db ? ; +1 梥<>
|
||||
perv dd ? ; +2
|
||||
next dd ? ; +6 㪠<><E3AAA0>⥫<EFBFBD>
|
||||
tc dd ? ; +10 <20>६. ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD>
|
||||
td dd ? ; +14 <20>६. 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD>
|
||||
ends
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
@@ -159,9 +160,9 @@ proc ted_init_scroll_bars, edit:dword, opt:dword
|
||||
bt dword[opt],2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD> ?
|
||||
jae .doc_resize
|
||||
call ted_get_num_lines
|
||||
cmp eax,100
|
||||
cmp eax,TED_LINES_IN_NEW_FILE
|
||||
jge @f
|
||||
mov eax,100
|
||||
mov eax,TED_LINES_IN_NEW_FILE
|
||||
@@:
|
||||
mov dword[esi+sb_offs_max_area],eax
|
||||
.doc_resize:
|
||||
@@ -243,6 +244,7 @@ proc ted_key, edit:dword, table:dword, control:dword
|
||||
|
||||
test esi,KM_CTRL ;Ctrl+...
|
||||
jz .key_Ctrl
|
||||
; *** <20>맮<EFBFBD> <20><><EFBFBD>譨<EFBFBD> <20>㭪権 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ॡ<EFBFBD><E0A5A1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD>/<2F><><EFBFBD>᪠/...
|
||||
cmp ah,24 ;Ctrl+O
|
||||
jne @f
|
||||
cmp ted_fun_on_key_ctrl_o,0
|
||||
@@ -263,6 +265,17 @@ proc ted_key, edit:dword, table:dword, control:dword
|
||||
je @f
|
||||
call ted_fun_on_key_ctrl_f
|
||||
@@:
|
||||
cmp ah,49 ;Ctrl+N
|
||||
jne @f
|
||||
cmp ted_fun_on_key_ctrl_n,0
|
||||
je @f
|
||||
call ted_fun_on_key_ctrl_n
|
||||
@@:
|
||||
; *** <20>맮<EFBFBD> <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD><EFBFBD> <20>㭪権
|
||||
cmp ah,30 ;Ctrl+A
|
||||
jne @f
|
||||
call ted_sel_all
|
||||
@@:
|
||||
cmp ah,44 ;Ctrl+Z
|
||||
jne @f
|
||||
stdcall ted_but_undo,edi
|
||||
@@ -275,16 +288,14 @@ proc ted_key, edit:dword, table:dword, control:dword
|
||||
jne @f
|
||||
stdcall ted_but_paste,edi
|
||||
@@:
|
||||
cmp ah,49 ;Ctrl+N
|
||||
jne @f
|
||||
cmp ted_fun_on_key_ctrl_n,0
|
||||
je @f
|
||||
call ted_fun_on_key_ctrl_n
|
||||
@@:
|
||||
cmp ah,199 ;Ctrl+Home
|
||||
jne @f
|
||||
call ted_key_ctrl_home
|
||||
@@:
|
||||
cmp ah,207 ;Ctrl+End
|
||||
jne @f
|
||||
call ted_key_ctrl_end
|
||||
@@:
|
||||
jmp .end_key_fun
|
||||
.key_Ctrl:
|
||||
|
||||
@@ -539,21 +550,21 @@ endp
|
||||
; al = 1 - selected
|
||||
align 4
|
||||
proc ted_is_select
|
||||
push ebx
|
||||
xor al,al
|
||||
cmp ted_drag_m,1
|
||||
je @f
|
||||
mov al,1
|
||||
mov ebx,ted_sel_x0
|
||||
cmp ebx,ted_sel_x1
|
||||
jne @f
|
||||
mov ebx,ted_sel_y0
|
||||
cmp ebx,ted_sel_y1
|
||||
jne @f
|
||||
xor al,al
|
||||
@@:
|
||||
pop ebx
|
||||
ret
|
||||
push ebx
|
||||
xor al,al
|
||||
cmp ted_drag_m,1
|
||||
je @f
|
||||
mov al,1
|
||||
mov ebx,ted_sel_x0
|
||||
cmp ebx,ted_sel_x1
|
||||
jne @f
|
||||
mov ebx,ted_sel_y0
|
||||
cmp ebx,ted_sel_y1
|
||||
jne @f
|
||||
xor al,al
|
||||
@@:
|
||||
pop ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
;input:
|
||||
@@ -645,6 +656,29 @@ proc ted_sel_move
|
||||
ret
|
||||
endp
|
||||
|
||||
;input:
|
||||
; edi = pointer to tedit struct
|
||||
;description:
|
||||
; <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD>뢠<EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><><EFBFBD> <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20>ᥣ<EFBFBD> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>
|
||||
align 4
|
||||
proc ted_sel_all
|
||||
push eax
|
||||
xor eax,eax
|
||||
mov ted_sel_x0,eax
|
||||
mov ted_sel_y0,eax
|
||||
|
||||
mov ted_sel_x1,eax ;???
|
||||
call ted_get_num_lines
|
||||
mov ted_sel_y1,eax
|
||||
pop eax
|
||||
stdcall ted_draw,edi
|
||||
cmp ted_fun_draw_panel_buttons,0 ;redraw toolbar (need to button Copy)
|
||||
je @f
|
||||
call ted_fun_draw_panel_buttons
|
||||
@@:
|
||||
ret
|
||||
endp
|
||||
|
||||
;input:
|
||||
; cl_al_mem = 1 - clear all memory
|
||||
align 4
|
||||
@@ -851,9 +885,9 @@ proc ted_on_open_file
|
||||
@@:
|
||||
|
||||
call ted_get_num_lines
|
||||
cmp eax,100
|
||||
cmp eax,TED_LINES_IN_NEW_FILE
|
||||
jge @f
|
||||
mov eax,100
|
||||
mov eax,TED_LINES_IN_NEW_FILE
|
||||
@@:
|
||||
mov esi,ted_scr_w
|
||||
mov dword[esi+sb_offs_max_area],eax
|
||||
@@ -988,31 +1022,30 @@ ted_iterat_next_pos_char:
|
||||
; edi = pointer to tedit struct
|
||||
align 4
|
||||
ted_iterat_perv_color_tag:
|
||||
@@:
|
||||
cmp byte[edx+1],0
|
||||
jne @f
|
||||
call ted_iterat_perv
|
||||
cmp edx,ted_tex_1
|
||||
jle @f
|
||||
jmp @b
|
||||
@@:
|
||||
ret
|
||||
@@:
|
||||
cmp byte[edx+1],0
|
||||
jne @f
|
||||
call ted_iterat_perv
|
||||
cmp edx,ted_tex_1
|
||||
jle @f
|
||||
jmp @b
|
||||
@@:
|
||||
ret
|
||||
|
||||
;input:
|
||||
; edx = pointer to symbol struct
|
||||
; edi = pointer to tedit struct
|
||||
align 4
|
||||
ted_iterat_next_color_tag:
|
||||
@@:
|
||||
call ted_iterat_next
|
||||
cmp byte[edx+1],0
|
||||
jne @f
|
||||
cmp edx,ted_tex_1
|
||||
jle @f
|
||||
jmp @b
|
||||
@@:
|
||||
;call ted_iterat_next
|
||||
ret
|
||||
@@:
|
||||
call ted_iterat_next
|
||||
cmp byte[edx+1],0
|
||||
jne @f
|
||||
cmp edx,ted_tex_1
|
||||
jle @f
|
||||
jmp @b
|
||||
@@:
|
||||
ret
|
||||
|
||||
;input:
|
||||
; edx = pointer to symbol struct
|
||||
@@ -2848,6 +2881,30 @@ ted_key_ctrl_home:
|
||||
@@:
|
||||
ret
|
||||
|
||||
;input:
|
||||
; edi = pointer to tedit struct
|
||||
align 4
|
||||
ted_key_ctrl_end:
|
||||
push eax ebx
|
||||
call ted_get_num_lines
|
||||
mov ebx,ted_scr_w
|
||||
mov dword[ebx+sb_offs_position],eax ;<3B>⠢<EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD>㭮<EFBFBD> <20><> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>
|
||||
cmp eax,dword[ebx+sb_offs_cur_area]
|
||||
jle @f
|
||||
mov eax,dword[ebx+sb_offs_cur_area] ;<3B><><EFBFBD><EFBFBD>砥<EFBFBD> <20><> <20><>ப <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
@@:
|
||||
sub dword[ebx+sb_offs_position],eax ;<3B>⭨<EFBFBD><E2ADA8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>㭪<EFBFBD> <20><> <20><>ப <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>)
|
||||
dec eax
|
||||
mov ted_cur_y,eax ;<3B>⠢<EFBFBD><E2A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD>
|
||||
pop ebx eax
|
||||
call ted_cur_move_x_last_char
|
||||
stdcall ted_draw,edi
|
||||
cmp ted_fun_draw_panel_buttons,0
|
||||
je @f
|
||||
call ted_fun_draw_panel_buttons
|
||||
@@:
|
||||
ret
|
||||
|
||||
;input:
|
||||
; edi = pointer to tedit struct
|
||||
align 4
|
||||
@@ -3181,6 +3238,7 @@ proc ted_draw, edit:dword
|
||||
jmp @b
|
||||
.no_draw_text:
|
||||
|
||||
inc dword[line_num]
|
||||
stdcall ted_clear_line_before_draw,edi,ebx,0,dword[line_num]
|
||||
call ted_draw_line_numbers
|
||||
call ted_draw_main_cursor
|
||||
@@ -3676,7 +3734,6 @@ proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_l
|
||||
cmp dword[clear_o],0
|
||||
jne @f
|
||||
add ebx,ted_rec_h
|
||||
inc esi
|
||||
ror ebx,16
|
||||
xor bx,bx
|
||||
add ebx,ted_wnd_l
|
||||
@@ -3706,20 +3763,21 @@ proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_l
|
||||
jge @f
|
||||
.pusto:
|
||||
mov cx,ax
|
||||
jmp .no_select ;<3B> <20><><EFBFBD><EFBFBD>⪠ <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><> <20>ᥣ<EFBFBD><E1A5A3> 䮭<><E4AEAD><EFBFBD><EFBFBD> 梥⮬
|
||||
@@:
|
||||
|
||||
call ted_is_select
|
||||
cmp al,0
|
||||
je @f
|
||||
je .no_select
|
||||
cmp ted_seln_y0,esi
|
||||
jg @f
|
||||
jg .no_select
|
||||
cmp ted_seln_y1,esi
|
||||
jl @f
|
||||
jl .no_select
|
||||
mov edx,ted_color_select ;draw selected line
|
||||
@@:
|
||||
.no_select:
|
||||
|
||||
mov eax,13 ;rect
|
||||
int 0x40
|
||||
int 0x40 ;<3B><><EFBFBD><EFBFBD><EFBFBD>᪠ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> 梥⮬ 䮭<> <20><><EFBFBD> 梥⮬ <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
call ted_is_select
|
||||
cmp al,0
|
||||
@@ -3748,7 +3806,8 @@ proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_l
|
||||
@@:
|
||||
cmp ted_seln_y1,esi
|
||||
jne @f
|
||||
push esi
|
||||
;push esi
|
||||
;<3B> <20>뤥<EFBFBD><EBA4A5><EFBFBD> <20><><EFBFBD><EFBFBD> 䠩<> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ᤥ<><E1A4A5><EFBFBD><EFBFBD> <20><>室, <20><> ⮣<><E2AEA3> <20>㦭<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> jmp .no_select
|
||||
mov edx,ted_seln_x1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>ࠥ<EFBFBD> <20><>ࠢ<EFBFBD>)
|
||||
mov esi,ted_scr_h
|
||||
cmp edx,dword[esi+sb_offs_position]
|
||||
@@ -3759,10 +3818,9 @@ proc ted_clear_line_before_draw, edit:dword, coords:dword, clear_o:dword, numb_l
|
||||
shl edx,16
|
||||
add ebx,edx
|
||||
.in_wnd2:
|
||||
|
||||
mov edx,ted_color_wnd_work
|
||||
int 0x40
|
||||
pop esi
|
||||
;pop esi
|
||||
@@:
|
||||
|
||||
.no_clear:
|
||||
|
Reference in New Issue
Block a user