Box lib scrollbar/ru

From KolibriOS wiki
Revision as of 19:40, 31 July 2012 by IgorA (talk | contribs) (→‎Структура scrollbar)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Введение

Скроллбар, используется при выводе информации, не помещающейся в окно. Может быть вертикальным и горизонтальным.

Функции

  • scrollbar_v_draw - Рисование вертикального скроллинга.
  • scrollbar_v_mouse - Эта функция должна вызыватся для вертикального скроллинга при движении мышей.
  • scrollbar_h_draw - Рисование горизонтального скроллинга.
  • scrollbar_h_mouse - Эта функция должна вызыватся для горизонтального скроллинга при движении мышей.
  • version_ch - Версия элемента

Структура scrollbar

Макроса для создания структуры скроллбара нет. Потому данные для нее задаются вручную. Есть макрос use_scroll_bar он дает возможность понять какие данные нужны для скроллинга. <syntaxhighlight lang="asm">macro use_scroll_bar { scroll_bar: sb_size_x equ [edi] sb_start_x equ [edi+ 2] sb_size_y equ [edi+ 4] sb_start_y equ [edi+ 6] sb_btn_high equ [edi+ 8] sb_type equ [edi+12] sb_max_area equ [edi+16] sb_cur_area equ [edi+20] sb_position equ [edi+24] sb_bckg_col equ [edi+28] sb_frnt_col equ [edi+32] sb_line_col equ [edi+36] sb_redraw equ [edi+40] sb_delta equ [edi+44] sb_delta2 equ [edi+46] sb_r_size_x equ [edi+48] sb_r_start_x equ [edi+50] sb_r_size_y equ [edi+52] sb_r_start_y equ [edi+54] sb_m_pos equ [edi+56] sb_m_pos_2 equ [edi+60] sb_m_keys equ [edi+64] sb_run_size equ [edi+68] sb_position2 equ [edi+72] sb_work_size equ [edi+76] sb_all_redraw equ [edi+80] sb_ar_offset equ [edi+84] }</syntaxhighlight>

  • sb_btn_high - высота боковых кнопок (левая и правая для гориз. и верхняя и нижняя для верт.)
  • sb_type - зарезервировано для будущих типов, если скроллбар будет дорабатываться.
  • sb_max_area - область максимальная, актуально когда не влазит в отображаемую область, т.е. случай активности компонента (весь максимальный размер документа)
  • sb_cur_area - область отображаемая (какая часть документа влазит в экран)
  • sb_position - позиция бегунка изменяемая от 0 до значения (sb_max_area-sb_cur_area)
  • sb_bckg_col - цвет внутренний, применяется для областей между бегунком и кноками
  • sb_frnt_col - цвет наружный, применяется для областей отличных от применяемых в sb_bckg_col
  • sb_line_col - цвет линий и стрелок на кнопках
  • sb_redraw - индикатор необходимости перерисовки управляемой области учитывая изменение sb_position и sb_cur_area
  • sb_delta2 - индикатор захвата фокуса скроллбаром (удержание бегунка)
  • sb_all_redraw - флаг устанавливаемый в 1 для перерисовки всего компонента, если поставить 0, то перерисовка происходит только для области бегунка. Введено для ускорения отрисовки, поскольку не во всех случаях требуется принудитеьно отрисовывать все части компонента. Когда вызывается по событию мыши всегда отрисовывается самим компонентом со значением 0.
  • sb_ar_offset - величина смещения при однократном нажатии боковой кнопки.