forked from KolibriOS/kolibrios
d5f5e7780a
1) sync with the new box_lib.obj 2) corrected bug that could occur when pressing Ctrl+F 3) change the code git-svn-id: svn://kolibrios.org@1449 a494cfbc-eb01-0410-851d-a64ba20cac60
248 lines
10 KiB
Plaintext
248 lines
10 KiB
Plaintext
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;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] ;áâ ஥ ¯®«®¦¥¨¥ ªãàá®à
|
||
|
||
ed_struc_size=76
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;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 ; ¢ëá®â
|
||
|
||
struc edit_box width,left,top,color,shift_color,focus_border_color,\
|
||
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
|
||
{
|
||
.width dd width
|
||
.left dd left
|
||
.top dd top
|
||
.color dd color
|
||
.shift_color dd shift_color
|
||
.focus_border_color dd focus_border_color
|
||
.blur_border_color dd blur_border_color
|
||
.text_color dd text_color
|
||
.max dd max
|
||
.text dd text
|
||
.mouse_variable dd mouse_variable
|
||
.flags dd flags+0
|
||
.size dd size+0
|
||
.pos dd pos+0
|
||
.offset dd 0
|
||
.cl_curs_x dd 0
|
||
.cl_curs_y dd 0
|
||
.shift dd 0
|
||
.shift_old dd 0
|
||
}
|
||
|
||
macro edit_boxes_set_sys_color start,end,color_table
|
||
{
|
||
mov edi,start
|
||
mov ecx,((end-start)/ed_struc_size)
|
||
mov esi,color_table
|
||
@@:
|
||
mov eax,dword [esi+36]
|
||
mov ebx,dword [esi+20]
|
||
push dword eax
|
||
pop dword ed_focus_border_color
|
||
shr bh,1
|
||
shr bl,1
|
||
shr ah,1
|
||
shr al,1
|
||
add ah,bh
|
||
add al,bl
|
||
ror eax,16
|
||
ror ebx,16
|
||
shr bl,1
|
||
shr al,1
|
||
add al,bl
|
||
ror eax,16
|
||
mov dword ed_blur_border_color,eax
|
||
mov dword shift_color,eax
|
||
add edi,ed_struc_size
|
||
loop @b
|
||
}
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;Basic macros for use 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] ;ä« £¨
|
||
|
||
struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags
|
||
{ ;áâàãªâãà ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá
|
||
.left: dw left ;+0 ¯®«®¦¥¨¥ ¯® å
|
||
.top: dw top ;+2 ¯®«®¦¥¨¥ ¯® ã
|
||
.ch_text_margin: dd ch_text_margin ;à ááâ®ï¨¥ ®â ¯àאַ㣮«ì¨ª 祪 ¡®ªá ¤® ¤¯¨á¨
|
||
.ch_size: dd ch_size ;à §¬¥à ª¢ ¤à â 祪 ¡®ªá , ¤«ï ¯à¨¬¥à 12
|
||
.color: dd color ;梥⠢ãâਠ祪¡®ªá
|
||
.border_color: dd border_color ;梥â à ¬ª¨
|
||
.text_color: dd text_color ;梥⠤¯¨á¨
|
||
.text: dd text ; ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à ᯮ«®¦¥ ⥪áâ
|
||
.ch_text_length: dd ch_text_length ;¤«¨ áâப¨ á ᨬ¢®« ¬¨
|
||
.flags: dd flags+0 ; ä« £¨
|
||
}
|
||
|
||
macro check_boxes_set_sys_color start,end,color_table
|
||
{
|
||
mov edi,start
|
||
mov ecx,((end-start)/ch_struc_size)
|
||
mov esi,color_table
|
||
@@:
|
||
; push dword [esi+20] ;梥â à ¡®ç¥© ®¡« á⨠®ª
|
||
; pop dword ch_color
|
||
push dword [esi+32] ;梥â ⥪áâ ¢ à ¡®ç¥© ®¡« á⨠®ª
|
||
pop dword ch_text_color
|
||
push dword [esi+36] ;梥⠣à 䨪¨ ¢ ®ª¥ (à §¤¥«¨â¥«ìë¥ «¨¨¨ ¨ â.¯.)
|
||
pop dword ch_border_color
|
||
add edi,ch_struc_size
|
||
loop @b
|
||
}
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;Basic macros for use OptionBox ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags
|
||
{ ;áâàãªâãà ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá
|
||
op_flag_en=10b
|
||
.option_group: dd point_gr
|
||
.left: dw left ;+0 ;¯®«®¦¥¨¥ ¯® å
|
||
.top: dw top ;¯®«®¦¥¨¥ ¯® ã
|
||
.ch_text_margin: dd op_text_margin ;à ááâ®ï¨¥ ®â ¯àאַ㣮«ì¨ª 祪 ¡®ªá ¤® ¤¯¨á¨
|
||
.ch_size: dd op_size ;à §¬¥à ª¢ ¤à â 祪 ¡®ªá , ¤«ï ¯à¨¬¥à 12
|
||
.color: dd color ;梥⠢ãâਠ祪¡®ªá
|
||
.border_color: dd border_color ;梥â à ¬ª¨
|
||
.text_color: dd text_color ;梥⠤¯¨á¨
|
||
.text: dd text ; ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à ᯮ«®¦¥ ⥪áâ
|
||
.ch_text_length: dd op_text_length ;¤«¨ áâப¨ á ᨬ¢®« ¬¨
|
||
.flags: dd flags+0 ; ä« £¨
|
||
}
|
||
|
||
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
|
||
col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
|
||
info_capt_len,el_focus, p_scrol,on_press {
|
||
.data_info dd 0
|
||
.info_size dw info_size
|
||
.info_max_count dd info_max_count
|
||
.style dd style
|
||
.data_nodes dd 0
|
||
.data_img dd 0
|
||
.img_cx dw img_cx
|
||
.img_cy dw img_cy
|
||
.data_img_sys dd 0
|
||
.ch_tim dd 0
|
||
.ls_tim dd 0
|
||
.tim_undo dd 0
|
||
.cur_pos dd 0
|
||
.col_bkg dd col_bkg
|
||
.col_zag dd col_zag
|
||
.col_txt dd col_txt
|
||
.box_left dd box_l
|
||
.box_top dd box_t
|
||
.box_width dd box_w
|
||
.box_height dd box_h
|
||
.capt_cy dw capt_cy
|
||
.info_capt_offs dw info_capt_offs
|
||
.info_capt_len dw info_capt_len
|
||
.el_focus dd el_focus
|
||
.p_scrol dd p_scrol
|
||
rb 4
|
||
.on_activate dd 0
|
||
.on_press dd on_press
|
||
}
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;Basic macros for use TreeList ;
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
||
tl_info_size equ word[edi +4] ;à §¬¥à ¤ ëå ¢ë¤¥«ï¥¬ëå ¤«ï ª ¦¤®£® 㧫 (¯®«ì§®¢ ⥫ìá쪨¥ ¤ ë¥ + ⥪áâ ¤«ï ¯®¤¯¨á¨)
|
||
tl_info_max_count equ dword[edi+6] ;¬ ªá¨¬ «ì®¥ ª®«¨ç¥á⢮ 㧫®¢, ª®â®àë¥ ¬®¦® ¤®¡ ¢¨âì ¢ í«¥¬¥â
|
||
tl_style equ dword[edi+10] ;á⨫¨ í«¥¬¥â
|
||
tl_data_nodes equ dword[edi+14] ;㪠§ ⥫ì áâàãªâãàë 㧫®¢
|
||
tl_data_img equ dword[edi+18] ;㪠§ â¥«ì ¨§®¡à ¦¥¨ï á ¨ª®ª ¬¨ 㧫®¢
|
||
tl_img_cx equ word[edi+22] ;è¨à¨ ¨ª®®ª
|
||
tl_img_cy equ word[edi+24] ;¢ëá®â ¨ª®®ª
|
||
tl_data_img_sys equ dword[edi+26] ;㪠§ ⥫ì á¨áâ¥¬ë¥ ¨§®¡à ¦¥¨ï (áâ५ª¨, ¯«îᨪ¨)
|
||
tl_ch_tim equ dword[edi+30] ;ª®«¨ç¥á⢮ ¨§¬¥¥¨© ¢ ä ©«¥
|
||
tl_tim_undo equ dword[edi+38] ;ª®«¨ç¥á⢮ ®â¬¥¥ëå ¤¥©á⢨©
|
||
tl_cur_pos equ dword[edi+42] ;¯®§¨æ¨ï ªãàá®à
|
||
tl_col_bkg equ dword[edi+46] ;梥â ä®
|
||
tl_col_zag equ dword[edi+50] ;梥⠧ £®«®¢ª
|
||
tl_col_txt equ dword[edi+54] ;梥â ⥪áâ
|
||
tl_box_left equ dword[edi+58]
|
||
tl_box_top equ dword[edi+62]
|
||
tl_box_width equ dword[edi+66]
|
||
tl_box_height equ dword[edi+70]
|
||
tl_capt_cy equ word[edi+74] ;¢ëá®â ¯®¤¯¨á¨
|
||
tl_info_capt_offs equ word[edi+76] ;ᤢ¨£ ¤«ï ç « ⥪áâ (¯®¤¯¨á¨ 㧫 )
|
||
tl_info_capt_len equ word[edi+78] ;¤«¨ ⥪áâ ¯®¤¯¨á¨ 㧫 (¥á«¨ = 0 â® ¤® ª®æ áâàãªâãàë)
|
||
tl_el_focus equ dword[edi+80] ;㪠§ ⥫ì áâàãªâãàã í«¥¬¥â ¢ 䮪ãá¥
|
||
tl_p_scrol equ dword[edi+84] ;㪠§ ⥫ì áâàãªâãàã áªà®««¨£
|
||
tl_on_press equ dword[edi+96] ;㪠§ ⥫ì äãªæ¨î, ª®â®à ï ¢ë§ë¢ ¥âáï ¯à¨ ¦ ⨨ Enter
|
||
|
||
;data_info dd ? ;+ 0 㪠§ â¥«ì ®á®¢ë¥ ¤ ë¥
|
||
;ls_tim dd ? ;+34 ¢à¥¬ï ¯®á«¥¤¥£® á®åà ¥¨ï
|
||
;on_activate dd ? ;+92 㪠§ ⥫ì äãªæ¨î ¯à¨ ªâ¨¢¨à®¢ ¨¨ 㧫
|
||
|
||
;ª®áâ âë á⨫ï
|
||
tl_key_no_edit equ 1b ;í«¥¬¥â ¥«ì§ï । ªâ¨à®¢ âì ª« ¢¨ âãॠ(¨§¬¥ïâì ã஢¨, 㤠«ïâì)
|
||
tl_draw_par_line equ 10b ;à¨á®¢ âì «¨¨¨ ª த¨â¥«ì᪮¬ã 㧫ã
|
||
tl_list_box_mode equ 100b ;áâ¨«ì ¥ ®â®¡à ¦ ¥â ã஢¨ (ª ª ¢ ListBox ¢á¥ ®¤®£® ã஢ï)
|
||
|
||
;ª®áâ âë ¤«ï äãªæ¨©
|
||
tl_err_save_memory_size equ 10b ;¥ å¢ â ¥â ¯ ¬ï⨠¤«ï á®åà ¥¨ï í«¥¬¥â
|
||
tl_err_load_caption equ 1b ;¢ ¯ ¬ï⨠¥â § £®«®¢ª 'tree'
|
||
tl_err_load_info_size equ 100b ;¥ ᮢ¯ ¤ ¥â à §¬¥à ¨ä®à¬ 樮®© áâàãªâãàë ¯à¨ ®âªàë⨨
|
||
tl_load_mode_add equ 0x20000 ;®¯æ¨ï áç¨âë¢ ¨ï ¢ ०¨¬¥ ¤®¡ ¢«¥¨ï ¨ä®à¬ 樨
|
||
tl_save_load_heder_size equ 26 ;à §¬¥à § £®«®¢ª ¤«ï § ¯¨á¨/ç⥨ï í«¥¬¥â®¢
|