Box lib editbox/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(тег <asm> не работает - заменил на <pre>)
Line 8: Line 8:
*'''edit_box_draw''' - эта функция должна вызываться при перерисовке элемента.
*'''edit_box_draw''' - эта функция должна вызываться при перерисовке элемента.
*'''edit_box_set_text''' - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования:
*'''edit_box_set_text''' - эта функция копирует текст из указателя в текстовое поле. Если текст в указателе окажется длиннее чем допустимый в элементе edit_box, то он запишется не весь. После вызова данной функции необходимо перерисовать окно функцией edit_box_draw, иначе изменения будут сразу не видны. Пример использования:
<asm>push dword buf
<pre>push dword buf
push dword edit1
push dword edit1
call dword [edit_box_set_text]
call dword [edit_box_set_text]
.........
.........
buf db '111-222-333',0</asm>
buf db '111-222-333',0</pre>
где ''edit1'' - структура элемента edit_box; ''buf'' - буфер, в котором содержится устанавливаемый текст.
где ''edit1'' - структура элемента edit_box; ''buf'' - буфер, в котором содержится устанавливаемый текст.
*'''version_ed''' - версия элемента
*'''version_ed''' - версия элемента

Revision as of 13:02, 30 July 2012

Введение

Текстовое поле, используется при вводе текстовой/числовой информации.

Функции

  • 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 - разрешается ввод чисел от 0 до 9.
  • ed_focus - текстовое поле в фокусе.