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

View File

@ -8,6 +8,16 @@
<p><a href="../box_lib.htm">Íŕ ăëŕâíóţ &uarr;</a></p>
<h1>Îăëŕâëĺíčĺ</h1>
<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>
<ul>
<li><a href="#fun_draw">check_box_draw</a></li>
@ -18,8 +28,63 @@
<p><a href="#checkbox_styles">Ńňčëč ýëĺěĺíňŕ</a></p>
<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>
<h2><a name="fun_draw">check_box_draw</a></h2>

View File

@ -12,6 +12,7 @@
; 24.07.2008 <Lrz> ®¡­®¢«¥­ editbox
; 01.02.07 - ®¡­®¢«ñ­ editbox
; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â­®á¨â¥«ì­® ª«¨¥­â᪮© ®¡« áâ¨
; 02.11.10 - ˆá¯®«ì§ã¥âáï checkbox ¢¥àᨨ 2
title equ 'Screenshooter v 1.0' ; ‡ £®«®¢®ª ®ª­ 
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)
;¨­¨æ¨ «¨§ æ¨ï checkboxes
init_checkboxes2 check_boxes,check_boxes_end
; á ¯à룠¥¬ ¯à¨ ª ¦¤®© ¯¥à¥à¨á®¢ª¥
red:
@ -149,7 +152,8 @@ red:
; ãáâ ­ ¢«¨¢ ¥¬ á¨á⥬­ë¥ æ¢¥â  ã GUI ª®¬¯®­¥­â®¢
txt_but_set_sys_color buttons,buttons_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 ; /
get_screen_prop scr ; ¯®«ãç ¥¬ ¨­ä®à¬ æ¨î ®¡ íªà ­¥
@ -202,20 +206,21 @@ mouse:
push dword edit4
call [edit_box_mouse]
;----------------------------------
push dword ch1
call [check_box_mouse]
push dword ch2
call [check_box_mouse]
push dword ch3
call [check_box_mouse]
push dword ch4
call [check_box_mouse]
push dword ch5
call [check_box_mouse]
push dword ch6
call [check_box_mouse]
push dword use_rect
call [check_box_mouse]
checkboxes_mouse2 check_boxes,check_boxes_end
; push dword ch1
; call [check_box_mouse]
; push dword ch2
; call [check_box_mouse]
; push dword ch3
; call [check_box_mouse]
; push dword ch4
; call [check_box_mouse]
; push dword ch5
; call [check_box_mouse]
; push dword ch6
; call [check_box_mouse]
; push dword use_rect
; call [check_box_mouse]
;-----------------------------------
; mouse_check_boxes check_boxes,check_boxes_end
; mouse_edit_boxes editboxes,editboxes_end
@ -331,20 +336,23 @@ start_draw_window ;
draw_txt_buttons buttons,buttons_end ; ª­®¯ª¨
; draw_check_boxes check_boxes,check_boxes_end ; ä« ¦ª¨
;------ check all checkbox ---------
push dword ch1
call [check_box_draw]
push dword ch2
call [check_box_draw]
push dword ch3
call [check_box_draw]
push dword ch4
call [check_box_draw]
push dword ch5
call [check_box_draw]
push dword ch6
call [check_box_draw]
push dword use_rect
call [check_box_draw]
; push dword ch1
; call [check_box_draw]
; push dword ch2
; call [check_box_draw]
; push dword ch3
; call [check_box_draw]
; push dword ch4
; call [check_box_draw]
; push dword ch5
; call [check_box_draw]
; push dword ch6
; call [check_box_draw]
; push dword use_rect
; call [check_box_draw]
checkboxes_draw2 check_boxes,check_boxes_end
;------ end check all checkbox ------
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:
;---------------------------------------------------------------------
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 ; ᢥà­ãâì ®ª­®
ch2 check_box 5,120,5,11,cl_white,0,0,ch_text.2,(ch_text.3-ch_text.2),ch_flag_en ; § â¥¬ ᤥ« âì  ªâ¨¢­ë¬
ch3 check_box 145,105,5,11,cl_white,0,0,ch_text.3,(ch_text.4-ch_text.3),ch_flag_en ; ¯®ª § âì á­¨¬®ª
ch4 check_box 5,135,5,11,cl_white,0,0,ch_text.4,(ch_text.5-ch_text.4),ch_flag_en ; § ¤¥à¦ª 
ch5 check_box 5,150,5,11,cl_white,0,0,ch_text.5,(ch_text.6-ch_text.5),ch_flag_en
ch6 check_box 5,165,5,11,cl_white,0,0,ch_text.6,(ch_text.7-ch_text.6),ch_flag_en
use_rect check_box 145,150,5,11,cl_white,0,0,ch_text.7,(ch_text.8-ch_text.7) ; ¨á¯. ®¡« áâì
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_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_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_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_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_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_box2 (145 shl 16+11),(150 shl 16 +11),5,cl_white,0,0x80000000,ch_text.7,ch_flag_bottom ; ¨á¯. ®¡« áâì
;  ¢â®­ã¬¥à æ¨ï
check_boxes_end:
;---------------------------------------------------------------------
@ -773,14 +781,13 @@ but_text:
.7 db '§ ¤ âì',0
ch_text:
.1 db '‘¢¥à­ãâì ®ª­®';,0
.2 db '<27>®ª § âì á­¨¬®ª';,0
.3 db '§ â¥¬ ᤥ« âì  ªâ¨¢­ë¬';,0
.4 db '‡ ¤¥à¦ª :';,0
.5 db '€¢â®á®åà ­¥­¨¥';,0
.6 db '€¢â®­ã¬¥à æ¨ï, ­ ç¨­ ï á';,0
.7 db 'Ž¡« áâì'
.8:
.1 db '‘¢¥à­ãâì ®ª­®',0
.2 db '<27>®ª § âì á­¨¬®ª',0
.3 db '§ â¥¬ ᤥ« âì  ªâ¨¢­ë¬',0
.4 db '‡ ¤¥à¦ª :',0
.5 db '€¢â®á®åà ­¥­¨¥',0
.6 db '€¢â®­ã¬¥à æ¨ï, ­ ç¨­ ï á',0
.7 db 'Ž¡« áâì',0
no_shoot db '‘­¨¬®ª ­¥ ᤥ« ­',0
shooting db '”®â®£à ä¨à®¢ ­¨¥...',0
@ -820,14 +827,13 @@ but_text:
.7 db 'Set',0
ch_text:
.1 db 'Minimize window';,0
.2 db 'Show photo';,0
.3 db 'then make active';,0
.4 db 'Delay:';,0
.5 db 'Autosave';,0
.6 db 'Start numeration from';,0
.7 db 'Area'
.8:
.1 db 'Minimize window',0
.2 db 'Show photo',0
.3 db 'then make active',0
.4 db 'Delay:',0
.5 db 'Autosave',0
.6 db 'Start numeration from',0
.7 db 'Area',0
no_shoot db 'There is no photo',0
shooting db 'Photographing...',0

View File

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

View File

@ -258,10 +258,16 @@ edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
;version_ed dd aVersion_ed
init_checkbox dd aInit_checkbox
check_box_draw dd aCheck_box_draw
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
option_box_draw dd aOption_box_draw
option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
@ -300,8 +306,14 @@ aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',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
aOption_box_draw db 'option_box_draw',0