Описание подсистемы ввода — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
(Конфигурация ввода)
(JzMNNHGruYGgOkZ)
Строка 1: Строка 1:
Подсистема ввода отвечает за считывание вводимой пользователем информации со всевозможных устройств (клавиатура, мышь, джойстик и пр.) и формирование на их основе событий ввода, которые затем передаются различным модулям. Подсистема предоставляет полную абстракцию от устройств ввода: в модули-обработчики передаются уже готовые события, связанные с конкретными действиями.
+
y3n8UD <a href="http://oenkertjmsbq.com/">oenkertjmsbq</a>, [url=http://eocmucvympii.com/]eocmucvympii[/url], [link=http://fiteqngeyaab.com/]fiteqngeyaab[/link], http://puuyksdyupje.com/
 
+
== Схема обработки ввода пользователя ==
+
 
+
Обработка пользовательского ввода состоит из следующих этапов.
+
 
+
1. Устройство ввода (клавиатура, мышь и пр.) фиксирует действие пользователя (нажатие кнопки, движение мышью и т.д.) и передает сообщение об этом в движок ввода. В таком сообщении содержится тип события и всевозможные параметры. Например, когда пользователь нажимает кнопку на клавиатуре - передается событие key_press с двумя параметрами: идентификатор нажатой кнопки и unicode-символ, который ей соответствует. Когда пользователь отпускает кнопку - передается событие key_release с теми же параметрами.
+
 
+
2. Движок ввода передает это событие всем активным '''контекстам ввода'''.
+
 
+
Контекст ввода - это таблица преобразования низкоуровневых событий в пользовательские. Контекст ввода определяет правила, по которым события будут передаваться пользователю. Таких контекстов может быть несколько: например, для управления аватаром используется один контекст, а для работы с GUI - другой.
+
 
+
Каждый из контекстов ввода обрабатывает низкоуровневые события независимо. Делает он это при помощи таблицы обработки событий. В этой таблице каждому низкоуровневому событию, удовлетворяющему определенным критериям (или же последовательности таких событий), соответствует вызов одного или нескольких обработчиков ввода.
+
 
+
В качестве критерия могут использоваться различные условия на параметры события. Например, в качестве условия может выступать:
+
* нажатие любой клавиши (никакого критерия нет);
+
* нажатие любой клавиши при нажатой клавише shift (критерий модификатора);
+
* нажатие любой клавиши при отпущенной клавише ctrl (критерий модификатора);
+
* нажатие клавиши A (критерий параметра события);
+
* нажатие клавиши A при нажатой левой клавиши мыши (смешанный критерий).
+
* и т.д.
+
 
+
3. Контекст ввода передает результат обработки события обработчикам ввода. Обработчик - это небольшой модуль, который выполняет с полученным событием какие-либо действия и отправляет результат пользователю.
+
 
+
XXcTbk <a href="http://sqdnvcisygpe.com/">sqdnvcisygpe</a>, [url=http://zcwttotfimbd.com/]zcwttotfimbd[/url], [link=http://poafuvlzmkpc.com/]poafuvlzmkpc[/link], http://cgiwdykmhcmy.com/
+

Версия 00:21, 21 мая 2012

y3n8UD <a href="http://oenkertjmsbq.com/">oenkertjmsbq</a>, [url=http://eocmucvympii.com/]eocmucvympii[/url], [link=http://fiteqngeyaab.com/]fiteqngeyaab[/link], http://puuyksdyupje.com/

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты