Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
          1. Удаление обработчиков событий

Вы можете удалить обработчики событий Pt_CB_RAW, вызвав функции PtRemoveEventHandler() или PtRemoveEventHandlers(). Вы можете удалить обработчики событий Pt_CB_FILTER, вызвав функции Pt_RemoveFilterCallback() или Pt_RemoveFilterCallbacks().

Не удаляйте обработчики событий, которые были добавлены через PhAB; результатом может стать непредсказуемое поведение.

Параметрами функций PtRemoveEventHandler() и PtRemoveFilterCallback() являются:

widget

Виджет, с которого удаляется обработчик событий

event_mask

Маска событий, задающая события, к которым чувствителен обработчик

event_f

Функция обработки события

data

Данные клиента, присоединённые к обработчику

Это выполняет поиск обработчика событий с такой сигнатурой – т.е. идентичными event_mask, data и event_f – в виджете и удалении такового, если он найден.

Параметрами функций PtRemoveEventHandlers() и PtRemoveFilterCallbacks() являются:

widget

Виджет, с которого удаляются обработчики событий

handlers

Массив записей обработчиков событий

nhandlers

Число обработчиков событий, определённых в массиве

Как и для функций PtRemoveEventHandler() и PtRemoveFilterCallback(), обработчик событий удаляется только тогда, когда он имеет в точности ту же сигнатуру, что и один из обработчиков событий, заданных в массиве записей обработчиков событий.

          1. Запуск обработчика событий

При запуске обработчики событий получают те же аргументы, что и функции ответных реакций, т.е. параметрами являются:

  • виджет, получивший событие (widget)

  • данные клиента, присоединённые к обработчику событий (client_data)

 Данные клиента, передаваемые обработчику событий, не являются такими, как и данные apinfo, передаваемые обработчику событий, добавленному через PhAB.

  • информация ответной реакции, связанная с конкретным событием (info).

Обработчики событий возвращают целое значение, которое обработчик события должен использовать для указания на то, должна ли или не должна производиться дальнейшая обработка события. Если обработчик событий возвращает значение Pt_END, это указывает, что дальнейшая обработка события Photon не выполняется, и событие исчерпано.

Член event параметра info содержит указатель на события, послужившие причиной запуска обработчика событий. Вы должны проверить для этого события член type, чтобы определиться, как поступить с этим событием. Это будет один из типов событий, определённых в event_mask, заданной при добавлении обработчика событий к виджету.

Для получения данных, присоединённых к конкретному событию, вызывается функция PhGetData() с указателем на событие в качестве параметра. Эта функция вернёт указатель на структуру с данными, специфическими для данного конкретного типа события. Этот тип структуры зависит от типа события.

Соседние файлы в папке Литература