SysFn08/ru

From KolibriOS wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Функция 8 - определить/удалить кнопку


Параметры для определения кнопки:

  • eax = 8 - номер функции
  • ebx = [координата по оси x]*65536 + [размер по оси x]
  • ecx = [координата по оси y]*65536 + [размер по оси y]
  • edx = 0xXYnnnnnn, где:
  • nnnnnn = идентификатор кнопки
  • старший (31-й) бит edx сброшен
  • если 30-й бит edx установлен - не прорисовывать кнопку
  • если 29-й бит edx установлен - не рисовать рамку
при нажатии на кнопку
  • esi = 0x00RRGGBB - цвет кнопки

Параметры для удаления кнопки:

  • eax = 8 - номер функции
  • edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки

Возвращаемое значение:

  • функция не возвращает значения

Замечания:

  • Размеры кнопки должны быть больше 0 и меньше 0x8000.
  • Для окон со скином при определении окна (вызове 0-й функции)
создаются две стандартные кнопки - закрытия окна
с идентификатором 1 и минимизации окна с идентификатором 0xffff.
  • Создание двух кнопок с одинаковыми идентификаторами
вполне допустимо.
  • Кнопка с идентификатором 0xffff при нажатии интерпретируется
системой как кнопка минимизации, система обрабатывает такое
нажатие самостоятельно, не обращаясь к приложению.
В остальном это обычная кнопка.
  • Общее количество кнопок для всех приложений ограничено
числом 4095.

Константы для регистров:

eax - SF_DEFINE_BUTTON (8)