SysFn08/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
mNo edit summary
m (moved SysFn08 to SysFn08/ru: add /ru)
(No difference)

Revision as of 12:48, 3 April 2010

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


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

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

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

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

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

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

Замечания:

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