SysFn40/ru: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(биты 30 и 31)
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 3: Line 3:
----
----


Маска для ожидаемых событий влияет на функции работы с событиями 10, 11, 23 - они сообщают только о событиях, разрешённых этой маской.
Маска для ожидаемых событий влияет на функции работы с событиями 10,
 
11, 23 - они сообщают только о событиях, разрешённых этой маской.
'''Параметры:'''
<br>Параметры:
* eax = 40 - номер функции
* eax = 40 - номер функции
* ebx = маска: бит i соответствует событию i+1 ([[Ru/api/kernel#Список событий|см. список событий]])
* ebx = маска: бит i соответствует событию i+1 ([[Ru/api/kernel#Список событий|см. список событий]])
** установленный бит разрешает извещение о событии
:(установленный бит разрешает извещение о событии)
 
:bit 31: фильтр активности событий мыши
'''Возвращаемое значение:'''
:bit 31 = 0 - неактивное окно всегда получает события от мыши
* eax = предыдущее значение маски  
:bit 31 = 1 - неактивное окно не получает события от мыши
:bit 30: фильтр позиции курсора
::bit 30 = 0 - окно принимает события мыши, если курсор за пределами окна
::bit 30 = 1 - окно не принимает события мыши, если курсор за пределами окна
Возвращаемое значение:
:* eax = предыдущее значение маски
Замечания:
:* Маска по умолчанию (7=111b) разрешает извещения о перерисовке и нажатиях клавиш и кнопок.
::Этого достаточно для большинства приложений.
:* События, запрещённые в маске, всё равно сохраняются, если приходят; о них просто не извещают функции работы с событиями.
:* Функции работы с событиями учитывают маску на момент вызова функции, а не на момент поступления сообщения.


'''Замечания:'''
'''Константы для регистров:'''
* Маска по умолчанию (7=111b) разрешает извещения о перерисовке и нажатиях клавиш и кнопок. Этого достаточно для большинства приложений.
::eax - SF_SET_EVENTS_MASK (40)
* События, запрещённые в маске, всё равно сохраняются, если приходят; о них просто не извещают функции работы с событиями.
* Функции работы с событиями учитывают маску на момент вызова функции, а не на момент поступления сообщения.
* бит 31: активный / неактивный фильтр
** ''бит 31 = 0'' - неактивное окно получает события мыши
** ''бит 31 = 1'' - неактивное окно не получает события мыши
* бит 30: Курсор позиции фильтра
** ''бит 30 = 0'' = окно получает события мыши, если курсор за окном
** ''бит 30 = 1'' - окно не получает события мыши, если курсор за окном


{{System_functions}}
{{System_functions}}
[[Category: SysCalls]]
[[Category: SysCalls]]

Latest revision as of 18:14, 17 January 2016

Функция 40 - установить маску для ожидаемых событий.


Маска для ожидаемых событий влияет на функции работы с событиями 10, 11, 23 - они сообщают только о событиях, разрешённых этой маской.
Параметры:

(установленный бит разрешает извещение о событии)
bit 31: фильтр активности событий мыши
bit 31 = 0 - неактивное окно всегда получает события от мыши
bit 31 = 1 - неактивное окно не получает события от мыши
bit 30: фильтр позиции курсора
bit 30 = 0 - окно принимает события мыши, если курсор за пределами окна
bit 30 = 1 - окно не принимает события мыши, если курсор за пределами окна

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

  • eax = предыдущее значение маски

Замечания:

  • Маска по умолчанию (7=111b) разрешает извещения о перерисовке и нажатиях клавиш и кнопок.
Этого достаточно для большинства приложений.
  • События, запрещённые в маске, всё равно сохраняются, если приходят; о них просто не извещают функции работы с событиями.
  • Функции работы с событиями учитывают маску на момент вызова функции, а не на момент поступления сообщения.

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

eax - SF_SET_EVENTS_MASK (40)