1) revised 't_edit' new function 'ted_init_scroll_bars'

2) updated documentation

git-svn-id: svn://kolibrios.org@1458 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2010-05-03 15:12:50 +00:00
parent fd898963db
commit 16c8c37422
8 changed files with 524 additions and 298 deletions

View File

@ -180,6 +180,7 @@ dd sz_ted_clear, ted_clear
dd sz_ted_delete, ted_delete dd sz_ted_delete, ted_delete
dd sz_ted_draw, ted_draw dd sz_ted_draw, ted_draw
dd sz_ted_init, ted_init 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_init_syntax_file, ted_init_syntax_file
dd sz_ted_is_select, ted_is_select dd sz_ted_is_select, ted_is_select
dd sz_ted_key, ted_key dd sz_ted_key, ted_key
@ -276,6 +277,7 @@ sz_ted_clear db 'ted_clear',0
sz_ted_delete db 'ted_delete',0 sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0 sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',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_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0 sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0 sz_ted_key db 'ted_key',0

View File

@ -340,6 +340,9 @@ sb_offs_start_y equ 6
sb_offs_max_area equ 16 sb_offs_max_area equ 16
sb_offs_cur_area equ 20 sb_offs_cur_area equ 20
sb_offs_position equ 24 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_redraw equ 40
sb_offs_delta2 equ 46 sb_offs_delta2 equ 46
sb_offs_all_redraw equ 80 sb_offs_all_redraw equ 80

View File

@ -13,7 +13,31 @@
<p><a href="#funct">Функции</a></p> <p><a href="#funct">Функции</a></p>
<ul> <ul>
<li><a href="#fun_but_copy">ted_but_copy</a></li> <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> </ul>
<p><a href="#syn_file">Формат файла подсветки *.syn</a></p>
<h1><a name="vveden">Введение</a></h1> <h1><a name="vveden">Введение</a></h1>
<p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.</p> <p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.</p>
@ -62,33 +86,184 @@ ends</pre>
<p>Функции на экспорт:</p> <p>Функции на экспорт:</p>
<h4><a name="fun_but_copy">ted_but_copy</a></h4> <h4><a name="fun_but_copy">ted_but_copy</a></h4>
<p>Функция которая будет вызываться при нажатии на кнопку копирования в буфер или на <b>Ctrl+C</b>. Текст копируется в буфер <b>ted_buffer</b>, максимальный размер буфера указывается в <b>ted_buffer_size</b>.</p>
<p>Ôóíêöèÿ êîòîðàÿ áóäåò âûçûâàòüñÿ ïðè íàæàòèè íà êíîïêó êîïèðîâàíèÿ â áóôåð èëè íà <b>Ctrl+C</b>.</p>
<p>Пример использования:</p> <p>Пример использования:</p>
<pre>stdcall [ted_but_copy], tedit0</pre> <pre>stdcall [ted_but_copy], tedit0</pre>
<h4>ted_but_cut</h4><p></p> <h4><a name="fun_but_cut">ted_but_cut</a></h4>
<h4>ted_but_find_next</h4><p></p> <p>Функция вырезает выделенный текст и копирует его в буфер.</p>
<h4>ted_but_paste</h4><p></p> <p>Пример использования:</p>
<h4>ted_but_redo</h4><p></p> <pre>stdcall [ted_but_cut], tedit0</pre>
<h4>ted_but_reverse</h4><p></p>
<h4>ted_but_save_file</h4><p></p> <h4><a name="fun_but_find_next">ted_but_find_next</a></h4>
<h4>ted_but_select_word</h4><p></p> <p>Функция для поиска текста. Ищет текст из буфера <b>ted_buffer_find</b>, при нахождении перемещает курсор к найденому тексту и выделяет его.</p>
<h4>ted_but_sumb_lover</h4><p></p> <p>Пример использования:</p>
<h4>ted_but_sumb_upper</h4><p></p> <pre>stdcall [ted_but_find_next], tedit0</pre>
<h4>ted_but_undo</h4><p></p>
<h4>ted_can_save</h4><p></p> <h4><a name="fun_but_paste">ted_but_paste</a></h4><p></p>
<h4>ted_clear</h4><p></p> <p>Функция вставляет текст из буфера <b>ted_buffer</b>.</p>
<h4>ted_delete</h4><p></p> <p>Пример использования:</p>
<h4>ted_draw</h4><p></p> <pre>stdcall [ted_but_paste], tedit0</pre>
<h4>ted_init</h4><p></p>
<h4>ted_init_syntax_file</h4><p></p> <h4><a name="fun_but_redo">ted_but_redo</a></h4>
<h4>ted_is_select</h4><p></p> <p>Повторяет отмененные действия по редактированию текста.</p>
<h4>ted_key</h4><p></p> <p>Пример использования:</p>
<h4>ted_mouse</h4><p></p> <pre>stdcall [ted_but_redo], tedit0</pre>
<h4>ted_open_file</h4><p></p>
<h4>ted_text_add</h4><p></p> <h4><a name="fun_but_reverse">ted_but_reverse</a></h4>
<h4>ted_text_colored</h4><p></p> <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>Внутренние функции:</p>
<p><b>ted_get_text_perv_pos</b> - переход на предыдущий символ в цепи (через указатель 'perv')</p> <p><b>ted_get_text_perv_pos</b> - переход на предыдущий символ в цепи (через указатель 'perv')</p>
@ -106,8 +281,7 @@ ends</pre>
<p><b>ted_go_to_pos</b> - переставляет курсор в указанную позицию, если указанная позиция <p><b>ted_go_to_pos</b> - переставляет курсор в указанную позицию, если указанная позиция
находится вне экрана, то также переставляются скролинги (ecx->коорд. x, знак; edx->коорд. y, строка)</p> находится вне экрана, то также переставляются скролинги (ecx->коорд. x, знак; edx->коорд. y, строка)</p>
<h1><a name="syn_file">Формат файла подсветки *.syn</a></h1>
<h1>Ôîðìàò ôàéëà ïîäñâåòêè *.syn</h1>
<table> <table>
<tr><th>Элемент</th><th>Размер (байт)</th></tr> <tr><th>Элемент</th><th>Размер (байт)</th></tr>
<tr><td>Количество цветов текста</td> <tr><td>Количество цветов текста</td>
@ -132,7 +306,7 @@ ends</pre>
</ul> </ul>
<hr> <hr>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 29.04.10.</p> <p>Документация обновлялась последний раз 03.05.10.</p>
</body> </body>
</html> </html>

View File

@ -1,6 +1,6 @@
; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj ; ¬ ªà®á ¤«ï á¨á⥬­®© ¡¨¡«¨®â¥ª¨ box_lib.obj
; í«¥¬¥­â TextEditor ¤«ï Kolibri OS ; í«¥¬¥­â TextEditor ¤«ï Kolibri OS
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 29.04.2010 IgorA ; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 03.05.2010 IgorA
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï ; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
;input: ;input:
@ -54,6 +54,8 @@ struct symbol
ends ends
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
ted_symbol_tab db 26
if lang eq ru if lang eq ru
txtFindCapt db '<27>®¨áª',0 txtFindCapt db '<27>®¨áª',0
@ -80,7 +82,7 @@ end if
;------ ;------
align 4 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 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
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,30 +148,95 @@ KEY_F3 equ 0x0000003D
align 4 align 4
proc ted_init, edit:dword proc ted_init, edit:dword
push eax ecx edi push eax ecx edi
mov edi,dword[edit] mov edi,dword[edit]
mov ecx,sizeof.symbol mov ecx,sizeof.symbol
imul ecx,ted_max_chars imul ecx,ted_max_chars
call mem_Alloc ;¢ë¤¥«ï¥¬ ¯ ¬ïâì call mem_Alloc ;¢ë¤¥«ï¥¬ ¯ ¬ïâì
mov ted_tex,eax mov ted_tex,eax
mov ted_tex_1,eax mov ted_tex_1,eax
add ted_tex_1,sizeof.symbol add ted_tex_1,sizeof.symbol
add eax,ecx add eax,ecx
mov ted_tex_end,eax mov ted_tex_end,eax
stdcall ted_clear, edi,1 stdcall ted_clear, edi,1
;------------------------------------------------- ;-------------------------------------------------
mov ecx,1024 ;1024 - ¤«ï ¬ áᨢ  ted_arr_key_pos mov ecx,1024 ;1024 - ¤«ï ¬ áᨢ  ted_arr_key_pos
add ecx,ted_syntax_file_size add ecx,ted_syntax_file_size
call mem_Alloc call mem_Alloc
mov ted_arr_key_pos,eax mov ted_arr_key_pos,eax
add eax,1024 add eax,1024
mov ted_syntax_file,eax mov ted_syntax_file,eax
pop edi ecx eax stdcall ted_init_scroll_bars,edi,3
ret 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 endp
align 4 align 4
@ -193,6 +260,9 @@ align 4
proc ted_key, edit:dword, table:dword, control:dword proc ted_key, edit:dword, table:dword, control:dword
pushad pushad
mov edi,dword[edit] mov edi,dword[edit]
mov esi,ted_el_focus
cmp dword[esi],edi
jne .end_key_fun ;í«¥¬¥­â ­¥ ¢ 䮪ãᥠ¢ë室¨¬ ¨§ ä㭪樨
mov esi,dword[control] mov esi,dword[control]
cmp ah,KEY_F1 ;[F1] cmp ah,KEY_F1 ;[F1]
@ -214,6 +284,12 @@ proc ted_key, edit:dword, table:dword, control:dword
je @f je @f
call ted_fun_on_key_ctrl_o 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 cmp ah,33 ;Ctrl+F
jne @f jne @f
cmp ted_panel_id,TED_PANEL_FIND cmp ted_panel_id,TED_PANEL_FIND
@ -247,41 +323,41 @@ proc ted_key, edit:dword, table:dword, control:dword
jmp .end_key_fun jmp .end_key_fun
.key_Ctrl: .key_Ctrl:
test esi,KM_SHIFT ;Shift+... test esi,KM_SHIFT ;Shift+...
jz .key_Shift jz .key_Shift
cmp ah,72 ;Shift+Up cmp ah,72 ;Shift+Up
jne @f jne @f
call ted_sel_key_up call ted_sel_key_up
@@: @@:
cmp ah,75 ;Shift+Left cmp ah,75 ;Shift+Left
jne @f jne @f
call ted_sel_key_left call ted_sel_key_left
@@: @@:
cmp ah,77 ;Shift+Right cmp ah,77 ;Shift+Right
jne @f jne @f
call ted_sel_key_right call ted_sel_key_right
@@: @@:
cmp ah,80 ;Shift+Down cmp ah,80 ;Shift+Down
jne @f jne @f
call ted_sel_key_down call ted_sel_key_down
@@: @@:
;mov ted_drag_k,1 ;­ ç¨­ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë ;mov ted_drag_k,1 ;­ ç¨­ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
jmp .key_MoveCur jmp .key_MoveCur
.key_Shift: .key_Shift:
;------------------------------------------------- ;-------------------------------------------------
cmp ah,72 ;178 ;Up cmp ah,72 ;178 ;Up
jne @f jne @f
call ted_draw_cursor_sumb call ted_draw_cursor_sumb
call ted_cur_move_up call ted_cur_move_up
cmp dl,8 cmp dl,8
jne .no_red_0 jne .no_red_0
call ted_scroll_set_redraw call ted_scroll_set_redraw
stdcall ted_draw,edi stdcall ted_draw,edi
jmp @f jmp @f
.no_red_0: .no_red_0:
call ted_draw_main_cursor call ted_draw_main_cursor
mov ted_drag_k,0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë mov ted_drag_k,0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
@@: @@:
cmp ah,80 ;177 ;Down cmp ah,80 ;177 ;Down
jne @f jne @f
call ted_draw_cursor_sumb call ted_draw_cursor_sumb
@ -365,8 +441,8 @@ proc ted_key, edit:dword, table:dword, control:dword
mov ted_drag_k,0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë mov ted_drag_k,0 ;§ ª ­ç¨¢ ¥¬ ¢ë¤¥«¥­¨¥ ®â ª« ¢¨ âãàë
@@: @@:
;------------------------------------------------- ;-------------------------------------------------
; cmp esi,0 ; cmp esi,0
; jne .end_key_fun ; jne .end_key_fun
.key_MoveCur: .key_MoveCur:
cmp ah,69 ;[Pause Break] cmp ah,69 ;[Pause Break]
@ -607,11 +683,11 @@ proc ted_clear, edit:dword, cl_al_mem:dword
mov ecx,ted_scr_w mov ecx,ted_scr_w
mov dword[ecx+sb_offs_position],0 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 dword[ecx+sb_offs_redraw],1
mov ecx,ted_scr_h mov ecx,ted_scr_h
mov dword[ecx+sb_offs_position],0 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_x0,0
mov ted_sel_y0,0 mov ted_sel_y0,0
@ -724,6 +800,7 @@ proc ted_init_syntax_file, edit:dword, file:dword, f_name:dword
add ecx,ted_key_words_data add ecx,ted_key_words_data
mov ted_help_text_f1,ecx mov ted_help_text_f1,ecx
stdcall ted_init_scroll_bars,edi,1 ;¬¥­ï¥¬ æ¢¥â  áªà®««¨­£®¢
.no_colors: .no_colors:
popad popad
ret ret
@ -2805,14 +2882,19 @@ ted_get_symb_color:
; ”ã­ªæ¨ï ¯à¥®¡à §ã¥â ­¥¢¨¤¨¬ë¥ ᨬ¢®«ë ¢ ¯¥ç â ¥¬ë¥ ­  íªà ­¥ ; ”ã­ªæ¨ï ¯à¥®¡à §ã¥â ­¥¢¨¤¨¬ë¥ ᨬ¢®«ë ¢ ¯¥ç â ¥¬ë¥ ­  íªà ­¥
align 4 align 4
ted_convert_invis_symb: ted_convert_invis_symb:
cmp ted_mode_invis,1 cmp ted_mode_invis,1
jne @f jne .end_f
cmp byte[edx],13 cmp byte[edx],9
jne @f jne @f
mov edx,edi lea edx,[ted_symbol_tab]
add edx,ted_offs_symbol_new_line @@:
@@: cmp byte[edx],13
ret jne @f
mov edx,edi
add edx,ted_offs_symbol_new_line
@@:
.end_f:
ret
;input: ;input:
; edi = pointer to tedit struct ; edi = pointer to tedit struct
@ -2828,93 +2910,93 @@ ted_scroll_set_redraw:
align 4 align 4
proc ted_draw, edit:dword proc ted_draw, edit:dword
locals locals
line_num dd ? line_num dd ?
endl endl
pushad pushad
mov edi,dword[edit] mov edi,dword[edit]
mov eax,4 ;draw text mov eax,4 ;draw text
mov ecx,ted_text_colors mov ecx,ted_text_colors
mov ecx,dword[ecx] mov ecx,dword[ecx]
mov ebx,ted_wnd_l mov ebx,ted_wnd_l
add ebx,ted_rec_l add ebx,ted_rec_l
shl ebx,16 shl ebx,16
add ebx,ted_wnd_t add ebx,ted_wnd_t
add ebx,ted_rec_t add ebx,ted_rec_t
add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢­¨¢ ­¨ï ¡ãª¢ë ¯® 業âàã add ebx,0x10001 ;¤®¡ ¢«ï¥¬ ®âáâã¯ë ¤«ï ¢ëà ¢­¨¢ ­¨ï ¡ãª¢ë ¯® 業âàã
call ted_sel_normalize ;need before draw select call ted_sel_normalize ;need before draw select
mov esi,ted_scr_w mov esi,ted_scr_w
mov esi,dword[esi+sb_offs_position] mov esi,dword[esi+sb_offs_position]
mov dword[line_num],esi mov dword[line_num],esi
stdcall ted_clear_line_before_draw, edi,ebx,1,esi stdcall ted_clear_line_before_draw, edi,ebx,1,esi
call ted_get_first_visible_pos call ted_get_first_visible_pos
cmp edx,0 cmp edx,0
je .no_draw_text je .no_draw_text
mov esi,1 ;¤«¨­­  ¢ë¢®¤¨¬®£® ⥪áâ  ¯® 1-¬ã ᨬ¢®«ã mov esi,1 ;¤«¨­­  ¢ë¢®¤¨¬®£® ⥪áâ  ¯® 1-¬ã ᨬ¢®«ã
@@: @@:
call ted_iterat_next call ted_iterat_next
cmp edx,ted_tex_1 cmp edx,ted_tex_1
jle .no_draw_text jle .no_draw_text
; *** 梥⮢ ï à §¬¥âª  ; *** 梥⮢ ï à §¬¥âª 
cmp ted_mode_color,0 cmp ted_mode_color,0
je .no_col_change je .no_col_change
cmp byte[edx+1],0 cmp byte[edx+1],0
je .no_col_change je .no_col_change
call ted_get_symb_color call ted_get_symb_color
.no_col_change: .no_col_change:
cmp byte [edx],13 cmp byte [edx],13
jne .no_13 jne .no_13
cmp ted_mode_invis,1 cmp ted_mode_invis,1
jne .no_invis jne .no_invis
push edx push edx
mov edx,edi mov edx,edi
add edx,ted_offs_symbol_new_line add edx,ted_offs_symbol_new_line
int 0x40 int 0x40
pop edx pop edx
.no_invis: .no_invis:
add ebx,ted_rec_h add ebx,ted_rec_h
;optimized output \/ ;optimized output \/
mov eax,ted_wnd_h mov eax,ted_wnd_h
add eax,ted_wnd_t add eax,ted_wnd_t
cmp bx,ax cmp bx,ax
jg .no_draw_text jg .no_draw_text
mov eax,4 mov eax,4
;optimized output /\ ;optimized output /\
and ebx,0xffff and ebx,0xffff
ror ebx,16 ror ebx,16
add ebx,ted_wnd_l add ebx,ted_wnd_l
add ebx,ted_rec_l add ebx,ted_rec_l
inc ebx inc ebx
ror ebx,16 ror ebx,16
inc dword[line_num] ;increment line number inc dword[line_num] ;increment line number
stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num] stdcall ted_clear_line_before_draw,edi,ebx,1,dword[line_num]
call ted_opt_draw_line_left call ted_opt_draw_line_left
jmp @b jmp @b
.no_13: .no_13:
int 0x40 int 0x40
ror ebx,16 ror ebx,16
add ebx,ted_rec_w add ebx,ted_rec_w
mov esi,ted_wnd_l mov esi,ted_wnd_l
add esi,ted_wnd_w add esi,ted_wnd_w
cmp bx,si cmp bx,si
jl .no_opt jl .no_opt
call ted_opt_draw_line_right call ted_opt_draw_line_right
.no_opt: .no_opt:
mov si,1 mov si,1
ror ebx,16 ror ebx,16
jmp @b jmp @b
.no_draw_text: .no_draw_text:
stdcall ted_clear_line_before_draw,edi,ebx,0,dword[line_num] stdcall ted_clear_line_before_draw,edi,ebx,0,dword[line_num]
call ted_draw_line_numbers call ted_draw_line_numbers
call ted_draw_main_cursor call ted_draw_main_cursor
;--------------------------------------------- ;---------------------------------------------
; set all_redraw flag for draw all ScrollBar ; set all_redraw flag for draw all ScrollBar
@ -3086,7 +3168,8 @@ pop edi
je @f je @f
mov ecx,ted_tim_undo mov ecx,ted_tim_undo
add edx,0x500000 add edx,0x500000
int 0x40 mov edi,ted_color_wnd_work ;¯®à⨬ ॣ¨áâà edi, ­® ¢ ª®­æ¥ ä㭪樨 í⮠㦥 ­¥ ¢ ¦­®
int 0x40 ;¢ë¢®¤ ç¨á«  ®â¬¥­¥­­ëå ¤¥©á⢨©
@@: @@:
popad popad
@ -3101,9 +3184,12 @@ proc ted_draw_buffer
mov eax,ted_buffer mov eax,ted_buffer
cmp byte[eax],0 ;ᬮâਬ 1-© ᨬ¢®« ¨§ ¡ãä¥à  cmp byte[eax],0 ;ᬮâਬ 1-© ᨬ¢®« ¨§ ¡ãä¥à 
je @f je @f
mov ebx,ted_wnd_l mov ebx,ted_rec_l
add ebx,ted_rec_l
add bx,300 add bx,300
cmp ebx,ted_wnd_w ;áà ¢­¨¢ ¥¬ ª®®à¤¨­ âã ¤«ï ¢ë¢®¤ ⥪áâ 
jge @f ;¯®¤¯¨áì ­¥ ¢« §¨â ¢ ®ª­®
add ebx,ted_wnd_l
shl ebx,16 shl ebx,16
add ebx,ted_wnd_t add ebx,ted_wnd_t
add ebx,3 add ebx,3
@ -3141,59 +3227,60 @@ endp
; edi = pointer to tedit struct ; edi = pointer to tedit struct
align 4 align 4
proc ted_draw_help_f1 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 cmp ted_help_id,-1
mov ebx,ted_wnd_l je @f
add ebx,ted_rec_l mov eax,ted_help_id
shl ebx,16 ColToIndexOffset eax,edx
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 ;SetCoordinates
je @f mov ebx,ted_wnd_l
mov eax,ted_help_id add ebx,ted_rec_l
ColToIndexOffset eax,edx shl ebx,16
add ebx,ted_wnd_t
add ebx,13 ;=3+10
;SetCoordinates ;SetTextColor
mov ebx,ted_wnd_l xor eax,eax
add ebx,ted_rec_l mov al,byte[edx+MAX_COLOR_WORD_LEN+6]
shl ebx,16 shl ax,2
add ebx,ted_wnd_t mov ecx,ted_text_colors
add ebx,13 ;=3+10 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 ;*** draw help string ***
xor eax,eax mov ecx,ted_color_wnd_bord
mov al,byte[edx+MAX_COLOR_WORD_LEN+6] or ecx,0x80000000
shl ax,2 mov edx,dword[edx+MAX_COLOR_WORD_LEN]
mov ecx,ted_text_colors cmp edx,0
add ecx,eax je @f
mov ecx,dword[ecx] add edx,ted_help_text_f1
or ecx,0xc0000000 ;SetTextStyles add ebx,0x500000
mov esi,edi int 0x40
mov edi,ted_color_wnd_work @@:
mov eax,4 popad
int 0x40 ret
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
endp endp
;input: ;input:
@ -3698,7 +3785,11 @@ proc ted_mouse, edit:dword
call ted_wnd_main_click call ted_wnd_main_click
jmp .no_in_wnd 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 cmp ted_drag_m,0
je .no_in_wnd je .no_in_wnd
mov ted_drag_m,0 mov ted_drag_m,0
@ -3718,7 +3809,9 @@ endp
; äã­ªæ¨ï ¢ë§ë¢¥âáï ¯à¨ ­ ¦ â¨¨ ª­®¯ª®© ¬ëè¨ ¨ ¯®¯ ¤¥­¨¨ ªãàá®à®¬ ¢ ®ª­® । ªâ®à  ; äã­ªæ¨ï ¢ë§ë¢¥âáï ¯à¨ ­ ¦ â¨¨ ª­®¯ª®© ¬ëè¨ ¨ ¯®¯ ¤¥­¨¨ ªãàá®à®¬ ¢ ®ª­® । ªâ®à 
align 4 align 4
ted_wnd_main_click: ted_wnd_main_click:
push ebx ecx edx push ebx ecx edx
mov ebx,ted_el_focus
mov dword[ebx],edi ;áâ ¢¨¬ 䮪ãá
push eax push eax
shr eax,16 shr eax,16
@ -3757,23 +3850,23 @@ ted_wnd_main_click:
mov ted_cur_y,eax mov ted_cur_y,eax
pop eax pop eax
cmp ted_drag_m,0 cmp ted_drag_m,0
je @f je @f
call ted_sel_move call ted_sel_move
jmp .sel_move jmp .sel_move
@@: @@:
mov ted_drag_m,1 mov ted_drag_m,1
call ted_sel_start call ted_sel_start
.sel_move: .sel_move:
pop edx ecx ebx pop edx ecx ebx
ret ret
;input: ;input:
; edi = pointer to tedit struct ; edi = pointer to tedit struct
align 4 align 4
ted_wnd_main_mouse_scroll: ted_wnd_main_mouse_scroll:
push eax ebx ecx push eax ebx ecx
mcall 37,7 mcall 37,7 ;¯à®ªàã⪠ ª®«¥á  ¬ëè¨
cmp ax,0 cmp ax,0
je .no_scroll je .no_scroll
mov ecx,ted_scr_w mov ecx,ted_scr_w
@ -3782,16 +3875,16 @@ ted_wnd_main_mouse_scroll:
btr ax,15 btr ax,15
jae @f jae @f
or eax,0xffff8000 or eax,0xffff8000
@@: @@:
add dword[ecx+sb_offs_position],eax add dword[ecx+sb_offs_position],eax
mov eax,[ecx+sb_offs_position] mov eax,[ecx+sb_offs_position]
cmp eax,[ecx+sb_offs_max_area] cmp eax,[ecx+sb_offs_max_area]
jb @f jb @f
mov dword[ecx+sb_offs_position],ebx ;if scroll position out of range mov dword[ecx+sb_offs_position],ebx ;if scroll position out of range
jmp .no_scroll jmp .no_scroll
@@: @@:
stdcall ted_draw,edi stdcall ted_draw,edi
.no_scroll: .no_scroll:
pop ecx ebx eax pop ecx ebx eax
ret ret

View File

@ -26,7 +26,7 @@ struct symbol
ends ends
hed db 'TextEditor 29.04.10',0 ;¯®¤¯¨áì ®ª­  hed db 'TextEditor 03.05.10',0 ;¯®¤¯¨áì ®ª­ 
sc system_colors sc system_colors
fn_icon db 'te_icon.bmp',0 fn_icon db 'te_icon.bmp',0

View File

@ -81,6 +81,7 @@ ted_clear dd sz_ted_clear
ted_delete dd sz_ted_delete ted_delete dd sz_ted_delete
ted_draw dd sz_ted_draw ted_draw dd sz_ted_draw
ted_init dd sz_ted_init 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_init_syntax_file dd sz_ted_init_syntax_file
ted_is_select dd sz_ted_is_select ted_is_select dd sz_ted_is_select
ted_key dd sz_ted_key ted_key dd sz_ted_key
@ -154,6 +155,7 @@ sz_ted_clear db 'ted_clear',0
sz_ted_delete db 'ted_delete',0 sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0 sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',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_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0 sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0 sz_ted_key db 'ted_key',0

View File

@ -261,8 +261,6 @@ proc draw_panel_syntax
endp endp
MIN_M_WND_H equ 100 MIN_M_WND_H equ 100
MIN_W_SCRL_ARE equ 3
MIN_H_SCRL_ARE equ 3
align 4 align 4
proc EvSize, edit:dword proc EvSize, edit:dword
pushad pushad
@ -286,46 +284,10 @@ proc EvSize, edit:dword
mov ax,word[ebx+sb_offs_size_y] mov ax,word[ebx+sb_offs_size_y]
and eax,0xffff and eax,0xffff
sub ted_wnd_h,eax ;îòíèìàåì âûñîòó ãîðèç. ñêðîëëèíãà sub ted_wnd_h,eax ;îòíèìàåì âûñîòó ãîðèç. ñêðîëëèíãà
mov eax,ted_wnd_h ;eax = âûñîòà îêíà - âûñîòà ãîðèç. ñêðîëëèíãà
mov word[ebx+sb_offs_start_y],ax ;ïåðåäâèãàåì ãîðèç. ñêðîëëèíã
mov eax,ted_wnd_t mov eax,ted_wnd_t
sub ted_wnd_h,eax ;îòíèìàåì îòñòóï ñâåðõó sub ted_wnd_h,eax ;îòíèìàåì îòñòóï ñâåðõó
mov eax,ted_wnd_w stdcall [ted_init_scroll_bars], tedit0,2
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 ;çàäàåì âûñîòó âåðò. ñêðîëëèíãà
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 eax,ted_wnd_t
mov edi,dword tree1 mov edi,dword tree1

View File

@ -36,16 +36,6 @@ align 4
start: start:
mcall 48,3,sc,sizeof.system_colors 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 mcall 68,11
or eax,eax or eax,eax
jz button.exit jz button.exit
@ -343,7 +333,7 @@ key:
mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë mcall 26,2,,conv_tabl ;26.2 ¯®«ãç¨âì à áª« ¤ªã ª« ¢¨ âãàë
mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨ mcall 2 ;¯®«ãç ¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨
;stdcall [tl_key], tree1 stdcall [tl_key], tree1
test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬ test word [edit1.flags],10b;ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
je @f je @f