Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1457 → Rev 1458

/programs/develop/libraries/box_lib/trunk/box_lib.asm
180,6 → 180,7
dd sz_ted_delete, ted_delete
dd sz_ted_draw, ted_draw
dd sz_ted_init, ted_init
dd sz_ted_init_scroll_bars, ted_init_scroll_bars
dd sz_ted_init_syntax_file, ted_init_syntax_file
dd sz_ted_is_select, ted_is_select
dd sz_ted_key, ted_key
276,6 → 277,7
sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',0
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
sz_ted_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0
/programs/develop/libraries/box_lib/trunk/box_lib.mac
340,6 → 340,9
sb_offs_max_area equ 16
sb_offs_cur_area equ 20
sb_offs_position equ 24
sb_offs_bckg_col equ 28
sb_offs_frnt_col equ 32
sb_offs_line_col equ 36
sb_offs_redraw equ 40
sb_offs_delta2 equ 46
sb_offs_all_redraw equ 80
/programs/develop/libraries/box_lib/trunk/doc/t_edit/t_edit.htm
13,7 → 13,31
<p><a href="#funct">Ôóíêöèè</a></p>
<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_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>
<li><a href="#fun_but_reverse">ted_but_reverse</a></li>
<li><a href="#fun_but_save_file">ted_but_save_file</a></li>
<li><a href="#fun_but_select_word">ted_but_select_word</a></li>
<li><a href="#fun_but_sumb_lover">ted_but_sumb_lover</a></li>
<li><a href="#fun_but_sumb_upper">ted_but_sumb_upper</a></li>
<li><a href="#fun_but_undo">ted_but_undo</a></li>
<li><a href="#fun_can_save">ted_can_save</a></li>
<li><a href="#fun_clear">ted_clear</a></li>
<li><a href="#fun_delete">ted_delete</a></li>
<li><a href="#fun_draw">ted_draw</a></li>
<li><a href="#fun_init">ted_init</a></li>
<li><a href="#fun_init_scroll_bars">ted_init_scroll_bars</a></li>
<li><a href="#fun_init_syntax_file">ted_init_syntax_file</a></li>
<li><a href="#fun_is_select">ted_is_select</a></li>
<li><a href="#fun_key">ted_key</a></li>
<li><a href="#fun_mouse">ted_mouse</a></li>
<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>
</ul>
<p><a href="#syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></p>
 
<h1><a name="vveden">Ââåäåíèå</a></h1>
<p>Ýëåìåíò text_editor ïîçâîëÿåò ðàáîòàòü ñ òåêñòîâûìè ôàéëàìè, ñîäåðæèò ìíîãî ôóíêöèÿ äëÿ ðåäàêòèðîâàíèÿ òåêñòà.</p>
62,34 → 86,185
<p>Ôóíêöèè íà ýêñïîðò:</p>
 
<h4><a name="fun_but_copy">ted_but_copy</a></h4>
 
<p>Ôóíêöèÿ êîòîðàÿ áóäåò âûçûâàòüñÿ ïðè íàæàòèè íà êíîïêó êîïèðîâàíèÿ â áóôåð èëè íà <b>Ctrl+C</b>.</p>
<p>Ôóíêöèÿ êîòîðàÿ áóäåò âûçûâàòüñÿ ïðè íàæàòèè íà êíîïêó êîïèðîâàíèÿ â áóôåð èëè íà <b>Ctrl+C</b>. Òåêñò êîïèðóåòñÿ â áóôåð <b>ted_buffer</b>, ìàêñèìàëüíûé ðàçìåð áóôåðà óêàçûâàåòñÿ â <b>ted_buffer_size</b>.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_copy], tedit0</pre>
 
<h4>ted_but_cut</h4><p></p>
<h4>ted_but_find_next</h4><p></p>
<h4>ted_but_paste</h4><p></p>
<h4>ted_but_redo</h4><p></p>
<h4>ted_but_reverse</h4><p></p>
<h4>ted_but_save_file</h4><p></p>
<h4>ted_but_select_word</h4><p></p>
<h4>ted_but_sumb_lover</h4><p></p>
<h4>ted_but_sumb_upper</h4><p></p>
<h4>ted_but_undo</h4><p></p>
<h4>ted_can_save</h4><p></p>
<h4>ted_clear</h4><p></p>
<h4>ted_delete</h4><p></p>
<h4>ted_draw</h4><p></p>
<h4>ted_init</h4><p></p>
<h4>ted_init_syntax_file</h4><p></p>
<h4>ted_is_select</h4><p></p>
<h4>ted_key</h4><p></p>
<h4>ted_mouse</h4><p></p>
<h4>ted_open_file</h4><p></p>
<h4>ted_text_add</h4><p></p>
<h4>ted_text_colored</h4><p></p>
<h4><a name="fun_but_cut">ted_but_cut</a></h4>
<p>Ôóíêöèÿ âûðåçàåò âûäåëåííûé òåêñò è êîïèðóåò åãî â áóôåð.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_cut], tedit0</pre>
 
<h4><a name="fun_but_find_next">ted_but_find_next</a></h4>
<p>Ôóíêöèÿ äëÿ ïîèñêà òåêñòà. Èùåò òåêñò èç áóôåðà <b>ted_buffer_find</b>, ïðè íàõîæäåíèè ïåðåìåùàåò êóðñîð ê íàéäåíîìó òåêñòó è âûäåëÿåò åãî.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_find_next], tedit0</pre>
 
<h4><a name="fun_but_paste">ted_but_paste</a></h4><p></p>
<p>Ôóíêöèÿ âñòàâëÿåò òåêñò èç áóôåðà <b>ted_buffer</b>.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_paste], tedit0</pre>
 
<h4><a name="fun_but_redo">ted_but_redo</a></h4>
<p>Ïîâòîðÿåò îòìåíåííûå äåéñòâèÿ ïî ðåäàêòèðîâàíèþ òåêñòà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_redo], tedit0</pre>
 
<h4><a name="fun_but_reverse">ted_but_reverse</a></h4>
<p>Ìåíÿåò ïîðÿäîê ñëåäîâàíèÿ ñèìâîëîâ â âûäåëåííîì òåêñòå.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_reverse], tedit0</pre>
 
<h4><a name="fun_but_save_file">ted_but_save_file</a></h4>
<p>Ôóíêöèÿ äëÿ ñîõðàíåíèÿ ôàéëà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
<p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_save_file], tedit0,run_file_70,[edit1.text]</pre>
 
<h4><a name="fun_but_select_word">ted_but_select_word</a></h4>
<p>Ôóíêöèÿ äëÿ âûäåëåíèÿ êëþ÷åâîãî ñëîâà ïîä êóðñîðîì. Åñëè êëþ÷åâûå ñëîâà íå èñïîëüçóþòñÿ, òîãäà áóäåò âûäåëåí âåñü òåêñò.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_select_word], tedit0</pre>
 
<h4><a name="fun_but_sumb_lover">ted_but_sumb_lover</a></h4>
<p>Ïåðåâîäèò âûäåëåííûå ñèìâîëû ê íèæíåìó ðåãèñòðó.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_sumb_lover], tedit0</pre>
 
<h4><a name="fun_but_sumb_upper">ted_but_sumb_upper</a></h4>
<p>Ïåðåâîäèò âûäåëåííûå ñèìâîëû ê âåðõíåìó ðåãèñòðó.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_sumb_upper], tedit0</pre>
 
<h4><a name="fun_but_undo">ted_but_undo</a></h4>
<p>Îòìåíÿåò äåéñòâèÿ ïî ðåäàêòèðîâàíèþ òåêñòà. Äåéñòâèÿ ôóíêöèè <b>ted_but_reverse</b> íå îòìåíÿþòñÿ.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_but_undo], tedit0</pre>
 
<h4><a name="fun_can_save">ted_can_save</a></h4>
<p>Ôóíêöèÿ êîòîðàÿ ïðîâåðÿåò áûëè ëè íå ñîõðàíåííûå èçìåíåíèÿ â òåêñòå. Ðåçóëüòàò âîçâðàùàåòñÿ â ðåãèñòð <b>al</b>, åñëè èçìåíåíèÿ áûëè òî âîçâðàùàåò 1 èíà÷å 0.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push eax
stdcall [ted_can_save], tedit0
cmp al,1
.........
pop eax</pre>
 
<h4><a name="fun_clear">ted_clear</a></h4>
<p>Î÷èñòêà òåêñòà â îêíå ðåäàêòîðà. Ïðèíèìàåò 2 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ïàðàìåòð îïðåäåëÿåò áóäåò ëè î÷èñòêà ïàìÿòè ïîëíîé.</p>
<p>Åñëè 2-é ïàðàìåòð ðàâåí 1, òî î÷èñòêà áóäåò ïîëíîé, ïðè 0 íåò. Ïîëüçîâàòåëþ íóæíî âûçûâàòü ôóíêöèþ ñ ïàðàìåòðîì 1, ïàðàìåòð 0 äëÿ âíóòðåííåãî èñïîëüçîâàíèÿ.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_clear], tedit0,1</pre>
 
<h4><a name="fun_delete">ted_delete</a></h4>
<p>Äåñòðóêòîð ýëåìåíòà, îñâîáîæäàåò ïàìÿòü çàíÿòóþ ýëåìåíòîì.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_delete], tedit0</pre>
 
<h4><a name="fun_draw">ted_draw</a></h4>
<p>Ïåðåðèñîâêà âñåãî îêíà ðåäàêòîðà, âêëþ÷àÿ äî÷åðíèå ñêðîëëèíãè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_draw], tedit0</pre>
 
<h4><a name="fun_init">ted_init</a></h4>
<p>Êîíñòðóêòîð ýëåìåíòà, âûäåëÿåò ïàìÿòü íåîáõîäèìóþ äëÿ ðàáîòû òåêñòîâîãî ðåäàêòîðà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_init], tedit0</pre>
 
<h4><a name="fun_init_scroll_bars">ted_init_scroll_bars</a></h4>
<p>Óñòàíàâëèâàåò öâåò ñêðîëëèíãîâ è íàñòðàèâàåò èõ ðàçìåðû â çàâèñèìîñòè îò ðàçìåðîâ îêíà. Ìîæíî âûçûâàòü ýòó ôóíêöèþ ïðè èçìåíåíèè ðàçìåðîâ îêíà â ïîëüçîâàòåëüñêîé ïðîãðàììå. Ïðèíèìàåò 2 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) îïöèè, åñëè 1 òî èçìåíÿòü öâåòà ñêðîëëèíãîâ åñëè 2 òî èçìåíÿòü ðàçìåð, ìîæíî äàâàòü êîìáèíàöèþ îïöèé ñ ïîìîùüþ èëè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_init_scroll_bars], tedit0,2</pre>
 
<h4><a name="fun_init_syntax_file">ted_init_syntax_file</a></h4>
<p>Ôóíêöèÿ äëÿ çàãðóçêè öâåòîâ èíòåðôåéñà è êëþ÷åâûõ ñëîâ èç ôàéëà ñèíòàêñèñà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
<p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà ñèíòàêñèñà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_init_syntax_file], tedit0,run_file_70,file_name</pre>
 
<h4><a name="fun_is_select">ted_is_select</a></h4>
<p>Îïðåäåëÿåò åñòü â îêíå ðåäàêòîðà âûäåëåííûé òåêñò. Åñëè åñòü â ðåãèñòð <b>al</b> çàïèñûâàåòñÿ 1 èíà÷å 0. Ôóíêöèÿ íåîáõîäèìà äëÿ ñîçäàíèÿ ïàíåëåé èíñòðåìåíòîâ, â êîòîðûõ â çàâèñèìîñòè îò âûäåëåíèÿ áóäóò äîñòóïíû èëè çàáëîêèðîâàíû îïðåäåëåííûå êíîïêè (äåéñòâèÿ). Íàïðèìåð êíîïêó äëÿ êîïèðîâàíèÿ â áóôåð ìîæíî çàáëîêèðîâàòü åñëè íåò âûáðàííîãî òåêñòà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push eax edi
mov edi,tedit0
call [ted_is_select]
cmp al,0
.........
pop edi eax</pre>
 
<h4><a name="fun_key">ted_key</a></h4>
<p>Ôóíêöèÿ âûçûâàåìàÿ äëÿ ðåàêöèè íà êëàâèàòóðó. Â ðåãèñòðå <b>eax</b> äîëæåí áûòü êîä íàæàòîé êëàâèøè. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) òàáëèöà äëÿ êîíâåðòàöèè scan êîäîâ â ascii,</p>
<p>3) óïðàâëÿþùèå ñèìâîëû.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>mcall 66,3 ;66.3 ïîëó÷èòü ñîñòîÿíèå óïðàâëÿþùèõ êëàâèø
xor esi,esi
mov ecx,1
test al,0x03 ;[Shift]
jz @f
mov cl,2
or esi,KM_SHIFT
@@:
test al,0x0c ;[Ctrl]
jz @f
or esi,KM_CTRL
@@:
test al,0x30 ;[Alt]
jz @f
mov cl,3
or esi,KM_ALT
@@:
test al,0x80 ;[NumLock]
jz @f
or esi,KM_NUMLOCK
@@:
 
mcall 26,2,,conv_tabl ;26.2 ïîëó÷èòü ðàñêëàäêó êëàâèàòóðû
mcall 2 ;ïîëó÷àåì êîä íàæàòîé êëàâèøè
stdcall [ted_key], tedit0, conv_tabl,esi</pre>
 
<h4><a name="fun_mouse">ted_mouse</a></h4>
<p>Ôóíêöèÿ íà ïåðåìåùåíèå èëè íàæàòèå ìûøè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_mouse], tedit0</pre>
 
<h4><a name="fun_open_file">ted_open_file</a></h4>
<p>Ôóíêöèÿ äëÿ îòêðûòèÿ ôàéëà. Ïðèíèìàåò 3 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) ñòðóêòóðà äëÿ ðàáîòû 70-é ôóíêöèè (äî âûçîâà ôóíêöèè çàïîëíåíèÿ íå òðåáóåò),</p>
<p>3) ñòðîêà ñ ïóòåì è èìåíåì ôàéëà.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>stdcall [ted_open_file], tedit0,run_file_70,[edit1.text]</pre>
 
<h4><a name="fun_text_add">ted_text_add</a></h4>
<p>Ôóíêöèÿ äëÿ äîáàâëåíèÿ òåêñòà. Ïðèíèìàåò 4 ïàðàìåòðà:</p>
<p>1) ñòðóêòóðà tedit,</p>
<p>2) óêàçàòåëü íà áóôåð ñ òåêñòîì,</p>
<p>3) äëèíà òåêñòà,</p>
<p>4) îïöèè âñòàâêè.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
stdcall [ted_text_add], tedit0,ted_buffer,30,ebx</pre>
<p><b>ted_opt_ed_change_time</b> - ôèêñèðîâàòü èçìåíåíèÿ äîêóìåíòà, ÷òî-áû èõ ìîæíî áûëî îòìåíèòü. Íàïðèìåð åñëè íóæíî ñäåëàòü íåñêîëüêî èçìåíåíèé òåêñòà, êîòîðûå áóäóò îòìåíÿòüñÿ çà îäèí ðàç, òî 1-å èçìåíåíèå èäåò ñ ýòîé êîíñòàíòîé à îñòàëüíûå íåò.</p>
<p><b>ted_opt_ed_move_cursor</b> - êîíñòàíòà êîòîðàÿ îïðåäåëÿåò ñäâèã êóðñîðà ïîñëå äîáàâëåíèÿ òåêñòà.</p>
 
<h4><a name="fun_text_colored">ted_text_colored</a></h4>
<p>Ôóíêöèÿ äëÿ ðàçìåòêè òåêñòà öâåòîì. Îáû÷íî âûçûâàåòñÿ âíóòðè ñàìîé áèáëèîòåêè, ïðè èçìåíåíèÿõ òåêñòà.  íåêîòîðûõ ñëó÷àÿõ ìîæåò ïîíàäîáèòüñÿ âûçâàòü ïðèíóäèòåëüíî èç âíåøíåé ïðîãðàììû.</p>
<p>Ïðèìåð èñïîëüçîâàíèÿ:</p>
<pre>push edi
mov edi,tedit0
call [ted_text_colored]
pop edi</pre>
 
<p>Âíóòðåííèå ôóíêöèè:</p>
<p><b>ted_get_text_perv_pos</b> - ïåðåõîä íà ïðåäûäóùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'perv')</p>
<p><b>ted_get_text_next_pos</b> - ïåðåõîä íà ñëåäóþùèé ñèìâîë â öåïè (÷åðåç óêàçàòåëü 'next')</p>
106,8 → 281,7
<p><b>ted_go_to_pos</b> - ïåðåñòàâëÿåò êóðñîð â óêàçàííóþ ïîçèöèþ, åñëè óêàçàííàÿ ïîçèöèÿ
íàõîäèòñÿ âíå ýêðàíà, òî òàêæå ïåðåñòàâëÿþòñÿ ñêðîëèíãè (ecx->êîîðä. x, çíàê; edx->êîîðä. y, ñòðîêà)</p>
 
 
<h1>Ôîðìàò ôàéëà ïîäñâåòêè *.syn</h1>
<h1><a name="syn_file">Ôîðìàò ôàéëà ïîäñâåòêè *.syn</a></h1>
<table>
<tr><th>Ýëåìåíò</th><th>Ðàçìåð (áàéò)</th></tr>
<tr><td>Êîëè÷åñòâî öâåòîâ òåêñòà</td>
132,7 → 306,7
</ul>
 
<hr>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 29.04.10.</p>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 03.05.10.</p>
 
</body>
</html>
/programs/develop/libraries/box_lib/trunk/t_edit.mac
1,6 → 1,6
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 29.04.2010 IgorA
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 03.05.2010 IgorA
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
 
;input:
54,6 → 54,8
ends
;------------------------------------------------------------------------------
 
ted_symbol_tab db 26
 
if lang eq ru
 
txtFindCapt db '®¨áª',0
80,7 → 82,7
 
;------
align 4
EvChar db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
EvChar db 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
168,11 → 170,76
add eax,1024
mov ted_syntax_file,eax
 
stdcall ted_init_scroll_bars,edi,3
pop edi ecx eax
ret
endp
 
MIN_W_SCRL_ARE equ 3 ;¬¨­¨¬ «ì­ ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï ¢¥àâ. áªà®««¨­£ 
MIN_H_SCRL_ARE equ 3 ;¬¨­¨¬ «ì­ ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï £®à¨§. áªà®««¨­£ 
;input:
; opt = 1 - ¬¥­ïâì 梥â áªà®««¨­£®¢, 2 - ¬¥­ïâì ¢­¥è­¨¥ à §¬¥àë
align 4
proc ted_init_scroll_bars, edit:dword, opt:dword
pushad
mov esi,ted_scr_w
mov ebx,ted_scr_h
bt dword[opt],0
jae @f
mov ecx,ted_color_wnd_work
mov dword[esi+sb_offs_bckg_col],ecx
mov dword[ebx+sb_offs_bckg_col],ecx
mov ecx,ted_color_wnd_capt
mov dword[esi+sb_offs_frnt_col],ecx
mov dword[ebx+sb_offs_frnt_col],ecx
mov ecx,ted_color_wnd_bord
mov dword[esi+sb_offs_line_col],ecx
mov dword[ebx+sb_offs_line_col],ecx
@@:
bt dword[opt],1
jae .no_size
mov edx,ted_wnd_l
add edx,ted_rec_l
mov word[ebx+sb_offs_start_x],dx ;¢ëáâ ¢«ï¥¬ «¥¢ë© ®âáâ㯠£®à¨§. áªà®««¨­£ 
mov eax,ted_wnd_h ;calculate lines in page
mov edx,ted_wnd_t
add edx,eax
mov word[ebx+sb_offs_start_y],dx ;¢ëáâ ¢«ï¥¬ ¢¥àå­¨© ®âáâ㯠£®à¨§. áªà®««¨­£ 
sub eax,ted_rec_t
xor edx,edx
mov ecx,ted_rec_h
div ecx
cmp eax,MIN_W_SCRL_ARE
jg @f
mov eax,MIN_W_SCRL_ARE
@@:
mov dword[esi+sb_offs_cur_area],eax
 
mov eax,ted_wnd_w ;calculate cols in page
mov edx,ted_wnd_l ;«¥¢ë© ®âáâ㯠®ª­ 
add edx,eax ;¤®¡ ¢«ï¥¬ è¨à¨­ã ®ª­ 
mov word[esi+sb_offs_start_x],dx ;¢ëáâ ¢«ï¥¬ «¥¢ë© ®âáâ㯠¢¥àâ. áªà®««¨­£ 
mov edx,ted_wnd_t
mov word[esi+sb_offs_start_y],dx ;¢ëáâ ¢«ï¥¬ ¢¥àå­¨© ®âáâ㯠¢¥àâ. áªà®««¨­£ 
mov edx,ted_wnd_h
mov word[esi+sb_offs_size_y],dx ;¢ëáâ ¢«ï¥¬ ¢ëá®âã ¢¥àâ. áªà®««¨­£ 
sub eax,ted_rec_l
mov word[ebx+sb_offs_size_x],ax ;¢ëáâ ¢«ï¥¬ è¨à¨­ã £®à¨§. áªà®««¨­£ 
xor edx,edx
mov ecx,ted_rec_w
div ecx
cmp eax,MIN_H_SCRL_ARE
jg @f
mov eax,MIN_H_SCRL_ARE
@@:
dec eax
mov dword[ebx+sb_offs_cur_area],eax ;ãáâ ­ ¢«¨¢ ¥¬ ç¨á«® ᨬ¢®«®¢, ª®â®àë¥ ¢« §ïâ ¢ íªà ­ ¤«ï £®à¨§. áªà®««¨­£ 
.no_size:
popad
ret
endp
 
align 4
proc ted_delete, edit:dword
push ecx edi
mov edi,dword[edit]
193,6 → 260,9
proc ted_key, edit:dword, table:dword, control:dword
pushad
mov edi,dword[edit]
mov esi,ted_el_focus
cmp dword[esi],edi
jne .end_key_fun ;í«¥¬¥­â ­¥ ¢ 䮪ãᥠ¢ë室¨¬ ¨§ ä㭪樨
mov esi,dword[control]
 
cmp ah,KEY_F1 ;[F1]
214,6 → 284,12
je @f
call ted_fun_on_key_ctrl_o
@@:
cmp ah,31 ;Ctrl+S
jne @f
cmp ted_fun_on_key_ctrl_s,0
je @f
call ted_fun_on_key_ctrl_s
@@:
cmp ah,33 ;Ctrl+F
jne @f
cmp ted_panel_id,TED_PANEL_FIND
607,11 → 683,11
 
mov ecx,ted_scr_w
mov dword[ecx+sb_offs_position],0
mov dword[ecx+sb_offs_max_area],100
mov dword[ecx+sb_offs_max_area],100 ;ç¨á«® áâப ¢¨¤¨¬ëå ¢ ­®¢®¬ ¤®ªã¬¥­â¥
mov dword[ecx+sb_offs_redraw],1
mov ecx,ted_scr_h
mov dword[ecx+sb_offs_position],0
mov dword[ecx+sb_offs_max_area],100
mov dword[ecx+sb_offs_max_area],100 ;ç¨á«® ᨬ¢®«®¢ ¢¨¤¨¬ëå ¢ ­®¢®¬ ¤®ªã¬¥­â¥
 
mov ted_sel_x0,0
mov ted_sel_y0,0
724,6 → 800,7
add ecx,ted_key_words_data
mov ted_help_text_f1,ecx
 
stdcall ted_init_scroll_bars,edi,1 ;¬¥­ï¥¬ æ¢¥â  áªà®««¨­£®¢
.no_colors:
popad
ret
2806,12 → 2883,17
align 4
ted_convert_invis_symb:
cmp ted_mode_invis,1
jne .end_f
cmp byte[edx],9
jne @f
lea edx,[ted_symbol_tab]
@@:
cmp byte[edx],13
jne @f
mov edx,edi
add edx,ted_offs_symbol_new_line
@@:
.end_f:
ret
 
;input:
3086,7 → 3168,8
je @f
mov ecx,ted_tim_undo
add edx,0x500000
int 0x40
mov edi,ted_color_wnd_work ;¯®à⨬ ॣ¨áâà edi, ­® ¢ ª®­æ¥ ä㭪樨 í⮠㦥 ­¥ ¢ ¦­®
int 0x40 ;¢ë¢®¤ ç¨á«  ®â¬¥­¥­­ëå ¤¥©á⢨©
@@:
 
popad
3101,9 → 3184,12
mov eax,ted_buffer
cmp byte[eax],0 ;ᬮâਬ 1-© ᨬ¢®« ¨§ ¡ãä¥à 
je @f
mov ebx,ted_wnd_l
add ebx,ted_rec_l
mov ebx,ted_rec_l
add bx,300
cmp ebx,ted_wnd_w ;áà ¢­¨¢ ¥¬ ª®®à¤¨­ âã ¤«ï ¢ë¢®¤ ⥪áâ 
jge @f ;¯®¤¯¨áì ­¥ ¢« §¨â ¢ ®ª­®
 
add ebx,ted_wnd_l
shl ebx,16
add ebx,ted_wnd_t
add ebx,3
3142,7 → 3228,8
align 4
proc ted_draw_help_f1
pushad
 
cmp ted_rec_t,13 ;¬¨­¨¬ «ì­ ï ¢ëá®â  ¤«ï à¨á®¢ ­¨ï á¯à ¢ª¨
jle @f
mov eax,13 ;clear place before draw help
mov ebx,ted_wnd_l
add ebx,ted_rec_l
3698,7 → 3785,11
call ted_wnd_main_click
jmp .no_in_wnd
@@:
call ted_wnd_main_mouse_scroll
mov edx,ted_el_focus
cmp dword[edx],edi
jne @f
call ted_wnd_main_mouse_scroll ;ᬮâਬ ­  ¯à®ªàãâªã ª®«¥á  ¬ëè¨
@@:
cmp ted_drag_m,0
je .no_in_wnd
mov ted_drag_m,0
3719,6 → 3810,8
align 4
ted_wnd_main_click:
push ebx ecx edx
mov ebx,ted_el_focus
mov dword[ebx],edi ;áâ ¢¨¬ 䮪ãá
 
push eax
shr eax,16
3773,7 → 3866,7
align 4
ted_wnd_main_mouse_scroll:
push eax ebx ecx
mcall 37,7
mcall 37,7 ;¯à®ªàã⪠ ª®«¥á  ¬ëè¨
cmp ax,0
je .no_scroll
mov ecx,ted_scr_w
/programs/other/t_edit/t_button.inc
26,7 → 26,7
ends
 
 
hed db 'TextEditor 29.04.10',0 ;¯®¤¯¨áì ®ª­ 
hed db 'TextEditor 03.05.10',0 ;¯®¤¯¨áì ®ª­ 
sc system_colors
 
fn_icon db 'te_icon.bmp',0
/programs/other/t_edit/t_data.inc
81,6 → 81,7
ted_delete dd sz_ted_delete
ted_draw dd sz_ted_draw
ted_init dd sz_ted_init
ted_init_scroll_bars dd sz_ted_init_scroll_bars
ted_init_syntax_file dd sz_ted_init_syntax_file
ted_is_select dd sz_ted_is_select
ted_key dd sz_ted_key
154,6 → 155,7
sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',0
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
sz_ted_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0
/programs/other/t_edit/t_draw.inc
261,8 → 261,6
endp
 
MIN_M_WND_H equ 100
MIN_W_SCRL_ARE equ 3
MIN_H_SCRL_ARE equ 3
align 4
proc EvSize, edit:dword
pushad
286,47 → 284,11
mov ax,word[ebx+sb_offs_size_y]
and eax,0xffff
sub ted_wnd_h,eax ;îòíèìàåì âûñîòó ãîðèç. ñêðîëëèíãà
mov eax,ted_wnd_h ;eax = âûñîòà îêíà - âûñîòà ãîðèç. ñêðîëëèíãà
mov word[ebx+sb_offs_start_y],ax ;ïåðåäâèãàåì ãîðèç. ñêðîëëèíã
mov eax,ted_wnd_t
sub ted_wnd_h,eax ;îòíèìàåì îòñòóï ñâåðõó
 
mov eax,ted_wnd_w
mov ecx,ted_wnd_l
add eax,ecx
mov word[esi+sb_offs_start_x],ax ;ïåðåäâèãàåì âåðò. ñêðîëëèíã
mov eax,ted_wnd_h
mov word[esi+sb_offs_size_y],ax ;çàäàåì âûñîòó âåðò. ñêðîëëèíãà
stdcall [ted_init_scroll_bars], tedit0,2
 
add ecx,ted_rec_l ;ecx=ted_wnd_l+ted_rec_l
mov word[ebx+sb_offs_start_x],cx ;ñäâèãàåì ãîðèç. ñêðîëëèíã ïî ðàçìåðó ëåâîãî îòñòóïà äëÿ öèôð
mov eax,ted_wnd_w
sub eax,ted_rec_l
mov word[ebx+sb_offs_size_x],ax ;çàäàåì øèðèíó ãîðèç. ñêðîëëèíãà
 
mov eax,ted_wnd_h ;calculate lines in page
sub eax,ted_rec_t
xor edx,edx
mov ecx,ted_rec_h
div ecx
cmp eax,MIN_W_SCRL_ARE
jg @f
mov eax,MIN_W_SCRL_ARE
@@:
mov dword[esi+sb_offs_cur_area],eax
 
mov eax,ted_wnd_w ;calculate cols in page
sub eax,ted_rec_l
xor edx,edx
mov ecx,ted_rec_w
div ecx
cmp eax,MIN_H_SCRL_ARE
jg @f
mov eax,MIN_H_SCRL_ARE
@@:
dec eax ; ???
mov dword[ebx+sb_offs_cur_area],eax
 
mov eax,ted_wnd_t
mov edi,dword tree1
mov tl_box_top,eax ;=ted_wnd_t
/programs/other/t_edit/t_edit.asm
36,16 → 36,6
start:
mcall 48,3,sc,sizeof.system_colors
 
mov eax,[sc.work]
mov [wScr.bckg_col],eax
mov [hScr.bckg_col],eax
mov eax,[sc.work_button]
mov [wScr.frnt_col],eax
mov [hScr.frnt_col],eax
mov eax,[sc.work_button_text]
mov [wScr.line_col],eax
mov [hScr.line_col],eax
 
mcall 68,11
or eax,eax
jz button.exit
343,7 → 333,7
 
mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨
;stdcall [tl_key], tree1
stdcall [tl_key], tree1
 
test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
je @f