Жесты flicks

Windows Vista включает в себя набор из восьми основных жестов прокрутки. Flicks — это быстрые линейные движения пера, связанные с действиями и командами прокрутки.

Сведения о flick

Функция flicks предоставляет пользователю новый способ взаимодействия с планшетным компьютером, позволяя выполнять стандартные действия, выполняя быстрые жесты с помощью пера. Flicks сосуществуют и не нарушают обычные действия пользователя, такие как касание слева и вправо, прокрутка и рукописный ввод.

Флик — это однонаправленный жест пера, который требует, чтобы пользователь связался с дигитайзером быстрым движением. Флик характеризуется высокой скоростью и высокой степенью прямолинейности. Flick определяется по его направлению. Flicks можно выполнять в восьми направлениях, соответствующих кардинальным и вторичным направлениям компаса.

Действие или действие flick — это действие или ярлык, выполняемые в ответ на щелк. Flicks сопоставляются с действиями. На следующем рисунке показана схема восьми щелчков пером, которые соответствуют их действиям.

Иллюстрация, показывающая карту жестов

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

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

  1. Последовательность полученных пакетов определяется не как flick или

  2. Происходит перо вверх.

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

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

Где обнаруживаются щелчки

Жесты flick становятся возможными благодаря тому, что перетаскивание обычно выполняется довольно медленно. Пользователь должен сначала выбрать начальную точку перетаскивания, выполнить перетаскивание, а затем нацелить на конечную точку. Как правило, это занимает слишком много времени, чтобы квалифицироваться как флик. Однако на поверхностях рукописного ввода быстрые штрихи, которые будут квалифицироваться как flicks происходят часто; распространенным примером является пересечение "t". Таким образом, по умолчанию обнаружение фликов отключается на поверхностях рукописного ввода и включается на уровне всей системы.

Проблемы фокусировки

После обнаружения щелчка начинается последовательность событий, которая в конечном итоге приводит к тому, что система выполняет определенное действие в ответ на произошедший щелк. Во-первых, подпрограмма обнаружения в подсистеме ввода пера определяет, в какое окно следует отправить flick. Обычно это окно с фокусом, но есть исключения. Для прокрутки щелкание отправляется в окно, над которым произошло это. Обратите внимание, что это не обязательно окно с фокусом. Когда фокус отправляется в окно без фокуса, фокус не меняется на это окно.

Действия flick

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

Чтобы предупредить приложение о возникновении щелчка, ему отправляется сообщение окна. Это сообщение окна содержит начальную точку и направление щелчка. Если приложение обрабатывает это сообщение окна, подсистема ввода пера не выполняет никаких дальнейших действий.

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

Обратная связь flick состоит из двух частей; значок, представляющий действие, и метка, содержащая имя действия. Метка отображается под значком. Отзыв отображается сразу после обнаружения щелчка. Хотя приложения могут настраивать свое поведение в ответ на щелчки, обрабатывая сообщение окна щелчка, приложение не может отключить или изменить обратную связь по щелчку.

Ожидается, что большинство приложений не будут учитывать flick и, следовательно, не будут обрабатывать сообщение окна, описанное выше. Если сообщение не обработано, подсистема ввода пера выполнит дальнейшие действия. Сначала выполняется поиск действия, связанного с направлением обнаруженного щелчка. Далее будут предприняты действия (описанные в таблице ниже), чтобы целевое окно выполнило это действие. Для многих действий flick это включает в себя отправку команды приложения, но некоторые реализованные действия не выполняются.

Обработка команд приложения

Приложение должно реагировать на любую из команд приложения, которые могут быть назначены жесту прокрутки. Если приложению не удается ответить на сообщение WM_TABLET_FLICK, Windows Vista отправляет соответствующее уведомление WM_APPCOMMAND , а затем WM_KEYDOWN уведомление.

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

Get-Help Резервное копирование нажатия клавиши
APPCOMMAND_BROWSER_BACKWARD
Нет
APPCOMMAND_BROWSER_FORWARD
Нет
APPCOMMAND_COPY
CTRL+C
APPCOMMAND_PASTE
CTRL+V
APPCOMMAND_UNDO
CTRL+Z
APPCOMMAND_DELETE
DEL
APPCOMMAND_CUT
CTRL+X
APPCOMMAND_OPEN
CTRL+O
APPCOMMAND_PRINT
CTRL+P
APPCOMMAND_SAVE
CTRL+S
APPCOMMAND_REDO
CTRL+Y
APPCOMMAND_CLOSE

Команды редактирования, такие как "Копировать", "Вставить", "Вырезать" и "Удалить", могут быть направлены против выделенного фрагмента или объекта, расположенного в основе жеста прокрутки. Если выбор отсутствует, можно использовать данные в структуре FLICK_POINT , чтобы определить, какой объект мог быть целевым объектом для команды редактирования.

Справочник по API Flicks

Реагирование на жесты flick