forked from KolibriOS/kolibrios
box_lib:
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:
parent
6d94cdfb6f
commit
aaf2de8ea5
@ -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 ;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
1
programs/other/t_edit/info/asm.inc
Normal file
1
programs/other/t_edit/info/asm.inc
Normal file
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
@ -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<'word'>,f1.600-f1,<b>3</b>,,8
|
||||
wo<'xadd'>,0,<b>3</b>,,1
|
||||
wo<'xadd'>,,<b>3</b>,,1
|
||||
wo<'xchg'>,f1.602-f1,<b>3</b>,,1
|
||||
wo<'xlat'>,0,<b>3</b>,,1
|
||||
wo<'xlatb'>,0,<b>3</b>,,1
|
||||
wo<'xmm0'>,0,<b>3</b>,,2
|
||||
wo<'xmm1'>,0,<b>3</b>,,2
|
||||
wo<'xmm2'>,0,<b>3</b>,,2
|
||||
wo<'xmm3'>,0,<b>3</b>,,2
|
||||
wo<'xmm4'>,0,<b>3</b>,,2
|
||||
wo<'xmm5'>,0,<b>3</b>,,2
|
||||
wo<'xmm6'>,0,<b>3</b>,,2
|
||||
wo<'xmm7'>,0,<b>3</b>,,2
|
||||
wo<'xlat'>,,<b>3</b>,,1
|
||||
wo<'xlatb'>,,<b>3</b>,,1
|
||||
wo<'xmm0'>,,<b>3</b>,,2
|
||||
wo<'xmm1'>,,<b>3</b>,,2
|
||||
wo<'xmm2'>,,<b>3</b>,,2
|
||||
wo<'xmm3'>,,<b>3</b>,,2
|
||||
wo<'xmm4'>,,<b>3</b>,,2
|
||||
wo<'xmm5'>,,<b>3</b>,,2
|
||||
wo<'xmm6'>,,<b>3</b>,,2
|
||||
wo<'xmm7'>,,<b>3</b>,,2
|
||||
wo<'xor'>,f1.613-f1,<b>3</b>,,1
|
||||
wo<'zf'>,f1.614-f1,<b>3</b>,,2
|
||||
wo<'||'>,0,<b>0</b>,,1</pre>
|
||||
wo<'||'>,,<b>0</b>,,1</pre>
|
||||
<p>Параметры <b>p2</b> почти во всех словах равны 3-м, а в последнем слове 0, потому что для последнего слова не важно какие символы будут слева и справа от него.</p>
|
||||
|
||||
<h3>Формат файла подсветки *.syn</h3>
|
||||
|
@ -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 梥⠪ãàá®à
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user