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

  1. Откройте модуль диалога aboutdlg

  2. Поместите два виджета PtLabel в верхней половине диалога, и виджет PtButton в нижней части:

  1. Выберите верхний виджет PtLabel и измените ресурс его текста на "About this Demo". Затем измените его горизонтальное выравнивание на Pt_CENTER.

  2. Выберите второй виджет PtLabel и измените его текст на пустую строку. Затем измените его горизонтальное выравнивание на Pt_CENTER.

Позже Вы заполните его с помощью функции aboutdlg_setup(), так что она изменит пустой текст этой надписи на отображение номера версии.

  1. Вы должны присвоить этому пустому виджету PtLabel имя экземпляра, поскольку будете ссылаться на него в коде программы. Поэтому измените его имя экземпляра на about_version.

  2. Выберите виджет PtButton и измените ресурс текста кнопки на "Done". Затем измените его имя экземпляра на about_done.

  3. Давайте отцентрируем виджеты горизонтально в диалоге. Выберите оба виджета PtLabel и виджет PtButton и выберите из меню "Edit" пункт "Aligment". Вы увидите диалог "Align Widgets".

  1. В столбце "Horizontal" щёлкните на "Align Centers" и на "Align to Container". Затем щёлкните на кнопке "Align". Две надписи и кнопка теперь будут горизонтально отцентрированы внутри Вашего диалога. Ваш модуль about должен теперь выглядеть так:

      1. Добавление ответной реакции к кнопке Done

Теперь добавим ответную реакцию к кнопке Done, так чтобы диалог закрывался, когда пользователь щёлкал на этой кнопке.

  1. Выберите кнопку "Done", затем переключитесь на панель управления ответными реакциями (панель "Callbacks").

  2. Щёлкните на "Activate", чтобы добавить ответную реакцию на активизацию. Вы увидите редактор ответной реакции.

  3. Выберите тип "Done code", затем щёлкните на "Apply". Ничего не вводите в области "Function".

Выбор типа "Done code" говорит виджету исполнять операцию "Done" при активизации виджета. То есть виджет вызывает функцию, заданную в области "Function" (если она задана) и затем закрывает модуль диалога.

  1. Закройте редактор. Список ответных реакций теперь указывает, что Вы добавили ответную реакцию активизации ("Activate"), называемую Done:

      1. Модификация сгенерированного кода функции

Теперь Вы измените сгенерированный код функции about_setup(), так чтобы она изменяла текст надписи about_version, показывая номер версии.

  1. Сохраните Ваше приложение.

  2. Откройте диалог "Build+Run" и сгенерируйте код.

  3. Когда генерация кода завершится, закройте диалог "Generate Code", выберите файл aboutdlg_setup.c из списка файлов и щёлкните на кнопке "Edit"2 (или дважды щёлкните на имени файла).

Измените код с

int aboutdlg_setup( PtWidget_t *link_instance,

ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo )

{

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

link_instance = link_instance,

apinfo = apinfo,

cbinfo = cbinfo;

return( Pt_CONTINUE );

}

на следующий:

int aboutdlg_setup( PtWidget_t *link_instance,

ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo ) {

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

link_instance = link_instance, apinfo = apinfo, cbinfo = cbinfo;

PtSetResource( ABW_about_version, Pt_ARG_TEXT_STRING,

"1.00", 0);

return( Pt_CONTINUE );

}

Код поместит номер версии (1.00) в ресурс текстовой строки виджета about_version. Чтобы сделать это, код вызывает PtSetResource(), чтобы установить значение ресурса виджета about_version. Код использует сгенерированную PhAB'ом декларацию ABW_about_version, которая обеспечивает доступ к указателю на экземпляр виджета. Мы можем безопасно использовать эту декларацию, поскольку имеем дело с модулем диалога – PhAB гарантирует, что в данное время будет существовать только один экземпляр диалога.

  1. Сохраните Ваши изменения и закройте текстовый редактор.

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