editbox font options support (sysfunc 4 format)

git-svn-id: svn://kolibrios.org@6675 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pathoswithin 2016-11-05 04:15:05 +00:00
parent 695e658b9d
commit 038e72e9ee
2 changed files with 419 additions and 509 deletions

View File

@ -1,83 +1,86 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use EditBox ; ;; basic macros for EditBox ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ed_width equ [edi] ;è¨à¨­  ª®¬¯®­¥­â  ed_width equ [edi] ; field width
ed_left equ [edi+4] ;¯®«®¦¥­¨¥ ¯® ®á¨ å ed_left equ [edi+4] ; left border X
ed_top equ [edi+8] ;¯®«®¦¥­¨¥ ¯® ®á¨ ã ed_top equ [edi+8] ; top border Y
ed_color equ [edi+12] ;梥â ä®­  ª®¬¯®­¥­â  ed_color equ [edi+12] ; field color
shift_color equ [edi+16] ;=0x6a9480 ¤«ï ¯à¨¬¥à  ¢®§ì¥¬ ¦¥«¥­ë© 梥⠡®ªá  shift_color equ [edi+16] ; select color
ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®­¥­â  ed_focus_border_color equ [edi+20] ; border color active
ed_blur_border_color equ [edi+24] ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â  ed_blur_border_color equ [edi+24] ; border color inactive
ed_text_color equ [edi+28] ;梥â ⥪áâ  ed_text_color equ [edi+28] ; color and font (as in sysfunc 4)
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥á⨠ed_max equ [edi+32] ; chars max
ed_text equ [edi+36] ;㪠§ â¥«ì ­  ¡ãä¥à ed_text equ [edi+36] ; buffer pointer
ed_mouse_variable equ [edi+40] ; 㪠§ â¥«ì ­  ¯¥à¥¬¥­­ãî ¤«ï ¡®ªá /£à㯯ë ed_mouse_variable equ [edi+40] ; pointer
ed_flags equ [edi+44] ;ä« £¨ ed_flags equ [edi+44]
bp_flags equ [ebp+44] ;¢ ­¥ª®â®àëå ¯à®æ¥¤ãà å edi ¨á¯®«ì§ã¥âáï, ¢§ ¬¥­ 㪠§ â¥«ì åà ­¨âìáï ¢ ebp bp_flags equ [ebp+44]
ed_size equ [edi+48] ;ª®«-¢® ᨬ¢®«®¢ ed_size equ [edi+48] ; chars currently
bp_size equ [ebp+48] ;ª®«-¢® ᨬ¢¯®«®¢, ¤«ï  ¤à¥á æ¨¨ ¨á¯«ì§ã¥âáï ebp¡ edi § ­ïâ bp_size equ [ebp+48]
ed_pos equ [edi+52] ;¯®§¨æ¨ï ªãàá®à  ed_pos equ [edi+52] ; carret current position
ed_offset equ [edi+56] ;ᬥ饭¨¥ ed_offset equ [edi+56]
cl_curs_x equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å cl_curs_x equ [edi+60] ; previous cursor X
cl_curs_y equ [edi+64] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã cl_curs_y equ [edi+64] ; previous cursor Y
ed_shift_pos equ [edi+68] ;¯®«®¦¥­¨¥ ªãàá®à  ed_shift_pos equ [edi+68] ; selection current position
ed_shift_pos_old equ [edi+72] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à  ed_shift_pos_old equ [edi+72] ; selection previous position
ed_height equ [edi+76]
ed_char_width equ [edi+80]
ed_struc_size=76 ed_struc_size = 84
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox ;; flags for EditBox ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;
ed_figure_only= 1000000000000000b ;®¤­¨ ᨬ¢®«ë ed_pass = 1 ; password mode
ed_always_focus= 100000000000000b ed_focus = 2 ; active
ed_focus= 10b ;䮪ãá ¯à¨«®¦¥­¨ï ed_shift = 4 ; shift holded
ed_pass= 1b ;¯®«¥ á ¯ à®«¥¬ ed_shift_on = 8 ; selection active
ed_shift_on= 1000b ;¥á«¨ ­¥ ãáâ ­®¢«¥­ -§­ ç¨â ¢¯¥à¢ë¥ ­ ¦ â shift,¥á«¨ ¡ë« ãáâ ­®¢«¥­, §­ ç¨â ¬ë 㦥 çâ® - â® ¤¥« «¨ 㤥ন¢ ï shift ed_shift_bac = 16 ; clear selection
ed_shift_on_off= not (ed_shift_on) ed_left_fl = 32
ed_shift= 100b ;¢ª«îç ¥âáï ¯à¨ ­ ¦ â¨¨ ­  shift â.¥. ¥á«¨ ­ ¦¨¬ î ed_offset_fl = 64
ed_shift_off= not (ed_shift) ed_insert = 128
ed_shift_bac= 10000b ;¡¨â ¤«ï ®ç¨á⪨ ¢ë¤¥«¥­®£® shift â.¥. ¯à¨ ãáâ ­®¢ª¥ £®¢®à¨â çâ® ¥áâì ¢ë¤¥«¥­¨¥ ed_mouse_on = 256
ed_shift_bac_cl= not (ed_shift_bac) ed_ctrl_on = 512
ed_shift_cl= not (ed_shift or ed_shift_bac or ed_shift_on) ed_alt_on = 400h
ed_shift_mcl= not (ed_shift) ed_disabled = 800h
ed_left_fl= 100000b ed_always_focus = 4000h
ed_right_fl= not (ed_left_fl) ed_figure_only = 8000h
ed_offset_fl= 1000000b ed_mous_adn_b = ed_mouse_on or ed_shift_on or ed_shift_bac
ed_offset_cl= not (ed_offset_fl) ed_shift_off = not ed_shift
ed_insert= 10000000b ed_shift_mcl = not ed_shift
ed_insert_cl= not (ed_insert) ed_shift_on_off = not ed_shift_on
ed_mouse_on = 100000000b ed_shift_bac_cl = not ed_shift_bac
ed_mous_adn_b= 100011000b ed_shift_cl = not (ed_shift or ed_shift_on or ed_shift_bac)
ed_mouse_on_off= not (ed_mouse_on) ed_right_fl = not ed_left_fl
ed_ctrl_on = 1000000000b ed_offset_cl = not ed_offset_fl
ed_ctrl_off = not (ed_ctrl_on) ed_insert_cl = not ed_insert
ed_alt_on = 10000000000b ed_mouse_on_off = not ed_mouse_on
ed_alt_off = not (ed_alt_on) ed_ctrl_off = not ed_ctrl_on
ed_disabled= 100000000000b ed_alt_off = not ed_alt_on
ed_height=14 ; ¢ëá®â 
struc edit_box width,left,top,color,shift_color,focus_border_color,\ struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
{ {
.width dd width .width dd width
.left dd left .left dd left
.top dd top .top dd top
.color dd color .color dd color
.shift_color dd shift_color .shift_color dd shift_color
.focus_border_color dd focus_border_color .focus_border_color dd focus_border_color
.blur_border_color dd blur_border_color .blur_border_color dd blur_border_color
.text_color dd text_color .text_color dd text_color
.max dd max .max dd max
.text dd text .text dd text
.mouse_variable dd mouse_variable .mouse_variable dd mouse_variable
.flags dd flags+0 .flags dd flags
.size dd size+0 .size dd size
.pos dd pos+0 .pos dd pos
.offset dd 0 .offset dd 0
.cl_curs_x dd 0 .cl_curs_x dd 0
.cl_curs_y dd 0 .cl_curs_y dd 0
.shift dd 0 .shift dd 0
.shift_old dd 0 .shift_old dd 0
.height dd 0
.char_width dd 0
} }
macro edit_boxes_set_sys_color start,end,color_table macro edit_boxes_set_sys_color start,end,color_table
@ -115,12 +118,12 @@ macro edit_boxes_set_sys_color start,end,color_table
;Basic macros for use CheckBox ; ;Basic macros for use CheckBox ;
;Last change 17.01.2013 ; ;Last change 17.01.2013 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ch_text_margin equ [edi+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ ch_text_margin equ [edi+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
ch_color equ [edi+12] ;梥⠢­ãâਠcheckbox ch_color equ [edi+12] ;梥⠢­ãâਠcheckbox
ch_border_color equ [edi+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮 ch_border_color equ [edi+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
ch_text_color equ [edi+20] ;[edi+4] ;梥â ⥪áâ  ch_text_color equ [edi+20] ;[edi+4] ;梥â ⥪áâ 
ch_text_ptr equ [edi+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ ch_text_ptr equ [edi+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
ch_flags equ [edi+28] ;ä« £¨ ch_flags equ [edi+28] ;ä« £¨
ch_struc_size=36 ;à §¬¥à áâàãªâãàë ch_struc_size=36 ;à §¬¥à áâàãªâãàë
ch_flag_en=10b ;ä« £ ãáâ ­®¢«¥­­®£® 祪 ¡®ªá . ch_flag_en=10b ;ä« £ ãáâ ­®¢«¥­­®£® 祪 ¡®ªá .
@ -130,11 +133,11 @@ ch_flag_bottom=1000b ;䫠
2ch_left_s equ [ebp] ;ª®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å 2ch_left_s equ [ebp] ;ª®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
2ch_top_s equ [ebp+4] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã 2ch_top_s equ [ebp+4] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
2ch_text_margin equ [ebp+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ 2ch_text_margin equ [ebp+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
2ch_color equ [ebp+12] ;梥⠢­ãâਠcheckbox 2ch_color equ [ebp+12] ;梥⠢­ãâਠcheckbox
2ch_border_color equ [ebp+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮 2ch_border_color equ [ebp+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
2ch_text_color equ [ebp+20] ;[edi+4] ;梥â ⥪áâ  2ch_text_color equ [ebp+20] ;[edi+4] ;梥â ⥪áâ 
2ch_text_ptr equ [ebp+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ 2ch_text_ptr equ [ebp+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
2ch_flags equ [ebp+28] ;ä« £¨ 2ch_flags equ [ebp+28] ;ä« £¨
2ch_sz_str equ [ebp+32] ;¤«¨­­  áâப¨, ¢ëç¨á«ï¥âáï ¯à¨ ¨­¨æ¨ «¨§ æ¨¨ ª®¬¯®­¥­â  2ch_sz_str equ [ebp+32] ;¤«¨­­  áâப¨, ¢ëç¨á«ï¥âáï ¯à¨ ¨­¨æ¨ «¨§ æ¨¨ ª®¬¯®­¥­â 
@ -251,12 +254,12 @@ op_flag_en=10b
option_group equ [edi] option_group equ [edi]
op_left equ [edi+4] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å op_left equ [edi+4] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
op_top equ [edi+6] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã op_top equ [edi+6] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
op_text_margin equ [edi+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ op_text_margin equ [edi+8] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
op_size equ [edi+12] ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá  op_size equ [edi+12] ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá 
op_color equ [edi+16] op_color equ [edi+16]
op_border_color equ [edi+20] ; or [edi+4] ;梥â à ¬ª¨ optionbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮 op_border_color equ [edi+20] ; or [edi+4] ;梥â à ¬ª¨ optionbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
op_text_color equ [edi+24];[edi+4] ;梥â ⥪áâ  op_text_color equ [edi+24];[edi+4] ;梥â ⥪áâ 
op_text_ptr equ [edi+28] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ op_text_ptr equ [edi+28] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
op_text_length equ [edi+32] op_text_length equ [edi+32]
op_flags equ [edi+36] ;ä« £¨ op_flags equ [edi+36] ;ä« £¨
@ -502,10 +505,10 @@ PB_FRAME_COLOR equ +40
; *** Frame constants *** ; ; *** Frame constants *** ;
FR_STYLE equ +0 ; Dword FR_STYLE equ +0 ; Dword
FR_WIDTH equ +4 ; Word FR_WIDTH equ +4 ; Word
FR_LEFT equ +6 ; Word FR_LEFT equ +6 ; Word
FR_HEIGHT equ +8 ; Word FR_HEIGHT equ +8 ; Word
FR_TOP equ +10 ; Word FR_TOP equ +10 ; Word
FR_OUTER_COLOR equ +12 ; Dword FR_OUTER_COLOR equ +12 ; Dword
FR_INNER_COLOR equ +16 ; Dword FR_INNER_COLOR equ +16 ; Dword
FR_FLAGS equ +20 ; Dword FR_FLAGS equ +20 ; Dword

File diff suppressed because it is too large Load Diff