forked from KolibriOS/kolibrios
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:
@@ -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 ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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>
|
||||
@@ -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 ; ¢ëá®â
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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. Добавил ошибки, программа глючит очень серьезно :(
|
||||
Reference in New Issue
Block a user