new option in function 'ted_init_scroll_bars'

git-svn-id: svn://kolibrios.org@1459 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2010-05-05 19:38:25 +00:00
parent 16c8c37422
commit 2accd7bab7
4 changed files with 33 additions and 8 deletions

View File

@ -178,7 +178,13 @@ pop eax</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>2) опции, указывают какие нужно изменить параметры:</p>
<ul>
<li>1 - изменить цвета скроллингов</li>
<li>2 - изменился размер окна</li>
<li>4 - изменился размер документа</li>
</ul>
<p>Параметры можно комбинировать через <i>логическое или</i>.</p>
<p>Пример использования:</p>
<pre>stdcall [ted_init_scroll_bars], tedit0,2</pre>
@ -242,8 +248,14 @@ stdcall [ted_key], tedit0, conv_tabl,esi</pre>
<p>1) структура tedit,</p>
<p>2) структура для работы 70-й функции (до вызова функции заполнения не требует),</p>
<p>3) строка с путем и именем файла.</p>
<p>Возвращает 2 параметра:</p>
<p>1) eax = код ошибки</p>
<p>2) ebx = колличество прочитанных байт</p>
<p>Пример использования:</p>
<pre>stdcall [ted_open_file], tedit0,run_file_70,[edit1.text]</pre>
<pre>push eax ebx
stdcall [ted_open_file], tedit0,run_file_70,[edit1.text]
.........
pop ebx eax</pre>
<h4><a name="fun_text_add">ted_text_add</a></h4>
<p>Функция для добавления текста. Принимает 4 параметра:</p>
@ -252,8 +264,10 @@ stdcall [ted_key], tedit0, conv_tabl,esi</pre>
<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>
<pre>text_buffer db 500 dup(0)
.........
mov ebx,ted_opt_ed_change_time+ted_opt_ed_move_cursor
stdcall [ted_text_add], tedit0,text_buffer,30,ebx</pre>
<p><b>ted_opt_ed_change_time</b> - фиксировать изменения документа, что-бы их можно было отменить. Например если нужно сделать несколько изменений текста, которые будут отменяться за один раз, то 1-е изменение идет с этой константой а остальные нет.</p>
<p><b>ted_opt_ed_move_cursor</b> - константа которая определяет сдвиг курсора после добавления текста.</p>
@ -306,7 +320,7 @@ pop edi</pre>
</ul>
<hr>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 03.05.10.</p>
<p>Документация обновлялась последний раз 05.05.10.</p>
</body>
</html>

View File

@ -1,6 +1,6 @@
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 03.05.2010 IgorA
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 05.05.2010 IgorA
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
;input:
@ -178,10 +178,12 @@ endp
MIN_W_SCRL_ARE equ 3 ;¬¨­¨¬ «ì­ ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï ¢¥àâ. áªà®««¨­£ 
MIN_H_SCRL_ARE equ 3 ;¬¨­¨¬ «ì­ ï ®â®¡à ¦ ¥¬ ï ®¡« áâì ¤«ï £®à¨§. áªà®««¨­£ 
;input:
; opt = 1 - ¬¥­ïâì 梥â áªà®««¨­£®¢, 2 - ¬¥­ïâì ¢­¥è­¨¥ à §¬¥àë
; opt = 1 - ¬¥­ïâì 梥â áªà®««¨­£®¢, 2 - ¨§¬¥­¨«¨áì à §¬¥àë ®ª­ ,
; 4 - ¨§¬¥­¨«¨áì à §¬¥àë ¤®ªã¬¥­â 
align 4
proc ted_init_scroll_bars, edit:dword, opt:dword
pushad
mov edi,dword[edit]
mov esi,ted_scr_w
mov ebx,ted_scr_h
bt dword[opt],0
@ -196,7 +198,16 @@ proc ted_init_scroll_bars, edit:dword, opt:dword
mov dword[esi+sb_offs_line_col],ecx
mov dword[ebx+sb_offs_line_col],ecx
@@:
bt dword[opt],1
bt dword[opt],2 ; ¨§¬¥­¨«¨áì à §¬¥àë ¤®ªã¬¥­â  ?
jae .doc_resize
call ted_get_num_lines
cmp eax,100
jge @f
mov eax,100
@@:
mov dword[esi+sb_offs_max_area],eax
.doc_resize:
bt dword[opt],1 ; ¨§¬¥­¨«¨áì à §¬¥àë ®ª­  ?
jae .no_size
mov edx,ted_wnd_l
add edx,ted_rec_l

Binary file not shown.