Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
02.04.2015
Размер:
8.79 Mб
Скачать
    1. Парадигма (система понятий) программирования

Давайте сравним, как Вы пишете не-PhAB (Photon) приложения текстового режима, и приложения PhAB.

          1. Приложение текстового режима

Когда Вы пишете не-Photon'ное (текстового режима) приложение, Вы в основном концентрируетесь на основной программе, из которой Вы делаете такие вещи, как:

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

  • установка обработчиков сигналов

  • посылка и получение сообщений

  • итерации

  • вызов подпрограмм, если требуется

  • связь с консолью

  • и, наконец, выход.

              1. Основная программа

              1. Рис. 7. Структура приложения текстового режима

          1. Не-PhAB приложение

Приложение Photon'а, написанное без PhAB, похоже на приложение текстового режима, за исключением того, что вы также:

  • инициализируете и реализуете виджеты приложения;

  • устанавливаете ресурсы виджетов, включая такие:

  • размер и позиция

  • привязка

  • текст

  • список ответных реакций

  • прочая

  • пишете подпрограммы ответных реакций для обработки событий виджетов. При этом Вам может понадобится:

  • создать окна и их виджеты, установить ресурсы, и затем реализовать их

  • создать меню из виджета PtMenuButton, установить ресурсы и ответные реакции, реализовать эти меню

  • уничтожить виджеты

  • прочая

  • вызвать PtMainLoop( ) в Вашей основной программе для обработки событий.

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

              1. Рис. 8. Структура приложения Photon, написанная без использования PhAB

          1. PhAb приложение

Когда Вы разрабатываете PhAB приложение, main-программа Вам предоставляется. Вместо того, чтобы заботиться об основной программе, Вы:

  • обеспечиваете функцию, которая инициализирует приложение;

  • устанавливаете обработчики сигналов, которые обрабатывают сигналы, когда те прибывают, и вызываете написанные Вами функции работы с сигналами;

  • устанавливаете функции ввода для сообщений;

  • пишете ответные функции для обработки событий от виджетов.

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

              1. Рис. 9. Структура приложения Photon'а, написанная PhAB

Дополнительно, Вы не имеете в Вашем коде размер и позиции виджетов; Вы делаете это визуально в PhAB. PhAB также просматривается после инициализации, реализации, дереализации и уничтожения Ваших виджетов. PhAB даже обеспечивает модулем меню, что делает простым создание меню. Вы можете видеть, почему мы рекомендуем использовать PhAB!

    1. БиблиотекиPhoton'а

Интерфейс программирования приложений Photon'а (API) – организован как набор функций, каждая из которых характеризуется двухсимвольным префиксом:

Al функции перевода PhAB (PhAB Translation functions), позволяющие Вам работать с файлами перевода (tranlation files) (для приложений PhAB или баз данных сообщений) без использования редактора перевода. Эти подпрограммы отсутствуют в библиотеке совместного доступа, чтобы их использовать, необходимо линковать приложение с библиотекой phexlib;

Ap функции PhAB, работающие с модулями, базами данных виджетов, переводом (translation) и прочая. Эти подпрограммы отсутствуют в библиотеке совместного доступа, чтобы их использовать, необходимо линковать приложение с библиотекой Ap;

mbstr функции строк многобайтных символов. См. приложение "Поддержка многоязычности Unicode";

Pd функции работы с рисуемым контекстом;

Pf службы шрифтов, включая метрики текстов, и генерация побитых карт символьных строк (generation of bitmaps of character strings). Для более полной информации см. главу "Шрифты";

Pg низкоуровневые графические функции, позволяющие получить доступ к богатому набору примитивов в графических драйверах. Эти функции используются в библиотеках виджетов и могут также быть вызваны непосредственно, используя виджет PtRaw. См. главу "Необработанное рисование и мультипликация";

Ph примитивы Photon'а, являющиеся совокупностью запросов на рисование и отправляющие их в микроядро Photon'а для управления и отсечения до тех пор, пока они не достигнут графического драйвера, готовые к отображению на экран. Поскольку эти функции не являются общеиспользуемыми при программировании приложений, их тяжело использовать в библиотеках графики и виджетов;

Pi функции работы с образами (image). См. раздел "Работа с образами" в главе "Необработанное рисование и мультипликация";

Pm функции работы с памятью, которые можно использовать для уменьшения мерцания. См. раздел "Мультипликация" в главе "Необработанное рисование и мультипликация";

Pp функции печати, позволяющие устанавливать режимы и управлять печатью. См. главу "Печать";

Pt функции набора инструментов виджетов для создания, реализации и уничтожения виджетов, получении и установки ресурсов и прочая. Кроме использования виджетов в библиотеке виджетов Photon'а, Вы можете использовать виджеты третьей стороны или свои собственные виджеты;

Px функции расширений, работающие с загружаемыми образами, с файлами конфигурации, и другие полезные подпрограммы. Эти подпрограммы отсутствуют в библиотеке совместного доступа, чтобы их использовать, необходимо линковать приложения с библиотекой phexlib;

Rt функции таймера реального времени. См. раздел "Таймеры" в главе "Работа с кодом";

wc функции работы со строками символов расширенного (16-битного) набора. См. приложение "Поддержка многоязычности Unicode".

Функции и структуры данных этих библиотек описаны в книге "Справочник по библиотеке Photon'а". Функцииmbstr, Pd, Pf, Pg, Ph, Pi, Pm, Pp, Pt, Rt и wc находятся в главной библиотеке Photon'а. Функции, используемые для растеризации потока рисования Photon'а, находятся в библиотеке phrender. Библиотеки ph, phrender и Ap доступны в форме общего доступа и в статической.

Вы можете линковать Ваше приложение с библиотеками общего доступа, делая Ваше приложение меньшим по размеру. Для более полной информации, см. раздел "Выбор библиотек" в главе "Генерирование, компилирование и запуск кода".

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

Функции Al и Px включены в библиотеку расширения phexlib, которая доступна только в статической форме.

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

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