upgrade component optionbox

git-svn-id: svn://kolibrios.org@362 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov ( 2007-02-19 07:08:33 +00:00
parent 77a1a73554
commit 8df9a500b6
2 changed files with 28 additions and 39 deletions

View File

@ -1,7 +1,8 @@
;ª®¬¯®­¥­â OptionBox (®á­®¢ ­ ­  Checkbox) ;ª®¬¯®­¥­â OptionBox (®á­®¢ ­ ­  Checkbox)
;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§ ;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â. ;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â.
;16.02.2007 ;19.02.2007 ®¡é¥¥ ã«ãç襭¨¥ ª®¤ , 㬥­ì襭¨¥ à §¬¥à  ¨ ¨á¯®«ì§®¢ ­¨¥ á¨á⥬­ëå 梥⮢ ¤«ï ®â®¡à ¦¥­¨ï optionkbox
;16.02.2007 ¤ â  ᮧ¤ ­¨ï ª®¬¯®­¥­â 
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
;§ £®«®¢®ª ¯à¨«®¦¥­¨ï ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
@ -22,7 +23,7 @@ use32 ;
; ®âªã¤  § ¯ã饭® ¯à¨«®¦¥­¨¥ ; ®âªã¤  § ¯ã饭® ¯à¨«®¦¥­¨¥
;------------------ ;------------------
include 'macros.inc' include 'macros.inc'
include 'optionbox.inc' ;¢ª«îç¨âì ä ©« check.inc include 'optionbox.inc' ;¢ª«îç¨âì ä ©« opeck.inc
use_option_box ;¨á¯®«ì§ãï ¬ ªà®áë,¢­¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ­¨ï optionbox use_option_box ;¨á¯®«ì§ãï ¬ ªà®áë,¢­¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ­¨ï optionbox
align 16 align 16
;Ž¡« áâì ª®¤  ;Ž¡« áâì ª®¤ 
@ -86,19 +87,19 @@ draw_window: ;
;0 - 梥â ⥪áâ  ­ ¤¯¨á¨ ;0 - 梥â ⥪áâ  ­ ¤¯¨á¨
;op_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨ ;op_text.1 - 㪠§ â¥«ì ­  ­ ç «® áâப¨
;option_group1 - íâ® ¯à¨§­ ª £à㯯ë, â.¥. íâ®â ª®¤ ¬®¦¥â ®¡à ¡ â뢠âì ¬­®£® £à㯯 ¨§ optibox ;option_group1 - íâ® ¯à¨§­ ª £à㯯ë, â.¥. íâ®â ª®¤ ¬®¦¥â ®¡à ¡ â뢠âì ¬­®£® £à㯯 ¨§ optibox
;op_text.e1-ch_text.1 - ¤«¨­  áâப¨ ;op_text.e1-op_text.1 - ¤«¨­  áâப¨
; ;
align 16 align 16
option_boxes: option_boxes:
op1 option_box 10,15,0,0,ch_text.1,ch_text.e1-ch_text.1,option_group1 op1 option_box 10,15,op_text.1,op_text.e1-op_text.1,option_group1
op2 option_box 10,30,0,0,ch_text.2,ch_text.e2-ch_text.2,option_group1 op2 option_box 10,30,op_text.2,op_text.e2-op_text.2,option_group1
op3 option_box 10,45,0,0,ch_text.3,ch_text.e3-ch_text.3,option_group1 op3 option_box 10,45,op_text.3,op_text.e3-op_text.3,option_group1
op11 option_box 10,80,0,0,ch_text.1,ch_text.e1-ch_text.1,option_group2 op11 option_box 10,80,op_text.1,op_text.e1-op_text.1,option_group2
op12 option_box 10,95,0,0,ch_text.2,ch_text.e2-ch_text.2,option_group2 op12 option_box 10,95,op_text.2,op_text.e2-op_text.2,option_group2
op13 option_box 10,110,0,0,ch_text.3,ch_text.e3-ch_text.3,option_group2 op13 option_box 10,110,op_text.3,op_text.e3-op_text.3,option_group2
option_boxes_end: option_boxes_end:
ch_text: ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢ op_text: ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
.1 db 'Option_Box #1' .1 db 'Option_Box #1'
.e1: .e1:
.2 db 'Option_Box #2' .2 db 'Option_Box #2'
@ -109,7 +110,6 @@ ch_text: ;
option_group1 dd op1 ;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï option_group1 dd op1 ;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï
option_group2 dd op11 ;¯à¨«®¦¥­¨¥ option_group2 dd op11 ;¯à¨«®¦¥­¨¥
hed db 'Optionbox [16.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï hed db 'Optionbox [19.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥­¨ï
sc system_colors sc system_colors
i_end: ;ª®­¥æ ª®¤  i_end: ;ª®­¥æ ª®¤ 

View File

@ -1,7 +1,8 @@
;ª®¬¯®­¥­â OptionBox (Žá­®¢ ­ ­  Checkbox) ;ª®¬¯®­¥­â OptionBox (Žá­®¢ ­ ­  Checkbox)
;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron, ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§ ;Ž£à®¬­ ï ¡« £®¤ à­®áâì Maxxxx32, Diamond, Heavyiron, ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â. ;ª®â®àëå ï ­¥ ᬮ£ ¡ë ­ ¯¨á âì íâ®â ª®¬¯®­¥­â.
;16.02.2007 ;19.02.2007 ®¡é¥¥ ã«ãç襭¨¥ ª®¤ , 㬥­ì襭¨¥ à §¬¥à  ¨ ¨á¯®«ì§®¢ ­¨¥ á¨á⥬­ëå 梥⮢ ¤«ï ®â®¡à ¦¥­¨ï optionkbox
;16.02.2007 ¤ â  ᮧ¤ ­¨ï ª®¬¯®­¥­â 
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru ;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
macro use_option_box macro use_option_box
@ -10,11 +11,13 @@ op_text_margin=4 ;
op_size=10 ;à §¬¥à ª¢ ¤à â  祪 ¡®ªá  op_size=10 ;à §¬¥à ª¢ ¤à â  祪 ¡®ªá 
op_left equ [edi] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å op_left equ [edi] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
op_top equ [edi+2] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã op_top equ [edi+2] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
op_border_color equ [edi+4] ;梥â à ¬ª¨ optionbox op_border_color equ [sc.work_graph] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
op_text_color equ [edi+8] ;梥â ⥪áâ  op_text_color equ [sc.work_text];[edi+4] ;梥â ⥪áâ 
op_text_ptr equ [edi+12] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ ;op_border_color equ [edi+4] ;梥â à ¬ª¨ optionbox
op_text_length equ [edi+16] ;¤«¨­  ­ ¤¯¨á¨ (2^64 â ª®© ¤«¨­ë ¬®¦¥â ¡ëâì ⥪áâ) ;op_text_color equ [edi+8] ;梥â ⥪áâ 
op_optibox_gr equ [edi+18] op_text_ptr equ [edi+4] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
op_text_length equ [edi+8] ;¤«¨­  ­ ¤¯¨á¨ (2^64 â ª®© ¤«¨­ë ¬®¦¥â ¡ëâì ⥪áâ)
op_optibox_gr equ [edi+10]
option_box: option_box:
.draw: .draw:
pusha ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë pusha ;á®åà ­¨¬ ¢á¥ ॣ¨áâàë
@ -56,21 +59,7 @@ pusha ;
;pop cx ;pop cx
int 0x40 ;­ à¨á®¢ «¨ ¯àאַ㣮«ì­¨ª int 0x40 ;­ à¨á®¢ «¨ ¯àאַ㣮«ì­¨ª
mov eax,13 ;§ ªà è¨¢ ¥¬ ¥£®. ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯®«®áã call .clear_op ;®ç¨á⪠ ®¡« áâ¨
movzx ebx,word op_left ;§ £à㧨âì ¢ bx, ¯®«®¦¥­¨¥ ¯® å
add ebx,1 ;ᤢ¨­¥¬ ­  1 â.¥. ¯à¨¡ ¢¨¬ 1 ¨­ ç¥ § âà¥âáï à ¬ª 
shl ebx,16 ;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
mov bx,op_size ;¯à¨¡ ¢¨¬ ¤«¨­ã áâ®à®­ë ¯àאַ㣮«ì­¨ª 
sub ebx,1 ;¢ëç⥬ 1 â.ª. ¨­ ç¥ § âà¥âáï à ¬ª 
mov bp,bx ;á®åà ­¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë
;push bx
movzx ecx,word op_top ;§ £à㧨¬ ª®®à¤¨­ âë ¯® y
add ecx,1 ;ᤢ¨­¥¬ ­  1 â.¥. ¯à¨¡ ¢¨¬ 1 ¨­ ç¥ § âà¥âáï à ¬ª 
shl ecx,16 ;ᤢ¨­¥¬ ­  16 à §à冷¢ ¢ «¥¢® (㬭®¦¨¬ ­  65536)
mov cx,bp ;¢®ááâ ­®¢¨¬ §­ ç¥­¨¥ ॣ¨áâà  cx
;pop cx
mov edx,dword [sc.work] ;§ £à㧨¬ 梥⠯®«®áë
int 0x40 ;§ ªà á¨«¨
mov eax,dword op_optibox_gr mov eax,dword op_optibox_gr
mov dword eax,[eax] mov dword eax,[eax]
@ -162,17 +151,17 @@ popa ;
ret ;¢ë©â¨ ret ;¢ë©â¨
} }
struc option_box left,top,border_color,text_color,text,text_length,point_gr,flags struc option_box left,top,text,text_length,point_gr
{ ;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá  { ;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá 
.left: dw left ;+0 ;¯®«®¦¥­¨¥ ¯® å .left: dw left ;+0 ;¯®«®¦¥­¨¥ ¯® å
.top: dw top ;+2 ;¯®«®¦¥­¨¥ ¯® ã .top: dw top ;+2 ;¯®«®¦¥­¨¥ ¯® ã
.border_color: dd border_color ;+8 梥â à ¬ª¨ ;.border_color: dd border_color ;+8 梥â à ¬ª¨
.text_color: dd text_color ;+12 梥â ⥪áâ  ­ ¤¯¨á¨ ;.text_color: dd text_color ;+12 梥â ⥪áâ  ­ ¤¯¨á¨
.text: dd text ;+16  ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à á¯®«®¦¥­ ⥪áâà .text: dd text ;+16  ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à á¯®«®¦¥­ ⥪áâà
.text_length: dw text_length ; +20 ¤«¨­  ⥪áâ  .text_length: dw text_length ; +20 ¤«¨­  ⥪áâ 
.option_group: dd point_gr ;㪠§ â¥«ì ­  à §¬¥é¥­¨¥ edi - ¨¤¥­â¨ä¨ª â®à  optibox .option_group: dd point_gr ;㪠§ â¥«ì ­  à §¬¥é¥­¨¥ edi - ¨¤¥­â¨ä¨ª â®à  optibox
} }
op_struc_size=22 ;®¡é ï áâàãªâãà  24 ¡ ©â op_struc_size=14 ;®¡é ï áâàãªâãà  24 ¡ ©â
op_flag_en=10b op_flag_en=10b
macro draw_option_boxes start,end ;à¨á®¢ âì 祪 ¡®ªáë macro draw_option_boxes start,end ;à¨á®¢ âì 祪 ¡®ªáë
{ {
@ -196,7 +185,7 @@ macro mouse_option_boxes start,end ;
mov ecx,((end-start)/op_struc_size) ;Š®«¨ç¥á⢮ 祪 ¡®ªá®¢ mov ecx,((end-start)/op_struc_size) ;Š®«¨ç¥á⢮ 祪 ¡®ªá®¢
.home: .home:
mov eax,[edi+18] ;op_optibox_gr mov eax,[edi+10] ;op_optibox_gr
mov dword eax,[eax] mov dword eax,[eax]
pusha pusha