Примеры событий
Если пользователь нажимает и отпускает левую кнопку мыши в одном и том же месте, это генерирует последовательность событий такого типа:
(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