Function: viper-parse-mouse-key

viper-parse-mouse-key is a byte-compiled function defined in viper-mous.el.gz.

Signature

(viper-parse-mouse-key KEY-VAR EVENT-TYPE)

Source Code

;; Defined in /usr/src/emacs/lisp/emulation/viper-mous.el.gz
;; The key is of the form (MODIFIER ... BUTTON-NUMBER)
;; Converts into a valid mouse button spec for the appropriate version of
;; Emacs.  EVENT-TYPE is either `up' or `down'.  Up returns button-up key; down
;; returns button-down key.
(defun viper-parse-mouse-key (key-var event-type)
  (let ((key (symbol-value key-var))
	button-spec meta-spec shift-spec control-spec)
    (if (null key)
	;; just return nil
	()
      (setq button-spec
	    (cond ((memq 1 key)
		   (if (eq 'up event-type)
		       "mouse-1" "down-mouse-1"))
		  ((memq 2 key)
		   (if (eq 'up event-type)
		       "mouse-2" "down-mouse-2"))
		  ((memq 3 key)
		   (if (eq 'up event-type)
		       "mouse-3" "down-mouse-3"))
		  (t (error
                      "%S: Invalid button number, %S" key-var key)))
	    meta-spec
	    (if (memq 'meta key) "M-" "")
	    shift-spec
	    (if (memq 'shift key) "S-" "")
	    control-spec
	    (if (memq 'control key) "C-" ""))

      (vector
       (intern (concat control-spec meta-spec
                       shift-spec button-spec))))))