1) new element 'text_editor' in library 'box_lib.obj'

2) changes code t_edit.kex
3) fixed function 'tl_strlen' in 'tree_list'
4) minor edits documentation 'box_lib.obj'

git-svn-id: svn://kolibrios.org@1457 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2010-04-29 18:27:40 +00:00
parent f751f0881f
commit fd898963db
16 changed files with 4600 additions and 4086 deletions
@@ -24,7 +24,9 @@
<li>d_button</li>
<li>menubar</li>
<li>filebrowser</li>
<li><a href="tree_list\info_treelist.htm">tree_list</a></li>
<li>filepath</li>
<li><a href="tree_list\info_treelist.htm">tree_list</a></li>
<li><a href="t_edit\t_edit.htm">text_editor</a></li>
</ul>
<h1><a name="autors">Àâòîðñêèé ñîñòàâ</a></h1>
@@ -36,6 +38,6 @@
<p>Èãîðü Àôàíàñüåâ aka IgorA</p>
<hr>
<p>Документация обновлялась последний раз 05.02.10.</p>
<p>Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 29.04.10.</p>
</body>
</html>
@@ -36,16 +36,6 @@ pre{
color: #004000;
background: #ffd0ff;
}
pre font.f0 { color: #ffff00; }
pre font.f1 { color: #ffffff; }
pre font.f2 { color: #00ff00; }
pre font.f3 { color: #00ffff; }
pre font.f4 { color: #808080; }
pre font.f5 { color: #ff40ff; }
pre font.f6 { color: #4080ff; }
pre font.f7 { color: #ff0000; }
pre font.f8 { color: #ffcc00; }
pre font.f9 { color: #00ccff; }
caption
{
@@ -57,15 +47,12 @@ caption
}
table
{
font-size: 10px;
border-collapse: collapse;
border: #000000 1px solid;
background-color: #c0e7fb;
}
table td
{
border: none;
text-align: center;
}
table th
{
@@ -0,0 +1,138 @@
<html>
<head>
<title>элемент Text Editor</title>
<meta http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
<link href="../style.css" type=text/css rel=stylesheet>
</head>
<body>
<p><a href="../box_lib.htm">На главную &uarr;</a></p>
<h1>Оглавление</h1>
<p><a href="#vveden">Введение</a></p>
<p><a href="#funct">Функции</a></p>
<ul>
<li><a href="#fun_but_copy">ted_but_copy</a></li>
</ul>
<h1><a name="vveden">Введение</a></h1>
<p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.</p>
<p><img src="../../../../../../other/t_edit/t_edit.png"></p>
<p>Внешний вид программы, с элементом text_editor.</p>
<h2>Возможности</h2>
<ul>
<li>Открытие (Ctrl+O)/Сохранение файла.</li>
<li>Редактирование: Повтор/Отмена действия (Ctrl+Z), Вырезать/Копировать (Ctrl+C)/Вставить (Ctrl+V), Поиск (Ctrl+F, F3).</li>
<li>Выделение цветом слов, заданных в файле синтаксиса. Вывод справки по ним, если она есть (нажатием F1 когда курсор на слове).</li>
</ul>
<h2>Некоторые недоработки</h2>
<ul>
<li>Если открыть большой файл, размер которого больше чем:
maxChars equ 100002 ;(...+2)
он откроется не весь, а первые maxChars-2 символов из файла
(о чем выдается сообщение).</li>
<li>При сохранении программа не спрашивает о замене существ. файла.</li>
</ul>
<h2>О работе программы</h2>
<p>Раздел для программистов (и интересующихся людей), в котором расказаны
некоторые идеи, на которых построена данная программа.</p>
<p>Для работы с текстом программа использует структуры:</p>
<pre>struct symbol
c db ? ; +0 символ
col db ? ; +1 цвет
perv dd ? ; +2
next dd ? ; +6 указатели
tc dd ? ; +10 врем. создания
td dd ? ; +14 врем. удаления
ends</pre>
<p>Каждая из таких структур сохраняет один символ в переменной 'c'. Переменные
'perv' и 'next' хранят индексы первого и следующего символов. Благодаря чему
текст создается в виде цепочки символов (двунаправленный список).</p>
<p><b>'tc'</b> - время создания символа, при отмене действия текстовый редактор "знает"
какие символы отображать, а какие нет (хотя все символы "висят" в памяти).</p>
<p><b>'td'</b> - время удаления символа, заполняется при удалении, при отмене действия
удаления символов, текст может быть восстановлен.</p>
<p><b>'col'</b> - используется для цветовой разметки.</p>
<h1><a name="funct">Функции</a></h1>
<p>Функции на экспорт:</p>
<h4><a name="fun_but_copy">ted_but_copy</a></h4>
<p>Функция которая будет вызываться при нажатии на кнопку копирования в буфер или на <b>Ctrl+C</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>
<p>Внутренние функции:</p>
<p><b>ted_get_text_perv_pos</b> - переход на предыдущий символ в цепи (через указатель 'perv')</p>
<p><b>ted_get_text_next_pos</b> - переход на следующий символ в цепи (через указатель 'next')</p>
<p><b>ted_symbol_not_vis</b> - определяет видимый ли указанный символ на экране (в зависимости
от значений 'tc' и 'td')</p>
<p><b>ted_iterat_next</b> - переход на следующий видимый символ в цепи. Использует для
работы функции ted_get_text_next_pos и ted_symbol_not_vis.</p>
<p><b>ted_iterat_perv</b> - переход на предедущий видимый символ в цепи.</p>
<p><b>ted_iterat_next_pos_char</b> - найти следующую позицию указанного символа (edx-поз. начала
поиска, bl->код искомого символа)</p>
<p><b>ted_get_pos_by_coords</b> - берет позицию символа по координатам (esi->коорд. x, знак;
ecx->коорд. y, строка)</p>
<p><b>ted_go_to_pos</b> - переставляет курсор в указанную позицию, если указанная позиция
находится вне экрана, то также переставляются скролинги (ecx->коорд. x, знак; edx->коорд. y, строка)</p>
<h1>Формат файла подсветки *.syn</h1>
<table>
<tr><th>Элемент</th><th>Размер (байт)</th></tr>
<tr><td>Количество цветов текста</td>
<td><pre>4</pre></td></tr>
<tr><td>Количество подсвечиваемых слов</td>
<td><pre>4</pre></td></tr>
<tr><td>Цвета интерфейса</td>
<td><pre>4*6</pre></td></tr>
<tr><td>Цвета для текста</td>
<td><pre>4*(кол. цв. текста)</pre></td></tr>
<tr><td>Структуры со свойствами и описаниями слов</td>
<td><pre>sizeof(TexColViv)*(кол. слов)</pre></td></tr>
<tr><td>Разделительный символ, означающий начало описаний слов (всегда равен 0)</td>
<td><pre>1 байт</pre></td></tr>
<tr><td>Описания слов (строки текста с 0-ми в конце)</td>
<td><pre>(длинна справочного текста + 1)</pre></td></tr>
</table>
<h4>Замечания.</h4>
<ul>
<li>Все слова должны быть расположены в порядке следования их ASCII кодов.
Возможно в будущих версиях формат файлов подсветки будет изменен.</li>
</ul>
<hr>
<p>Документация обновлялась последний раз 29.04.10.</p>
</body>
</html>