1) add text color in macros edit_boxes_set_sys_color
2) new macros option_boxes_set_sys_color
t_edit_synt:
1) fix word colors

git-svn-id: svn://kolibrios.org@2159 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2011-09-05 22:50:20 +00:00
parent 6d94cdfb6f
commit aaf2de8ea5
9 changed files with 65 additions and 5570 deletions

View File

@ -80,8 +80,8 @@ macro edit_boxes_set_sys_color start,end,color_table
mov ecx,((end-start)/ed_struc_size)
mov esi,color_table
@@:
mov eax,dword [esi+36]
mov ebx,dword [esi+20]
mov eax,dword [esi+36] ;梥⠣à ä¨ª¨ ¢ ®ª­¥ (à §¤¥«¨â¥«ì­ë¥ «¨­¨¨ ¨ â.¯.)
mov ebx,dword [esi+20] ;梥â à ¡®ç¥© ®¡« á⨠®ª­ 
push dword eax
pop dword ed_focus_border_color
shr bh,1
@ -98,6 +98,8 @@ macro edit_boxes_set_sys_color start,end,color_table
ror eax,16
mov dword ed_blur_border_color,eax
mov dword shift_color,eax
push dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­ 
pop dword ed_text_color
add edi,ed_struc_size
loop @b
}
@ -257,18 +259,36 @@ op_flag_en=10b
.flags: dd flags+0 ; ä« £¨
}
;op_struc_size equ
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_border_color equ [edi+20] ; or [edi+4] ;梥â à ¬ª¨ optionbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
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] ;ä« £¨
macro option_boxes_set_sys_color color_table,group
{
mov ecx,group
mov esi,color_table
mov edi,[ecx]
mov eax,[esi+24] ;梥⠪­®¯ª¨ ¢ à ¡®ç¥© ®¡« á⨠®ª­ 
mov ebx,[esi+28] ;梥â ⥪áâ  ­  ª­®¯ª¥
@@:
mov op_border_color,eax
mov op_color,ebx
push dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­ 
pop dword op_text_color
add ecx,4
mov edi,[ecx]
cmp edi,0
jne @b
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use TreeList ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -81,15 +81,17 @@ table
<p><b>color_wnd_text</b> - метка после которой идут цвета текста в окне</p>
<p><b>text</b> - метка после которой идут описания ключевых слов. Для более компактного описания ключевого слова используется макрос <b>wo</b>:</p>
<pre>macro wo txt,lf1,p1,p2,p3{
<pre>macro wo txt,f1,p1,p2,p3{
@@: db txt
rb @b+40-$
dd lf1
db p1,p2+0,p3
dd f1+0
db p1
dw p2+0
db p3
}</pre>
<p>параметры макроса:</p>
<p><b>txt</b> - <i>подсвечиваемое слово</i></p>
<p><b>lf1</b> - <i>смещение начала справки</i> по данному слову относительно метки <b>f1</b></p>
<p><b>f1</b> - <i>смещение начала справки</i> по данному слову относительно метки <b>f1</b> (если справки нет то параметр можно оставить пустым)</p>
<p><b>p1</b> - <i>опции</i> влияющие на выделение слова. Возможно всего 5 опций, каждая из которых включается определенным битом:</p>
<ul>
<li>2<sup>0</sup>=1 - слева не текст,</li>
@ -98,27 +100,27 @@ db p1,p2+0,p3
<li>2<sup>4</sup>=8 - слева любая цифра,</li>
<li>2<sup>5</sup>=16 - справа любая цифра.</li>
</ul>
<p><b>p2</b> - <i>ascii код конечного символа</i> для выделения. Используется в случаях, когда нужно задать выделение заранее не известной длинны, например: комментарии, строки в кавычках. Для его использования предыдущий параметр должен содержать 2-й бит ил цифра 4 = 2<sup>2</sup>.</p>
<p><b>p2</b> - <i>(ascii код экранирующего символа * 256) + ascii код конечного символа</i>. Используется в случаях, когда нужно задать выделение заранее не известной длинны, например: комментарии, строки в кавычках. Для его использования предыдущий параметр должен содержать 2-й бит или цифру 4 = 2<sup>2</sup>.</p>
<p><b>p3</b> - <i>номер цвета</i> из массива <b>color_wnd_text</b>, которым будет выделятся слово</p>
<p><b>Пример 1.</b> Нужно задать слово <i>or</i>, что-бы по ошибке комбинации из символов входящих в слово не выделялись в других словах, например: <i>f<b>or</b>m</i>, <i>col<b>or</b></i> используем в <b>p2</b> биты 0 и 1 получаем число 3 = 2<sup>0</sup>+2<sup>1</sup> = 1+2.</p>
<p><b>Пример 2.</b> Фрагмент файла, полученого в результате работы программы:</p>
<pre>wo&lt;'word'&gt;,f1.600-f1,<b>3</b>,,8
wo&lt;'xadd'&gt;,0,<b>3</b>,,1
wo&lt;'xadd'&gt;,,<b>3</b>,,1
wo&lt;'xchg'&gt;,f1.602-f1,<b>3</b>,,1
wo&lt;'xlat'&gt;,0,<b>3</b>,,1
wo&lt;'xlatb'&gt;,0,<b>3</b>,,1
wo&lt;'xmm0'&gt;,0,<b>3</b>,,2
wo&lt;'xmm1'&gt;,0,<b>3</b>,,2
wo&lt;'xmm2'&gt;,0,<b>3</b>,,2
wo&lt;'xmm3'&gt;,0,<b>3</b>,,2
wo&lt;'xmm4'&gt;,0,<b>3</b>,,2
wo&lt;'xmm5'&gt;,0,<b>3</b>,,2
wo&lt;'xmm6'&gt;,0,<b>3</b>,,2
wo&lt;'xmm7'&gt;,0,<b>3</b>,,2
wo&lt;'xlat'&gt;,,<b>3</b>,,1
wo&lt;'xlatb'&gt;,,<b>3</b>,,1
wo&lt;'xmm0'&gt;,,<b>3</b>,,2
wo&lt;'xmm1'&gt;,,<b>3</b>,,2
wo&lt;'xmm2'&gt;,,<b>3</b>,,2
wo&lt;'xmm3'&gt;,,<b>3</b>,,2
wo&lt;'xmm4'&gt;,,<b>3</b>,,2
wo&lt;'xmm5'&gt;,,<b>3</b>,,2
wo&lt;'xmm6'&gt;,,<b>3</b>,,2
wo&lt;'xmm7'&gt;,,<b>3</b>,,2
wo&lt;'xor'&gt;,f1.613-f1,<b>3</b>,,1
wo&lt;'zf'&gt;,f1.614-f1,<b>3</b>,,2
wo&lt;'||'&gt;,0,<b>0</b>,,1</pre>
wo&lt;'||'&gt;,,<b>0</b>,,1</pre>
<p>Параметры <b>p2</b> почти во всех словах равны 3-м, а в последнем слове 0, потому что для последнего слова не важно какие символы будут слева и справа от него.</p>
<h3>Формат файла подсветки *.syn</h3>

View File

@ -18,24 +18,12 @@ edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
version_ed dd aVersion_ed
;check_box_draw dd aCheck_box_draw
;check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch
;option_box_draw dd aOption_box_draw
;option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
scrollbar_ver_draw dd aScrollbar_ver_draw
scrollbar_ver_mouse dd aScrollbar_ver_mouse
scrollbar_hor_draw dd aScrollbar_hor_draw
scrollbar_hor_mouse dd aScrollbar_hor_mouse
version_scrollbar dd aVersion_scrollbar
;dinamic_button_draw dd aDbutton_draw
;dinamic_button_mouse dd aDbutton_mouse
;version_dbutton dd aVersion_dbutton
tl_data_init dd sz_tl_data_init
tl_data_clear dd sz_tl_data_clear
tl_info_clear dd sz_tl_info_clear
@ -96,24 +84,12 @@ aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
aVersion_ed db 'version_ed',0
;aCheck_box_draw db 'check_box_draw',0
;aCheck_box_mouse db 'check_box_mouse',0
;aVersion_ch db 'version_ch',0
;aOption_box_draw db 'option_box_draw',0
;aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
aScrollbar_ver_draw db 'scrollbar_v_draw',0
aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
aScrollbar_hor_draw db 'scrollbar_h_draw',0
aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
aVersion_scrollbar db 'version_scrollbar',0
;aDbutton_draw db 'dbutton_draw',0
;aDbutton_mouse db 'dbutton_mouse',0
;aVersion_dbutton db 'version_dbutton',0
sz_tl_data_init db 'tl_data_init',0
sz_tl_data_clear db 'tl_data_clear',0
sz_tl_info_clear db 'tl_info_clear',0
@ -213,13 +189,7 @@ edit1 edit_box 310+16-CAPT_PATH_WIDTH, 210+CAPT_PATH_WIDTH, 25, 0xffffff, 0xff,
ed_buffer: ;⥪áâ ¤«ï edit
.127: rb MAX_COLOR_WORD_LEN+2
;------------------------------------------------------------------------------
struct TexSelect
x0 dd ?
y0 dd ?
x1 dd ?
y1 dd ?
ends
;------------------------------------------------------------------------------
align 4
tedit0: ;áâàãªâãà  â¥ªá⮢®£® । ªâ®à 
@ -227,8 +197,8 @@ tedit0: ;
.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 ¤®¯®«­¨â¥«ì­ ï áâàãªâãà  ¢ë¤¥«¥­¨ï
.sel rb 16 ;+34 áâàãªâãà  ¢ë¤¥«¥­¨ï
.seln rb 16 ;+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
@ -352,8 +322,8 @@ align 4
;conv_tabl rb 128 ;â ¡«¨æ  ¤«ï ª®­¢¥àâ¨à®¢ ­¨ï scan-ª®¤  ¢ ascii-ª®¤
buf db BUF_SIZE dup(0) ;¡ãä¥à ¤«ï ª®¯¨à®¢ ­¨ï | ¢áâ ¢ª¨
capt_header db 'macro wo txt,lf1,p1,p2,p3{',13
db '@@: db txt',13,'rb @b+40-$',13,'dd lf1',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13
capt_header db 'macro wo txt,f1,p1,p2,p3{',13
db '@@: db txt',13,'rb @b+40-$',13,'dd f1+0',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13
db 'count_colors_text dd (text-color_wnd_text)/4',13
db 'count_key_words dd (f1-text)/48',13,0
col_1 db 'color_cursor dd ',0 ;+ 98 梥⠪ãàá®à 

View File

@ -312,7 +312,7 @@ get_wnd_in_focus:
;@@:
ret
hed db 'TextEditor syntax file converter 26.08.11',0 ;¯®¤¯¨áì ®ª­ 
hed db 'TextEditor syntax file converter 06.09.11',0 ;¯®¤¯¨áì ®ª­ 
txt122 db '‡ £à. ä ©«',0
txt148 db '‘®åà. ä ©«',0

View File

@ -69,19 +69,18 @@ InitColText:
mov dword[ColWords],0
mov dword[tex_help_f1],0
cmp eax,6
je @f
cmp eax,0
je @f
cmp ax,10
jl .zifra_0_9
mov al,'?'
sub ax,48
.zifra_0_9:
add ax,48
jmp .no_colors
@@:
cmp eax,6
je @f
cmp eax,0
je @f
cmp ax,10
jl .zifra_0_9
mov al,'?'
sub ax,48
.zifra_0_9:
add ax,48
jmp .no_colors
@@:
mov esi,[options_file]
mov edi,count_colors_text
@ -230,10 +229,7 @@ proc print_word, text:dword, index:dword
stdcall str_cat,esi,capt_calc_f1
stdcall str_cat_value,esi,[index]
stdcall str_cat,esi,capt_lbl_f1_use
jmp .end_f1_calc
@@:
stdcall str_cat,esi,capt_null
.end_f1_calc:
mov esi,text_buffer
stdcall str_len,esi ;óçíàåì äëèííó âñåé ñòðîêè
@ -264,7 +260,7 @@ mov byte[edi],0
inc edi
xor eax,eax
mov al,byte[ecx+MAX_COLOR_WORD_LEN+4+2] ;color
mov al,byte[ecx+MAX_COLOR_WORD_LEN+4+3] ;color
stdcall str_cat_value,edi,eax
stdcall str_len,edi
add edi,eax