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

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

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

Рис. 21-1. Упакованные данные и заголовки 306

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

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

Пример 308

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

Виджет-источник 309

Виджет-адресат 310

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

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

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

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

Список ссылок на очистку 314

Эндиан-список 314

Fixup-список 315

Элемент реестра 317

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

Оба приложения 317

Приложение-источник 317

Приложение-адресат 318

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

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

Рис. 22-1. Координатное пространство Photon'а 319

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

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

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

Начало координат в (0,0) и начальный прямоугольник в (0,0) 320

Начало координат в (0,0) и начальный прямоугольник не в (0,0) 320

Начало координат не в (0,0) и начальный прямоугольник не в (0,0) 321

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

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

Рис. 22-2. Регионы и отсечение событий 322

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

Рис. 22-3. Иерархия регионов типичной системы Photon'а 322

Родительский регион 323

Братские регионы 323

Месторасположение по умолчанию 323

Флаг Ph_FORCE_FRONT 324

Задаваемое месторасположение 325

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

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

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

Изменение месторасположения региона 326

Изменение родителя 326

Задаваемые братья 326

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

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

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

Нажатие кнопки 328

Отпускание кнопки 328

Несколько щелчков 328

Клавиши-модификаторы 329

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

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

Неисключительное событие 331

Направленное событие 331

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: проверка закрытия окна 342

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

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

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

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

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

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

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

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

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

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

PtInit() 351

PtCreateWidget() – первый вызов 352

PtSetArg() 352

PtCreateWidget() – второй вызов 352

PtRealizeWidget() 352

PtMainLoop() 353

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

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

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

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

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

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

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

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

События 357

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

Набор прямоугольников события 357

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

Регионы 358

Расщеплённый образ регионов Photon'а 358

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Драйвер мыши 363

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

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

Графический драйвер 363

Несколько графических драйверов 364

Драйверы, использующие отдельные регионы 364

Драйверы, использующие перекрывающиеся регионы 364

Инкапсуляция драйверов 364

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

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

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

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

Регион фона 365

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

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

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

Unicode 369

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

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

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

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

Пример: текстовые виджеты 372

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

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

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

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

Введение 376

Шаги по загрузке Photon'а 377

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

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

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

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

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

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

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

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

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

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

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

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

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

Пояснения 383

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

Графика 384

Пример 385

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Глоссарий 397

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

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