1) 'box_lib.obj' update 'text_edititor'

2) modify code 't_edit' and 'planet_v'

git-svn-id: svn://kolibrios.org@1464 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2010-05-17 16:49:58 +00:00
parent 298c1a755b
commit b062f4354f
11 changed files with 396 additions and 288 deletions

View File

@ -20,6 +20,49 @@ include '../../../../proc32.inc'
include 'bl_sys.mac' include 'bl_sys.mac'
include 'box_lib.mac' ;macro which should make life easier :) include 'box_lib.mac' ;macro which should make life easier :)
;-----------------------------------------------------------------------------
;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè
;input:
; ecx = size data
;otput:
; eax = pointer to memory
align 4
mem_Alloc:
push ebx
mov eax,68
mov ebx,12
int 0x40
pop ebx
ret
;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè
;input:
; ecx = pointer to memory
align 4
proc mem_Free, mptr:dword
push eax ebx ecx
mov ecx,[mptr]
cmp ecx,0
jz @f
mov eax,68
mov ebx,13
int 0x40
@@:
pop ecx ebx eax
ret
endp
;ôóíêöèÿ äëÿ ïåðåðàñïðåäåëåíèÿ ïàìÿòè
;otput:
; eax = pointer to memory
align 4
proc mem_ReAlloc, mptr:dword, size:dword
push ebx ecx edx
mov edx, [mptr]
mov ecx, [size]
mcall 68, 20
pop edx ecx ebx
ret
endp
;---------------------------------------------------- ;----------------------------------------------------
;EditBox ;EditBox
;---------------------------------------------------- ;----------------------------------------------------
@ -196,7 +239,7 @@ dd sz_ted_but_redo, ted_but_redo
dd sz_ted_but_reverse, ted_but_reverse dd sz_ted_but_reverse, ted_but_reverse
dd sz_ted_but_find_next, ted_but_find_next dd sz_ted_but_find_next, ted_but_find_next
dd sz_ted_text_colored, ted_text_colored dd sz_ted_text_colored, ted_text_colored
dd sz_ted_version, 0x00000001 dd sz_ted_version, 0x00000002
dd 0,0 dd 0,0

View File

@ -320,6 +320,8 @@ ted_fun_draw_panel_buttons equ dword[edi+226] ;㪠
ted_fun_draw_panel_find equ dword[edi+230] ;㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ¯®¨áª  ted_fun_draw_panel_find equ dword[edi+230] ;㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ¯®¨áª 
ted_fun_draw_panel_syntax equ dword[edi+234] ;㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ᨭ⠪á¨á  ted_fun_draw_panel_syntax equ dword[edi+234] ;㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ᨭ⠪á¨á 
ted_fun_save_err equ dword[edi+238] ;㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­® ted_fun_save_err equ dword[edi+238] ;㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­®
ted_increase_size equ dword[edi+242] ;ç¨á«® ᨬ¢®«®¢ ­  ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ­¥å¢ âª¥
ted_ptr_free_symb equ dword[edi+246] ;㪠§ â¥«ì ­  ᢮¡®¤­ãî ¯ ¬ïâì, ¢ ª®â®àãî ¬®¦­® ¤®¡ ¢«ïâì ᨬ¢®« (¨á¯®«ì§ã¥âáï ¢­ãâà¨ í«¥¬¥­â  ¤«ï ã᪮७¨ï ¢áâ ¢ª¨ ⥪áâ )
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
ted_opt_ed_move_cursor equ 1 ;¤¢¨£ âì ªãàá®à ¯®á«¥ ¤®¡ ¢«¥­¨ï ⥪áâ  ted_opt_ed_move_cursor equ 1 ;¤¢¨£ âì ªãàá®à ¯®á«¥ ¤®¡ ¢«¥­¨ï ⥪áâ 
ted_opt_ed_change_time equ 2 ;¤®¡ ¢«ïâì ¨§¬¥­¥­¨ï ¯à¨ । ªâ¨à®¢ ­¨¨ ⥪áâ  ted_opt_ed_change_time equ 2 ;¤®¡ ¢«ïâì ¨§¬¥­¥­¨ï ¯à¨ । ªâ¨à®¢ ­¨¨ ⥪áâ 

View File

@ -39,7 +39,7 @@
<p>Версия элемента</p> <p>Версия элемента</p>
<h1><a name="struc_scrollbar">Структура scrollbar</a></h1> <h1><a name="struc_scrollbar">Структура scrollbar</a></h1>
<p>Макроса для создания структуры для скроллбара нет. Потому данные для нее задаются вручную. <p>Макроса для создания структуры скроллбара нет. Потому данные для нее задаются вручную.
Есть макрос use_scroll_bar он дает возможность понять какие данные нужны для скроллинга.</p> Есть макрос use_scroll_bar он дает возможность понять какие данные нужны для скроллинга.</p>
<pre>macro use_scroll_bar <pre>macro use_scroll_bar
{ {

View File

@ -38,6 +38,7 @@
<li><a href="#fun_text_colored">ted_text_colored</a></li> <li><a href="#fun_text_colored">ted_text_colored</a></li>
</ul> </ul>
<p><a href="#syn_file">Формат файла подсветки *.syn</a></p> <p><a href="#syn_file">Формат файла подсветки *.syn</a></p>
<p><a href="#struc_tedit">Структура tedit</a></p>
<h1><a name="vveden">Введение</a></h1> <h1><a name="vveden">Введение</a></h1>
<p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.</p> <p>Элемент text_editor позволяет работать с текстовыми файлами, содержит много функция для редактирования текста.</p>
@ -319,8 +320,70 @@ pop edi</pre>
Возможно в будущих версиях формат файлов подсветки будет изменен.</li> Возможно в будущих версиях формат файлов подсветки будет изменен.</li>
</ul> </ul>
<h1><a name="struc_tedit">Структура tedit</a></h1>
<p>Макроса для создания структуры текстового редактора нет. Потому данные для него задаются вручную. Пример структуры для текстового редактора:</p>
<pre>align 4
tedit0: ;структура текстового редактора
.wnd BOX 195,5+20,325,260 ;+ 0
.rec BOX 30,13,7,10 ;+16
.drag_m db 0 ;+32 выделение от мыши
.drag_k db 0 ;+33 выделение от клавиатуры
.sel TexSelect 0,0,0,0 ;+34 структура выделения
.seln TexSelect ;+50 дополнительная структура выделения
.tex dd 0 ;+66 text memory pointer
.tex_1 dd 0 ;+70 text first symbol pointer
.tex_end dd 0 ;+74 text end memory pointer
.cur_x dd 0 ;+78 координата x курсора
.cur_y dd 0 ;+82 координата y курсора
.max_chars dd 5002 ;+86 максимальное число символов в одном документе
.count_colors_text dd 1 ;+90 колличество цветов текста
.count_key_words dd 0 ;+94 колличество ключевых слов
.color_cursor dd 0xff0000 ;+98 цвет курсора
.color_wnd_capt dd 0x0080c0 ;+102 цвет полей вокруг окна
.color_wnd_work dd 0x0 ;+106 цвет фона окна
.color_wnd_bord dd 0xffffff ;+110 цвет текста на полях
.color_select dd 0x0000ff ;+114 цвет выделения
.color_cur_text dd 0xffff00 ;+118 цвет символа под курсором
.color_wnd_text dd 0x80ffff ;+122 цвет текста в окне
.syntax_file dd 0 ;+126 указатель на начало файла синтаксиса
.syntax_file_size dd 500 ;+130 максимальный размер файла синтаксиса
.text_colors dd 0 ;+134 указатель на массив цветов текста
.help_text_f1 dd 0 ;+138 указатель на текст справки (по нажатии F1)
.help_id dd -1 ;+142 идентификатор для справки
.key_words_data dd 0 ;+146 указатель на структуры ключевых слов TexColViv
.tim_ch dd ? ;+150 количество изменений в файле
.tim_undo dd ? ;+154 количество отмененных действий
.tim_ls dd ? ;+158 время последнего сохранения
.tim_co dd ? ;+162 время последней цветовой разметки
.el_focus dd el_focus ;+166 указатель на переменную элемента в фокусе
.err_save db 0 ;+170 ошибка сохранения файла
.panel_id db 0 ;+171 номер открытой панели
.key_new db 0 ;+172 символ, который будет добавлятся с клавиатуры
.symbol_new_line db 20 ;+173 символ завершения строки
.scr_w dd scrol_w1 ;+174 вертикальный скроллинг
.scr_h dd scrol_h1 ;+178 горизонтальный скроллинг
.arr_key_pos dd 0 ;+182 указатель на массив позиций ключевых слов
.buffer dd buf ;+186 указатель на буфер копирования/вставки
.buffer_find dd 0 ;+190 указатель на буфер для поиска
.cur_ins db 1 ;+194 режим работы курсора (обычный или замена)
.mode_color db 1 ;+195 режим выделения слов цветом (0-выкл. 1-вкл.)
.mode_invis db 0 ;+196 режим показа непечатаемых символов
.gp_opt db 0 ;+197 опции возвращаемые функцией ted_get_pos_by_cursor
.fun_on_key_ctrl_o dd but_ctrl_o ;+198 указатель на функцию вызываемую при нажатии Ctrl+O (открытие файла)
.fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (вызова/скрытия панели поиска)
.fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (создание нового документа)
.fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S
.buffer_size dd BUF_SIZE ;+214 размер буфера копирования/вставки
.fun_find_err dd 0 ;+218 указатель на функцию вызываемую если поиск закончился неудачно
.fun_init_synt_err dd 0 ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса
.fun_draw_panel_buttons dd 0 ;+226 указатель на функцию рисования панели с кнопками
.fun_draw_panel_find dd 0 ;+230 указатель на функцию рисования панели поиска
.fun_draw_panel_syntax dd 0 ;+234 указатель на функцию рисования панели синтаксиса
.fun_save_err dd 0 ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно
.increase_size dd 225 ;+242 число символов на которые будет увечиваться память при нехватке
.ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста)</pre>
<hr> <hr>
<p>Документация обновлялась последний раз 05.05.10.</p> <p>Документация обновлялась последний раз 17.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
; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 05.05.2010 IgorA ; ä ©« ¯®á«¥¤­¨© à § ¨§¬¥­ï«áï 17.05.2010 IgorA
; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï ; ­  ª®¤ ¯à¨¬¥­¥­  GPL2 «¨æ¥­§¨ï
;input: ;input:
@ -54,7 +54,7 @@ struct symbol
ends ends
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
ted_symbol_tab db 26 ted_symbol_tab db 26 ;ascii ª®¤ áâ५ª¨ ¢¯à ¢®, ¨á¯®«ì§ã¥âáï ¤«ï à¨á®¢ ­¨ï â ¡ã«ï樨 ¢ ०¨¬¥ ¯®ª §  ­¥¢¨¤¨¬ëå ᨬ¢®«®¢
if lang eq ru if lang eq ru
@ -80,7 +80,7 @@ txtBuf db 'Buffer:',0
end if end if
;------ ;EvChar - â ¡«¨æ  ¤«ï 䨫ìâ஢ ­¨ï ¤®¡ ¢«ï¥¬ëå ᨬ¢®«®¢, çâ®-¡ë ­¥ ¯®¯ «¨ «¨è­¨¥ §­ ª¨
align 4 align 4
EvChar db 0,0,0,0,0,0,0,0,0,1,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
@ -98,7 +98,7 @@ 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 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
;EvUpper - â ¡«¨æ  ¤«ï ¯à¥®¡à §®¢ ­¨ï ᨬ¢®«®¢ ª ¢¥àå­¥¬ã ॣ¨áâàã
EvUpper db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 EvUpper 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 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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
@ -113,8 +113,9 @@ EvUpper 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 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 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 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 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,240,0,242,0,244,0,246,0,0,0,0,0,0,0,0
;EvLover - â ¡«¨æ  ¤«ï ¯à¥®¡à §®¢ ­¨ï ᨬ¢®«®¢ ª ­¨¦­¥¬ã ॣ¨áâàã
EvLover db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 EvLover 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 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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
@ -124,13 +125,13 @@ EvLover 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 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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175 db 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175
db 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239
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 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 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 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 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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 241,0,243,0,245,0,247,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
conv_table dd 0 conv_table dd 0
@ -252,15 +253,11 @@ endp
align 4 align 4
proc ted_delete, edit:dword proc ted_delete, edit:dword
push ecx edi push edi
mov edi,dword[edit] mov edi,dword[edit]
stdcall mem_Free,ted_tex
mov ecx,ted_tex stdcall mem_Free,ted_arr_key_pos ;ted_syntax_file
call mem_Free pop edi
mov ecx,ted_arr_key_pos ;ted_syntax_file
call mem_Free
pop edi ecx
ret ret
endp endp
@ -691,6 +688,10 @@ proc ted_clear, edit:dword, cl_al_mem:dword
mov ted_tim_co,0 mov ted_tim_co,0
mov ted_tim_undo,0 mov ted_tim_undo,0
mov ted_help_id,-1 mov ted_help_id,-1
mov ecx,sizeof.symbol
shl ecx,1
add ecx,ted_tex
mov ted_ptr_free_symb,ecx
mov ecx,ted_scr_w mov ecx,ted_scr_w
mov dword[ecx+sb_offs_position],0 mov dword[ecx+sb_offs_position],0
@ -1108,10 +1109,8 @@ proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword
pop eax pop eax
@@: @@:
mov edx,sizeof.symbol mov edx,ted_ptr_free_symb
shl edx,1 .beg_cycle: ;for(i=...;i<ted_max_chars;i++)
add edx,ted_tex
@@: ;for(i=2;i<texMax;i++)
cmp dword [edx+10],0 ;if(!tex[i].tc && !tex[i].td) cmp dword [edx+10],0 ;if(!tex[i].tc && !tex[i].td)
jne .u1f jne .u1f
cmp dword [edx+14],0 cmp dword [edx+14],0
@ -1150,8 +1149,6 @@ proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword
m2m dword [edx+6],dword [ecx] ;tex[i].next=tex[po_t].next; m2m dword [edx+6],dword [ecx] ;tex[i].next=tex[po_t].next;
call ted_get_text_arr_index ;*** eax = i *** call ted_get_text_arr_index ;*** eax = i ***
cmp eax,ted_max_chars
jge @f
mov [ecx],eax ;tex[po_t].next=i; // áá뫪¨ ¯¥à¥­ ¯à ¢«ï¥¬ mov [ecx],eax ;tex[po_t].next=i; // áá뫪¨ ¯¥à¥­ ¯à ¢«ï¥¬
mov ecx,[edx+6] ; *** ecx = tex[i].next *** mov ecx,[edx+6] ; *** ecx = tex[i].next ***
imul ecx,sizeof.symbol imul ecx,sizeof.symbol
@ -1177,14 +1174,51 @@ proc ted_text_add, edit:dword, text:dword, t_len:dword, add_opt:dword
cmp edx,ted_tex_end cmp edx,ted_tex_end
jge @f ;out of memory jge @f ;out of memory
cmp ebx,0 cmp ebx,0
jne @b jne .beg_cycle
mov ted_ptr_free_symb,edx ;¬¥­ï¥¬ 㪠§ â¥«ì ­  ᢮¡®¤­ë© ᨬ¢®«, ¤«ï ¡®«¥¥ ¡ëáâண® ¯®¨áª  ¯ ¬ïâ¨
jmp .add_all
@@: @@:
cmp ted_increase_size,0
je .add_all
call ted_memory_increase
cmp ebx,0
jne .beg_cycle
.add_all: ;¢á¥ ᨬ¢®«ë ¤®¡ ¢«¥­ë
call ted_text_colored call ted_text_colored
popad popad
ret ret
endp endp
;input:
; edx = pointer to sumbol, when insert
; edi = pointer to tedit struct
;output:
; edx = new pointer to sumbol, when insert
align 4
proc ted_memory_increase
cmp ted_increase_size,0
je @f
push eax ebx ecx
mov ecx,ted_increase_size
add ecx,ted_max_chars
mov ted_max_chars,ecx
imul ecx,sizeof.symbol
stdcall mem_ReAlloc, ted_tex,ecx
mov ebx,ted_tex
mov ted_tex,eax
mov ted_tex_1,eax
add ted_tex_1,sizeof.symbol
sub edx,ebx
add edx,eax
mov ted_ptr_free_symb,edx
add eax,ecx
mov ted_tex_end,eax
pop ecx ebx eax
@@:
ret
endp
;input: ;input:
; ecx = position to free insert cell ; ecx = position to free insert cell
; edx = pointer to sumbol, when insert ; edx = pointer to sumbol, when insert
@ -1269,8 +1303,7 @@ proc ted_convert_sel_text
inc ted_tim_ch inc ted_tim_ch
mov edx,eax ;i=p0; mov edx,eax ;i=p0;
mov ecx,2 mov ecx,ted_ptr_free_symb
ConvertIndexToPointer ecx
@@: @@:
mov esi,[edx] mov esi,[edx]
and esi,0xff and esi,0xff
@ -1926,6 +1959,9 @@ proc ted_set_undo
add ebx,ted_tex;.perv add ebx,ted_tex;.perv
m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv; m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv;
cmp ted_ptr_free_symb,edx
jle .no_u1
mov ted_ptr_free_symb,edx ;¬¥­ï¥¬ 㪠§ â¥«ì ­  ᢮¡®¤­ë© ᨬ¢®«, ¤«ï ¡®«¥¥ ¡ëáâண® ¯®¨áª  ¯ ¬ïâ¨
.no_u1: .no_u1:
;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // ¥á«¨ 㤠«¥­¨¥ ᨬ¢®«  ¡ë«® ®â¬¥­¥­® ;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // ¥á«¨ 㤠«¥­¨¥ ᨬ¢®«  ¡ë«® ®â¬¥­¥­®
@ -3366,7 +3402,7 @@ proc KeyConvertToASCII, table:dword
mov ebx,dword[table] ;convert scan to ascii mov ebx,dword[table] ;convert scan to ascii
ror ax,8 ror ax,8
xor ah,ah xor ah,ah
add bx,ax add bx,ax ;? ebx,eax
mov ah,byte[ebx] mov ah,byte[ebx]
pop ebx pop ebx
ret ret
@ -3963,7 +3999,7 @@ call ted_fun_save_err
@@: @@:
pop ecx ;§ ¯¨á뢠¥¬ 㪠§ â¥«ì ­  ¢ë¤¥«¥­­ãî ¯ ¬ïâì pop ecx ;§ ¯¨á뢠¥¬ 㪠§ â¥«ì ­  ¢ë¤¥«¥­­ãî ¯ ¬ïâì
call mem_Free stdcall mem_Free,ecx
.no_save: .no_save:
popad popad
ret ret

View File

@ -1,6 +1,6 @@
; макрос для системной библиотеки box_lib.obj ; макрос для системной библиотеки box_lib.obj
; элемент TreeList для Kolibri OS ; элемент TreeList для Kolibri OS
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 29.04.2010 IgorA ; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 15.05.2010 IgorA
; на код применена GPL2 лицензия ; на код применена GPL2 лицензия
@ -17,36 +17,6 @@ sizeof.TreeList equ 20
macro use_tree_list macro use_tree_list
{ {
;-----------------------------------------------------------------------------
;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè
;input:
; ecx = size data
;otput:
; eax = pointer to memory
align 4
mem_Alloc:
push ebx
mov eax,68
mov ebx,12
int 0x40
pop ebx
ret
;-----------------------------------------------------------------------------
;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè
;input:
; ecx = pointer to memory
align 4
mem_Free:
push eax ebx
cmp ecx,0
jz @f
mov eax,68
mov ebx,13
int 0x40
@@:
pop ebx eax
ret
align 4 align 4
tl_data_init: ;выделние памяти для структур списка и основной информации (конструктор) tl_data_init: ;выделние памяти для структур списка и основной информации (конструктор)
push ebp push ebp
@ -95,29 +65,23 @@ tl_data_init: ;
ret 4 ret 4
align 4 align 4
tl_data_clear: ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) proc tl_data_clear, tlist:dword ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð)
push ebp push edi
mov ebp,esp mov edi,dword[tlist]
push ecx edi
mov edi,dword[ebp+8]
cmp tl_data_img,0 cmp tl_data_img,0
je @f je @f
mov ecx,tl_data_img stdcall mem_Free,tl_data_img ;÷èñòêà ñèñòåìíûõ èêîíîê
call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê
@@: @@:
cmp tl_data_img_sys,0 cmp tl_data_img_sys,0
je @f je @f
mov ecx,tl_data_img_sys stdcall mem_Free,tl_data_img_sys ;÷èñòêà ñèñòåìíûõ èêîíîê
call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê
@@: @@:
mov ecx,dword[edi] stdcall mem_Free,dword[edi]
call mem_Free
mov ecx,tl_data_nodes stdcall mem_Free,tl_data_nodes
call mem_Free pop edi
pop edi ecx ret
pop ebp endp
ret 4
align 4 align 4
tl_info_clear: ;очистка списка (информации) tl_info_clear: ;очистка списка (информации)

View File

@ -29,14 +29,14 @@ include 'pl_import.inc'
@use_library @use_library
struct f70 struct FileInfoBlock
func_n dd ? Function dd ?
param1 dd ? Position dd ?
param2 dd ? Flags dd ?
param3 dd ? Count dd ?
param4 dd ? Buffer dd ?
rezerv db ? db ?
name dd ? FileName dd ?
ends ends
fn_metki db 'pl_metki.lst',0 fn_metki db 'pl_metki.lst',0
@ -126,13 +126,13 @@ start:
copy_path fn_icon1,sys_path,file_name,0x0 copy_path fn_icon1,sys_path,file_name,0x0
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov [run_file_70.func_n], 0 mov [run_file_70.Function], 0
mov [run_file_70.param1], 0 mov [run_file_70.Position], 0
mov [run_file_70.param2], 0 mov [run_file_70.Flags], 0
mov [run_file_70.param3], TREE_ICON_SYS16_BMP_SIZE mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE
m2m [run_file_70.param4], [tree_sys_icon] m2m [run_file_70.Buffer], [tree_sys_icon]
mov [run_file_70.rezerv], 0 mov byte[run_file_70+20], 0
mov [run_file_70.name], file_name mov [run_file_70.FileName], file_name
mov ebx,run_file_70 mov ebx,run_file_70
int 0x40 int 0x40
cmp ebx,0xffffffff cmp ebx,0xffffffff
@ -149,8 +149,8 @@ start:
copy_path fn_icon2,sys_path,file_name,0x0 copy_path fn_icon2,sys_path,file_name,0x0
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov [run_file_70.param3], TREE_ICON_NOD16_BMP_SIZE mov [run_file_70.Count], TREE_ICON_NOD16_BMP_SIZE
m2m [run_file_70.param4], [tree_nod_icon] m2m [run_file_70.Buffer], [tree_nod_icon]
mov ebx,run_file_70 mov ebx,run_file_70
int 0x40 int 0x40
cmp ebx,0xffffffff cmp ebx,0xffffffff
@ -912,7 +912,7 @@ tree_nod_icon dd 0
bmp_icon dd 0 ;¯ ¬ïâì ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨ï bmp_icon dd 0 ;¯ ¬ïâì ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨ï
data_icon dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg data_icon dd 0 ;¯ ¬ïâì ¤«ï ¯à¥®¡à §®¢ ­¨ï ª à⨭ª¨ äã­ªæ¨ï¬¨ libimg
run_file_70 f70 run_file_70 FileInfoBlock
txt_tile_path db 'tile path',0 txt_tile_path db 'tile path',0

View File

@ -479,13 +479,13 @@ but_MetSave: ;
inc ecx ;¤«ï § ¯¨á¨ ¢ ä ©« § ¢¥àè î饣® ­ã«ï inc ecx ;¤«ï § ¯¨á¨ ¢ ä ©« § ¢¥àè î饣® ­ã«ï
mov eax,70 mov eax,70
m2m [run_file_70.param4], [bmp_icon] m2m [run_file_70.Buffer], [bmp_icon]
mov [run_file_70.func_n], 2 mov [run_file_70.Function], 2
mov [run_file_70.param1], 0 mov [run_file_70.Position], 0
mov [run_file_70.param2], 0 mov [run_file_70.Flags], 0
mov [run_file_70.param3], ecx mov [run_file_70.Count], ecx
mov [run_file_70.rezerv], 0 mov byte[run_file_70+20], 0
mov [run_file_70.name], file_name mov [run_file_70.FileName], file_name
mov ebx,run_file_70 mov ebx,run_file_70
int 0x40 int 0x40
pop edi ecx ebx eax pop edi ecx ebx eax
@ -500,13 +500,13 @@ but_MetLoad: ;
mov byte[met_fr_opn],1 mov byte[met_fr_opn],1
copy_path fn_metki,sys_path,file_name,0x0 copy_path fn_metki,sys_path,file_name,0x0
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov [run_file_70.func_n], 0 mov [run_file_70.Function], 0
mov [run_file_70.param1], 0 mov [run_file_70.Position], 0
mov [run_file_70.param2], 0 mov [run_file_70.Flags], 0
mov [run_file_70.param3], TREE_ICON_SYS16_BMP_SIZE mov [run_file_70.Count], TREE_ICON_SYS16_BMP_SIZE
mov [run_file_70.rezerv], 0 mov byte[run_file_70+20], 0
mov [run_file_70.name], file_name mov [run_file_70.FileName], file_name
m2m [run_file_70.param4], [bmp_icon] m2m [run_file_70.Buffer], [bmp_icon]
mov eax,70 mov eax,70
mov ebx,run_file_70 mov ebx,run_file_70
int 0x40 int 0x40
@ -801,13 +801,13 @@ proc load_new_tile, tile:dword
pushad pushad
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov [run_file_70.func_n], 0 mov [run_file_70.Function], 0
mov [run_file_70.param1], 0 mov [run_file_70.Position], 0
mov [run_file_70.param2], 0 mov [run_file_70.Flags], 0
mov [run_file_70.param3], RGB_TILE_SIZE+300 ;+54 mov [run_file_70.Count], RGB_TILE_SIZE+300 ;+54
m2m [run_file_70.param4], [bmp_icon] m2m [run_file_70.Buffer], [bmp_icon]
mov [run_file_70.rezerv], 0 mov byte[run_file_70+20], 0
mov [run_file_70.name], file_name mov [run_file_70.FileName], file_name
mov ebx,run_file_70 mov ebx,run_file_70
int 0x40 int 0x40
mov edi,[tile] mov edi,[tile]

View File

@ -1,11 +1,11 @@
struct f70 struct FileInfoBlock
func_n dd ? Function dd ?
param1 dd ? Position dd ?
param2 dd ? Flags dd ?
param3 dd ? Count dd ?
param4 dd ? Buffer dd ?
rezerv db ? db ?
name dd ? FileName dd ?
ends ends
struct TexColViv struct TexColViv
@ -26,12 +26,12 @@ struct symbol
ends ends
hed db 'TextEditor 03.05.10',0 ;¯®¤¯¨áì ®ª­  hed db 'TextEditor 17.05.10',0 ;¯®¤¯¨áì ®ª­ 
sc system_colors sc system_colors
fn_icon db 'te_icon.bmp',0 fn_icon db 'te_icon.bmp',0
bmp_icon dd 0 bmp_icon dd 0
run_file_70 f70 run_file_70 FileInfoBlock
;input: ;input:

View File

@ -357,7 +357,6 @@ tedit0: ;
.cur_x dd 0 ;+78 ª®®à¤¨­ â  x ªãàá®à  .cur_x dd 0 ;+78 ª®®à¤¨­ â  x ªãàá®à 
.cur_y dd 0 ;+82 ª®®à¤¨­ â  y ªãàá®à  .cur_y dd 0 ;+82 ª®®à¤¨­ â  y ªãàá®à 
.max_chars dd maxChars ;+86 ¬ ªá¨¬ «ì­®¥ ç¨á«® ᨬ¢®«®¢ ¢ ®¤­®¬ ¤®ªã¬¥­â¥ .max_chars dd maxChars ;+86 ¬ ªá¨¬ «ì­®¥ ç¨á«® ᨬ¢®«®¢ ¢ ®¤­®¬ ¤®ªã¬¥­â¥
; \/ ­¥ à §à뢠âì á«¥¤ãî騥 ¯¥à¥¬¥­­ë¥:
.count_colors_text dd 1 ;+90 ª®««¨ç¥á⢮ 梥⮢ ⥪áâ  .count_colors_text dd 1 ;+90 ª®««¨ç¥á⢮ 梥⮢ ⥪áâ 
.count_key_words dd 0 ;+94 ª®««¨ç¥á⢮ ª«î祢ëå á«®¢ .count_key_words dd 0 ;+94 ª®««¨ç¥á⢮ ª«î祢ëå á«®¢
.color_cursor dd 0x808080 ;+98 梥⠪ãàá®à  .color_cursor dd 0x808080 ;+98 梥⠪ãàá®à 
@ -367,7 +366,6 @@ tedit0: ;
.color_select dd 0x208080 ;+114 梥⠢뤥«¥­¨ï .color_select dd 0x208080 ;+114 梥⠢뤥«¥­¨ï
.color_cur_text dd 0xff0000 ;+118 梥â ᨬ¢®«  ¯®¤ ªãàá®à®¬ .color_cur_text dd 0xff0000 ;+118 梥â ᨬ¢®«  ¯®¤ ªãàá®à®¬
.color_wnd_text dd 0xffff00 ;+122 梥â ⥪áâ  ¢ ®ª­¥ .color_wnd_text dd 0xffff00 ;+122 梥â ⥪áâ  ¢ ®ª­¥
; /\ ¤à㣨¥, ¨¤ã騥 ­¨¦¥ ¬®¦­® à §à뢠âì.
.syntax_file dd 0 ;+126 㪠§ â¥«ì ­  ­ ç «® ä ©«  ᨭ⠪á¨á  .syntax_file dd 0 ;+126 㪠§ â¥«ì ­  ­ ç «® ä ©«  ᨭ⠪á¨á 
.syntax_file_size dd maxSyntaxFileSize ;+130 ¬ ªá¨¬ «ì­ë© à §¬¥à ä ©«  ᨭ⠪á¨á  .syntax_file_size dd maxSyntaxFileSize ;+130 ¬ ªá¨¬ «ì­ë© à §¬¥à ä ©«  ᨭ⠪á¨á 
.text_colors dd 0 ;+134 㪠§ â¥«ì ­  ¬ áᨢ 梥⮢ ⥪áâ  .text_colors dd 0 ;+134 㪠§ â¥«ì ­  ¬ áᨢ 梥⮢ ⥪áâ 
@ -403,6 +401,8 @@ tedit0: ;
.fun_draw_panel_find dd draw_panel_find ;+230 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ¯®¨áª  .fun_draw_panel_find dd draw_panel_find ;+230 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ¯®¨áª 
.fun_draw_panel_syntax dd draw_panel_syntax ;+234 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ᨭ⠪á¨á  .fun_draw_panel_syntax dd draw_panel_syntax ;+234 㪠§ â¥«ì ­  äã­ªæ¨î à¨á®¢ ­¨ï ¯ ­¥«¨ ᨭ⠪á¨á 
.fun_save_err dd ted_save_err_msg ;+238 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­® .fun_save_err dd ted_save_err_msg ;+238 㪠§ â¥«ì ­  äã­ªæ¨î ¢ë§ë¢ ¥¬ãî ¥á«¨ á®åà ­¥­¨¥ ä ©«  § ª®­ç¨«®áì ­¥ã¤ ç­®
.increase_size dd 200 ;+242 ç¨á«® ᨬ¢®«®¢ ­  ª®â®àë¥ ¡ã¤¥â 㢥稢 âìáï ¯ ¬ïâì ¯à¨ ­¥å¢ âª¥
.ptr_free_symb dd ? ;+246 ¨á¯®«ì§ã¥âáï ¢­ãâà¨ í«¥¬¥­â  ¤«ï ã᪮७¨ï ¢áâ ¢ª¨ ⥪áâ 
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
conv_tabl rb 128 ; â ¡«¨æ  ¤«ï ª®­¢¥àâ¨à®¢ ­¨ï scan-ª®¤  ¢ ascii-ª®¤ conv_tabl rb 128 ; â ¡«¨æ  ¤«ï ª®­¢¥àâ¨à®¢ ­¨ï scan-ª®¤  ¢ ascii-ª®¤

View File

@ -77,13 +77,13 @@ load_libraries l_libs_start,load_lib_end
copy_path fn_icon,sys_path,file_name,0x0 copy_path fn_icon,sys_path,file_name,0x0
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov [run_file_70.func_n], 0 mov [run_file_70.Function], 0
mov [run_file_70.param1], 54 mov [run_file_70.Position], 54
mov [run_file_70.param2], 0 mov [run_file_70.Flags], 0
mov [run_file_70.param3], 1200*18 mov [run_file_70.Count], 1200*18
m2m [run_file_70.param4], [bmp_icon] m2m [run_file_70.Buffer], [bmp_icon]
mov [run_file_70.rezerv], 0 mov byte[run_file_70+20], 0
mov [run_file_70.name], file_name mov [run_file_70.FileName], file_name
mov ebx,run_file_70 mov ebx,run_file_70
int 0x40 int 0x40
@ -101,13 +101,13 @@ load_libraries l_libs_start,load_lib_end
call mem_Alloc call mem_Alloc
mov dword[tree1.data_img_sys],eax mov dword[tree1.data_img_sys],eax
;mov [run_file_70.func_n], 0 ;mov [run_file_70.Function], 0
;mov [run_file_70.param1], 54 ;mov [run_file_70.Position], 54
;mov [run_file_70.param2], 0 ;mov [run_file_70.Flags], 0
mov [run_file_70.param3], 3*256*13 mov [run_file_70.Count], 3*256*13
mov [run_file_70.param4], eax mov [run_file_70.Buffer], eax
;mov [run_file_70.rezerv], 0 ;mov byte[run_file_70+20], 0
;mov [run_file_70.name], file_name ;mov [run_file_70.FileName], file_name
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov ebx,run_file_70 mov ebx,run_file_70
@ -124,13 +124,13 @@ load_libraries l_libs_start,load_lib_end
call mem_Alloc call mem_Alloc
mov dword[tree1.data_img],eax mov dword[tree1.data_img],eax
; mov [run_file_70.func_n], 0 ; mov [run_file_70.Function], 0
; mov [run_file_70.param1], 54 ; mov [run_file_70.Position], 54
; mov [run_file_70.param2], 0 ; mov [run_file_70.Flags], 0
mov [run_file_70.param3], 3*256*2 mov [run_file_70.Count], 3*256*2
mov [run_file_70.param4], eax mov [run_file_70.Buffer], eax
; mov [run_file_70.rezerv], 0 ; mov byte[run_file_70+20], 0
; mov [run_file_70.name], file_name ; mov [run_file_70.FileName], file_name
mov eax,70 ;load icon file mov eax,70 ;load icon file
mov ebx,run_file_70 mov ebx,run_file_70