(provide (quote x-mouse)) (defconst x-button-right (char-to-string 0)) (defconst x-button-middle (char-to-string 1)) (defconst x-button-left (char-to-string 2)) (defconst x-button-right-up (char-to-string 4)) (defconst x-button-middle-up (char-to-string 5)) (defconst x-button-left-up (char-to-string 6)) (defconst x-button-s-right (char-to-string 16)) (defconst x-button-s-middle (char-to-string 17)) (defconst x-button-s-left (char-to-string 18)) (defconst x-button-s-right-up (char-to-string 20)) (defconst x-button-s-middle-up (char-to-string 21)) (defconst x-button-s-left-up (char-to-string 22)) (defconst x-button-m-right (char-to-string 32)) (defconst x-button-m-middle (char-to-string 33)) (defconst x-button-m-left (char-to-string 34)) (defconst x-button-m-right-up (char-to-string 36)) (defconst x-button-m-middle-up (char-to-string 37)) (defconst x-button-m-left-up (char-to-string 38)) (defconst x-button-c-right (char-to-string 64)) (defconst x-button-c-middle (char-to-string 65)) (defconst x-button-c-left (char-to-string 66)) (defconst x-button-c-right-up (char-to-string 68)) (defconst x-button-c-middle-up (char-to-string 69)) (defconst x-button-c-left-up (char-to-string 70)) (defconst x-button-m-s-right (char-to-string 48)) (defconst x-button-m-s-middle (char-to-string 49)) (defconst x-button-m-s-left (char-to-string 50)) (defconst x-button-m-s-right-up (char-to-string 52)) (defconst x-button-m-s-middle-up (char-to-string 53)) (defconst x-button-m-s-left-up (char-to-string 54)) (defconst x-button-c-s-right (char-to-string 80)) (defconst x-button-c-s-middle (char-to-string 81)) (defconst x-button-c-s-left (char-to-string 82)) (defconst x-button-c-s-right-up (char-to-string 84)) (defconst x-button-c-s-middle-up (char-to-string 85)) (defconst x-button-c-s-left-up (char-to-string 86)) (defconst x-button-c-m-right (char-to-string 96)) (defconst x-button-c-m-middle (char-to-string 97)) (defconst x-button-c-m-left (char-to-string 98)) (defconst x-button-c-m-right-up (char-to-string 100)) (defconst x-button-c-m-middle-up (char-to-string 101)) (defconst x-button-c-m-left-up (char-to-string 102)) (defconst x-button-c-m-s-right (char-to-string 112)) (defconst x-button-c-m-s-middle (char-to-string 113)) (defconst x-button-c-m-s-left (char-to-string 114)) (defconst x-button-c-m-s-right-up (char-to-string 116)) (defconst x-button-c-m-s-middle-up (char-to-string 117)) (defconst x-button-c-m-s-left-up (char-to-string 118)) (defvar x-process-mouse-hook nil "\ Hook to run after each mouse event is processed. Should take two arguments; the first being a list (XPOS YPOS) corresponding to character offset from top left of screen and the second being a specifier for the buttons/keys. This will normally be set on a per-buffer basis.") (defun x-flush-mouse-queue nil "\ Process all queued mouse events." (interactive) (byte-code "EA AV. #^, (define-key global-map " (define-key global-map " (defun x-mouse-select (arg) "\ Select Emacs window the mouse is on." (byte-code "C AC A ?. (defun x-mouse-keep-one-window (arg) "\ Select Emacs window mouse is on, then kill all other Emacs windows." (byte-code "A!. (defun x-mouse-select-and-split (arg) "\ Select Emacs window mouse is on, then split it vertically in half." (byte-code "A!. (defun x-mouse-set-point (arg) "\ Select Emacs window mouse is on, and move point to mouse position." (byte-code "E !C@A@._ $!),+" [relative-coordinate arg margin-column rel-x rel-y prompt-width minibuffer-prompt-width nil truncate-lines x-mouse-select selected-window minibuffer-window 0 move-to-window-line window-hscroll % window-width move-to-column + 1] 14)) (defun x-mouse-set-mark (arg) "\ Select Emacs window mouse is on, and set mark at mouse position. Display cursor at that position for a second." (byte-code "A!. (defun x-cut-text (arg &optional kill) "\ Copy text between point and mouse position into window system cut buffer. Save in Emacs kill ring also." (byte-code "AA \"f6 \"!^E \"^ .1 \"+),9 (defun x-paste-text (arg) "\ Move point to mouse position and insert window system cut buffer contents." (byte-code "A!^A c+" [arg x-mouse-set-point x-get-cut-buffer] 3)) (defun x-cut-and-wipe-text (arg) "\ Kill text between point and mouse; also copy to window system cut buffer." (byte-code "AA\"+" [arg t x-cut-text] 3)) (defun x-mouse-ignore (arg) (byte-code "?" ["Don't do anything."] 1)) (defun x-buffer-menu (arg) "\ Pop up a menu of buffers for selection with the mouse." (byte-code "AAC E .5 B%)^ A%^, !*BDNO \"+F (defun x-help (arg) "\ Enter a menu-based help system." (byte-code "A A\". (define-key mouse-map x-button-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-s-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-s-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-s-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-m-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-m-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-m-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-m-s-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-m-s-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-m-s-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-s-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-s-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-s-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-m-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-m-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-m-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-m-s-right-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-m-s-middle-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-m-s-left-up (quote x-mouse-ignore)) (define-key mouse-map x-button-c-s-left (quote x-buffer-menu)) (define-key mouse-map x-button-c-s-middle (quote x-help)) (define-key mouse-map x-button-c-s-right (quote x-mouse-keep-one-window)) (define-key mouse-map x-button-s-middle (quote x-cut-text)) (define-key mouse-map x-button-s-right (quote x-paste-text)) (define-key mouse-map x-button-c-middle (quote x-cut-and-wipe-text)) (define-key mouse-map x-button-c-right (quote x-mouse-select-and-split)) (if (= window-system-version 10) (progn (define-key mouse-map x-button-right (quote x-mouse-select)) (define-key mouse-map x-button-left (quote x-mouse-set-mark)) (define-key mouse-map x-button-middle (quote x-mouse-set-point))) (define-key mouse-map x-button-right (quote x-cut-text)) (define-key mouse-map x-button-left (quote x-mouse-set-point)) (define-key mouse-map x-button-middle (quote x-paste-text))) .