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

Как и в других оконных системах, в Photon'е существует концепция указателя (т.е. экранного курсора). Этот указатель графически представлен на экране и отслеживает движения указательного устройства (напр., мыши или трекбола). Драйверы указательных устройств генерируют события, направляемые в сторону корневого региона.

Сгенерированное драйвером событие указателя является несфокусированным, или необработанным, до тех пор, пока оно не достигнет региона устройств, где менеджер Photon'а его перехватит и затем определит ему местоположение в пространстве координат Photon'а.

Определение этого местоположения – которое известно как фокусировка события – управляет тем, какие регионы будут накапливать событие. Затем менеджер Photon'а повторно сгенерирует событие из сфокусированного местоположения.

Поскольку Photon генерирует сфокусированные или сфабрикованные (cooked) события перемещения указателя в обоих направлениях от региона устройств, программы приложения могут в той же степени, что и программы драйвера, быть информированными о действиях указателя. Например, когда графический драйвер накапливает сфокусированные события указателя, он обновляет местоположение графического изображения указателя на экране.

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

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

Оконный менеджер дополняет методы фокусировки клавиатуры. Более подробно см. раздел "Оконный менеджер Photon'а".

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

Приложение инициирует перетаскивание, генерируя событие перетаскивания для региона устройств. Как только это событие забирается регионом устройств, менеджер Photon'а берёт на себя заботу о взаимодействии с указателем (т.е. перетаскиваемым прямоугольником) до тех пор, пока операция перетаскивания не будет завершена. После завершения, регион устройств генерирует событие перетаскивания для приложения.

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

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

    1. Драйверы фотона

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

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

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