forked from KolibriOS/kolibrios
Screenshoot use new version checkbox.
git-svn-id: svn://kolibrios.org@1685 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
1d27ab3331
commit
c47985823d
@ -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
|
||||
}
|
||||
|
@ -8,6 +8,16 @@
|
||||
<p><a href="../box_lib.htm">Íŕ ăëŕâíóţ ↑</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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user