/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 |
146,33 → 148,98 |
align 4 |
proc ted_init, edit:dword |
push eax ecx edi |
mov edi,dword[edit] |
push eax ecx edi |
mov edi,dword[edit] |
mov ecx,sizeof.symbol |
imul ecx,ted_max_chars |
call mem_Alloc ;¢ë¤¥«ï¥¬ ¯ ¬ïâì |
mov ted_tex,eax |
mov ted_tex_1,eax |
add ted_tex_1,sizeof.symbol |
add eax,ecx |
mov ted_tex_end,eax |
mov ecx,sizeof.symbol |
imul ecx,ted_max_chars |
call mem_Alloc ;¢ë¤¥«ï¥¬ ¯ ¬ïâì |
mov ted_tex,eax |
mov ted_tex_1,eax |
add ted_tex_1,sizeof.symbol |
add eax,ecx |
mov ted_tex_end,eax |
stdcall ted_clear, edi,1 |
stdcall ted_clear, edi,1 |
;------------------------------------------------- |
mov ecx,1024 ;1024 - ¤«ï ¬ áᨢ ted_arr_key_pos |
add ecx,ted_syntax_file_size |
call mem_Alloc |
mov ted_arr_key_pos,eax |
add eax,1024 |
mov ted_syntax_file,eax |
mov ecx,1024 ;1024 - ¤«ï ¬ áᨢ ted_arr_key_pos |
add ecx,ted_syntax_file_size |
call mem_Alloc |
mov ted_arr_key_pos,eax |
add eax,1024 |
mov ted_syntax_file,eax |
pop edi ecx eax |
ret |
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 |
247,41 → 323,41 |
jmp .end_key_fun |
.key_Ctrl: |
test esi,KM_SHIFT ;Shift+... |
jz .key_Shift |
cmp ah,72 ;Shift+Up |
jne @f |
call ted_sel_key_up |
@@: |
cmp ah,75 ;Shift+Left |
jne @f |
call ted_sel_key_left |
@@: |
cmp ah,77 ;Shift+Right |
jne @f |
call ted_sel_key_right |
@@: |
cmp ah,80 ;Shift+Down |
jne @f |
call ted_sel_key_down |
@@: |
;mov ted_drag_k,1 ; ç¨ ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
jmp .key_MoveCur |
.key_Shift: |
test esi,KM_SHIFT ;Shift+... |
jz .key_Shift |
cmp ah,72 ;Shift+Up |
jne @f |
call ted_sel_key_up |
@@: |
cmp ah,75 ;Shift+Left |
jne @f |
call ted_sel_key_left |
@@: |
cmp ah,77 ;Shift+Right |
jne @f |
call ted_sel_key_right |
@@: |
cmp ah,80 ;Shift+Down |
jne @f |
call ted_sel_key_down |
@@: |
;mov ted_drag_k,1 ; ç¨ ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
jmp .key_MoveCur |
.key_Shift: |
;------------------------------------------------- |
cmp ah,72 ;178 ;Up |
jne @f |
call ted_draw_cursor_sumb |
call ted_cur_move_up |
cmp dl,8 |
jne .no_red_0 |
call ted_scroll_set_redraw |
stdcall ted_draw,edi |
jmp @f |
.no_red_0: |
call ted_draw_main_cursor |
mov ted_drag_k,0 ;§ ª 稢 ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
@@: |
cmp ah,72 ;178 ;Up |
jne @f |
call ted_draw_cursor_sumb |
call ted_cur_move_up |
cmp dl,8 |
jne .no_red_0 |
call ted_scroll_set_redraw |
stdcall ted_draw,edi |
jmp @f |
.no_red_0: |
call ted_draw_main_cursor |
mov ted_drag_k,0 ;§ ª 稢 ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
@@: |
cmp ah,80 ;177 ;Down |
jne @f |
call ted_draw_cursor_sumb |
365,8 → 441,8 |
mov ted_drag_k,0 ;§ ª 稢 ¥¬ ¢ë¤¥«¥¨¥ ®â ª« ¢¨ âãàë |
@@: |
;------------------------------------------------- |
; cmp esi,0 |
; jne .end_key_fun |
; cmp esi,0 |
; jne .end_key_fun |
.key_MoveCur: |
cmp ah,69 ;[Pause Break] |
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 |
2805,14 → 2882,19 |
; ãªæ¨ï ¯à¥®¡à §ã¥â ¥¢¨¤¨¬ë¥ ᨬ¢®«ë ¢ ¯¥ç â ¥¬ë¥ íªà ¥ |
align 4 |
ted_convert_invis_symb: |
cmp ted_mode_invis,1 |
jne @f |
cmp byte[edx],13 |
jne @f |
mov edx,edi |
add edx,ted_offs_symbol_new_line |
@@: |
ret |
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: |
; edi = pointer to tedit struct |
2828,93 → 2910,93 |
align 4 |
proc ted_draw, edit:dword |
locals |
line_num dd ? |
endl |
pushad |
mov edi,dword[edit] |
locals |
line_num dd ? |
endl |
pushad |
mov edi,dword[edit] |
mov eax,4 ;draw text |
mov ecx,ted_text_colors |
mov ecx,dword[ecx] |
mov eax,4 ;draw text |
mov ecx,ted_text_colors |
mov ecx,dword[ecx] |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
shl ebx,16 |
add ebx,ted_wnd_t |
add ebx,ted_rec_t |
add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢¨¢ ¨ï ¡ãª¢ë ¯® æ¥âàã |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
shl ebx,16 |
add ebx,ted_wnd_t |
add ebx,ted_rec_t |
add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢¨¢ ¨ï ¡ãª¢ë ¯® æ¥âàã |
call ted_sel_normalize ;need before draw select |
mov esi,ted_scr_w |
mov esi,dword[esi+sb_offs_position] |
mov dword[line_num],esi |
call ted_sel_normalize ;need before draw select |
mov esi,ted_scr_w |
mov esi,dword[esi+sb_offs_position] |
mov dword[line_num],esi |
stdcall ted_clear_line_before_draw, edi,ebx,1,esi |
call ted_get_first_visible_pos |
cmp edx,0 |
je .no_draw_text |
mov esi,1 ;¤«¨ ¢ë¢®¤¨¬®£® ⥪áâ ¯® 1-¬ã ᨬ¢®«ã |
@@: |
call ted_iterat_next |
cmp edx,ted_tex_1 |
jle .no_draw_text |
stdcall ted_clear_line_before_draw, edi,ebx,1,esi |
call ted_get_first_visible_pos |
cmp edx,0 |
je .no_draw_text |
mov esi,1 ;¤«¨ ¢ë¢®¤¨¬®£® ⥪áâ ¯® 1-¬ã ᨬ¢®«ã |
@@: |
call ted_iterat_next |
cmp edx,ted_tex_1 |
jle .no_draw_text |
; *** 梥⮢ ï à §¬¥âª |
cmp ted_mode_color,0 |
je .no_col_change |
cmp byte[edx+1],0 |
je .no_col_change |
call ted_get_symb_color |
.no_col_change: |
; *** 梥⮢ ï à §¬¥âª |
cmp ted_mode_color,0 |
je .no_col_change |
cmp byte[edx+1],0 |
je .no_col_change |
call ted_get_symb_color |
.no_col_change: |
cmp byte [edx],13 |
jne .no_13 |
cmp ted_mode_invis,1 |
jne .no_invis |
push edx |
mov edx,edi |
add edx,ted_offs_symbol_new_line |
int 0x40 |
pop edx |
.no_invis: |
add ebx,ted_rec_h |
;optimized output \/ |
mov eax,ted_wnd_h |
add eax,ted_wnd_t |
cmp bx,ax |
jg .no_draw_text |
mov eax,4 |
;optimized output /\ |
and ebx,0xffff |
ror ebx,16 |
add ebx,ted_wnd_l |
add ebx,ted_rec_l |
inc ebx |
ror ebx,16 |
inc dword[line_num] ;increment line number |
stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num] |
call ted_opt_draw_line_left |
jmp @b |
.no_13: |
cmp byte [edx],13 |
jne .no_13 |
cmp ted_mode_invis,1 |
jne .no_invis |
push edx |
mov edx,edi |
add edx,ted_offs_symbol_new_line |
int 0x40 |
pop edx |
.no_invis: |
add ebx,ted_rec_h |
;optimized output \/ |
mov eax,ted_wnd_h |
add eax,ted_wnd_t |
cmp bx,ax |
jg .no_draw_text |
mov eax,4 |
;optimized output /\ |
and ebx,0xffff |
ror ebx,16 |
add ebx,ted_wnd_l |
add ebx,ted_rec_l |
inc ebx |
ror ebx,16 |
inc dword[line_num] ;increment line number |
stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num] |
call ted_opt_draw_line_left |
jmp @b |
.no_13: |
int 0x40 |
ror ebx,16 |
add ebx,ted_rec_w |
mov esi,ted_wnd_l |
add esi,ted_wnd_w |
cmp bx,si |
jl .no_opt |
call ted_opt_draw_line_right |
.no_opt: |
mov si,1 |
ror ebx,16 |
jmp @b |
.no_draw_text: |
int 0x40 |
ror ebx,16 |
add ebx,ted_rec_w |
mov esi,ted_wnd_l |
add esi,ted_wnd_w |
cmp bx,si |
jl .no_opt |
call ted_opt_draw_line_right |
.no_opt: |
mov si,1 |
ror ebx,16 |
jmp @b |
.no_draw_text: |
stdcall ted_clear_line_before_draw,edi,ebx,0,dword[line_num] |
call ted_draw_line_numbers |
call ted_draw_main_cursor |
stdcall ted_clear_line_before_draw,edi,ebx,0,dword[line_num] |
call ted_draw_line_numbers |
call ted_draw_main_cursor |
;--------------------------------------------- |
; set all_redraw flag for draw all ScrollBar |
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 |
3141,59 → 3227,60 |
; edi = pointer to tedit struct |
align 4 |
proc ted_draw_help_f1 |
pushad |
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 |
shl ebx,16 |
add ebx,ted_wnd_w |
sub ebx,ted_rec_l |
mov ecx,ted_wnd_t |
add ecx,13 |
shl ecx,16 |
add ecx,ted_rec_h |
mov edx,ted_color_wnd_capt |
int 0x40 |
mov eax,13 ;clear place before draw help |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
shl ebx,16 |
add ebx,ted_wnd_w |
sub ebx,ted_rec_l |
mov ecx,ted_wnd_t |
add ecx,13 |
shl ecx,16 |
add ecx,ted_rec_h |
mov edx,ted_color_wnd_capt |
int 0x40 |
cmp ted_help_id,-1 |
je @f |
mov eax,ted_help_id |
ColToIndexOffset eax,edx |
cmp ted_help_id,-1 |
je @f |
mov eax,ted_help_id |
ColToIndexOffset eax,edx |
;SetCoordinates |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
shl ebx,16 |
add ebx,ted_wnd_t |
add ebx,13 ;=3+10 |
;SetCoordinates |
mov ebx,ted_wnd_l |
add ebx,ted_rec_l |
shl ebx,16 |
add ebx,ted_wnd_t |
add ebx,13 ;=3+10 |
;SetTextColor |
xor eax,eax |
mov al,byte[edx+MAX_COLOR_WORD_LEN+6] |
shl ax,2 |
mov ecx,ted_text_colors |
add ecx,eax |
mov ecx,dword[ecx] |
or ecx,0xc0000000 ;SetTextStyles |
mov esi,edi |
mov edi,ted_color_wnd_work |
mov eax,4 |
int 0x40 |
mov edi,esi |
;SetTextColor |
xor eax,eax |
mov al,byte[edx+MAX_COLOR_WORD_LEN+6] |
shl ax,2 |
mov ecx,ted_text_colors |
add ecx,eax |
mov ecx,dword[ecx] |
or ecx,0xc0000000 ;SetTextStyles |
mov esi,edi |
mov edi,ted_color_wnd_work |
mov eax,4 |
int 0x40 |
mov edi,esi |
;*** draw help string *** |
mov ecx,ted_color_wnd_bord |
or ecx,0x80000000 |
mov edx,dword[edx+MAX_COLOR_WORD_LEN] |
cmp edx,0 |
je @f |
add edx,ted_help_text_f1 |
add ebx,0x500000 |
int 0x40 |
@@: |
popad |
ret |
;*** draw help string *** |
mov ecx,ted_color_wnd_bord |
or ecx,0x80000000 |
mov edx,dword[edx+MAX_COLOR_WORD_LEN] |
cmp edx,0 |
je @f |
add edx,ted_help_text_f1 |
add ebx,0x500000 |
int 0x40 |
@@: |
popad |
ret |
endp |
;input: |
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 |
3718,7 → 3809,9 |
; äãªæ¨ï ¢ë§ë¢¥âáï ¯à¨ ¦ ⨨ ª®¯ª®© ¬ëè¨ ¨ ¯®¯ ¤¥¨¨ ªãàá®à®¬ ¢ ®ª® । ªâ®à |
align 4 |
ted_wnd_main_click: |
push ebx ecx edx |
push ebx ecx edx |
mov ebx,ted_el_focus |
mov dword[ebx],edi ;áâ ¢¨¬ 䮪ãá |
push eax |
shr eax,16 |
3757,16 → 3850,16 |
mov ted_cur_y,eax |
pop eax |
cmp ted_drag_m,0 |
je @f |
call ted_sel_move |
jmp .sel_move |
@@: |
mov ted_drag_m,1 |
call ted_sel_start |
.sel_move: |
pop edx ecx ebx |
ret |
cmp ted_drag_m,0 |
je @f |
call ted_sel_move |
jmp .sel_move |
@@: |
mov ted_drag_m,1 |
call ted_sel_start |
.sel_move: |
pop edx ecx ebx |
ret |
;input: |
; edi = pointer to tedit struct |
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 |
3782,16 → 3875,16 |
btr ax,15 |
jae @f |
or eax,0xffff8000 |
@@: |
add dword[ecx+sb_offs_position],eax |
@@: |
add dword[ecx+sb_offs_position],eax |
mov eax,[ecx+sb_offs_position] |
cmp eax,[ecx+sb_offs_max_area] |
jb @f |
mov dword[ecx+sb_offs_position],ebx ;if scroll position out of range |
jmp .no_scroll |
@@: |
stdcall ted_draw,edi |
mov eax,[ecx+sb_offs_position] |
cmp eax,[ecx+sb_offs_max_area] |
jb @f |
mov dword[ecx+sb_offs_position],ebx ;if scroll position out of range |
jmp .no_scroll |
@@: |
stdcall ted_draw,edi |
.no_scroll: |
pop ecx ebx eax |
ret |
/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 |