Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОУК / 09 семестр / Книги и методические указания / Руководство программиста в Photon.doc
Источник:
Скачиваний:
364
Добавлен:
04.03.2014
Размер:
7.99 Mб
Скачать

Небольшое пояснение переводчика

Это «Руководство программиста в Photon» представляет собой ну очень черновой вариант перевода, осуществлённый исключительно в ДСП-целях. Перевод писался, во-первых, в спешке, во-вторых, урывками. Поэтому читатель не найдёт здесь ни выверенных формулировок, ни корректного соответствия оригиналу, ни точности в терминах, ни… В общем, это просто “stub”, как выражаются в этой книге. Когда переводчик не понимал того, что написано, он не пытался вникать в суть, а, махнув рукой, писал что-то полувнятное и мчался дальше.

Кроме того, читатель вправе спросить, почему такие странные рисунки. Отвечаю: да, конечно, можно было просто скопировать в документ рисунки из оригинала, которые, в свою очередь, являются просто съёмками с экрана. Но. Такие рисунки плохо обрабатываются матричным принтером (счастливым обладателем какового является переводчик) – медленно и грязно. Поэтому оригинальные рисунки и заменены тем, что можно было бы назвать карикатурами, если бы не явное отсутствие таланта вышеупомянутого переводчика. Впрочем, мне кажется, произвести замену этих рисунков на оригинальные достаточно легко и быстро выполнимо. Было бы желание.

В заключение прошу прощения у всех тех, кому придётся читать это. Не надо ругать переводчика, ибо это даже не случай «не стреляйте в тапёра – он играет как может»: пресловутый переводчик совсем не может. Просто нужда заставила, соображения, что программистам, не владеющим английским, лучше прочитать это, чем вообще ничего.

Очень черновой перевод by Зайцев В.

От того, кто правил

Я постарался сделать этот текст более удобным для чтения как с экрана, так и в отпечатанном виде. Кроме того, где это было необходимо привел текст в соответствие с текущей редакцией на сайте QSSL. Для лучшего восприятия текста я все-таки заменил большую часть картинок в тексте на оригинальные – думаю так проще людям, впервые увидившим PhAB и иже с ним разобраться что к чему.

Горе-редактор Попелов М.

Введение

Итак, Вы уже, вероятно, увидели и испытали различные приложения Photon'а – оконный менеджер, просмотрщик Help'ов, игры и прочая – и готовы разрабатывать свои собственные приложения. Эта глава знакомит Вас с базовыми понятиями и концепциями, которые Вы будете использовать при разработке Photon'овских приложений.

В неё включены:

  • обзор архитектуры Photon'а;

  • построитель Photon'овских приложений – PhAB;

  • концепции виджетов;

  • образец программирования;

  • библиотеки Photon'а;

  • обзор построения приложений с помощью PhAB;

  • написание приложений без PhAB.

Обзор архитектурыPhoton'а

Менеджер Photon'а функционирует, как маленький сервер-процесс, включающий лишь несколько основных примитивов. Он создаёт трёхмерное пространство событий, заполненное областями и событиями. Этот менеджер не способен рисовать что-либо или работать с мышью, клавиатурой, пером.

Внешние, необязательные процессы – включая драйверы устройств, оконный менеджер или другие менеджеры – обеспечивают высокоуровневое функционирование оконной системы. Они связываются путём генерации событий в Photon'овском пространстве событий. Приложение Photon'а состоит из одной или более плоских, прямоугольных областей, которые действуют как "агенты" приложений в пространстве событий. Приложение рисует внутри области. Области сложены одна поверх другой в пространстве событий Photon'а. Область может иметь родительскую область и область одного с ней уровня (сёстры-области). Пользователь пребывает вовне пространства событий, наблюдая его спереди. Глубоко сзади в пространстве событий расположена особая область, называемая корневой областью (см. рис. 1).

Когда Вы запускаете приложение, Вы взаимодействуете с ним, и оно взаимодействует с другими приложениями и Photon'ом различным образом:

  • Вы нажимаете клавиши и кнопки мыши;

  • приложение выполняет графические операции;

  • и т.д.

Эти взаимодействия называются событиями, и они перемещаются между областями в пространстве событий подобно фотонам света.

Пространство событий

Рис. 1. Пространство событий Photon'а с точки зрения пользователя

Например:

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

Когда Ваше приложение желает что-либо нарисовать, оно генерирует событие и отсылает его вперёд (в сторону пользователя). Драйвер может перехватить событие и сформировать изображение на экране.

Каждая область может определить, в каких областях она заинтересована, путём установки своей чувствительности и непрозрачности:

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

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

Для получения более полной информации см. приложение к Архитектуре Photon'а.