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

Глава 13. Доступ к модулям PhAb из программного кода 196

Создание внутренних связей 196

Использование внутренних связей в Вашем программном коде 197

Использование базы данных виджетов 199

Создание базы данных 199

Создание динамической базы данных 200

Функции базы данных виджетов 200

Глава 14. Поддержка международных языков 203

Соображения о проектировании приложения 203

Размер виджетов, основанных на тексте 203

Выравнивание 204

Высота шрифта 205

Жёстко закодированные строки 205

Использование символа "@" в именах экземпляров 205

Двуязычные приложения 206

Общие строки 207

Генерация языковой базы данных 207

Базы данных сообщений 207

Редактор языка 208

Запуск Вашего приложения на исполнение 211

Распространение Вашего приложения 212

Глава 15. Контекстно-чувствительная помощь 214

Создание текста помощи 214

Тэги 214

Атрибуты 214

Ссылки на темы помощи 216

Связывание помощи с виджетами 217

Получение доступа к помощи из Вашего программного кода 218

Глава 16. Межпроцессные связи 220

Коннекции 221

Пример 222

Отсылка QNX-сообщений 224

Приём QNX-сообщений 225

Пример – регистрация сообщений об ошибках 228

Импульсы Photon'а 229

Пример – очередь сообщений 231

Обработка сигналов 233

Другие механизмы ввода/вывода 234

Глава 17. Параллельные операции 235

Обзор 235

Фоновое исполнение 235

Рабочие процедуры 236

Потоки 239

Запирание библиотеки Photon'а 240

Несколько потоков, обрабатывающих события 241

Потоки реального времени 241

Не-Photon'овские и Photon'овские потоки 242

Модальные операции и потоки 242

Завершение многопоточной программы 243

Потоки и рабочие процедуры 244

Глава 18. Необработанное рисование и мультипликация 246

Виджет PtRaw 246

Функция необработанного рисования 247

Определение холста необработанного виджета 248

Преобразование координат 248

Отсечение 248

Использование повреждённых черепиц (tiles) 249

Использование модели для более сложного рисования 250

Примеры простых функций прорисовки PtRaw 250

Цвет 251

Атрибуты рисования 252

Дуги, эллипсы, многоугольники и прямоугольники 253

Прямоугольники 254

Многоугольники 256

Дуги, круги, хорды и сектора 257

Спэны – сложные кривые 258

Линии, пиксели и массивы пикселей 258

Текст 259

Побитовые образы (bitmaps) 260

Образы (images) 261

Образы на основе палитры 262

Образы в непосредственных цветах 262

Образы в градиентных цветах 262

Создание образов 262

Кэширование образов 263

Прозрачность в образах 263

Отображение образов 264

Управление образами 264

Освобождение образов 264

Мультипликация 265

Создание серии кадров 265

Циклическая прокрутка кадров 266

Исключение мерцания в мультипликации 267

Режим рисования с прямым доступом 268

Внеэкранная видеопамять 270

Поддержка альфа-сопряжения 272

Поддержка хроматического ключа 273

Операции расширенного растра 273

Видеорежимы 274

Градиенты 275

Видеоверлей 276

Слои 278

Поверхности 279

Окна просмотра 279

API слоев 279

Пример 280

Глава 19. Шрифты 283

Метрики символа 283

Имена шрифтов 284

Запрос доступных шрифтов 284

Генерирование имён шрифтов 286

Написание текста в прямоугольной области 288

Исправление повреждений в случае пропорционального шрифта текста 291

Глава 20. Печать 294

Контекст печати 294

Создание контекста печати 295

Модифицирование контекста печати 295

Запуск процесса печати 295

Печать требуемых виджетов 297

Печать новой страницы 297

Печать скроллирующихся виджетов 298

Приостановка и возобновление работы печати 299

Завершение работы печати 300

Освобождение контекста печати 300

Пример 300

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

События 356

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

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

Регионы 357

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Регион фона 365

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

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

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

Unicode 369

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

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

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

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

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

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

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

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

Введение 376

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

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

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

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

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

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

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

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

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

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

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

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

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

Пояснения 383

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

Графика 384

Пример 385

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Глоссарий 397

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