Difference between revisions of "SysFn08/ru"

From KolibriOS wiki
Jump to navigation Jump to search
(New page: '''Функция 8''' - определить/удалить кнопку ---- '''Параметры для определения кнопки:''' * eax = 8 - номер функции ...)
 
m
 
(5 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
----
 
----
  
'''Параметры для определения кнопки:'''
+
Параметры для определения кнопки:
* eax = 8 - номер функции
+
:* eax = 8 - номер функции
* ebx = [координата по оси x]*65536 + [размер по оси x]
+
:* ebx = [координата по оси x]*65536 + [размер по оси x]
* ecx = [координата по оси y]*65536 + [размер по оси y]
+
:* ecx = [координата по оси y]*65536 + [размер по оси y]
* edx = 0xXYnnnnnn, где:
+
:* edx = 0xXYnnnnnn, где:
** nnnnnn = идентификатор кнопки
+
::* nnnnnn = идентификатор кнопки
** старший (31-й) бит edx сброшен
+
::* старший (31-й) бит edx сброшен
** если 30-й бит edx установлен - не прорисовывать кнопку
+
::* если 30-й бит edx установлен - не прорисовывать кнопку
** если 29-й бит edx установлен - не рисовать рамку при нажатии на кнопку
+
::* если 29-й бит edx установлен - не рисовать рамку
** esi = 0x00RRGGBB - цвет кнопки* ebx = указатель на изображение в формате BBGGRRBBGGRR...
+
:::при нажатии на кнопку
 +
:* esi = 0x00RRGGBB - цвет кнопки
 +
Параметры для удаления кнопки:
 +
:* eax = 8 - номер функции
 +
:* edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки
 +
Возвращаемое значение:
 +
:* функция не возвращает значения
 +
Замечания:
 +
:* Размеры кнопки должны быть больше 0 и меньше 0x8000.
 +
:* Для окон со скином при определении окна (вызове 0-й функции)
 +
::создаются две стандартные кнопки - закрытия окна
 +
::с идентификатором 1 и минимизации окна с идентификатором 0xffff.
 +
:* Создание двух кнопок с одинаковыми идентификаторами
 +
::вполне допустимо.
 +
:* Кнопка с идентификатором 0xffff при нажатии интерпретируется
 +
::системой как кнопка минимизации, система обрабатывает такое
 +
::нажатие самостоятельно, не обращаясь к приложению.
 +
::В остальном это обычная кнопка.
 +
:* Общее количество кнопок для всех приложений ограничено
 +
::числом 4095.
  
'''Параметры для удаления кнопки:'''
+
'''Константы для регистров:'''
* eax = 8 - номер функции
+
::eax - SF_DEFINE_BUTTON (8)
* edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки
 
 
 
'''Возвращаемое значение:'''
 
* функция не возвращает значения
 
 
 
'''Замечания:'''
 
* Размеры кнопки должны быть больше 0 и меньше 0x8000.
 
* Для окон со скином при определении окна (вызове 0-й функции) создаются две стандартные кнопки - закрытия окна с идентификатором 1 и минимизации окна с идентификатором 0xffff.
 
* Создание двух кнопок с одинаковыми идентификаторами вполне допустимо.
 
* Кнопка с идентификатором 0xffff при нажатии интерпретируется системой как кнопка минимизации, система обрабатывает такое нажатие самостоятельно, не обращаясь к приложению. В остальном это обычная кнопка.
 
* Общее количество кнопок для всех приложений ограничено числом 4095.
 
  
 +
{{System_functions}}
 
[[Category: SysCalls]]
 
[[Category: SysCalls]]

Latest revision as of 17:14, 12 January 2016

Функция 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)