forked from KolibriOS/kolibrios
upgrade radiobatton
git-svn-id: svn://kolibrios.org@367 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
d6e3a434c1
commit
ea06a9a084
@ -1,6 +1,7 @@
|
||||
;ª®¬¯®¥â OptionBox (®á®¢ Checkbox)
|
||||
;Ž£à®¬ ï ¡« £®¤ à®áâì Maxxxx32, Diamond, Heavyiron ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
|
||||
;ª®â®àëå ï ¥ ᬮ£ ¡ë ¯¨á âì íâ®â ª®¬¯®¥â.
|
||||
;21.02.2007 ¬®¤¥à¨§ æ¨ï ¨ ¯®¤¤¥à¦ª ¤¢ãå à §ëå ¢ ਠ⮢ á ¨á¯®«ì§®¢ ¨¥¬ á¨á 梥⮢ ¨ áâ ன á奬®©
|
||||
;19.02.2007 ®¡é¥¥ ã«ãç襨¥ ª®¤ , 㬥ì襨¥ à §¬¥à ¨ ¨á¯®«ì§®¢ ¨¥ á¨á⥬ëå 梥⮢ ¤«ï ®â®¡à ¦¥¨ï optionkbox
|
||||
;16.02.2007 ¤ â ᮧ¤ ¨ï ª®¬¯®¥â
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
|
||||
@ -24,6 +25,9 @@ use32 ;
|
||||
;------------------
|
||||
include 'macros.inc'
|
||||
include 'optionbox.inc' ;¢ª«îç¨âì ä ©« opeck.inc
|
||||
|
||||
version_op ;¢ ਠâ, ¯à¨ ª®â®à®¬ ¨á¯®«ì§ãîâáï 梥â , ª®â®àë¥ § ¤ ¥â ¯®«ì§®¢ ⥫ì
|
||||
; version_op1 ;梥⠡¥àãâáï ¨§ á¨á⥬ë
|
||||
use_option_box ;¨á¯®«ì§ãï ¬ ªà®áë,¢¥á⨠¯à®æ¥¤ãàë ¤«ï à¨á®¢ ¨ï optionbox
|
||||
align 16
|
||||
;Ž¡« áâì ª®¤
|
||||
@ -83,6 +87,7 @@ draw_window: ;
|
||||
;”®à¬ â ¤ ëå 祪 ¡®ªá :
|
||||
;10 - ª®®à¤¨ â 祪 ¡®ªá ¯® å
|
||||
;30 - ª®®à¤¨ â 祪 ¡®ªá ¯® ã
|
||||
;0
|
||||
;0 - 梥â à ¬ª¨ 祪 ¡®ªá
|
||||
;0 - 梥â ⥪áâ ¤¯¨á¨
|
||||
;op_text.1 - 㪠§ ⥫ì ç «® áâப¨
|
||||
@ -91,12 +96,21 @@ draw_window: ;
|
||||
;
|
||||
align 16
|
||||
option_boxes:
|
||||
op1 option_box 10,15,op_text.1,op_text.e1-op_text.1,option_group1
|
||||
op2 option_box 10,30,op_text.2,op_text.e2-op_text.2,option_group1
|
||||
op3 option_box 10,45,op_text.3,op_text.e3-op_text.3,option_group1
|
||||
op11 option_box 10,80,op_text.1,op_text.e1-op_text.1,option_group2
|
||||
op12 option_box 10,95,op_text.2,op_text.e2-op_text.2,option_group2
|
||||
op13 option_box 10,110,op_text.3,op_text.e3-op_text.3,option_group2
|
||||
;op1 option_box1 option_group1,10,15,op_text.1,op_text.e1-op_text.1
|
||||
;op2 option_box1 option_group1,10,30,op_text.2,op_text.e2-op_text.2
|
||||
;op3 option_box1 option_group1,10,45,op_text.3,op_text.e3-op_text.3
|
||||
;op11 option_box1 option_group2,10,80,op_text.1,op_text.e1-op_text.1
|
||||
;op12 option_box1 option_group2,10,95,op_text.2,op_text.e2-op_text.2
|
||||
;op13 option_box1 option_group2,10,110,op_text.3,op_text.e3-op_text.3
|
||||
;
|
||||
;struc option_box point_gr,left,top,color,border_color,text_color,text,text_length
|
||||
op1 option_box option_group1,10,15,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
|
||||
op2 option_box option_group1,10,30,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2
|
||||
op3 option_box option_group1,10,45,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
|
||||
op11 option_box option_group2,10,80,0xffffff,0,0,op_text.1,op_text.e1-op_text.1
|
||||
op12 option_box option_group2,10,95,0xffffff,0,0,op_text.2,op_text.e2-op_text.2
|
||||
op13 option_box option_group2,10,110,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
|
||||
|
||||
option_boxes_end:
|
||||
|
||||
op_text: ; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
|
||||
@ -110,6 +124,6 @@ op_text: ;
|
||||
option_group1 dd op1 ;㪠§ ⥫¨, ®¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ¨î, ª®£¤ ¢ë¢®¤¨âáï
|
||||
option_group2 dd op11 ;¯à¨«®¦¥¨¥
|
||||
|
||||
hed db 'Optionbox [19.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥¨ï
|
||||
hed db 'Optionbox [21.02.2007]',0 ;§ £®«®¢®ª ¯à¨«®¦¥¨ï
|
||||
sc system_colors
|
||||
i_end: ;ª®¥æ ª®¤
|
@ -1,67 +1,61 @@
|
||||
;ª®¬¯®¥â OptionBox (Žá®¢ Checkbox)
|
||||
;Ž£à®¬ ï ¡« £®¤ à®áâì Maxxxx32, Diamond, Heavyiron, ¨ ¤à㣨¬ ¯à®£à ¬¬¨áâ ¬, ¨ ¨å ¯à®£à ¬¬ ¬, ¡¥§
|
||||
;ª®â®àëå ï ¥ ᬮ£ ¡ë ¯¨á âì íâ®â ª®¬¯®¥â.
|
||||
;21.02.2007 ¬®¤¥à¨§ æ¨ï ¨ ¯®¤¤¥à¦ª ¤¢ãå à §ëå ¢ ਠ⮢ á ¨á¯®«ì§®¢ ¨¥¬ á¨á 梥⮢ ¨ áâ ன á奬®©
|
||||
;19.02.2007 ®¡é¥¥ ã«ãç襨¥ ª®¤ , 㬥ì襨¥ à §¬¥à ¨ ¨á¯®«ì§®¢ ¨¥ á¨á⥬ëå 梥⮢ ¤«ï ®â®¡à ¦¥¨ï optionkbox
|
||||
;16.02.2007 ¤ â ᮧ¤ ¨ï ª®¬¯®¥â
|
||||
;<Lrz> - ’¥¯«®¢ €«¥ªá¥© www.lrz.land.ru
|
||||
|
||||
macro use_option_box
|
||||
macro version_op ;¤«ï ᮢ¬¥á⨬®á⨠ᮠáâ à묨 ¢¥àá¨ï¬¨ optionbox ¢á¥ 梥⠧ ¤ îâáï àãçª ¬¨
|
||||
{
|
||||
op_text_margin=4 ;à ááâ®ï¨¥ ®â ¯àאַ㣮«ì¨ª 祪 ¡®ªá ¤® ¤¯¨á¨
|
||||
op_size=10 ;à §¬¥à ª¢ ¤à â 祪 ¡®ªá
|
||||
op_left equ [edi] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® å
|
||||
op_top equ [edi+2] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® ã
|
||||
op_struc_size=26
|
||||
option_group equ [edi]
|
||||
op_left equ [edi+4] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® å
|
||||
op_top equ [edi+6] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® ã
|
||||
op_color equ [edi+8]
|
||||
op_border_color equ [edi+12] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦® § ¤ âì á ¬®áâ®ï⥫ì®
|
||||
op_text_color equ [edi+16];[edi+4] ;梥â ⥪áâ
|
||||
op_text_ptr equ [edi+20] ;㪠§ ⥫ì ç «® ⥪á⮢®© áâப¨
|
||||
op_text_length equ [edi+24] ;¤«¨ ¤¯¨á¨ (2^64 â ª®© ¤«¨ë ¬®¦¥â ¡ëâì ⥪áâ)
|
||||
}
|
||||
|
||||
macro version_op1 ;¯à®¤¢¨ãâ ï ¢¥àá¨ï, ¨á¯®«ì§ã¥â 梥â ᪨ .
|
||||
{
|
||||
op_struc_size=14
|
||||
option_group equ [edi]
|
||||
op_left equ [edi+4] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® å
|
||||
op_top equ [edi+6] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® ã
|
||||
op_color equ [sc.work] ;
|
||||
op_border_color equ [sc.work_graph] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦® § ¤ âì á ¬®áâ®ï⥫ì®
|
||||
op_text_color equ [sc.work_text];[edi+4] ;梥â ⥪áâ
|
||||
;op_border_color equ [edi+4] ;梥â à ¬ª¨ optionbox
|
||||
;op_text_color equ [edi+8] ;梥â ⥪áâ
|
||||
op_text_ptr equ [edi+4] ;㪠§ ⥫ì ç «® ⥪á⮢®© áâப¨
|
||||
op_text_length equ [edi+8] ;¤«¨ ¤¯¨á¨ (2^64 â ª®© ¤«¨ë ¬®¦¥â ¡ëâì ⥪áâ)
|
||||
op_optibox_gr equ [edi+10]
|
||||
op_text_ptr equ [edi+8] ;㪠§ ⥫ì ç «® ⥪á⮢®© áâப¨
|
||||
op_text_length equ [edi+12] ;¤«¨ ¤¯¨á¨ (2^64 â ª®© ¤«¨ë ¬®¦¥â ¡ëâì ⥪áâ)
|
||||
}
|
||||
|
||||
|
||||
macro use_option_box
|
||||
{
|
||||
option_box:
|
||||
.draw:
|
||||
pusha ;á®åà ¨¬ ¢á¥ ॣ¨áâàë
|
||||
mov eax,38 ;à¨á®¢ ¨¥ «¨¨¨
|
||||
movzx ebx,word op_left ;¯®«®¦¥¨¥ ¯® å
|
||||
mov ecx,ebx ;á®åà ¨¬ ¢ ॣ¨áâॠcx § 票¥ bx 1 ¬¨ªà®®¯¥à æ¨ï
|
||||
;push bx ;3 - ¬¨ªà®®¯¥à 樨 ¨á¯®«ì§ãï á⥪ ¬®¦® ¢ë¨£à âì ¢ à §¬¥à¥, ¨á¯®«ì§ãï ॣ¨áâàë - ¢ ᪮à®áâ¨
|
||||
shl ebx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536)
|
||||
;pop bx ;2 - ¬¨ªà®®¯¥à 樨 ¤ ë© ¬®¬¥â áä®à¬¨à®¢ [ª®®à¤¨ â ç « ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ç « ¯® ®á¨ x]
|
||||
mov bx,cx ;¢®ááâ ®¢¨¬ § 票¥ bx
|
||||
movzx ecx,word op_top ;§ £à㧨¬ ¢ cx § 票¥ y
|
||||
mov esi,ecx ;á®åà ¨¬ § 票¥ ॣ¨áâà cx ¢ ॣ¨áâà 㪠§ ⥫ì si
|
||||
;push cx
|
||||
shl ecx,16 ; ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536) mov cx,si ;¢®ááâ ®¢¨¬ § 票¥ ॣ¨áâà cx
|
||||
mov cx,si ;¢®ááâ ®¢¨¬ § 票¥ ॣ¨áâà cx
|
||||
;pop cx ;[ª®®à¤¨ â ç « ¯® ®á¨ y]*65536 + [ª®®à¤¨ â ç « ¯® ®á¨ y]
|
||||
;push cx
|
||||
add ecx,op_size ;[ª®®à¤¨ â ç « ¯® ®á¨ y]*65536 + [ª®®à¤¨ â ª®æ ¯® ®á¨ y]
|
||||
mov edx,dword op_border_color ;–¢¥â «¨¨¨
|
||||
int 0x40 ;à¨á®¢ ¨¥ ¢¥à⨪ «ì®© «¥¢®© «¨¨¨ ª¢ ¤à â (¯àאַ㣮«ì¨ª )
|
||||
;
|
||||
mov ebp,ebx ;á®åà ¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë
|
||||
;push bx ;¢â®«ªãâì ¢ bx [ª®®à¤¨ â ç « ¯® ®á¨ å]*65536 + [ª®®à¤¨ â ç « ¯® ®á¨ x]
|
||||
add ebx,op_size ;[ª®®à¤¨ â ç « + ¤«¨ áâ®à®ë ¯® ®á¨ å]
|
||||
ror ebx,16 ;[ª®®à¤¨ â ç « + ¤¨ áâ®à®ë ¯® ®á¨ å]*65536
|
||||
add ebx,op_size ;[ª®®à¤¨ â ç « +¤«¨ áâ®à®ë ¯® ®á¨ å]*65536 + [ª®®à¤¨ â ç « +¤«¨ áâ®à®ë ¯® ®á¨ x]
|
||||
int 0x40
|
||||
|
||||
mov bx,bp ;¢®ááâ ®¢¨¬ § 票¥ ॣ¨áâà bx
|
||||
;pop bx
|
||||
mov cx,si ;á®åà ¨¬ § 票¥ ॣ¨áâà cx ¢ ॣ¨áâà 㪠§ ⥫ì
|
||||
;pop cx
|
||||
int 0x40
|
||||
add ecx,op_size ;¤®¡ ¢¨¬ à §¬¥à áâ®à®ë
|
||||
mov esi,ecx ;á®åà ¨¬ § 票¥ ॣ¨áâà cx ¢ ॣ¨áâà 㪠§ ⥫ì si
|
||||
;push cx
|
||||
op_text_margin=4 ;à ááâ®ï¨¥ ®â ¯àאַ㣮«ì¨ª 祪 ¡®ªá ¤® ¤¯¨á¨
|
||||
op_size=12 ;à §¬¥à ª¢ ¤à â 祪 ¡®ªá
|
||||
mov eax,13
|
||||
mov ebx,op_left
|
||||
shl ebx,16
|
||||
add ebx,op_size
|
||||
mov ecx,op_top
|
||||
shl ecx,16
|
||||
mov cx,si
|
||||
;pop cx
|
||||
int 0x40 ; à¨á®¢ «¨ ¯àאַ㣮«ì¨ª
|
||||
add ecx,op_size
|
||||
mov edx,op_border_color
|
||||
int 0x40 ;à¨á㥬 à ¬ªã
|
||||
|
||||
call .clear_op ;®ç¨á⪠®¡« áâ¨
|
||||
mov edx,op_color
|
||||
add ebx,1 shl 16 - 2
|
||||
add ecx,1 shl 16 - 2
|
||||
int 0x40 ;§ ªà 訢 ¥¬ ¢ãâ८á⨠祪¡®ªá
|
||||
|
||||
mov eax,dword op_optibox_gr
|
||||
mov eax,option_group
|
||||
mov dword eax,[eax]
|
||||
cmp eax,edi
|
||||
jne @f
|
||||
@ -85,24 +79,24 @@ popa ;
|
||||
ret ;¢ë©¤¥¬ ¨§ ¯à®æ¥¤ãàë
|
||||
|
||||
.clear_op: ;®ç¨á⪠祪 ¡®ªá
|
||||
mov edx,dword [sc.work] ;梥⠢ãâਠ祪 ¡®ªá
|
||||
mov edx,op_color ;梥⠢ãâਠ祪 ¡®ªá
|
||||
jmp @f ;¡¥§ãá«®¢ë© ¯à릮ª ¨¦îî ¬¥âªã @@
|
||||
|
||||
.draw_op: ; à¨á®¢ âì ¢ª«îç¥ë© 祪 ¡®ªá
|
||||
|
||||
mov edx,op_border_color ;§ £à㧨âì 梥â
|
||||
@@:
|
||||
movzx ebx,word op_left ;§ £à㧨âì ª®®à¤¨ âã ¯® å
|
||||
add ebx,(op_size/3) ;¤®¡ ¢¨âì (áâ®à® ¯àאַ㣮«ì¨ª /3)
|
||||
add ebx,(op_size/4) ;¤®¡ ¢¨âì (áâ®à® ¯àאַ㣮«ì¨ª /3)
|
||||
shl ebx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536)
|
||||
mov bx,(op_size/2) ;§ £à㧨âì (áâ®à® ¯àאַ㣮«ì¨ª /2)
|
||||
mov bp,bx ;á®åà ¨¬ ॣ¨áâà bx ¢ ॣ¨áâॠ㪠§ â¥«ï ¡ §ë
|
||||
;push bx
|
||||
movzx ecx,word op_top ;§ £à㧨âì ª®®à¤¨ âã ¯® ã
|
||||
mov eax,13 ;¢ eax - § 票ï äãªæ¨¨ ¤«ï ¢ë¢®¤ ¯®«®áë â.¥. ¯® áã⨠¯àאַ㣮«ì¨ª , ª®â®àë© ®â®¡à ¦ ¥â ¢ª«îç¥ë© ª®¬¯®¥â 祪 ¡®ªá
|
||||
add ecx,(op_size/3) ;¤®¡ ¢¨âì (áâ®à® ¯àאַ㣮«ì¨ª /3)
|
||||
add ecx,(op_size/4) ;¤®¡ ¢¨âì (áâ®à® ¯àאַ㣮«ì¨ª /3)
|
||||
shl ecx,16 ;ᤢ¨¥¬ 16 à §à冷¢ ¢ «¥¢® (㬮¦¨¬ 65536)
|
||||
mov cx,bp ;§ £à㧨¬ § 票ï ॣ¨áâà 㪠§ â¥«ï ¡ §ë ¢ cx
|
||||
;pop cx
|
||||
int 0x40 ;¢ë¢®¤
|
||||
ret ;¢ë©â¨ ¨§ ¯à®æ¥¤ãàë
|
||||
|
||||
@ -143,7 +137,7 @@ pusha
|
||||
add ebx,esi ;“ç¥áâì ¢ § 票¨ ¯® å ¥é¥ ¨ ¤«¨ã ¤¯¨á¨ ª 祪¡®ªáã
|
||||
cmp ax,bx ;áâà ¢¨âì ॣ¨áâàë
|
||||
jg .mouse_end ;¥á«¨ ¡®«ìè¥
|
||||
mov eax,dword op_optibox_gr
|
||||
mov eax,option_group
|
||||
mov [eax],edi
|
||||
|
||||
.mouse_end:
|
||||
@ -151,17 +145,26 @@ popa ;
|
||||
ret ;¢ë©â¨
|
||||
}
|
||||
|
||||
struc option_box left,top,text,text_length,point_gr
|
||||
struc option_box1 point_gr,left,top,text,text_length
|
||||
{ ;áâàãªâãà ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá
|
||||
.option_group: dd point_gr ;㪠§ ⥫ì à §¬¥é¥¨¥ edi - ¨¤¥â¨ä¨ª â®à optibox
|
||||
.left: dw left ;+0 ;¯®«®¦¥¨¥ ¯® å
|
||||
.top: dw top ;+2 ;¯®«®¦¥¨¥ ¯® ã
|
||||
;.border_color: dd border_color ;+8 梥â à ¬ª¨
|
||||
;.text_color: dd text_color ;+12 梥â ⥪áâ ¤¯¨á¨
|
||||
.text: dd text ;+16 ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à ᯮ«®¦¥ ⥪áâà
|
||||
.text_length: dw text_length ; +20 ¤«¨ ⥪áâ
|
||||
.option_group: dd point_gr ;㪠§ ⥫ì à §¬¥é¥¨¥ edi - ¨¤¥â¨ä¨ª â®à optibox
|
||||
}
|
||||
op_struc_size=14 ;®¡é ï áâàãªâãà 24 ¡ ©â
|
||||
struc option_box point_gr,left,top,color,border_color,text_color,text,text_length
|
||||
{ ;áâàãªâãà ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá
|
||||
.option_group: dd point_gr ;㪠§ ⥫ì à §¬¥é¥¨¥ edi - ¨¤¥â¨ä¨ª â®à optibox
|
||||
.left: dw left ;+0 ;¯®«®¦¥¨¥ ¯® å
|
||||
.top: dw top ;+2 ;¯®«®¦¥¨¥ ¯® ã
|
||||
.color: dd color
|
||||
.border_color: dd border_color; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦® § ¤ âì á ¬®áâ®ï⥫ì®
|
||||
.text_color: dd text_color;[edi+4] ;梥â ⥪áâ
|
||||
.text: dd text ;+16 ¤à¥á ¢ ª®¤¥ ¯à®£à ¬¬ë £¤¥ à ᯮ«®¦¥ ⥪áâà
|
||||
.text_length: dw text_length ; +20 ¤«¨ ⥪áâ
|
||||
}
|
||||
|
||||
op_flag_en=10b
|
||||
macro draw_option_boxes start,end ;à¨á®¢ âì 祪 ¡®ªáë
|
||||
{
|
||||
@ -185,7 +188,7 @@ macro mouse_option_boxes start,end ;
|
||||
mov ecx,((end-start)/op_struc_size) ;Š®«¨ç¥á⢮ 祪 ¡®ªá®¢
|
||||
|
||||
.home:
|
||||
mov eax,[edi+10] ;op_optibox_gr
|
||||
mov eax,[edi] ;op_optibox_gr
|
||||
mov dword eax,[eax]
|
||||
|
||||
pusha
|
||||
|
Loading…
Reference in New Issue
Block a user