Difference between revisions of "SysFn08/ru"

From KolibriOS wiki
Jump to navigation Jump to search
m (add links)
m
 
(One intermediate revision by one other user 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 - номер функции
+
:* eax = 8 - номер функции
* edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки
+
:* edx = 0x80nnnnnn, где nnnnnn - идентификатор кнопки
 
+
Возвращаемое значение:
'''Возвращаемое значение:'''
+
:* функция не возвращает значения
* функция не возвращает значения
+
Замечания:
 
+
:* Размеры кнопки должны быть больше 0 и меньше 0x8000.
'''Замечания:'''
+
:* Для окон со скином при определении окна (вызове 0-й функции)
* Размеры кнопки должны быть больше 0 и меньше 0x8000.
+
::создаются две стандартные кнопки - закрытия окна
* Для окон со скином при определении окна (вызове [[SysFn00/ru | 0-й функции]]) создаются две стандартные кнопки - закрытия окна с идентификатором 1 и минимизации окна с идентификатором 0xffff.
+
::с идентификатором 1 и минимизации окна с идентификатором 0xffff.
* Создание двух кнопок с одинаковыми идентификаторами вполне допустимо.
+
:* Создание двух кнопок с одинаковыми идентификаторами
* Кнопка с идентификатором 0xffff при нажатии интерпретируется системой как кнопка минимизации, система обрабатывает такое нажатие самостоятельно, не обращаясь к приложению. В остальном это обычная кнопка.
+
::вполне допустимо.
* Общее количество кнопок для всех приложений ограничено числом 4095.
+
:* Кнопка с идентификатором 0xffff при нажатии интерпретируется
 +
::системой как кнопка минимизации, система обрабатывает такое
 +
::нажатие самостоятельно, не обращаясь к приложению.
 +
::В остальном это обычная кнопка.
 +
:* Общее количество кнопок для всех приложений ограничено
 +
::числом 4095.
  
 +
'''Константы для регистров:'''
 +
::eax - SF_DEFINE_BUTTON (8)
  
 
{{System_functions}}
 
{{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)