Spec-Zone.ru › Elisp

События перетаскивания

В Emacs можно вызвать событие перетаскивания, даже не меняя одежды. Событие перетаскивания происходит каждый раз, когда пользователь нажимает кнопку мыши, а затем перемещает мышь в другую позицию символа до отпускания кнопки. Как и все события мыши, события перетаскивания представляются в Lisp в виде списков. В списках записаны как начальная позиция мыши, так и конечная, например:

(event-type start-position end-position)

Для события перетаскивания имя символа event-type содержит префикс ‘drag-’. Например, перетаскивание мыши с зажатой кнопкой 2 порождает событие drag-mouse-2. Второй и третий элементы события — start-position и end-position в приведённом выше примере — задают начальную и конечную позиции перетаскивания в виде списков позиций мыши (см. События щелчка). Получить доступ ко второму элементу любого события мыши можно таким же образом. Однако событие перетаскивания может завершиться за пределами кадра, который был выбран изначально. В этом случае в списке позиций третьего элемента будет указан этот кадр вместо окна.

Префикс ‘drag-’ следует за префиксами клавиш-модификаторов, такими как ‘C-’ и ‘M-’.

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

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Drag-Events.html

Spec-Zone.ru

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