Spec-Zone.ru › Elisp

Примеры событий

Если пользователь нажимает и отпускает левую кнопку мыши в одном и том же месте, это генерирует последовательность событий такого типа:

(down-mouse-1 (#<window 18 on NEWS> 2613 (0 . 38) -864320))
(mouse-1      (#<window 18 on NEWS> 2613 (0 . 38) -864180))

Удерживая нажатой клавишу Control, пользователь может удерживать вторую кнопку мыши и перетаскивать мышь с одной строки на другую. Это порождает два события, как показано здесь:

(C-down-mouse-2 (#<window 18 on NEWS> 3440 (0 . 27) -731219))
(C-drag-mouse-2 (#<window 18 on NEWS> 3440 (0 . 27) -731219)
                (#<window 18 on NEWS> 3510 (0 . 28) -729648))

Удерживая нажатыми клавиши Meta и Shift, пользователь может нажать вторую кнопку мыши на строке режима окна и затем перетащить мышь в другое окно. Это генерирует пару событий такого вида:

(M-S-down-mouse-2 (#<window 18 on NEWS> mode-line (33 . 31) -457844))
(M-S-drag-mouse-2 (#<window 18 on NEWS> mode-line (33 . 31) -457844)
                  (#<window 20 on carlton-sanskrit.tex> 161 (33 . 3)
                   -453816))

Фрейм с фокусом ввода может занимать не весь экран, и пользователь может переместить мышь за пределы области фрейма. Внутри track-mouse специальной формы это генерирует событие такого рода:

(mouse-movement (#<frame *ielm* 0x102849a30> nil (563 . 205) 532301936))

Для обработки сигнала SIGUSR1 определите интерактивную функцию и привяжите её к последовательности событий signal usr1:

(defun usr1-handler ()
  (interactive)
  (message "Got USR1 signal"))
(global-set-key [signal usr1] 'usr1-handler)

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

Spec-Zone.ru

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