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

События генерируются по следующим причинам:

  • нажата клавиша, информация о состоянии клавиатуры

  • нажата и отпущена кнопка мыши

  • движение мыши (с нажатой или ненажатой кнопкой)

  • пересечение границы

  • регион открылся или закрылся (exposed or covered)

  • операции перетаскивания

  • операция типа "тащи и бросай"

  • функции прорисовки

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

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

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

  • упорядоченным опросом (polling);

  • синхронным уведомлением;

  • асинхронным уведомлением.

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

При упорядоченном опросе приложение вызывает некую функцию, которая запрашивает менеджер Photon'а с требованием немедленного ответа – либо с каким-то событием, либо с состоянием, указывающим, что никакое событие не доступно.

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

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

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

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

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

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

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

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

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

  • регион драйверов, располагающийся на пользовательской стороне региона устройств;

  • регион приложений, располагающийся на другой стороне региона устойств.

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

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