Открыть главное меню

Изменения

Event

2680 байт добавлено, 13:50, 16 февраля 2010
Нет описания правки
Event (также называют ''ивент, эвент'') - событие [[Task|процесса]] [[AFW]]. Структура EVENT_T.

Процесс AFW представляет как ивент:
* действие пользователя
* сообщения от других процессов
Также некоторые ивенты создаются в пределах AFW процесса. Например: запрос данных каким либо диалогом, ивент нажатия кнопки пользователем рассматривается диалогом как нажатие какойто конкретной кнопки диалога (например софтовой) и др.

При создании ивенты добавляются в [[стэк]] событий. Последний добавленный ивент первым должен быть обработан. Приложения должны обрабатывать ивенты и соответственно их логие реагировать на события.
При удалении (consume, см. [[APP_ConsumeEv]]) ивента он удаляется не сразу, сперва помечается на удаление и когда точно ни одно приложение его уже не использует, память освободжается.


== Структура EVENT_T ==
* EVENT_CODE_T code - уникальный код ивента
* UINT32 unk1 - ''неизвестно''
* UINT32 ev_port - ''неизвестно''
* UINT8 ev_catg - ''неизвестно''
* BOOL unk2 - TRUE если ивент удален (consumed)
* BOOL first_pass - ''неизвестно''
* UINT8 unk3 - ''неизвестно''
* UINT32 unk4 - ''неизвестно''
* UINT32 unk5 - ''неизвестно''
* EVENT_T * next - указатель на следующий ивент в стэке
* UINT32 data_tag - указывает как интерпритировать следующее объединение
* EVENT_DATA_T data - объединение, может содержать что угодно (см. описание union в языке Си)
* FREE_BUF_FLAG_T free_buf - флаг указывающий "нужно ли освобождать attachment при удалении ивента"
* UINT16 att_size - размер буфера attachment
* void * attachment - auxiliary ({{lang-en|вспомогательный}}) данные
* UINT8 unk6 - ''неизвестно''

== Функции ==
[[:Категория:Функции_AFW]]



[[Категория:Эльфостроение]]
84
правки