Алан Дэй (Allan Day)
aday@gnome.org
Якуб Штайнер (Jakub Steiner)
Работа с мышью, сенсорными панелью и экраном.

# Указатель и сенсорный ввод

Указатель и сенсорный ввод — два главных способа взаимодействия с вашим приложением.

# Ввод с помощью указателя

A pointing device is any input device that allows the manipulation of a pointer — typically represented as an arrow, and often called a cursor — on screen. While mice and touchpads are the most common, there are a wide variety of such devices, including graphics tablets, track balls, track points and joysticks.

## Главная и вспомогательная кнопки

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

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

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

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

## Общие рекомендации

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

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

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

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

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

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

## Дублирование управления с клавиатуры

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

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

Действие | Мышь | Клавиатура
--- | --- | ---
Открыть элемент | Главная кнопка | Space
Добавить/убрать элемент из выделения | Ctrl и главная кнопка | CtrlSpace
Расширить выделение | Shift и главная кнопка | Shift в комбинации с любой из следующих клавиш: Space Home End PageUp PageDown
Изменить выделение | Главная кнопка | Одна из кнопок: ← ↑ → ↓ Home End PageUp PageDown
Выделить всё | Выбрать главной кнопкой первый элемент, затем выбрать главной кнопкой последний элемент, удерживая клавишу Shift | CtrlA
Убрать выделение | Нажать главную кнопку на фоне контейнера | ShiftCtrlA

# Сенсорный ввод

Touch screens are also an increasingly common part of modern computer hardware, and applications created with GTK are likely to be used with hardware that incorporates a touch screen. To make the most of this hardware, and to conform to users’ expectations, it is therefore important to consider touch input as a part of application design.

## Прикладные соглашения о сенсорном управлении

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

Действие | Описание | Что делает
--- | --- | ---
Нажатие
| Нажатие на элемент. | Primary action. Item opens — photo is shown full size, application launches, song starts playing.
Нажатие с удержанием
| Нажать и держать секунду или две. | Вспомогательное действие. Выбрать элемент и вывести список доступных действий.
Перетаскивание
| Перенести палец, касаясь поверхности. | Прокручивает область на экране.
Сведение или разведение
| Коснитесь поверхности двумя пальцами, затем сводите или разводите их. | Changes the zoom level of the view (e.g. Maps, Photos).
Двойное нажатие
| Дважды быстро коснуться экрана. | Последовательно приближает.
Рывок
| Очень быстрое перетаскивание с убиранием пальца от поверхности без замедления. | Удаляет элемент.

## Системные соглашения о сенсорном управлении

В GNOME 3 несколько жестов зарезервированы под системные нужды. Не используйте эти жесты в своих приложениях.

Перетаскивание у границы
| Проведите пальцем от границы экрана. | Верхняя левая граница открывает меню приложения. Верхняя правая граница открывает системное меню. Левая граница открывает «Обзор» в режиме отображения доступных приложений.
Щипок тремя пальцами
| Сведите три или более пальцев друг к другу, касаясь при этом ими поверхности. | Открывает «Обзор».
Перетаскивание четыремя пальцами
| Перетаскивайте вверх или вниз четыремся пальцами, касаясь ими поверхности. | Переключает рабочее место.
Удерживание тремя пальцами с нажатием
| Hold three fingers on the surface while tapping with the fourth. | Переключает приложение.