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

Установочная функция модуля генерируется, если Вы задали имя функции в привязанной ответной реакции модульного типа, как описано в разделе "Ответные реакции модульного типа" в главе "Редактирование ресурсов и ответных реакций в PhAB".

Все установочные функции PhAB имеют три главных аргумента:

int base_setup( PtWidget_t *link_instance,

ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo )

{

/* предотвращает предупреждения (варнинги) об отсутствии ссылок */

link_instance = link_instance,

apinfo = apinfo,

cbinfo = cbinfo;

/* Вот здесь Ваш код */

return( Pt_CONTINUE );

}

где:

link_instance

Указатель на экземпляр созданного модуля PhAB. Вам понадобится сохранить этот указатель, если он указывает на модуль окна, поддерживающего множественность экземпляров.

apinfo

Указатель на структуру ApInfo_t, которая обеспечивает:

  • указатель на виджет, послуживший причиной вызова установочной функции (т.е. виджет, послуживший причиной того, что отобразился модуль). Для внутренней связи этот указатель является копией указателя на виджет, переданный функции ApCreateModule(); этот указатель полезен при позиционировании модуля. Вы можете также определить виджет, послуживший причиной вызова установочной функции, вызвав функцию ApWidget().

Обсуждавшиеся коды, связанные с типом вызванной установочной функции:

ABR_PRE_REALIZE –

эта установочная функция была вызвана перед реализацией модуля

ABR_POST_REALIZE –

эта установочная функция была вызвана после того, как модуль отобразился на экране.

cbinfo

Указатель на общую структуру ответной реакции Photon. Эта структура обеспечивает информацией, связанной с виджетом, вызвавшим ответную реакцию, с событием Photon'а и некоторыми данными по ответной реакции, специфическими для виджета. Формат данных варьируется в соответствии с классом виджета и типом ответной реакции. Для получения более полной информации см. описание PtCallbackInfo_t в "Справочнике виджетов".

Обычно установочная функция возвращает значение Pt_CONTINUE. Это указывает PhAB API продолжать исполнение и отобразить связанный с этой функцией модуль. Для модулей окна и диалога Вы можете возвращать Pt_END, чтобы завершить привязанную ответную реакцию и разрушить модуль, не отображая его. Для модулей окна Вы можете возвращать Pt_HALT, чтобы не реализовать, но и не разрушать окно. Это является полезным, если Вы хотите реализовать окно позже.

    1. Функции ответных реакций кодового типа

Функция ответной реакции кодового типа генерируется, если Вы задаёте связанную ответную реакцию кодового типа, как описано в разделе "Кодовые ответные реакции" главы "Редактирование ресурсов и ответных реакций в PhAB".

Все ответные реакции кодового типа имеют три главных аргумента:

int mycallback( PtWidget_t *widget,

ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo )

{

/* предотвращает предупреждения (варнинги) об отсутствии ссылок */

widget = widget,

apinfo = apinfo,

cbinfo = cbinfo;

/* Вот здесь Ваш код */

return( Pt_CONTINUE );

}

где

widget

Указатель на экземпляр виджета, вызвавшего ответную реакцию. Это указатель на структуру PtWidget_t, но Вы можете интерпретировать его как идентификатор виджета; не пытайтесь манипулировать членами структуры.

apinfo

Указатель на структуру ApInfo_t, которая включает коды, связанные с типом функции ответной реакции, которая была вызвана:

ABR_CANCEL –

эта функция ответной реакции вызывается связью "Cancel"

ABR_CODE –

эта функция ответной реакции вызывается связью "Code"

ABR_DONE –

эта функция ответной реакции вызывается связью "Done".

cbinfo

Указатель на общую структуру ответной реакции Photon'а. Структура обеспечивает информацией, связанной с виджетом, вызвавшим ответную реакцию, с событием Photon'а и некоторыми данными по ответной реакции, специфическими для виджета. Формат данных варьируется в соответствии с классом виджета и типом ответной реакции. Для получения более полной информации см. описание PtCallbackInfo_t в "Справочнике виджетов".

Ваша ответная реакция должна возвращать Pt_CONTINUE, если описание ответной реакции не даст Вам повода вернуть что-то другое. Ответные реакции ABR_CANCEL и ABR_DONE могут возвращать Pt_HALT, чтобы не допустить закрытия модуля.

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