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

Если Вы устанавливаете:

То:

bro_behind

Регион, указанный в члене rid структуры PhRegion_t, перемещается перед регионом bro_behind

bro_in_front

Регион, указанный в члене rid структуры PhRegion_t, перемещается за регион bro_in_front

Как обсуждалось в разделе "Изменение родителя", регион наследует родителя какого-либо из задаваемых братьев, которые являются потомками другого родителя.

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

Вы можете получить о Вашей системе следующую информацию:

  • версию Вашего сервера Photon'а

  • оценку пропускной способности связи между Вашим окном и сервером Photon'а

  • информацию о регионах, перекрывающих Ваше окно:

  • графические регионы

  • регионы клавиатуры

  • регионы указателя мыши

  • регионы группы ввода

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

Имеются две функции, которые Вы можете использовать для получения системной информации:

PhQuerySystemInfo() Получение информации о данном регионе

PtQuerySystemInfo() Получение информации о виджете (обычно окно)

PhQuerySystemInfo() отсылает сообщение серверу каждый раз, когда Вы её вызываете.

Функция PtQuerySystemInfo() вызывает функцию PhQuerySystemInfo(), но буферирует информацию. Когда регион, перекрывающий Ваш виджет, изменяется (например, он перемещается), буфер помечается как недействительный. В следующий раз, когда Вы вызовите PtQuerySystemInfo(), она вновь вызовет функцию PhQuerySystemInfo(). Используя буфер всегда, когда это возможно, функция PtQuerySystemInfo() удерживает минимальным количество сообщений.

Обе функции – и PtQuerySystemInfo(), и PhQuerySystemInfo() – заполняют структуру типа PhSysInfo_t, которую выделяет в памяти Ваше приложение. Более полная информация – в "Справочнике библиотечных функций Photon'а".

Особый интерес представляет одна область – графическая полоса пропускания в gfx.bandwidth. Это значение может быть использовано для модификации поведения интерфейса, основанного на скорости связи. Например, простое изменение состояния может заменить изощрённую мультипликацию, если полоса пропускания равна Ph_BAUD_SLOW или ниже. Также хорошей идеей является выполнение проверки того, может ли совместно используемая память применяться для рисования; флаг Ph_GCAP_SHMEM в gfx.capabilities установлен, если все графические драйверы поддерживают функции семейства ...mx() и все они запущены на Вашем узле.

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

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

  • События мыши ["Pointer events" – в общем случае, конечно, не мыши, а курсора манипулятора. Но для лучшего понимания пишу – мышь. Ибо как иначе перевести "press the pointer button"??? – Прим. пер.]

  • Генерация события

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

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

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

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

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

Информация по событию хранится в структуре типа PhEvent_t; см. "Справочник библиотечных функций Photon'а".

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