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

Мы настоятельно рекомендуем при разработке приложений Photon'а пользоваться PhAB'ом – а эта глава для тех чудаков, которые упорно не используют PhAB.

В этой главе обсуждается следующее:

  • Основные шаги

  • Компилирование и линковка не PhAB'овского приложения

  • Образец приложения

  • Увязывание кода приложения с виджетами

  • Полный пример приложения

    1. Основные шаги

Все приложения, использующие библиотеку виджетов Photon'а, выполняют одну и ту же базовую последовательность действий:

  1. Включить файл <Pt.h> – стандартный заголовочный файл для библиотеки виджета.

  2. Инициализировать инструментальные средства виджетов Photon'а, вызвав функцию PtInit() (или PtAppInit(), которае также создаёт основное окно).

  3. Создать виджеты, поддерживающие интерфейс с пользователем, вызвав функцию PtCreateWidget. Эта функция может создавать новые виджеты в потомках заданного виджета или текущего контейнера, или виджеты, не имеющиее родителя.

  4. Зарегистрировать какие-либо ответные ракции в приложении с соответствующими виджетами, используя функции PtAddCallback() или PtAddCallbacks().

  5. Реализовать виджеты, вызвав функцию PtRealizeWidget(). Эту функцию необходимо вызывать в приложении только один раз. Шаг реализации в действительности создаёт некие регионы Photon'а, которые затем назначаются и отображаются на экран. Пока этот шаг не отработан, никаких регионов не существует, и на экране ничего не отображается.

  6. Обрабатывать события Photon'а, вызвав функцию PtMainLoop(). На этом шаге инструментальные средства виджетов Photon'а берут на себя управление приложением и виджетами. Если какие-либо виджеты вызывают функции Вашего приложения, они должны быть предварительно зарегистрированы как ответные реакции.

    1. Компилирование и линковка неPhAb'овского приложения

Чтобы скомпилировать и запустить на исполнение приложение, которое использует библиотеку виджетов Photon'а, Вы должны подлинковаться к главной библиотеке Photon'а ph и к библиотеке отображения phrender. Существует статическая и совместно используемая версии этих библиотек.

Библиотека photon предназначена только для приложений, созданных в версии 1.14 микроGUI Photon'а. Не комбинируйте эту библиотеку с текущими библиотеками или заголовочными файлами, в противном случае Ваше приложение будет исполняться неверно.

Мы рекомендуем, чтобы Вы всегда подлинковывались к библиотеке совместного доступа. Это позволит Вам иметь приложение меньшим по размеру и позволит ему наследовать новые возможности, добавляемые к библиотеке виджетов при инсталяции новых реализаций библиотеки совместного доступа.

Библиотека Photon'а включает часть функций и определений виджетов. Если Ваше приложение использует функции Al (переводные) или Px (расширенные), Вам также понадобится подлинковаться к библиотеке phexlib. Если ваше приложение использует функции Ap (PhAB'овские), Вам также надо подлинковаться к библитеке Ар. Имена статических и совместно используемых библиотек одни и те же. По умолчанию qcc линкуется с библиотеками совместного доступа; чтобы линковаться со статическими библиотеками, задайте для qcc опцию Bstatic.

Например, если у Вас есть приложение по имени hello.c, командой на компилирование и линковку с библиотекой совместного доступа является:

qcc -o hello hello.c -lph -lphrender

Чтобы подлинковать статические библиотеки, команда должна быть такой:

qcc -o hello hello.c -Bstatic -lph -lphrender

 Совместно используемая библиотека ph не включает ничего, что требует операций с плавающей запятой (в текущей версии именно виджет PtNumericFloat), в то время как статическая библиотека включает. Чтобы слинковать приложение, включающее виджет PtNumericFloat, Вы можете линковать его только со статической библиотекой или сделать так:

qcc -o hello hello.c lph -Bstatic -lph -Bdynamic -lphrender

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