/programs/develop/libraries/box_lib/trunk/box_lib.asm |
---|
318,7 → 318,9 |
dd sz_ted_but_undo, ted_but_undo |
dd sz_ted_but_redo, ted_but_redo |
dd sz_ted_but_reverse, ted_but_reverse |
dd sz_ted_but_find, ted_but_find |
dd sz_ted_but_find_next, ted_but_find_next |
dd sz_ted_but_replace, ted_but_replace |
dd sz_ted_text_colored, ted_text_colored |
dd sz_ted_version, 0x00000005 |
430,7 → 432,9 |
sz_ted_but_undo db 'ted_but_undo',0 |
sz_ted_but_redo db 'ted_but_redo',0 |
sz_ted_but_reverse db 'ted_but_reverse',0 |
sz_ted_but_find db 'ted_but_find',0 |
sz_ted_but_find_next db 'ted_but_find_next',0 |
sz_ted_but_replace db 'ted_but_replace',0 |
sz_ted_text_colored db 'ted_text_colored',0 |
sz_ted_version db 'version_text_edit',0 |
/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm |
---|
14,6 → 14,7 |
<ul> |
<li><a href="#fun_but_copy">ted_but_copy</a></li> |
<li><a href="#fun_but_cut">ted_but_cut</a></li> |
<li><a href="#fun_but_find">ted_but_find</a></li> |
<li><a href="#fun_but_find_next">ted_but_find_next</a></li> |
<li><a href="#fun_but_paste">ted_but_paste</a></li> |
<li><a href="#fun_but_redo">ted_but_redo</a></li> |
87,8 → 88,20 |
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p> |
<pre>stdcall [ted_but_cut], tedit0</pre> |
<h4><a name="fun_but_find">ted_but_find</a></h4> |
<p>Ôóíêöèÿ äëÿ ïîèñêà òåêñòà. Èùåò òåêñò èç áóôåðà <b>ted_buffer_find</b>, ïðè íàõîæäåíèè ïåðåìåùàåò êóðñîð ê íàéäåíîìó òåêñòó è âûäåëÿåò åãî. Ïðèíèìàåò 2 ïàðàìåòðà:</p> |
<p>1) ñòðóêòóðà tedit,</p> |
<p>2) ïàðàìåòðû ïîèñêà:</p> |
<ul> |
<li>0 - èñêàòü íèæå êóðñîðà</li> |
<li>1 - èñêàòü âûøå êóðñîðà</li> |
<li>2 - èñêàòü îò íà÷àëà äîêóìåíòà</li> |
</ul> |
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p> |
<pre>stdcall [ted_but_find], tedit0, 2</pre> |
<h4><a name="fun_but_find_next">ted_but_find_next</a></h4> |
<p>Ôóíêöèÿ äëÿ ïîèñêà òåêñòà. Èùåò òåêñò èç áóôåðà <b>ted_buffer_find</b>, ïðè íàõîæäåíèè ïåðåìåùàåò êóðñîð ê íàéäåíîìó òåêñòó è âûäåëÿåò åãî.</p> |
<p>Ôóíêöèÿ äëÿ ïîèñêà òåêñòà. Èùåò òåêñò èç áóôåðà <b>ted_buffer_find</b>, ïðè íàõîæäåíèè ïåðåìåùàåò êóðñîð ê íàéäåíîìó òåêñòó è âûäåëÿåò åãî. Ïîèñê âåäåòñÿ íèæå òåêóùåãî ïîëîæåíèÿ êóðñîðà.</p> |
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p> |
<pre>stdcall [ted_but_find_next], tedit0</pre> |
375,7 → 388,7 |
.ptr_free_symb dd ? ;+246 óêàçàòåëü íà ñâîáîäíóþ ïàìÿòü, â êîòîðóþ ìîæíî äîáàâëÿòü ñèìâîë (èñïîëüçóåòñÿ âíóòðè ýëåìåíòà äëÿ óñêîðåíèÿ âñòàâêè òåêñòà) |
.font_s dd ? ;+250 ñòèëè äëÿ øðèôòà (îò 0 äî 7 ìíîæèòåëü äëÿ ðàçìåðà, +16 äëÿ âòîðîãî ñèñòåìíîãî øðèôòà)</pre> |
<hr> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 21.02.16.</p> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 21.01.19.</p> |
</body> |
</html> |
/programs/develop/libraries/box_lib/trunk/run.bat |
---|
1,2 → 1,3 |
@fasm.exe -m 16384 box_lib.asm box_lib.obj |
@kpack box_lib.obj |
pause |
/programs/develop/libraries/box_lib/trunk/t_edit.asm |
---|
23,6 → 23,7 |
TED_PANEL_NULL equ 0 ;¥â ®âªàë⮩ ¯ ¥«¨ |
TED_PANEL_FIND equ 1 ;¯ ¥«ì ¯®¨áª |
TED_PANEL_SYNTAX equ 2 ;¯ ¥«ì ¢ë¡®à ä ©«®¢ ¯®¤á¢¥âª¨ |
TED_PANEL_REPLACE equ 3 ;¯ ¥«ì § ¬¥ë |
TED_PANEL_WIDTH equ 150 ;è¨à¨ ¯ ¥«¨ |
TED_LINES_IN_NEW_FILE equ 30 ;ç¨á«® áâப ¢ ®¢®¬ ä ©«¥ |
557,7 → 558,7 |
xor al,al |
cmp ted_drag_m,1 |
je @f |
mov al,1 |
inc al |
mov ebx,ted_sel_x0 |
cmp ebx,ted_sel_x1 |
jne @f |
577,8 → 578,8 |
mov esi,edi |
add esi,ted_offs_sel |
add edi,ted_offs_seln |
mov ecx,sizeof.TexSelect |
rep movsb |
mov ecx,sizeof.TexSelect/4 |
rep movsd |
pop edi |
jmp @f |
750,8 → 751,8 |
mov eax,edi ;á®åà 塞 § 票¥ edi |
mov esi,ted_syntax_file |
add edi,ted_offs_count_colors |
mov ecx,9*4 |
rep movsb |
mov ecx,9 |
rep movsd |
mov edi,eax ;¢®áâ ¢«¨¢ ¥¬ § 票¥ edi |
mov eax,ted_syntax_file |
759,8 → 760,7 |
mov ted_text_colors,eax |
mov eax,ted_colors_text_count ;init: count_colors_text (offset to key words) |
add eax,8 |
shl eax,2 |
lea eax,[4*eax+32] |
add eax,ted_syntax_file |
mov ted_key_words_data,eax |
768,14 → 768,12 |
xor eax,eax |
@@: |
ColToIndexOffset eax,edx |
xor ebx,ebx |
mov bl,byte[edx] |
shl bx,2 |
movzx ebx,byte[edx] |
mov esi,ted_arr_key_pos |
add esi,ebx |
lea esi,[esi+4*ebx] |
cmp dword[esi],-1 |
jne .no_ch_key |
mov dword[esi],eax |
mov [esi],eax |
.no_ch_key: |
inc eax |
loop @b |
911,8 → 909,8 |
push ebx |
@@: |
mov edx,[edx+2] |
cmp edx,0 |
je @f |
or edx,edx |
jz @f |
imul edx,sizeof.symbol |
add edx,ted_tex |
call ted_symbol_not_vis |
928,8 → 926,8 |
ret |
.else: |
mov edx,[edx+2] |
cmp edx,0 |
je @f |
or edx,edx |
jz @f |
imul edx,sizeof.symbol |
add edx,ted_tex |
cmp dword [edx+14],0 |
1080,8 → 1078,8 |
ret |
;input: |
; text:dword - pointer to text string |
; add_opt:dword - options |
; text - pointer to text string |
; add_opt - options |
align 16 |
proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword |
locals |
1353,8 → 1351,8 |
pushad |
call ted_is_select |
cmp al,0 |
je .end_f |
or al,al |
jz .end_f |
call ted_set_undo |
call ted_sel_normalize |
1392,9 → 1390,7 |
cmp edx,ted_tex |
je @f |
cmp edx,ebx |
je @f |
jmp @b |
jne @b |
@@: |
cmp dword[conv_cou],0 |
jne @f |
1444,8 → 1440,8 |
align 16 |
proc ted_sel_text_del uses ebx ecx edx esi, del_opt:dword |
call ted_is_select |
cmp al,0 |
je .end_f |
or al,al |
jz .end_f |
call ted_sel_normalize |
mov esi,ted_seln_x1 |
2058,26 → 2054,60 |
; ecx = Col |
; edx = Row |
; edi = pointer to tedit struct |
;output: |
; ecx = cursor x |
; edx = cursor y |
align 16 |
ted_go_to_pos: |
push eax |
push eax ebx |
mov eax,ted_scr_h |
sub ecx,[eax+sb_offs_position] |
cmp ecx,0 ;ted_cur_y < 0 |
jge @f |
add [eax+sb_offs_position],ecx ;¯à®ªàã⪠áªà®««¨£ ¢«¥¢® |
xor ecx,ecx |
@@: |
mov ebx,5 ;5 - ¦¥« ¥¬ë© ®âáâ㯠᫥¢ |
cmp ecx,ebx |
jge .end0 |
sub ebx,ecx ;ebx - ᪮«ìª® ᨬ¢®«®¢ 㦮 ᤢ¨ãâì ªãàá®à |
cmp [eax+sb_offs_position],ebx |
jge @f |
add ecx,[eax+sb_offs_position] |
mov dword[eax+sb_offs_position],0 |
jmp .end0 |
@@: |
sub [eax+sb_offs_position],ebx |
add ecx,ebx |
.end0: |
cmp ecx,[eax+sb_offs_cur_area] ;ted_cur_x > [.cur_area] |
jl .end1 |
mov ebx,ecx |
sub ebx,[eax+sb_offs_cur_area] |
inc ebx |
add [eax+sb_offs_position],ebx ;¯à®ªàã⪠áªà®««¨£ ¢¯à ¢® |
sub ecx,ebx |
.end1: |
mov ted_cur_x,ecx |
mov eax,ted_scr_w |
mov ted_cur_x,ecx |
sub edx,[eax+sb_offs_position] |
cmp edx,0 ;ted_cur_y < 0 |
jge @f |
add [eax+sb_offs_position],edx ;¯à®ªàã⪠áªà®««¨£ ¢¢¥àå |
xor edx,edx |
jmp .end2 |
@@: |
cmp edx,[eax+sb_offs_cur_area] ;ted_cur_y > [.cur_area] |
jl @f |
push ebx |
jl .end2 |
mov ebx,edx |
sub ebx,[eax+sb_offs_cur_area] |
inc ebx |
add [eax+sb_offs_position],ebx |
add [eax+sb_offs_position],ebx ;¯à®ªàã⪠áªà®««¨£ ¢¨§ |
sub edx,ebx |
pop ebx |
; ??? redrav |
@@: |
.end2: |
mov ted_cur_y,edx |
pop eax |
pop ebx eax |
ret |
;input: |
2805,7 → 2835,108 |
ret |
endp |
;description: |
; äãªæ¨ï 室¨â ⥪áâ ª®â®àë© ãª §ë¢ ¥â ted_buffer_find |
;input: |
; f_opt = ¯ à ¬¥âàë ¯®¨áª : |
; (0 - ¨áª âì ¢ëè¥ ªãàá®à , 1 - ¨áª âì ¨¦¥ ªãàá®à , 2 - ¨áª âì ®â ç « ä ©« ) |
align 16 |
proc ted_but_find, edit:dword, f_opt:dword |
push [edit] |
cmp dword[f_opt],2 |
jne @f |
call ted_but_find_first |
jmp .end_f |
@@: |
cmp dword[f_opt],0 |
jne @f |
call ted_but_find_next |
jmp .end_f |
@@: |
cmp dword[f_opt],1 |
jne .end_f |
call ted_but_find_perv |
.end_f: |
ret |
endp |
;description: |
; äãªæ¨ï 室¨â ⥪áâ ª®â®àë© ãª §ë¢ ¥â ted_buffer_find |
; ¨é¥â ®â ç « ä ©« , ¨«¨ ®â ª®æ ⥪ã饣® ¢ë¤¥«¥¨ï |
align 16 |
proc ted_but_find_first, edit:dword |
pushad |
mov edi,[edit] |
call ted_is_select |
or al,al |
jz @f |
call ted_sel_normalize |
mov edx,ted_sel_y1 |
mov ecx,ted_sel_x1 |
call ted_go_to_pos ;¯¥à¥å®¤ ª®¥æ ¢ë¤¥«¥¨ï |
call ted_get_pos_by_cursor |
jmp .end0 |
@@: |
mov edx,ted_tex |
call ted_iterat_next |
.end0: |
mov eax,ted_buffer_find |
mov bl,byte[eax] |
@@: |
call ted_get_find_rezult |
cmp bh,1 |
je @f ; find |
call ted_iterat_next |
cmp edx,ted_tex_1 |
jle @f |
jmp @b |
@@: |
call but_find |
popad |
ret |
endp |
;description: |
; äãªæ¨ï 室¨â ⥪áâ ª®â®àë© ãª §ë¢ ¥â ted_buffer_find |
; ¨é¥â ¢ëè¥ ªãàá®à |
align 16 |
proc ted_but_find_perv, edit:dword |
pushad |
mov edi,[edit] |
call ted_is_select |
or al,al |
jz @f |
call ted_sel_normalize |
mov edx,ted_sel_y0 |
mov ecx,ted_sel_x0 |
call ted_go_to_pos ;¯¥à¥å®¤ ç «® ¢ë¤¥«¥¨ï |
call ted_get_pos_by_cursor |
call ted_iterat_perv ;¯¥à¥å®¤ 1-© ᨬ¢®« ¯¥à¥¤ ¢ë¤¥«¥¨¥¬ |
jmp .end0 |
@@: |
call ted_get_pos_by_cursor |
.end0: |
mov eax,ted_buffer_find |
mov bl,byte[eax] |
@@: |
call ted_get_find_rezult |
cmp bh,1 |
je @f ; find |
call ted_iterat_perv |
cmp edx,ted_tex_1 |
jle @f |
jmp @b |
@@: |
call but_find |
popad |
ret |
endp |
;description: |
; äãªæ¨ï 室¨â ⥪áâ ª®â®àë© ãª §ë¢ ¥â ted_buffer_find |
; ¨é¥â ¨¦¥ ªãàá®à |
align 16 |
proc ted_but_find_next, edit:dword |
pushad |
mov edi,[edit] |
2822,8 → 2953,18 |
jle @f |
jmp @b |
@@: |
cmp bh,0 |
je @f |
call but_find |
popad |
ret |
endp |
;input: |
; bh = ¡ë« «¨ ©¤¥ ¨áª®¬ë© ⥪áâ (0 - ¥â, 1 - ¤ ) |
; esi = first symbol pointer |
align 16 |
but_find: |
or bh,bh |
jz @f |
call ted_get_text_coords |
inc ebx ;move cursor right |
mov ted_sel_x1,ebx |
2831,7 → 2972,7 |
mov edx,eax |
mov ecx,ebx |
call ted_go_to_pos |
mov edx,esi ;esi ¡ë«® ãáâ ®¢«¥® ¢ ted_get_find_rezult |
mov edx,esi |
call ted_get_text_coords |
mov ted_sel_x0,ebx |
mov ted_sel_y0,eax |
2843,8 → 2984,37 |
je .end_find |
call ted_fun_find_err ;¯®«ì§®¢ ⥫ì᪠ï äãªæ¨ï |
.end_find: |
popad |
ret |
;input: |
; rpl_text = ⥪áâ ¤«ï § ¬¥ë |
; r_opt = ¯ à ¬¥âàë ¯®¨áª : |
; (0 - ¨áª âì ¢ëè¥ ªãàá®à , 1 - ¨áª âì ¨¦¥ ªãàá®à , 2 - ¨áª âì ®â ç « ä ©« ) |
; n_tim = 䨪á¨à®¢ âì § ¬¥ã ¢ ¨§¬¥¥¨ïå (0 - ¥â, 1 - ¤ ) |
;output: |
; eax = 0 - ¥ 㤠ç®, 1 - ã¤ ç® |
align 16 |
proc ted_but_replace uses edx edi esi, edit:dword, rpl_text:dword, r_opt:dword, n_tim:dword |
mov edi,[edit] |
stdcall ted_but_find, edi,[r_opt] |
xor edx,edx |
cmp dword[n_tim],0 |
je @f |
mov edx,ted_opt_ed_change_time |
@@: |
stdcall ted_sel_text_del, edx |
or eax,0xff |
jz @f |
mov esi,[rpl_text] |
stdcall tl_strlen |
or eax,eax |
jz @f |
stdcall ted_text_add, edi,esi,eax,ted_opt_ed_move_cursor |
xor eax,eax |
inc eax |
@@: |
ret |
endp |
;input: |
3752,8 → 3922,8 |
@@: |
call ted_is_select |
cmp al,0 |
je .no_select |
or al,al |
jz .no_select |
cmp ted_seln_y0,esi |
jg .no_select |
cmp ted_seln_y1,esi |
/programs/other/t_edit/t_button.inc |
---|
87,12 → 87,12 |
@@: |
cmp ah,ID_BUT_FIND |
jne @f |
call ted_but_find |
call but_panel_find |
jmp still |
@@: |
cmp ah,ID_BUT_REPLACE |
jne @f |
call but_replace |
call but_panel_replace |
jmp still |
@@: |
cmp ah,ID_BUT_KEY_WORDS |
137,7 → 137,7 |
@@: |
cmp ah,ID_BUT_SYNTAX_MODE |
jne @f |
stdcall but_choose_syntax, tedit0 |
stdcall but_panel_choose_syntax, tedit0 |
jmp still |
@@: |
cmp ah,ID_BUT_CONVERT_1251_866 |
156,11 → 156,26 |
stdcall ted_but_open_syntax, tedit0 |
jmp still |
@@: |
cmp ah,201 |
jne @f |
stdcall [ted_but_find_next], tedit0 |
cmp ah,201 ;§ ¬¥¨âì |
jne .no_find |
call get_find_options |
stdcall [ted_but_find], tedit0, eax |
jmp still |
@@: |
.no_find: |
cmp ah,202 ;§ ¬¥¨âì ¢á¥ |
jne .no_change |
call get_find_options |
stdcall [ted_but_replace], tedit0, buf_replace, eax, 1 |
or eax,eax |
jz still |
stdcall [ted_draw], tedit0 |
jmp still |
.no_change: |
cmp ah,203 |
jne .no_change_a |
call but_replace_all |
jmp still |
.no_change_a: |
cmp ah,1 |
jne @f |
202,6 → 217,40 |
mcall SF_TERMINATE_PROCESS ;¢ë室 ¨§ ¯à®£à ¬¬ë |
;ret |
align 4 |
get_find_options: |
xor eax,eax |
cmp [opt_gr1],opt1 |
je @f |
inc eax |
cmp [opt_gr1],opt2 |
je @f |
inc eax |
@@: |
ret |
align 4 |
proc but_replace_all uses ebx ecx edx |
call get_find_options |
mov ebx,eax |
stdcall [ted_but_replace], tedit0, buf_replace, ebx, 1 |
xor edx,edx |
or eax,eax |
jz @f |
inc edx |
mov ecx,0x1000 |
.cycle0: |
stdcall [ted_but_replace], tedit0, buf_replace, ebx, 0 |
or eax,eax |
jz @f |
inc edx |
loop .cycle0 |
@@: |
stdcall [ted_draw], tedit0 |
mov eax,edx |
ret |
endp |
;input: |
; al = ª®¤ ®è¨¡ª¨ |
align 4 |
553,7 → 602,7 |
;description: |
; ¢ë§®¢/áªàë⨥ ¯ ¥«¨ ¯®¨áª |
align 4 |
proc ted_but_find uses edi |
proc but_panel_find uses edi |
mov edi,tedit0 |
cmp ted_panel_id,TED_PANEL_NULL |
570,7 → 619,47 |
ret |
endp |
;description: |
; ¢ë§®¢/áªàë⨥ ¯ ¥«¨ § ¬¥ë |
align 4 |
proc but_panel_replace uses edi |
mov edi,tedit0 |
cmp ted_panel_id,TED_PANEL_NULL |
je @f |
mov ted_panel_id,TED_PANEL_NULL |
mov ted_wnd_l,0 |
jmp .e_if |
@@: |
mov ted_panel_id,TED_PANEL_REPLACE |
mov ted_wnd_l,TED_PANEL_WIDTH |
.e_if: |
call EvSize |
stdcall [ted_draw],edi |
ret |
endp |
;description: |
; ¢ë§®¢/áªàë⨥ ¯ ¥«¨ á ä ©« ¬¨ á¨â ªá¨á |
align 4 |
proc but_panel_choose_syntax uses edi, edit:dword |
mov edi,[edit] |
cmp ted_panel_id,TED_PANEL_NULL |
je @f |
mov ted_panel_id,TED_PANEL_NULL |
mov ted_wnd_l,0 |
jmp .e_if |
@@: |
mov ted_panel_id,TED_PANEL_SYNTAX |
mov ted_wnd_l,TED_PANEL_WIDTH |
.e_if: |
call EvSize |
stdcall [ted_draw],edi |
ret |
endp |
align 4 |
tbl_1251_866: |
rb 128 |
db 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0,0,0 ;128 |
600,13 → 689,6 |
ret |
;description: |
; ª®¯ª [ ¬¥¨âì] ¯ ¥«¨ |
align 4 |
but_replace: |
; ¯®ª ¥ ᤥ« ® |
ret |
;description: |
; äãªæ¨ï ¯®¨áª ¨ä®à¬ 樨 ¢ ᯨ᪥ ª«î祢ëå á«®¢ |
align 4 |
but_find_key_w: |
647,22 → 729,3 |
ret |
endp |
;description: |
; ¢ë§®¢/áªàë⨥ ¯ ¥«¨ á ä ©« ¬¨ á¨â ªá¨á |
align 4 |
proc but_choose_syntax uses edi, edit:dword |
mov edi,[edit] |
cmp ted_panel_id,TED_PANEL_NULL |
je @f |
mov ted_panel_id,TED_PANEL_NULL |
mov ted_wnd_l,0 |
jmp .e_if |
@@: |
mov ted_panel_id,TED_PANEL_SYNTAX |
mov ted_wnd_l,TED_PANEL_WIDTH |
.e_if: |
call EvSize |
stdcall [ted_draw],edi |
ret |
endp |
/programs/other/t_edit/t_data.inc |
---|
@@ -139,7 +143,9 @@ |
@@ -152,6 +158,10 @@ |
@@ -200,7 +210,9 @@ |
@@ -339,6 +351,7 @@ |
@@ -399,7 +412,7 @@ |
@@ -424,15 +437,23 @@ |
@@ -482,9 +503,7 @@ |
@@ -497,10 +516,21 @@ |
@@ -553,9 +583,7 @@ |
@@ -568,10 +596,21 @@ |
/programs/other/t_edit/t_draw.inc |
---|
220,8 → 220,27 |
; edi = pointer to tedit struct |
align 4 |
proc draw_panel_find |
cmp ted_panel_id,TED_PANEL_FIND ;if not panel |
cmp ted_panel_id,TED_PANEL_FIND |
jne @f |
call p_find |
jmp .end_f |
@@: |
cmp ted_panel_id,TED_PANEL_REPLACE |
jne @f |
call p_replace |
jmp .end_f |
@@: |
push eax edx |
mcall SF_DEFINE_BUTTON,,,0x80000000+201 |
mcall ,,,0x80000000+202 |
mcall ,,,0x80000000+203 |
pop edx eax |
.end_f: |
ret |
endp |
align 4 |
p_find: |
push eax ebx ecx edx |
mov ecx,ted_wnd_t |
shl ecx,16 |
228,15 → 247,47 |
mov cx,20 |
mcall SF_DRAW_RECT,TED_PANEL_WIDTH,,[sc.work] |
mov ebx,(30 shl 16)+25 |
mov ecx,ted_wnd_t |
add cx,20+15 ; 15 - height text box |
shl ecx,16 |
add ecx,ted_wnd_h |
mov edx,ted_scr_h |
add cx,word[edx+sb_offs_size_y] |
sub cx,20+15-1 ; 15 - height text box |
mcall ,,,[sc.work] |
stdcall [edit_box_draw], edit2 |
mov ecx,ted_wnd_t |
shl ecx,16 |
add ecx,(93 shl 16)+20 |
mcall SF_DEFINE_BUTTON,(5 shl 16)+85,,201,[sc.work_button] ;201 - button id |
mov ebx,(23 shl 16)+7 |
add ebx,ted_wnd_t |
mov ecx,[sc.work_text] |
or ecx,0x80000000 |
mcall SF_DRAW_TEXT,,,txtFindCapt |
stdcall [edit_box_draw], edit2 |
mov ecx,[sc.work_button_text] |
or ecx,0x80000000 |
mov ebx,(15 shl 16)+100 |
add ebx,ted_wnd_t |
mcall ,,,txtFindNext |
stdcall [option_box_draw], opt_grlist1 |
pop edx ecx ebx eax |
ret |
align 4 |
p_replace: |
push eax ebx ecx edx |
mov ecx,ted_wnd_t |
shl ecx,16 |
mov cx,20 |
mcall SF_DRAW_RECT,TED_PANEL_WIDTH,,[sc.work] |
mov ecx,ted_wnd_t |
add cx,20+15 ; 15 - height text box |
shl ecx,16 |
add ecx,ted_wnd_h |
243,30 → 294,38 |
mov edx,ted_scr_h |
add cx,word[edx+sb_offs_size_y] |
sub cx,20+15-1 ; 15 - height text box |
mcall SF_DRAW_RECT,TED_PANEL_WIDTH,,[sc.work] |
mcall ,,,[sc.work] |
stdcall [edit_box_draw], edit1 |
stdcall [edit_box_draw], edit2 |
mov ecx,ted_wnd_t |
add cx,20+15+5 |
shl ecx,16 |
mov cx,20 |
mcall SF_DEFINE_BUTTON,(5 shl 16)+85,,201,[sc.work_button] ;201 - button id |
add ecx,(133 shl 16)+20 |
mcall SF_DEFINE_BUTTON,(5 shl 16)+95,,202,[sc.work_button] ;replace next |
mov ebx,(15 shl 16)+(20+15+10) |
add ebx,ted_wnd_t |
add ecx,(26 shl 16) |
mcall ,,,203 ;replace all |
mov ebx,ted_wnd_t |
add ebx,(23 shl 16)+7 |
mov ecx,[sc.work_text] |
or ecx,0x80000000 |
mcall SF_DRAW_TEXT,,,txtFindNext |
mcall SF_DRAW_TEXT,,,txtFindCapt |
add ebx,93 |
mcall SF_DRAW_TEXT,,,txtRerlaceCapt |
mov ecx,[sc.work_button_text] |
or ecx,0x80000000 |
mov ebx,ted_wnd_t |
add ebx,(15 shl 16)+140 |
mcall ,,,txtRerlace |
add ebx,26 |
mcall ,,,txtRerlaceAll |
stdcall [option_box_draw], opt_grlist1 |
pop edx ecx ebx eax |
jmp .end_f |
@@: |
push eax edx |
mov edx,201 |
or edx,0x80000000 |
mcall SF_DEFINE_BUTTON |
pop edx eax |
.end_f: |
ret |
endp |
;input: |
; edi = pointer to tedit struct |
357,13 → 416,14 |
stdcall [ted_init_scroll_bars], tedit0,2 |
mov eax,ted_wnd_t |
mov edi,dword tree1 |
mov edi,tree1 |
mov tl_box_top,eax ;=ted_wnd_t |
add tl_box_top,20 |
mov [edit2.top],eax ;=ted_wnd_t |
add dword[edit2.top],20 |
mov [edit1.top],eax ;=ted_wnd_t |
add dword[edit1.top],113 |
popad |
ret |
/programs/other/t_edit/t_edit.asm |
---|
69,6 → 69,7 |
;--------------------------------------------------------------------- |
stdcall [ted_init], tedit0 |
stdcall [tl_data_init], tree1 |
option_boxes_set_sys_color sc,opt_grlist1 |
; OpenDialog initialisation |
stdcall [OpenDialog_Init],OpenDialog_data |
238,12 → 239,20 |
stdcall [ted_mouse], tedit0 |
.no_edit: |
cmp byte[tedit0.panel_id],TED_PANEL_FIND ;if not panel |
;¯à®¢¥àª ¡®ª®¢ëå ¯ ¥«¥© |
cmp byte[tedit0.panel_id],TED_PANEL_FIND |
jne @f |
stdcall [edit_box_mouse], edit2 |
stdcall [option_box_mouse], opt_grlist1 |
@@: |
cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX ;if not panel |
cmp byte[tedit0.panel_id],TED_PANEL_REPLACE |
jne @f |
stdcall [edit_box_mouse], edit2 |
stdcall [edit_box_mouse], edit1 |
stdcall [option_box_mouse], opt_grlist1 |
@@: |
cmp byte[tedit0.panel_id],TED_PANEL_SYNTAX |
jne @f |
stdcall [tl_mouse], tree1 |
@@: |
ret |
289,6 → 298,25 |
mcall SF_GET_KEY |
stdcall [tl_key], tree1 |
test word [edit1.flags],10b ;ed_focus ;¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
je @f |
cmp ah,0x80 ;if key up |
ja still |
cmp ah,42 ;[Shift] (left) |
je still |
cmp ah,54 ;[Shift] (right) |
je still |
cmp ah,56 ;[Alt] |
je still |
cmp ah,29 ;[Ctrl] |
je still |
cmp ah,69 ;[Pause Break] |
je still |
stdcall KeyConvertToASCII, conv_tabl |
stdcall [edit_box_key], edit1 |
jmp still |
@@: |
test word [edit2.flags],10b;ed_focus ; ¥á«¨ ¥ ¢ 䮪ãá¥, ¢ë室¨¬ |
je @f |
cmp ah,0x80 ;if key up |
313,6 → 341,7 |
jmp still |
align 4 |
edit1 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_replace, mouse_dd, 0 |
edit2 edit_box TED_PANEL_WIDTH-1, 0, 20, 0xffffff, 0xff80, 0xff0000, 0xff, 0x4080, 300, buf_find, mouse_dd, 0 |
unpac_mem dd 0 |
376,6 → 405,7 |
last_open_synt_file rb 32 ;¨¬ï ¯®á«¥¤¥£® ¯®¤ª«î祮£® ä ©« á¨â ªá¨á |
buf rb BUF_SIZE ;¡ãä¥à ¤«ï ª®¯¨à®¢ ¨ï ¨ ¢áâ ¢ª¨ |
buf_find rb 302 ;¡ãä¥à ¤«ï ¯®¨áª ⥪áâ |
buf_replace rb 302 ;¡ãä¥à ¤«ï § ¬¥ë ⥪áâ |
sc system_colors |
IncludeUGlobals |
align 16 |