Screenshoot use new version checkbox.

git-svn-id: svn://kolibrios.org@1685 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov ( 2010-11-03 07:48:27 +00:00
parent 1d27ab3331
commit c47985823d
5 changed files with 169 additions and 85 deletions

View File

@ -189,7 +189,7 @@ macro init_checkboxes2 start,end
mov ecx,((end-start)/ch_struc_size) mov ecx,((end-start)/ch_struc_size)
@@: @@:
push ebp ;㪠§ â¥«ì ­  ¯¥à¢ë© checkbox push ebp ;㪠§ â¥«ì ­  ¯¥à¢ë© checkbox
call [init_checkbox2] ;¬ ªà®á ¯à®¢¥àª¨ ¬ë誨 ­ ¤ checkbox'®¬ call [init_checkbox] ;¬ ªà®á ¯à®¢¥àª¨ ¬ë誨 ­ ¤ checkbox'®¬
add ebp,ch_struc_size add ebp,ch_struc_size
loop @b loop @b
} }
@ -201,7 +201,7 @@ macro checkboxes_mouse2 start,end
mov ecx,((end-start)/ch_struc_size) mov ecx,((end-start)/ch_struc_size)
@@: @@:
push ebp ;㪠§ â¥«ì ­  ¯¥à¢ë© checkbox push ebp ;㪠§ â¥«ì ­  ¯¥à¢ë© checkbox
call [check_box_mouse2] ;­ à¨á®¢ âì checkbox call [check_box_mouse] ;­ à¨á®¢ âì checkbox
add ebp,ch_struc_size add ebp,ch_struc_size
loop @b loop @b
} }
@ -213,7 +213,7 @@ macro checkboxes_draw2 start,end
mov ecx,((end-start)/ch_struc_size) mov ecx,((end-start)/ch_struc_size)
@@: @@:
push ebp ;㪠§ â¥«ì ­  ¯¥à¢ë© checkbox push ebp ;㪠§ â¥«ì ­  ¯¥à¢ë© checkbox
call [check_box_draw2] ;­ à¨á®¢ âì checkbox call [check_box_draw] ;­ à¨á®¢ âì checkbox
add ebp,ch_struc_size add ebp,ch_struc_size
loop @b loop @b
} }
@ -225,9 +225,10 @@ macro check_boxes_set_sys_color2 start,end,color_table
mov esi,color_table mov esi,color_table
@@: @@:
push dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­  push dword [esi+32] ;梥â ⥪áâ  ¢ à ¡®ç¥© ®¡« á⨠®ª­ 
pop dword ch_text_color or dword [esp],0x80000000 ;­¥®¡å®¤¨¬® ¤«ï ¢ë¢®¤  ASCIIZ áâப
pop dword 2ch_text_color
push dword [esi+36] ;梥⠣à ä¨ª¨ ¢ ®ª­¥ (à §¤¥«¨â¥«ì­ë¥ «¨­¨¨ ¨ â.¯.) push dword [esi+36] ;梥⠣à ä¨ª¨ ¢ ®ª­¥ (à §¤¥«¨â¥«ì­ë¥ «¨­¨¨ ¨ â.¯.)
pop dword ch_border_color pop dword 2ch_border_color
add ebp,ch_struc_size add ebp,ch_struc_size
loop @b loop @b
} }

View File

@ -8,6 +8,16 @@
<p><a href="../box_lib.htm">Íŕ ăëŕâíóţ &uarr;</a></p> <p><a href="../box_lib.htm">Íŕ ăëŕâíóţ &uarr;</a></p>
<h1>Îăëŕâëĺíčĺ</h1> <h1>Îăëŕâëĺíčĺ</h1>
<p><a href="#vveden">Ââĺäĺíčĺ</a></p> <p><a href="#vveden">Ââĺäĺíčĺ</a></p>
<p><a href="#version2">Version 2</a></p>
<p><a href="#funct2">Функции 2</a></p>
<ul>
<li><a href="#fun_init2">init_checkbox2</a></li>
<li><a href="#fun_draw2">check_box_draw2</a></li>
<li><a href="#fun_mouse2">check_box_mouse2</a></li>
<li><a href="#version_ch2">version_ch2</a></li>
</ul>
<br>
<p><a href="#version1">Version 1</a></p>
<p><a href="#funct">Ôóíęöčč</a></p> <p><a href="#funct">Ôóíęöčč</a></p>
<ul> <ul>
<li><a href="#fun_draw">check_box_draw</a></li> <li><a href="#fun_draw">check_box_draw</a></li>
@ -18,8 +28,63 @@
<p><a href="#checkbox_styles">Ńňčëč ýëĺěĺíňŕ</a></p> <p><a href="#checkbox_styles">Ńňčëč ýëĺěĺíňŕ</a></p>
<h1><a name="vveden">Ââĺäĺíčĺ</a></h1> <h1><a name="vveden">Ââĺäĺíčĺ</a></h1>
<p>Флажок, используется при вводе логической информации.</p> <p>Checkbox предназначен для установки, снятия флага активности процесса. Часто
используется для включения / выключения тех или иных функций.</p>
<h1><a name="version2">Checkbox version 2</a></h1>
<p>Version 2 была разработана в 2010 году и является переработанной и оптимизированной версией. Основные отличия от версии 1:</p>
<ul>
<li>Поддержка ASCIIZ строк.</li>
<li>Появился код инициализации бокса, что уменьшает задержки при обработки событий мышки.</li>
<li>Оптимизированна структура компонента, при неизменном размере.</li>
<li>Написаны макросы, которые позволяют работать с группами checkbox.</li>
</ul>
<h1><a name="funct2">Функции2</a></h1>
<h2><a name="fun_init2">init_checkbox2</a></h2>
<p>Эта функция должна вызыватся при инициализации приложения, фактически она считает колличество символов в стоке для вывода. Если не нужно выводить подписи к checkbox, то ее можно не вызывать.</p>
<h2><a name="fun_draw2">check_box_draw2</a></h2>
<p>Эта функция должна вызыватся при вводе информации с клавиатуры.</p>
<h2><a name="fun_mouse2">check_box_mouse2</a></h2>
<p>Эта функция должна вызыватся при вводе информации с мыши.</p>
<h2><a name="version_ch2">version_ch2</a></h2>
<p>Версия элемента</p>
<h1><a name="struc_checkbox2">Структура checkbox2</a></h1>
<pre>struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags
{ ;структура параметров для чек бокса
.left_s: dd left_s ;+0 положение по х dw + размер dw
.top_s: dd top_s ;+4 положение по у dw + размер dw
.ch_text_margin: dd ch_text_margin ;расстояние от прямоугольника чек бокса до надписи
.color: dd color ;цвет внутри чекбокса
.border_color: dd border_color ;цвет рамки
.text_color: dd text_color ;цвет надписи должен быть в формате цвет or 0x80000000, это для отображения ASCIIZ строк.
.text: dd text ;адрес в коде программы где расположен текст
.flags: dd flags+0 ;флаги
.size_of_str: dd 0x0 ;длинна строки, вычисляется при инициализации компонента
}
</pre>
<p><b>left_s</b> - отступ слева + длинна в формате (положение по x * 65536 +длинна по х).</p>
<p><b>top</b> - отступ сверху + длинна по y (положение по y* 65536 +длинна по y).</p>
<p><b>ch_text_margin</b> - расстояние от прямоугольника чек бокса до надписи.</p>
<p><b>color</b> - цвет внутри чекбокса.</p>
<h1><a name="checkbox_styles">Стили элемента</a></h1>
<pre>
ch_flag_en = 10b ;флаг установленного чек бокса.
ch_flag_top = 0x0 ;флаг расположения текста вверху т.е. 3-й бит
ch_flag_middle = 100b ;флаг расположения текста в центре т.е. 4-й бит.
ch_flag_bottom = 1000b ;флаг расположения текста в низу т.е. по умолчанию принимается значение внизу т.е. отсуствие 3-го и 4-го бита
</pre>
<h1><a name="version1">Checkbox version 1</a></h1>
<p>Version 1 была разработана в 2007-2009 годах.</p>
<h1><a name="funct">Ôóíęöčč</a></h1> <h1><a name="funct">Ôóíęöčč</a></h1>
<h2><a name="fun_draw">check_box_draw</a></h2> <h2><a name="fun_draw">check_box_draw</a></h2>

View File

@ -12,6 +12,7 @@
; 24.07.2008 <Lrz> ®¡­®¢«¥­ editbox ; 24.07.2008 <Lrz> ®¡­®¢«¥­ editbox
; 01.02.07 - ®¡­®¢«ñ­ editbox ; 01.02.07 - ®¡­®¢«ñ­ editbox
; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« á⨠; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
; 02.11.10 - ˆá¯®«ì§ã¥âáï checkbox ¢¥àᨨ 2
title equ 'Screenshooter v 1.0' ; ‡ £®«®¢®ª ®ª­  title equ 'Screenshooter v 1.0' ; ‡ £®«®¢®ª ®ª­ 
include '../../develop/libraries/box_lib/load_lib.mac' include '../../develop/libraries/box_lib/load_lib.mac'
@ -140,6 +141,8 @@ load_libraries l_libs_start,end_l_libs
; ãáâ ­ ¢«¨¢ ¥¬ ¬ áªã ᮡë⨩ ; ãáâ ­ ¢«¨¢ ¥¬ ¬ áªã ᮡë⨩
set_events_mask (evm_redraw+evm_key+evm_button+evm_mouse+evm_ipc) set_events_mask (evm_redraw+evm_key+evm_button+evm_mouse+evm_ipc)
;¨­¨æ¨ «¨§ æ¨ï checkboxes
init_checkboxes2 check_boxes,check_boxes_end
; á ¯à룠¥¬ ¯à¨ ª ¦¤®© ¯¥à¥à¨á®¢ª¥ ; á ¯à룠¥¬ ¯à¨ ª ¦¤®© ¯¥à¥à¨á®¢ª¥
red: red:
@ -149,7 +152,8 @@ red:
; ãáâ ­ ¢«¨¢ ¥¬ á¨á⥬­ë¥ æ¢¥â  ã GUI ª®¬¯®­¥­â®¢ ; ãáâ ­ ¢«¨¢ ¥¬ á¨á⥬­ë¥ æ¢¥â  ã GUI ª®¬¯®­¥­â®¢
txt_but_set_sys_color buttons,buttons_end,sc ; \ txt_but_set_sys_color buttons,buttons_end,sc ; \
labels_set_sys_color labels,labels_end,sc ; | labels_set_sys_color labels,labels_end,sc ; |
check_boxes_set_sys_color check_boxes,check_boxes_end,sc ; | check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc; |
; check_boxes_set_sys_color check_boxes,check_boxes_end,sc ; |
edit_boxes_set_sys_color editboxes,editboxes_end,sc ; / edit_boxes_set_sys_color editboxes,editboxes_end,sc ; /
get_screen_prop scr ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ®¡ íªà ­¥ get_screen_prop scr ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ®¡ íªà ­¥
@ -202,20 +206,21 @@ mouse:
push dword edit4 push dword edit4
call [edit_box_mouse] call [edit_box_mouse]
;---------------------------------- ;----------------------------------
push dword ch1 checkboxes_mouse2 check_boxes,check_boxes_end
call [check_box_mouse] ; push dword ch1
push dword ch2 ; call [check_box_mouse]
call [check_box_mouse] ; push dword ch2
push dword ch3 ; call [check_box_mouse]
call [check_box_mouse] ; push dword ch3
push dword ch4 ; call [check_box_mouse]
call [check_box_mouse] ; push dword ch4
push dword ch5 ; call [check_box_mouse]
call [check_box_mouse] ; push dword ch5
push dword ch6 ; call [check_box_mouse]
call [check_box_mouse] ; push dword ch6
push dword use_rect ; call [check_box_mouse]
call [check_box_mouse] ; push dword use_rect
; call [check_box_mouse]
;----------------------------------- ;-----------------------------------
; mouse_check_boxes check_boxes,check_boxes_end ; mouse_check_boxes check_boxes,check_boxes_end
; mouse_edit_boxes editboxes,editboxes_end ; mouse_edit_boxes editboxes,editboxes_end
@ -331,20 +336,23 @@ start_draw_window ;
draw_txt_buttons buttons,buttons_end ; ª­®¯ª¨ draw_txt_buttons buttons,buttons_end ; ª­®¯ª¨
; draw_check_boxes check_boxes,check_boxes_end ; ä« ¦ª¨ ; draw_check_boxes check_boxes,check_boxes_end ; ä« ¦ª¨
;------ check all checkbox --------- ;------ check all checkbox ---------
push dword ch1 ; push dword ch1
call [check_box_draw] ; call [check_box_draw]
push dword ch2 ; push dword ch2
call [check_box_draw] ; call [check_box_draw]
push dword ch3 ; push dword ch3
call [check_box_draw] ; call [check_box_draw]
push dword ch4 ; push dword ch4
call [check_box_draw] ; call [check_box_draw]
push dword ch5 ; push dword ch5
call [check_box_draw] ; call [check_box_draw]
push dword ch6 ; push dword ch6
call [check_box_draw] ; call [check_box_draw]
push dword use_rect ; push dword use_rect
call [check_box_draw] ; call [check_box_draw]
checkboxes_draw2 check_boxes,check_boxes_end
;------ end check all checkbox ------ ;------ end check all checkbox ------
stop_draw_window ; ª®­¥æ ¯¥à¥à¨á®¢ª¨ stop_draw_window ; ª®­¥æ ¯¥à¥à¨á®¢ª¨
@ -740,13 +748,13 @@ but7 txt_button 40,205,10,150,8,0,0,but_text.7,show_set_rect_window ;
buttons_end: buttons_end:
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
check_boxes: check_boxes:
ch1 check_box 5,105,5,11,cl_white,0,0,ch_text.1,(ch_text.2-ch_text.1),ch_flag_en ; ᢥà­ãâì ®ª­® ch1 check_box2 (5 shl 16+11),(105 shl 16 +11),5,cl_white,0,0x80000000,ch_text.1,ch_flag_en+ch_flag_bottom ; ᢥà­ãâì ®ª­®
ch2 check_box 5,120,5,11,cl_white,0,0,ch_text.2,(ch_text.3-ch_text.2),ch_flag_en ; § â¥¬ ᤥ« âì  ªâ¨¢­ë¬ ch2 check_box2 (5 shl 16+11),(120 shl 16 +11),5,cl_white,0,0x80000000,ch_text.2,ch_flag_en+ch_flag_bottom ; § â¥¬ ᤥ« âì  ªâ¨¢­ë¬
ch3 check_box 145,105,5,11,cl_white,0,0,ch_text.3,(ch_text.4-ch_text.3),ch_flag_en ; ¯®ª § âì á­¨¬®ª ch3 check_box2 (1455 shl 16+11),(105 shl 16 +11),5,cl_white,0,0x80000000,ch_text.3,ch_flag_en+ch_flag_bottom ; ¯®ª § âì á­¨¬®ª
ch4 check_box 5,135,5,11,cl_white,0,0,ch_text.4,(ch_text.5-ch_text.4),ch_flag_en ; § ¤¥à¦ª  ch4 check_box2 (5 shl 16+11),(135 shl 16 +11),5,cl_white,0,0x80000000,ch_text.4,ch_flag_en+ch_flag_bottom ; § ¤¥à¦ª 
ch5 check_box 5,150,5,11,cl_white,0,0,ch_text.5,(ch_text.6-ch_text.5),ch_flag_en ch5 check_box2 (5 shl 16+11),(150 shl 16 +11),5,cl_white,0,0x80000000,ch_text.5,ch_flag_en+ch_flag_bottom
ch6 check_box 5,165,5,11,cl_white,0,0,ch_text.6,(ch_text.7-ch_text.6),ch_flag_en ch6 check_box2 (5 shl 16+11),(165 shl 16 +11),5,cl_white,0,0x80000000,ch_text.6,ch_flag_en+ch_flag_bottom
use_rect check_box 145,150,5,11,cl_white,0,0,ch_text.7,(ch_text.8-ch_text.7) ; ¨á¯. ®¡« áâì use_rect check_box2 (145 shl 16+11),(150 shl 16 +11),5,cl_white,0,0x80000000,ch_text.7,ch_flag_bottom ; ¨á¯. ®¡« áâì
;  ¢â®­ã¬¥à æ¨ï ;  ¢â®­ã¬¥à æ¨ï
check_boxes_end: check_boxes_end:
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
@ -773,14 +781,13 @@ but_text:
.7 db '§ ¤ âì',0 .7 db '§ ¤ âì',0
ch_text: ch_text:
.1 db '‘¢¥à­ãâì ®ª­®';,0 .1 db '‘¢¥à­ãâì ®ª­®',0
.2 db '<27>®ª § âì á­¨¬®ª';,0 .2 db '<27>®ª § âì á­¨¬®ª',0
.3 db '§ â¥¬ ᤥ« âì  ªâ¨¢­ë¬';,0 .3 db '§ â¥¬ ᤥ« âì  ªâ¨¢­ë¬',0
.4 db '‡ ¤¥à¦ª :';,0 .4 db '‡ ¤¥à¦ª :',0
.5 db '€¢â®á®åà ­¥­¨¥';,0 .5 db '€¢â®á®åà ­¥­¨¥',0
.6 db '€¢â®­ã¬¥à æ¨ï, ­ ç¨­ ï á';,0 .6 db '€¢â®­ã¬¥à æ¨ï, ­ ç¨­ ï á',0
.7 db 'Ž¡« áâì' .7 db 'Ž¡« áâì',0
.8:
no_shoot db '‘­¨¬®ª ­¥ ᤥ« ­',0 no_shoot db '‘­¨¬®ª ­¥ ᤥ« ­',0
shooting db '”®â®£à ä¨à®¢ ­¨¥...',0 shooting db '”®â®£à ä¨à®¢ ­¨¥...',0
@ -820,14 +827,13 @@ but_text:
.7 db 'Set',0 .7 db 'Set',0
ch_text: ch_text:
.1 db 'Minimize window';,0 .1 db 'Minimize window',0
.2 db 'Show photo';,0 .2 db 'Show photo',0
.3 db 'then make active';,0 .3 db 'then make active',0
.4 db 'Delay:';,0 .4 db 'Delay:',0
.5 db 'Autosave';,0 .5 db 'Autosave',0
.6 db 'Start numeration from';,0 .6 db 'Start numeration from',0
.7 db 'Area' .7 db 'Area',0
.8:
no_shoot db 'There is no photo',0 no_shoot db 'There is no photo',0
shooting db 'Photographing...',0 shooting db 'Photographing...',0

View File

@ -86,18 +86,18 @@ macro set_events_mask mask
mcall mcall
} }
macro check_boxes_set_sys_color start,end,color_table ;macro check_boxes_set_sys_color start,end,color_table
{ ;{
ch_left equ [edi] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ ;ch_left equ [edi] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ
ch_top equ [edi+2] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó ;ch_top equ [edi+4] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó
ch_text_margin equ [edi+4] ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè ;ch_text_margin equ [edi+8] ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè
ch_size equ [edi+8] ;12 ðàçìåð êâàäðàòà ÷åê áîêñà ;ch_size equ [edi+8] ;12 ðàçìåð êâàäðàòà ÷åê áîêñà
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_text_length equ [edi+28] ;ch_text_length equ [edi+28]
ch_flags equ [edi+32] ;ôëàãè ;ch_flags equ [edi+32] ;ôëàãè
;ch_left equ [edi] ;координата начала рисования по х ;ch_left equ [edi] ;координата начала рисования по х
@ -109,17 +109,17 @@ ch_flags equ [edi+32] ;
;ch_text_length equ [edi+20] ;длина надписи (2^64 такой длины может быть текст) ;ch_text_length equ [edi+20] ;длина надписи (2^64 такой длины может быть текст)
;ch_flags equ [edi+24] ;флаги ;ch_flags equ [edi+24] ;флаги
mov edi,start ; mov edi,start
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+32] ; push dword [esi+32]
pop dword ch_text_color ; pop dword ch_text_color
push dword [esi+36] ; push dword [esi+36]
pop dword ch_border_color ; pop dword ch_border_color
add edi,ch_struc_size ; add edi,ch_struc_size
loop @b ; loop @b
} ;}
macro get_key macro get_key
{ {
;mov eax,2 ;mov eax,2

View File

@ -258,8 +258,14 @@ edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse edit_box_mouse dd aEdit_box_mouse
;version_ed dd aVersion_ed ;version_ed dd aVersion_ed
init_checkbox dd aInit_checkbox
check_box_draw dd aCheck_box_draw check_box_draw dd aCheck_box_draw
check_box_mouse dd aCheck_box_mouse check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch
;check_box_draw dd aCheck_box_draw
;check_box_mouse dd aCheck_box_mouse
;version_ch dd aVersion_ch ;version_ch dd aVersion_ch
option_box_draw dd aOption_box_draw option_box_draw dd aOption_box_draw
@ -297,11 +303,17 @@ PathShow_draw dd sz_PathShow_draw
aEdit_box_draw db 'edit_box',0 aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0 aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0 aEdit_box_mouse db 'edit_box_mouse',0
;aVersion_ed db 'version_ed',0 ;aVersion_ed db 'version_ed',0
aCheck_box_draw db 'check_box_draw',0
aCheck_box_mouse db 'check_box_mouse',0 aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0
;aVersion_ch db 'version_ch2',0
;aCheck_box_draw db 'check_box_draw',0
;aCheck_box_mouse db 'check_box_mouse',0
;aVersion_ch db 'version_ch',0 ;aVersion_ch db 'version_ch',0
aOption_box_draw db 'option_box_draw',0 aOption_box_draw db 'option_box_draw',0