Главная » Просмотр файлов » Руководство программиста в Photon

Руководство программиста в Photon (1037671), страница 2

Файл №1037671 Руководство программиста в Photon (Раздаточные материалы) 2 страницаРуководство программиста в Photon (1037671) страница 22017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Пример 294

Глава 21. "Тащить и бросать" 297

Механизм транспортировки 297

Использование "тащи и бросай" 298

Запуск операции "тащи и бросай" 298

Получение событий "тащи и бросай" 300

Отмена операции "тащи и бросай" 302

Регистрация новых транспортных типов 303

Простая структура данных 303

Более сложная структура 305

Транспортные функции 308

Глава 22. Регионы 310

Координатное пространство Photon'а 310

Координаты региона 311

Начало координат региона 311

Начальные размеры и расположение 311

О регионах потомка 312

Регионы и отсечение событий 313

Месторасположение и иерархия 313

Использование регионов 316

Открытие региона 316

Размещение регионов 317

Системная информация 318

Глава 23. События 319

События мыши 319

Генерирование событий 321

Нацеливание на определённые регионы 322

Нацеливание на определённые виджеты 322

События, генерируемые клавиатурными клавишами 322

Координаты события 323

Обработчики события – необработанные и отфильтрованные ответные реакции 324

Накопление событий 325

Сжатие событий 326

Перетаскивание 326

Инициализация перетаскивания 326

Контурное перетаскивание 327

Непрозрачное перетаскивание 328

Обработка событий перетаскивания 328

Глава 24. Управление окнами 331

Флаги управления окнами 331

Флаги отображения окна 331

Флаги управления окном 332

Оконные флаги уведомления 332

Ответная реакция уведомления 333

Получение и установка состояния окна 334

Управление несколькими окнами 336

Функции управления окнами 336

Запуск самостоятельного приложения 336

Модальные диалоги 337

Глава 25. Программирование в Photon'е без PhAB'а 341

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

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

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

Что происходит 342

Подсоединение программного кода приложения к виджету 344

Ответные реакции 345

Обработка событий 345

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

Приложение 1. Архитектура Photon'а 347

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

Регионы и события 348

События 348

Начальный набор прямоугольников 348

Накопленный набор прямоугольников 348

Регионы 349

Чувствительность 350

Непрозрачность 350

Краткая сводка атрибутов 350

Регистрация событий (event logging) 350

Модификация событий 351

Взаимосвязь родитель/потомок 351

Координатное пространство Photon'а 351

Корневой регион 351

Типы событий 351

Как владельцы регионов уведомляются о событиях 352

Упорядоченный опрос 352

Синхронное уведомление 352

Асинхронное уведомление 352

Регион устройств 353

Фокусировка указателя 353

Фокусировка клавиатуры 353

События перетаскивания 353

Событие "тащи и бросай" 353

Драйверы фотона 354

Драйверы ввода 354

Драйверы вывода 354

Оконный менеджер Photon'а 355

Регионы оконных рамок 356

Регион фокусировки 356

Регион рабочей области 356

Регион фона 356

ПРИЛОЖЕНИЕ 2. ОБЗОР ВИДЖЕТОВ 357

Приложение 3. Поддержка многоязычности Unicode 360

Широкие и многобайтовые символы 360

Unicode 360

UTF-8 кодирование 361

Функции преобразования 362

Другие кодировки 362

Драйверы клавиатуры 363

Слепые клавиши (dead keys) и скомпонованные последовательности 363

Скомпонованные последовательности Photon'а 364

Приложение 4. Photon во встроенных системах 367

Принимаемые допущения 367

Введение 367

Шаг 1. Экспорт переменной окружения PHOTON_PATH 368

Шаг 2. Запуск сервера Photon'а 369

Шаг 3. Запуск драйверов ввода 369

Шаг 4. Запуск менеджера шрифтов 370

Конфигурирование шрифтов 370

Запуск сервера шрифтов 371

Шаг 5. Переключение в графический режим 372

Установка карты в правильный режим 372

Шаг 6. Запуск графического драйвера 373

Шаг 7. Запуск оконного менеджера 374

Необходимые файлы 374

Шаг 8. Запуск Вашего приложения 374

Необходимые файлы 374

Пояснения 374

Флэш-файловая система 375

Графика 375

Пример 376

Требуемые бинарные файлы 376

Требующиеся библиотеки 377

Требуемые шрифты 378

Службы шрифтов 379

Сборка всего этого в единое целое 380

Полезные советы 382

Приложение 5. Использование PhAB под Microsoft Windows 383

Photon в одиночном окне 383

Завершение PhAB 383

Дополнительные опции 384

Файловые имена с буквами в обоих регистрах 384

DDD – Отладчик Отображения Данных 384

Строка запуска отладчика 385

Функциональность панели управления ресурсами 385

Разработка индивидуальных виджетов и PhAB 386

Статическое линкование Ваших индивидуальных виджетов 386

Глоссарий 388

Ненеобходимое послесловие переводчика. 398

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

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

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

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

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

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • и т.д.

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

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

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

Например:

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

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

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

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

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

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

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

microGUI (микроГрафический Пользовательский Интерфейс) включает очень мощный инструмент разработки, называемый Построитель Приложений Photon'а (Photon Application Builder, сокращённо PhAB или appBuilder). Это инструмент визуального проектирования, генерирующий базовый код С и/или С++, обеспечивающий пользовательский интерфейс для Ваших приложений. С помощью PhAB Вы можете в чрезвычайной степени уменьшить объём программирования, требуемый для построения Вашего приложения. Вы можете сэкономить не только время, необходимое для написания части Вашего кода, относящегося к пользовательскому интерфейсу, но также время на отладку и тестирование. PhAB поможет Вам получить Ваши приложения более быстро продаваемыми и с более профессиональными результатами.

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

Получение немедленных результатов

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

Как только вы создали виджет, PhAB отображает его на экране вместе со всеми ресурсами, управляющими тем, как данный виджет выглядит и ведёт себя. Изменить любой ресурс виджета легко – просто щёлкните на ресурсе, выберите новое значение, и дело сделано. Так же легко переместить виджет или изменить его размеры – просто укажите на виджет и перетащите его мышкой.

Концентрация на функциональности

Подобно другим средам разработки GUI (Графическим Пользовательским Интерфейсам), PhAB позволяет Вам прикрепить коды функций к ответным реакциям виджетов (callback – ответная реакция в вольном переводе, это термин PhAB, особая вкладка в PhAB. Прим. пер.), обеспечивая Вашему приложению функциональность. Например, Вы можете прикрепить код функции к кнопке, так что функция будет вызываться каждый раз, когда пользователь щёлкнет на кнопке.

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

Создание прототипов без написания кода

Как только Вы завершили любую часть пользовательского интерфейса, Вы можете, имея PhAB, сгенерировать весь С и/или С++ код, требуемый для того, чтобы оживить интерфейс, что означает, что Вы можете создать полностью прототип, не написав ни строчки кода.

Характеристики

Тип файла
Документ
Размер
7,62 Mb
Тип материала
Высшее учебное заведение

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6392
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее