Difference between revisions of "Box lib editbox/ru"
Jump to navigation
Jump to search
(Created page with '==Введение== Текстовое поле, используется при вводе текстовой/числовой информации. ==Функции== '''edi...') |
|||
(12 intermediate revisions by 5 users not shown) | |||
Line 4: | Line 4: | ||
==Функции== | ==Функции== | ||
− | '''edit_box_key''' | + | *'''edit_box_key''' - эта функция должна вызываться при вводе информации с клавиатуры |
− | + | *'''edit_box_mouse''' - эта функция должна вызываться при вводе информации с мыши | |
− | '''edit_box_mouse''' | + | *'''edit_box_draw''' - эта функция должна вызываться при перерисовке элемента. |
− | + | *'''edit_box_set_text''' - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования: | |
− | '''version_ed''' | + | <syntaxhighlight lang="asm">push dword buf |
− | + | push dword edit1 | |
+ | call dword [edit_box_set_text] | ||
+ | ......... | ||
+ | buf db '111-222-333',0</syntaxhighlight> | ||
+ | где ''edit1'' - структура элемента edit_box; ''buf'' - буфер, в котором содержится устанавливаемый текст. | ||
+ | *'''version_ed''' - версия элемента | ||
==Структура editbox== | ==Структура editbox== | ||
− | <asm>struc edit_box width,left,top,color,shift_color,focus_border_color,\ | + | Размер структуры editbox указан внутри файла ''box_lib.mac'' в параметре '''ed_struc_size'''. |
+ | <syntaxhighlight lang="asm">struc edit_box width,left,top,color,shift_color,focus_border_color,\ | ||
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos | blur_border_color,text_color,max,text,mouse_variable,flags,size,pos | ||
{ | { | ||
Line 34: | Line 40: | ||
.shift dd 0 | .shift dd 0 | ||
.shift_old dd 0 | .shift_old dd 0 | ||
− | }</ | + | }</syntaxhighlight> |
− | ''width'' - ширина элемента | + | *''width'' - ширина элемента |
− | ''left'' - отступ слева (положение по x) | + | *''left'' - отступ слева (положение по x) |
− | ''top'' - отступ сверху (положение по y) | + | *''top'' - отступ сверху (положение по y) |
− | ''color'' - цвет фона | + | *''color'' - цвет фона |
− | ''shift_color'' - цвет выделения при удерживании [Shift] или мышкой | + | *''shift_color'' - цвет выделения при удерживании [Shift] или мышкой |
− | ''focus_border_color'' - цвет рамки когда поле в фокусе | + | *''focus_border_color'' - цвет рамки когда поле в фокусе |
− | ''blur_border_color'' - цвет рамки когда поле не в фокусе | + | *''blur_border_color'' - цвет рамки когда поле не в фокусе |
− | ''text_color'' - цвет текста | + | *''text_color'' - цвет текста |
+ | *''max'' - максимальный размер текста (должно быть +2 резервных символа) | ||
+ | *''size'' - текущая длина текста | ||
− | == | + | ==Флаги элемента== |
− | + | <syntaxhighlight lang="asm"> | |
− | + | ed_figure_only= 1000000000000000b ;одни символы | |
− | + | ed_always_focus= 100000000000000b | |
− | + | ed_focus= 10b ;фокус приложения | |
+ | ed_pass= 1b ;поле с паролем | ||
+ | ed_shift_on= 1000b ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift | ||
+ | ed_shift_on_off=1111111111110111b | ||
+ | ed_shift= 100b ;включается при нажатии на shift т.е. если нажимаю | ||
+ | ed_shift_off= 1111111111111011b | ||
+ | ed_shift_bac= 10000b ;бит для очистки выделеного shift т.е. при установке говорит что есть выделение | ||
+ | ed_shift_bac_cl=1111111111101111b ;очистка при удалении выделения | ||
+ | ed_shift_cl= 1111111111100011b | ||
+ | ed_shift_mcl= 1111111111111011b | ||
+ | ed_left_fl= 100000b | ||
+ | ed_right_fl= 1111111111011111b | ||
+ | ed_offset_fl= 1000000b | ||
+ | ed_offset_cl= 1111111110111111b | ||
+ | ed_insert= 10000000b | ||
+ | ed_insert_cl= 1111111101111111b | ||
+ | ed_mouse_on = 100000000b | ||
+ | ed_mous_adn_b= 100011000b | ||
+ | ed_mouse_on_off=1111111011111111b | ||
+ | ed_disabled= 100000000000b ;disable editbox | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | [[Category: Кодинг]] | ||
+ | [[Category:Библиотеки]] |
Latest revision as of 10:53, 29 October 2018
Введение
Текстовое поле, используется при вводе текстовой/числовой информации.
Функции
- edit_box_key - эта функция должна вызываться при вводе информации с клавиатуры
- edit_box_mouse - эта функция должна вызываться при вводе информации с мыши
- edit_box_draw - эта функция должна вызываться при перерисовке элемента.
- edit_box_set_text - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования:
push dword buf
push dword edit1
call dword [edit_box_set_text]
.........
buf db '111-222-333',0
где edit1 - структура элемента edit_box; buf - буфер, в котором содержится устанавливаемый текст.
- version_ed - версия элемента
Структура editbox
Размер структуры editbox указан внутри файла box_lib.mac в параметре ed_struc_size.
struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos
{
.width dd width
.left dd left
.top dd top
.color dd color
.shift_color dd shift_color
.focus_border_color dd focus_border_color
.blur_border_color dd blur_border_color
.text_color dd text_color
.max dd max
.text dd text
.mouse_variable dd mouse_variable
.flags dd flags+0
.size dd size+0
.pos dd pos+0
.offset dd 0
.cl_curs_x dd 0
.cl_curs_y dd 0
.shift dd 0
.shift_old dd 0
}
- width - ширина элемента
- left - отступ слева (положение по x)
- top - отступ сверху (положение по y)
- color - цвет фона
- shift_color - цвет выделения при удерживании [Shift] или мышкой
- focus_border_color - цвет рамки когда поле в фокусе
- blur_border_color - цвет рамки когда поле не в фокусе
- text_color - цвет текста
- max - максимальный размер текста (должно быть +2 резервных символа)
- size - текущая длина текста
Флаги элемента
ed_figure_only= 1000000000000000b ;одни символы
ed_always_focus= 100000000000000b
ed_focus= 10b ;фокус приложения
ed_pass= 1b ;поле с паролем
ed_shift_on= 1000b ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift
ed_shift_on_off=1111111111110111b
ed_shift= 100b ;включается при нажатии на shift т.е. если нажимаю
ed_shift_off= 1111111111111011b
ed_shift_bac= 10000b ;бит для очистки выделеного shift т.е. при установке говорит что есть выделение
ed_shift_bac_cl=1111111111101111b ;очистка при удалении выделения
ed_shift_cl= 1111111111100011b
ed_shift_mcl= 1111111111111011b
ed_left_fl= 100000b
ed_right_fl= 1111111111011111b
ed_offset_fl= 1000000b
ed_offset_cl= 1111111110111111b
ed_insert= 10000000b
ed_insert_cl= 1111111101111111b
ed_mouse_on = 100000000b
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_disabled= 100000000000b ;disable editbox