git-svn-id: svn://kolibrios.org@1640 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov ( 2010-10-03 17:24:53 +00:00
parent e32fd4f0e3
commit abbc09c677
2 changed files with 60 additions and 58 deletions

View File

@ -103,21 +103,20 @@ macro edit_boxes_set_sys_color start,end,color_table
} }
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use CheckBox ; ;Basic macros for use CheckBox ;
;Last change 25.09.2010
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ch_struc_size=36 ;à §¬¥à áâàãªâãàë ch_struc_size=36
ch_flag_en=10b ;ä« £ ãáâ ­®¢«¥­­®£® 祪 ¡®ªá . ch_flag_en=10b ;í«¥¬¥­â ¢ë¡à ­
ch_left equ [ebp] ;ª®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å ch_left equ [edi] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® å
ch_top equ [ebp+2] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã ch_top equ [edi+2] ;ª®®à¤¨­ â  ­ ç «  à¨á®¢ ­¨ï ¯® ã
ch_text_margin equ [ebp+4] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨ ch_text_margin equ [edi+4] ;=4 à ááâ®ï­¨¥ ®â ¯àאַ㣮«ì­¨ª  祪 ¡®ªá  ¤® ­ ¤¯¨á¨
ch_size equ [ebp+8] ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá  ch_size equ [edi+8] ;12 à §¬¥à ª¢ ¤à â  祪 ¡®ªá 
ch_color equ [ebp+12] ;梥⠢­ãâਠcheckbox ch_color equ [edi+12] ;梥⠢­ãâਠcheckbox
ch_border_color equ [ebp+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮 ch_border_color equ [edi+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦­® § ¤ âì á ¬®áâ®ï⥫쭮
ch_text_color equ [ebp+20] ;[edi+4] ;梥â ⥪áâ  ch_text_color equ [edi+20] ;[edi+4] ;梥â ⥪áâ 
ch_text_ptr equ [ebp+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨ ch_text_ptr equ [edi+24] ;㪠§ â¥«ì ­  ­ ç «® ⥪á⮢®© áâப¨
ch_text_length equ [ebp+28] ;¤«¨­­  áâப¨ ch_text_length equ [edi+28]
ch_flags equ [ebp+32] ;ä« £¨ 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 struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags
{ ;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá  { ;áâàãªâãà  ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá 
@ -139,6 +138,8 @@ macro check_boxes_set_sys_color start,end,color_table
mov ecx,((end-start)/ch_struc_size) mov ecx,((end-start)/ch_struc_size)
mov esi,color_table mov esi,color_table
@@: @@:
; push dword [esi+20] ;梥â à ¡®ç¥© ®¡« á⨠®ª­ 
; pop dword ch_color
push dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­  push dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­ 
pop dword ch_text_color pop dword ch_text_color
push dword [esi+36] ;梥⠣à ä¨ª¨ ¢ ®ª­¥ (à §¤¥«¨â¥«ì­ë¥ «¨­¨¨ ¨ â.¯.) push dword [esi+36] ;梥⠣à ä¨ª¨ ¢ ®ª­¥ (à §¤¥«¨â¥«ì­ë¥ «¨­¨¨ ¨ â.¯.)

View File

@ -31,7 +31,7 @@ check_box_draw:
;---------------------------- ;----------------------------
movzx ebx,word ch_left ;загрузить значение х для чек бокса movzx ebx,word ch_left ;загрузить значение х для чек бокса
add ebx,dword ch_size add ebx,dword ch_size
add ebx,dword ch_text_margin ;добавить размер стороны и расстояние на котором начнется вывод текста add ebx,dword ch_text_margin;добавить размер стороны и расстояние на котором начнется вывод текста
shl ebx,16 ;сдвинем на 16 разрядов в лево (умножим на 65536) shl ebx,16 ;сдвинем на 16 разрядов в лево (умножим на 65536)
mov bx,word ch_top ;загрузим значение по y mov bx,word ch_top ;загрузим значение по y
add ebx,ch_size add ebx,ch_size
@ -40,10 +40,11 @@ check_box_draw:
mov edx,dword ch_text_ptr ;укажем адрес от куда нужно выводить строку mov edx,dword ch_text_ptr ;укажем адрес от куда нужно выводить строку
mov esi,dword ch_text_length mov esi,dword ch_text_length
mov eax,4 ;внесем в eax значение вывода надписи на канву ;внесем в eax значение вывода надписи на канву
mov eax,4
mcall ;Вывод mcall ;Вывод
popa ;восстановить значения регистров из стека popa ;восстановить значения регистров из стека
ret 4 ;выйдем из процедуры ret 4 ;выйдем из процедуры
check_box_clear_ch: ;очистка чек бокса check_box_clear_ch: ;очистка чек бокса
mov edx,dword ch_color ;цвет внутри чек бокса mov edx,dword ch_color ;цвет внутри чек бокса
@ -53,7 +54,7 @@ check_box_draw_ch: ;
@@: @@:
movzx ebx,word ch_left ;загрузить координату по х movzx ebx,word ch_left ;загрузить координату по х
mov eax,dword ch_size mov eax,dword ch_size
mov di,ax mov bp,ax
shr eax,2 shr eax,2
push ax push ax