Mercurial > emacs
changeset 2071:8f410f56d98f
(posn-timestamp, posn-col-row, posn-point, posn-window):
(event-end, event-start, mouse-movement-p): Moved from mouse.el.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 08 Mar 1993 08:10:13 +0000 |
parents | 95996f2ad1c6 |
children | 4a3438b8b92d |
files | lisp/subr.el |
diffstat | 1 files changed, 52 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Mon Mar 08 08:09:54 1993 +0000 +++ b/lisp/subr.el Mon Mar 08 08:10:13 1993 +0000 @@ -197,7 +197,7 @@ prefix1))))) (setq i (1+ i)))))) (setq scan (cdr scan))))) - + (defun listify-key-sequence (key) "Convert a key sequence to a list of events." (if (vectorp key) @@ -252,6 +252,57 @@ (let ((base (logand event (1- (lsh 1 18))))) (downcase (if (< base 32) (logior base 64) base))))) +(defsubst mouse-movement-p (object) + "Return non-nil if OBJECT is a mouse movement event." + (and (consp object) + (eq (car object) 'mouse-movement))) + +(defsubst event-start (event) + "Return the starting position of EVENT. +If EVENT is a mouse press or a mouse click, this returns the location +of the event. +If EVENT is a drag, this returns the drag's starting position. +The return value is of the form + (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) +The `posn-' functions access elements of such lists." + (nth 1 event)) + +(defsubst event-end (event) + "Return the ending location of EVENT. EVENT should be a click or drag event. +If EVENT is a click event, this function is the same as `event-start'. +The return value is of the form + (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) +The `posn-' functions access elements of such lists." + (nth (1- (length event)) event)) + +(defsubst posn-window (position) + "Return the window in POSITION. +POSITION should be a list of the form + (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) +as returned by the `event-start' and `event-end' functions." + (nth 0 position)) + +(defsubst posn-point (position) + "Return the buffer location in POSITION. +POSITION should be a list of the form + (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) +as returned by the `event-start' and `event-end' functions." + (nth 1 position)) + +(defsubst posn-col-row (position) + "Return the row and column in POSITION. +POSITION should be a list of the form + (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) +as returned by the `event-start' and `event-end' functions." + (nth 2 position)) + +(defsubst posn-timestamp (position) + "Return the timestamp of POSITION. +POSITION should be a list of the form + (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) +nas returned by the `event-start' and `event-end' functions." + (nth 3 position)) + (defmacro save-match-data (&rest body) "Execute the BODY forms, restoring the global value of the match data." (let ((original (make-symbol "match-data")))