1) removed duplicate code in 'box_lib'

2) add program 'TextEditor syntax file editor'

git-svn-id: svn://kolibrios.org@1476 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2010-05-30 21:27:14 +00:00
parent 0d82157aac
commit 6db5aa0119
13 changed files with 1394 additions and 106 deletions

View File

@@ -168,6 +168,18 @@ op_flag_en=10b
.flags: dd flags+0 ; ä« £¨
}
option_group equ [edi]
op_left equ [edi+4] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
op_top equ [edi+6] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
op_text_margin equ [edi+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
op_size equ [edi+12] ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá 
op_color equ [edi+16]
op_border_color equ [edi+20] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
op_text_color equ [edi+24];[edi+4] ;梥â ⥪áâ 
op_text_ptr equ [edi+28] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
op_text_length equ [edi+32]
op_flags equ [edi+36] ;ä« £¨
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use TreeList ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View File

@@ -2,20 +2,6 @@
;Макрос для системной библиотеки box_lib.obj
;Checkbox
ch_struc_size=36
ch_flag_en=10b ;элемент выбран
ch_left equ [edi] ;координата начала рисования по х
ch_top equ [edi+2] ;координата начала рисования по у
ch_text_margin equ [edi+4] ;=4 расстояние от прямоугольника чек бокса до надписи
ch_size equ [edi+8] ;12 размер квадрата чек бокса
ch_color equ [edi+12] ;цвет внутри checkbox
ch_border_color equ [edi+16] ; or [edi+4] ;цвет рамки checkbox ее можно задать самостоятельно
ch_text_color equ [edi+20] ;[edi+4] ;цвет текста
ch_text_ptr equ [edi+24] ;указатель на начало текстовой строки
ch_text_length equ [edi+28]
ch_flags equ [edi+32] ;флаги
macro use_checkbox_draw
{
check_box_draw:

View File

@@ -41,27 +41,18 @@
<p><a href="#struc_tedit">Структура tedit</a></p>
<h1><a name="vveden">Введение</a></h1>
<p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.</p>
<p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функций для редактирования текста.</p>
<p><img src="../../../../../../other/t_edit/t_edit.png"></p>
<p>Внешний вид программы, с элементом text_editor.</p>
<h2>Возможности</h2>
<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>
<h2>О работе элемента</h2>
<p>Раздел для программистов (и интересующихся людей), в котором расказаны
некоторые идеи, на которых построена данная программа.</p>
@@ -81,10 +72,10 @@ ends</pre>
какие символы отображать, а какие нет (хотя все символы "висят" в памяти).</p>
<p><b>'td'</b> - время удаления символа, заполняется при удалении, при отмене действия
удаления символов, текст может быть восстановлен.</p>
<p><b>'col'</b> - используется для цветовой разметки.</p>
<p><b>'col'</b> - используется для цветовой разметки, содержит индекс цвета в массиве цветов ted_text_colors.</p>
<h1><a name="funct">Функции</a></h1>
<p>Функции на экспорт:</p>
<h2>Функции на экспорт:</h2>
<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>
@@ -280,7 +271,7 @@ stdcall [ted_text_add], tedit0,text_buffer,30,ebx</pre>
call [ted_text_colored]
pop edi</pre>
<p>Внутренние функции:</p>
<h2>Внутренние функции:</h2>
<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> - определяет видимый ли указанный символ на экране (в зависимости
@@ -383,7 +374,7 @@ tedit0: ;
.increase_size dd 225 ;+242 число символов на которые будет увечиваться память при нехватке
.ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)</pre>
<hr>
<p>Документация обновлялась последний раз 17.05.10.</p>
<p>Документация обновлялась последний раз 30.05.10.</p>
</body>
</html>

View File

@@ -1,27 +1,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use editbox ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_width equ [edi] ;è¨à¨­  ª®¬¯®­¥­â 
ed_left equ [edi+4] ;¯®«®¦¥­¨¥ ¯® ®á¨ å
ed_top equ [edi+8] ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
ed_color equ [edi+12] ;梥â ä®­  ª®¬¯®­¥­â 
shift_color equ [edi+16] ;=0x6a9480 ¤«ï ¯à¨¬¥à  ¢®§ì¥¬ ¦¥«¥­ë© 梥⠡®ªá 
ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®­¥­â 
ed_blur_border_color equ [edi+24] ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
ed_text_color equ [edi+28] ;梥â ⥪áâ 
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
ed_text equ [edi+36] ;㪠§ â¥«ì ­  ¡ãä¥à
ed_mouse_variable equ [edi+40] ; 㪠§ â¥«ì ­  ¯¥à¥¬¥­­ãî ¤«ï ¡®ªá /£à㯯ë
ed_flags equ [edi+44] ;ä« £¨
bp_flags equ [ebp+44] ;¢ ­¥ª®â®àëå ¯à®æ¥¤ãà å edi ¨á¯®«ì§ã¥âáï, ¢§ ¬¥­ 㪠§ â¥«ì åà ­¨âìáï ¢ ebp
ed_size equ [edi+48] ;ª®«-¢® ᨬ¢®«®¢
bp_size equ [ebp+48] ;ª®«-¢® ᨬ¢¯®«®¢, ¤«ï  ¤à¥á æ¨¨ ¨á¯«ì§ã¥âáï ebp¡ edi § ­ïâ
ed_pos equ [edi+52] ;¯®§¨æ¨ï ªãàá®à 
ed_offset equ [edi+56] ;ᬥ饭¨¥
cl_curs_x equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
cl_curs_y equ [edi+64] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
ed_shift_pos equ [edi+68] ;¯®«®¦¥­¨¥ ªãàá®à 
ed_shift_pos_old equ [edi+72] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
macro init_editbox
{
@@ -1334,29 +1313,4 @@ struc edit_box width,left,top,color,shift_color,focus_border_color,\
.cl_curs_y dd 0
.shift dd 0
.shift_old dd 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_figure_only= 1000000000000000b ;®¤­¨ ᨬ¢®«ë
ed_always_focus= 100000000000000b
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥­¨ï
ed_shift_on= 1000b ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift
ed_shift_on_off=1111111111110111b
ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥
ed_shift_bac_cl=1111111111101111b ;®ç¨á⪠ ¯à¨ 㤠«¥­¨¨ ¢ë¤¥«¥­¨ï
ed_shift_cl= 1111111111100011b
ed_shift_mcl= 1111111111111011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_mouse_on = 100000000b
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_height=14 ; ¢ëá®â 
}

View File

@@ -65,18 +65,6 @@ option_box_mouse:
macro use_optionbox_draw
{
option_box_draw_box:
option_group equ [edi]
op_left equ [edi+4] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
op_top equ [edi+6] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
op_text_margin equ [edi+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
op_size equ [edi+12] ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá 
op_color equ [edi+16]
op_border_color equ [edi+20] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
op_text_color equ [edi+24];[edi+4] ;梥â ⥪áâ 
op_text_ptr equ [edi+28] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
op_text_length equ [edi+32]
op_flags equ [edi+36] ;ä« £¨
pusha ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
movzx ebx,word op_left

View File

@@ -1,25 +1,20 @@
<Lrz> Теплов Алексей, Челябинск.
Пример простого использования editbox в библиотеке,
EditBox переписан для работы в библиотеке.
Дата 14.10.2009
Библиотека польностью реентерабельна. Для edit_box необходиом внести в текущем приложении переменную типа mouse_dd dd ?
21.09.2007 - Сделан упор на поддрежку С и передачи параметров в стеке stdcall.
На данный момент, носит эксперементальный, тестовый характер.
Библиотеку box_lib.obj нужно поместить в папку с выполняющейся программой editbox_ex, или по адресу /sys/lib/? но тогда нужно подменить путь в файле ini_file на путь к библиотеке. Пример сам вычисляет путь к библиотеке, не зависимо от своего месторасположения
24.09.2007 - сделал поддрежку checkbox. Добавил ошибки, программа глючит очень серьезно :(
25.06.2008 - сделана поддержка запуска ассемблерного примера при расположении текущей библиотеки по 2-м местам
1. /sys/lib/box_lib.obj и когда библиотека находиться в папке с программой.
08.05.2009 - пофиксены баги общее улучшение кода
15.04.2009 - добавлен макрос load_lib.mac - универсальный для загрузки любой библиотеки/библиотек.
13.09.2009 - обработка клавишь NUM, Caps,Scroll Lock. При нажатии на них, не происходит отображение символа.
14.10.2009 - Библиотека польностью реентерабельна. Для edit_box необходиом внести в текущем приложении переменную типа mouse_dd dd ?
а в структуре макроса бокса добавить 1 элемент <указатель на переменную mouse_dd>
ed_struc_size=76
struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,<указатель на переменную mouse_dd>,flags,size,pos
Дата 25.06.2008
сделана поддержка запуска ассемблерного примера при расположении текущей библиотеки по 2-м местам
1. /sys/lib/box_lib.obj и когда библиотека находиться в папке с программой.
Дата 21.09.2007
Сделан упор на поддрежку С и передачи параметров в стеке stdcall.
На данный момент, носит эксперементальный, тестовый характер.
Библиотеку box_lib.obj нужно поместить в папку с выполняющейся программой editbox_ex, или по адресу /sys/lib/? но тогда нужно подменить путь в файле ini_file на путь к библиотеке
. Пример сам вычисляет путь к библиотеке, не зависимо от своего месторасположения
08.05.2009 - пофиксены баги общее улучшение кода
15.04.2009 - добавлен макрос load_lib.mac - универсальный для загрузки любой библиотеки/библиотек.
13.09.2009 - обработка клавишь NUM, Caps,Scroll Lock. При нажатии на них, не происходит отображение символа.
24.09.2007 - сделал поддрежку checkbox. Добавил ошибки, программа глючит очень серьезно :(