Spec-Zone.ru › GTK 4.0

Контроллеры событий и жесты

Контроллеры событий — это автономные объекты, которые могут выполнять определенные действия при получении GdkEvents. Они привязаны к GtkWidget и могут получать информацию о фазе распространения события, на которой они будут обрабатывать события.

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

Поскольку жесты являются «простыми» единицами, нередко несколько жестов объединяются для выполнения действий более высокого уровня. Объединённые жесты обрабатывают одни и те же последовательности событий одновременно, и эти последовательности разделяют одно и то же состояние во всех объединённых жестах. Ниже приведены некоторые примеры группирования:

  • «Перетаскивание» и «свайп» могут потребовать группирования. Первый будет сообщать о событиях при перетаскивании, второй — сообщит скорости свайпа по осям X/Y только после завершения распознавания.

  • Объединение жеста «перетаскивание» с жестом «панорамирование» позволит эффективно перетаскивать только в направлении панорамирования, поскольку оба жеста разделяют состояние.

  • Если одновременно необходимы «нажатие» и «длительное нажатие», они должны быть сгруппированы.

Явные сочетания клавиш обрабатываются GtkShortcutController, который является сложным обработчиком событий, который может либо активировать сочетания клавиш сам, либо передать их другому контроллеру в зависимости от его «области действия».

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/event-controllers-and-gestures

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API