/programs/develop/libraries/box_lib/trunk/box_lib.asm |
---|
321,7 → 321,8 |
dd sz_ted_but_find, ted_but_find |
dd sz_ted_but_replace, ted_but_replace |
dd sz_ted_text_colored, ted_text_colored |
dd sz_ted_version, 0x00000005 |
dd sz_ted_go_to_position, ted_go_to_position |
dd sz_ted_version, 6 |
dd sz_Frame_draw, frame.draw |
dd szVersion_frame, 0x00010001 |
434,6 → 435,7 |
sz_ted_but_find db 'ted_but_find',0 |
sz_ted_but_replace db 'ted_but_replace',0 |
sz_ted_text_colored db 'ted_text_colored',0 |
sz_ted_go_to_position db 'ted_go_to_position',0 |
sz_ted_version db 'version_text_edit',0 |
sz_Frame_draw db 'frame_draw',0 |
/programs/develop/libraries/box_lib/trunk/box_lib.mac |
---|
408,16 → 408,13 |
ted_mode_color equ byte[edi+195] ;०¨¬ ¢ë¤¥«¥¨ï á«®¢ 梥⮬ (0-¢ëª«. 1-¢ª«.) |
ted_mode_invis equ byte[edi+196] ;०¨¬ ¯®ª § ¥¯¥ç â ¥¬ëå ᨬ¢®«®¢ |
ted_gp_opt equ byte[edi+197] ;®¯æ¨¨ ¢®§¢à é ¥¬ë¥ äãªæ¨¥© ted_get_pos_by_cursor |
ted_fun_on_key_ctrl_o equ dword[edi+198] ;㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ¦ ⨨ Ctrl+O (®âªàë⨥ ä ©« ) |
ted_fun_on_key_ctrl_f equ dword[edi+202] ;... Ctrl+F (¢ë§®¢ /áªàëâ¨ï ¯ ¥«¨ ¯®¨áª ) |
ted_fun_on_key_ctrl_n equ dword[edi+206] ;... Ctrl+N (ᮧ¤ ¨¥ ®¢®£® ¤®ªã¬¥â ) |
ted_fun_on_key_ctrl_s equ dword[edi+210] ;... Ctrl+S |
ted_fun_on_key_ctrl_all equ dword[edi+198] ;㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ¦ ⨨ Ctrl+N,O,F,S,H,G |
;+202,+206,+210 § १¥à¢¨à®¢ ® |
ted_buffer_size equ dword[edi+214] ;à §¬¥à ¡ãä¥à ª®¯¨à®¢ ¨ï/¢áâ ¢ª¨ |
ted_fun_find_err equ dword[edi+218] ;㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ ¯®¨áª § ª®ç¨«áï ¥ã¤ ç® |
;ted_fun_init_synt_err equ dword[edi+222] ;㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¯à¨ ®è¨¡®ç®¬ ®âªàë⨨ ä ©« á¨â ªá¨á |
ted_fun_draw_panel_buttons equ dword[edi+226] ;㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ á ª®¯ª ¬¨ |
ted_fun_draw_panel_find equ dword[edi+230] ;㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ ¯®¨áª |
ted_fun_draw_panel_syntax equ dword[edi+234] ;㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ á¨â ªá¨á |
ted_fun_draw_panels equ dword[edi+230] ;㪠§ ⥫ì äãªæ¨î à¨á®¢ ¨ï ¯ ¥«¨ ¯®¨áª |...|á¨â ªá¨á |
ted_fun_save_err equ dword[edi+238] ;㪠§ ⥫ì äãªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ¥¨¥ ä ©« § ª®ç¨«®áì ¥ã¤ ç® |
ted_increase_size equ dword[edi+242] ;ç¨á«® ᨬ¢®«®¢ ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ¥å¢ ⪥ |
ted_ptr_free_symb equ dword[edi+246] ;㪠§ ⥫ì ᢮¡®¤ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢ãâà¨ í«¥¬¥â ¤«ï ãáª®à¥¨ï ¢áâ ¢ª¨ ⥪áâ ) |
/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm |
---|
37,6 → 37,7 |
<li><a href="#fun_open_file">ted_open_file</a></li> |
<li><a href="#fun_text_add">ted_text_add</a></li> |
<li><a href="#fun_text_colored">ted_text_colored</a></li> |
<li><a href="#fun_go_to_position">ted_go_to_position</a></li> |
</ul> |
<p><a href="#syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></p> |
<p><a href="#struc_tedit">Ñòðóêòóðà tedit</a></p> |
48,8 → 49,8 |
<h2>Âîçìîæíîñòè ýëåìåíòà</h2> |
<ul> |
<li>Îòêðûòèå (Ctrl+O)/Ñîõðàíåíèå ôàéëà.</li> |
<li>Ðåäàêòèðîâàíèå: Ïîâòîð/Îòìåíà äåéñòâèÿ (Ctrl+Z), Âûðåçàòü/Êîïèðîâàòü (Ctrl+C)/Âñòàâèòü (Ctrl+V), Ïîèñê (Ctrl+F, F3).</li> |
<li>Îòêðûòèå (Ctrl+O), Ñîõðàíåíèå ôàéëà (Ctrl+S, Ctrl+Shift+S).</li> |
<li>Ðåäàêòèðîâàíèå: Ïîâòîð/Îòìåíà äåéñòâèÿ (Ctrl+Z), Âûðåçàòü, Êîïèðîâàòü (Ctrl+C), Âñòàâèòü (Ctrl+V), Ïîèñê (Ctrl+F, F3), Çàìåíà (Ctrl+H), Ïåðåõîä íà ñòðîêó (Ctrl+G).</li> |
<li>Âûäåëåíèå öâåòîì ñëîâ, çàäàííûõ â ôàéëå ñèíòàêñèñà. Âûâîä ñïðàâêè ïî íèì, åñëè îíà åñòü (íàæàòèåì F1 êîãäà êóðñîð íà ñëîâå).</li> |
</ul> |
284,6 → 285,14 |
call [ted_text_colored] |
pop edi</pre> |
<h4><a name="fun_go_to_position">ted_go_to_position</a></h4> |
<p>Ôóíêöèÿ äëÿ ïåðåõîäà íà óêàçàííóþ ïîçèöèþ. Ïðèíèìàåò 3 ïàðàìåòðà:</p> |
<p>1) ñòðóêòóðà tedit,</p> |
<p>2) íîìåð ñòðîêè,</p> |
<p>3) íîìåð ñèìâîëà.</p> |
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p> |
<pre>stdcall [ted_go_to_position], tedit0,50,3</pre> |
<h2>Âíóòðåííèå ôóíêöèè:</h2> |
<p><b>ted_get_text_perv_pos</b> - ïåðåõîä íà ïðåäûäóùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'perv')</p> |
<p><b>ted_get_text_next_pos</b> - ïåðåõîä íà ñëåäóþùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'next')</p> |
373,22 → 382,20 |
.mode_color db 1 ;+195 ðåæèì âûäåëåíèÿ ñëîâ öâåòîì (0-âûêë. 1-âêë.) |
.mode_invis db 0 ;+196 ðåæèì ïîêàçà íåïå÷àòàåìûõ ñèìâîëîâ |
.gp_opt db 0 ;+197 îïöèè âîçâðàùàåìûå ôóíêöèåé ted_get_pos_by_cursor |
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè íàæàòèè Ctrl+O (îòêðûòèå ôàéëà) |
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (âûçîâà/ñêðûòèÿ ïàíåëè ïîèñêà) |
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (ñîçäàíèå íîâîãî äîêóìåíòà) |
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S |
.fun_on_key_ctrl_all dd but_ctrl_all ;+198 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè íàæàòèè Ctrl+N,O,S,F,H,G |
dd 0,0,0 ;çàðåçåðâèðîâàíî |
.buffer_size dd BUF_SIZE ;+214 ðàçìåð áóôåðà êîïèðîâàíèÿ/âñòàâêè |
.fun_find_err dd 0 ;+218 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ïîèñê çàêîí÷èëñÿ íåóäà÷íî |
.fun_init_synt_err dd 0 ;+222 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè îøèáî÷íîì îòêðûòèè ôàéëà ñèíòàêñèñà |
.fun_draw_panel_buttons dd 0 ;+226 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñ êíîïêàìè |
.fun_draw_panel_find dd 0 ;+230 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ïîèñêà |
.fun_draw_panel_syntax dd 0 ;+234 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñèíòàêñèñà |
.fun_draw_panels dd 0 ;+230 óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ïîèñêà/çàìåíû/ïåðåõîäà/ñèíòàêñèñà |
dd 0 ;çàðåçåðâèðîâàíî |
.fun_save_err dd 0 ;+238 óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ñîõðàíåíèå ôàéëà çàêîí÷èëîñü íåóäà÷íî |
.increase_size dd 225 ;+242 ÷èñëî ñèìâîëîâ íà êîòîðûå áóäåò óâå÷èâàòüñÿ ïàìÿòü ïðè íåõâàòêå |
.ptr_free_symb dd ? ;+246 óêàçàòåëü íà ñâîáîäíóþ ïàìÿòü, â êîòîðóþ ìîæíî äîáàâëÿòü ñèìâîë (èñïîëüçóåòñÿ âíóòðè ýëåìåíòà äëÿ óñêîðåíèÿ âñòàâêè òåêñòà) |
.font_s dd ? ;+250 ñòèëè äëÿ øðèôòà (îò 0 äî 7 ìíîæèòåëü äëÿ ðàçìåðà, +16 äëÿ âòîðîãî ñèñòåìíîãî øðèôòà)</pre> |
<hr> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 21.01.19.</p> |
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 29.01.19.</p> |
</body> |
</html> |
/programs/develop/libraries/box_lib/trunk/t_edit.asm |
---|
1,6 → 1,6 |
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 21.10.2018 IgorA |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 29.01.2019 IgorA |
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
;input: |
20,12 → 20,6 |
add out_reg,ted_key_words_data |
} |
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 ;ç¨á«® áâப ¢ ®¢®¬ ä ©«¥ |
MAX_COLOR_WORD_LEN equ 40 |
;------------------------------------------------------------------------------ |
241,38 → 235,44 |
test esi,KM_CTRL ;Ctrl+... |
jz .key_Ctrl |
; *** ¢ë§®¢ ¢¥è¨å äãªæ¨© ª®â®àë¥ âॡãîâ ®ª ®âªàëâ¨ï/á®åà ¥¨ï/¯®¨áª /... |
cmp ted_fun_on_key_ctrl_all,0 |
je .end0 |
xor al,al |
cmp ah,24 ;Ctrl+O |
jne @f |
cmp ted_fun_on_key_ctrl_o,0 |
je .end_key_fun |
call ted_fun_on_key_ctrl_o |
mov al,'O' |
@@: |
cmp ah,31 ;Ctrl+S |
jne .end_ctrl_s |
cmp ted_fun_on_key_ctrl_s,0 |
je .end_key_fun |
xor eax,eax |
test esi,KM_SHIFT |
jz @f |
inc eax |
jne @f |
mov al,'S' |
@@: |
call ted_fun_on_key_ctrl_s |
jmp .end_key_fun |
.end_ctrl_s: |
cmp ah,33 ;Ctrl+F |
jne @f |
cmp ted_panel_id,TED_PANEL_FIND |
je @f |
cmp ted_fun_on_key_ctrl_f,0 |
je .end_key_fun |
call ted_fun_on_key_ctrl_f |
mov al,'F' |
@@: |
cmp ah,34 ;Ctrl+G |
jne @f |
mov al,'G' |
@@: |
cmp ah,35 ;Ctrl+H |
jne @f |
mov al,'H' |
@@: |
cmp ah,49 ;Ctrl+N |
jne @f |
cmp ted_fun_on_key_ctrl_n,0 |
je .end_key_fun |
call ted_fun_on_key_ctrl_n |
mov al,'N' |
@@: |
or al,al |
jz .end0 |
and eax,0xff |
test esi,KM_SHIFT |
jz @f |
or eax,0x100 |
@@: |
stdcall ted_fun_on_key_ctrl_all, eax |
jmp .end_key_fun |
.end0: |
; *** ¢ë§®¢ ¢ãâ२å äãªæ¨© |
cmp ah,30 ;Ctrl+A |
jne @f |
441,7 → 441,7 |
cmp dword[table],0 |
je @f |
stdcall KeyConvertToASCII, dword[table] |
stdcall KeyConvertToASCII, [table] |
@@: |
;mov ted_drag_k,0 ;§ ª 稢 ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
1169,7 → 1169,7 |
; *** ¢áâ ¢ª ⥪ã饣® ᨬ¢®« ¨§ áâப¨ *** |
mov ecx,ted_opt_ed_change_time |
not ecx |
and dword[add_opt],ecx ;n_tim=false; |
and [add_opt],ecx ;n_tim=false; |
mov cl,byte [esi] ;tex[i].c=ta[ns]; |
mov byte [edx],cl |
2046,7 → 2046,39 |
ret |
endp |
;description: |
; ¯¥à¥å®¤ 㪠§ ãî ¯®§¨æ¨î |
;input: |
; row = ®¬¥à áâப¨ |
; col = ᨬ¢®« |
align 16 |
proc ted_go_to_position uses ecx edx edi, edit:dword, row:dword, col:dword |
mov edi,[edit] |
; ¯®¤£®â®¢ª áâப¨ |
mov edx,[row] |
call ted_get_num_lines |
cmp edx,eax |
jle @f |
mov edx,eax ;®£à ¨ç¥¨¥ ¯® áâப¥ max |
@@: |
dec edx |
cmp edx,0 |
jge @f |
xor edx,edx ;®£à ¨ç¥¨¥ ¯® áâப¥ min |
@@: |
; ¯®¤£®â®¢ª ᨬ¢®« |
mov ecx,[col] |
dec ecx |
cmp ecx,0 |
jge @f |
xor ecx,ecx |
@@: |
call ted_go_to_pos |
stdcall ted_draw,edi |
ret |
endp |
;input: |
; ecx = Col |
; edx = Row |
; edi = pointer to tedit struct |
3498,14 → 3530,10 |
inc bx |
int 0x40 |
cmp ted_fun_draw_panel_find,0 |
cmp ted_fun_draw_panels,0 |
je @f |
call ted_fun_draw_panel_find |
stdcall ted_fun_draw_panels, edi |
@@: |
cmp ted_fun_draw_panel_syntax,0 |
je @f |
call ted_fun_draw_panel_syntax |
@@: |
popad |
ret |
endp |
3515,7 → 3543,6 |
align 16 |
proc ted_draw_main_cursor |
pushad |
mov eax,SF_DRAW_RECT ;draw cursor |
mov ecx,ted_wnd_t ;calc rect -> y0,y1 |
add ecx,ted_rec_t |
3811,8 → 3838,7 |
align 16 |
proc KeyConvertToASCII uses ebx, table:dword |
mov ebx,[table] ;convert scan to ascii |
ror ax,8 |
xor ah,ah |
shr ax,8 |
add bx,ax ;? ebx,eax |
mov ah,byte[ebx] |
ret |