;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Sun Aug 14 16:17:26 1994 ;;; from file /home/fsf/rms/e19/lisp/mouse.el ;;; emacs version 19.25.93.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/home/fsf/rms/e19/lisp/mouse.el' was compiled for Emacs 19")) (put (quote track-mouse) (quote lisp-indent-function) 0) (defvar mouse-yank-at-point nil "\ *If non-nil, mouse yank commands yank at point instead of at click.") (defalias (quote mouse-minibuffer-check) #[(event) "A@)@)\n!\n!?!)" [event position w window-minibuffer-p minibuffer-window-active-p error "Minibuffer window is not active"] 3]) (defalias 'mouse-delete-window #[(click) " ! A@)@)!" [mouse-minibuffer-check click delete-window event position] 3 "\ Delete the window you click on. This must be bound to a mouse click." "e"]) (defalias 'mouse-select-window #[(click) " ! A@)@)! A@)@)!!!=> S# *" [mouse-minibuffer-check click selected-frame window-frame event position frame oframe select-window raise-frame select-frame set-mouse-position frame-width 0 unfocus-frame] 5 "\ Select the window clicked on; don't move point." "e"]) (defalias 'mouse-tear-off-window #[(click) " ! A@)@)\f! !!\f!+" [mouse-minibuffer-check click event position window window-buffer buf make-frame frame select-frame switch-to-buffer delete-window] 3 "\ Delete the window clicked on, and create a new frame displaying its buffer." "e"]) (defalias 'mouse-delete-other-windows #[nil " " [delete-other-windows] 1 "\ Delete all window except the one you click on." "@"]) (defalias 'mouse-split-window-vertically #[(click) " ! A@) @)! \n8:!ǂ\"\n8)!AT  Z \f  \fWC!M \f] ^!," [mouse-minibuffer-check click event start select-window position posn-col-row 2 1 window-min-height window-height last-line first-line new-height error "Window too short to split" split-window-vertically] 5 "\ Select Emacs window mouse is on, then split it vertically in half. The window is split at the line clicked on. This command must be bound to a mouse click." "@e"]) (defalias 'mouse-split-window-horizontally #[(click) " ! A@) @)! \n8:!ǂ\"\n8)!@T  Z \f  \fWC!M \f] ^!," [mouse-minibuffer-check click event start select-window position posn-col-row 2 1 window-min-width window-width last-col first-col new-width error "Window too narrow to split" split-window-horizontally] 5 "\ Select Emacs window mouse is on, then split it horizontally in half. The window is split at the column clicked on. This command must be bound to a mouse click." "@e"]) (defalias 'mouse-drag-mode-line #[(start-event) " A@@! A@@!  \n \f  AW!W! ." [nil 0 window-frame start-event count-windows t selected-window growth params wconfig edges bot top y minibuffer mouse event should-enlarge-minibuffer old-selected-window start-nwindows start-event-window start-event-frame echo-keystrokes done frame-parameters one-window-p error "Attempt to resize sole window" (lambda nil (track-mouse (byte-code " !\n!?\n!A@ 8U? \n \f\n6ĉ\n@=\n@>Z\n:S\nBĉ\f@=\fA@\fAA A@8ZZW\\\\ZZ \n!V\n!ZW\n!S[! !!!U A@U!" [select-window start-event-window minibuffer one-window-p t window-edges 3 should-enlarge-minibuffer done read-event event mouse-position mouse switch-frame (mouse-movement scroll-bar-movement) unread-command-events start-event-frame y edges top bot -1 window-min-height growth current-window-configuration wconfig 0 window-height 1 enlarge-window start-nwindows count-windows set-window-configuration] 4)))] 17 "\ Change the height of a window by dragging on the mode line." "e"]) (defalias 'mouse-set-point #[(event) " !  8:‚ 8)\f@)!%!\f@)!\fA@:@A@@DA@)a\fA@:[A@@_A@)b)" [mouse-minibuffer-check event 2 1 posn windowp position error "Cursor not in text area of window" select-window] 3 "\ Move point to the position clicked on with the mouse. This should be bound to a mouse click event type." "e"]) (defalias 'mouse-set-region #[(click) " ! A@) \n8:Â\n8)@)!A@:;A@@?A@)^A@:WA@@[A@)b l !=p! `! A@:A@@A@) A@:A@@A@)b `\"+" [mouse-minibuffer-check click event 2 1 end posn select-window position transient-mark-mode framep selected-frame x sit-for push-mark set-mark nil this-command copy-region-as-kill mark] 4 "\ Set the region to the text dragged over, and copy to kill ring. This should be bound to a mouse drag event." "e"]) (defvar mouse-scroll-delay .25 "\ *The pause between scroll steps caused by mouse drags, in seconds. If you drag the mouse beyond the edge of a window, Emacs scrolls the window to bring the text beyond that edge into view, with a delay of this many seconds between scroll steps. Scrolling stops when you move the mouse back into the window, or release the button. This variable's value may be non-integral. Setting this to zero causes Emacs to scroll as fast as it can.") (defalias 'mouse-scroll-subr #[(window jump &optional overlay start) "`\n!b\f\n\"UL\n`\"\f!)\n!b\fS\n\".\n!b ;  `#\n =Eb!\n =Ub)" [opoint window-start window vertical-motion jump 0 set-window-start natnump window-end overlay move-overlay start selected-window sit-for mouse-scroll-delay] 4 "\ Scroll the window WINDOW, JUMP lines at a time, until new input arrives. If OVERLAY is an overlay, let it stretch from START to the far edge of the newly visible text. Upon exit, point is at the far edge of the newly visible text."]) (byte-code "! É\" #!" [boundp mouse-drag-overlay make-overlay 1 overlay-put face region mouse-selection-click-count 0] 4) (defalias 'mouse-drag-region #[(start-event) " ! A@)A@:\fA@@\fA@) @)!!\nA@ !F\n8K\n8S \n8\\\n8])S ! #@A@!$)!ډ \n:\n@!!#!!Uډ&'!#!b`!\"*!b&)!. " [mouse-minibuffer-check start-event event start-posn position start-point start-window window-frame start-frame window-edges bounds top window-minibuffer-p 3 bottom 2 1 click-count mouse-selection-click-count mouse-set-point mouse-start-end range move-overlay mouse-drag-overlay window-buffer transient-mark-mode nil mark-active run-hooks deactivate-mark-hook end-point end (lambda nil (track-mouse (byte-code " :\n@=) = =  8:-ł. 8)A@:EA@@IA@) @)\n=} !} b `#@A@#) AAW\nZ $Y\nZT $)" [read-event event object mouse-movement switch-frame 2 1 end position end-point start-window integer-or-marker-p mouse-start-end start-point click-count range move-overlay mouse-drag-overlay mouse-position mouse-row top mouse-scroll-subr bottom] 6))) key-binding vector fun overlay-start overlay-end this-command last-command push-mark t copy-region-as-kill mark delete-overlay] 7 "\ Set the region to the text that the mouse is dragged over. Highlight the drag area as you move the mouse. This must be bound to a button-down mouse event. In Transient Mark mode, the highlighting remains once you release the mouse button. Otherwise, it does not." "e"]) (defalias 'mouse-skip-word #[(dir) "gz!Ø\nĘ% W\n!M\n!M W<o?MhUMu+m?MgUMu<*" [char char-to-string syntax "w" " " dir 0 skip-syntax-backward skip-syntax-forward -1 1] 3 "\ Skip over word, over whitespace, or over identical punctuation. If DIR is positive skip forward; if negative, skip backward."]) (byte-code "\"\"\"" [defalias mouse-start-end #[(start end mode) " V  \n)\f\"U D\fUB UBfBfzUBb!`)D\fUj UjfjfzUjTb!`)TD\fUb!`) b!`)D\fUby`) by`)D" [start end temp mod mode 3 0 1 40 forward-sexp 41 backward-sexp mouse-skip-word -1 2] 4] mouse-set-mark-fast #[(click) " ! A@) @)! A@:# A@@& A@)C A@:< A@@? A@)lj#)" [mouse-minibuffer-check click event posn select-window position push-mark t] 5] mouse-show-mark #[nil "!b!)" [transient-mark-mode mark t sit-for 1] 2]] 3) (defalias 'mouse-set-mark #[(click) " ! A@)@)!`Ǝ !ʉ# '!*" [mouse-minibuffer-check click select-window event position point-save ((goto-char point-save)) mouse-set-point push-mark nil t transient-mark-mode sit-for 1] 5 "\ Set mark at the position clicked on with the mouse. Display cursor at that position for a second. This must be bound to a mouse click." "e"]) (defalias 'mouse-kill #[(click) " ! A@)A@:\fA@@\fA@) @)! 5` ^` ]\"*" [mouse-minibuffer-check click event posn position click-posn select-window kill-region] 5 "\ Kill the region between point and the mouse click. The text is saved in the kill ring, as with \\[kill-region]." "e"]) (defalias 'mouse-yank-at-click #[(click arg) "\n! !" [mouse-yank-at-point mouse-set-point click yank this-command arg] 2 "\ Insert the last stretch of killed text at the position clicked on. Also move point to one end of the text thus inserted (normally the end). Prefix arguments are interpreted as with \\[yank]. If `mouse-yank-at-point' is non-nil, insert at point regardless of where you click." "e\nP"]) (defalias 'mouse-kill-ring-save #[(click) " !‰`!\"* " [mouse-set-mark-fast click nil last-command this-command kill-ring-save mark t mouse-show-mark] 4 "\ Copy the region between point and the mouse click in the kill ring. This does not delete the region; it acts like \\[kill-ring-save]." "e"]) (byte-code "!\"" [boundp mouse-save-then-kill-posn nil defalias mouse-save-then-kill-delete-region #[(beg end) " \nU = \n|ʼn \n V.ʂ/\\|, ʼn \", @G\n ]\n ^ZU\\! \n|) y@@;yAh @ \n^B) " [undo-boundary beg end buffer-undo-list t nil after-change-functions before-change-functions after-change-function before-change-function 1 -1 primitive-undo kill-ring error "Lossage in mouse-save-then-kill-delete-region" tail] 5]] 3) (defalias 'mouse-save-then-kill #[(click) " ! A@)A@: A@@ A@)\f\"V\n=; \f@ # !Z! `Z!W\\@!bA@b`!{w@!@` E\f )g` \"׉\fg\n=\f\f@@=\fA` D` \"׉\fg\n=\f\n=PP A@)A@: A@@ A@)@)!7`Z!!Z!W/b4!`!{L@!*^ !`!\" @` E\f*" [mouse-minibuffer-check click event position this-command click-posn mod mouse-selection-click-count 3 0 last-command mouse-save-then-kill mouse-save-then-kill-posn mouse-start-end range abs mark t set-mark kill-ring interprogram-cut-function mouse-show-mark mouse-save-then-kill-delete-region nil mark-active transient-mark-mode mouse-drag-region mark-even-if-inactive posn new select-window deactivate-mark mouse-set-mark-fast kill-ring-save] 6 "\ Save text to point in kill ring; the second time, kill the text. If the text between point and the mouse is the same as what's at the front of the kill ring, this deletes the text. Otherwise, it adds the text to the kill ring, like \\[kill-ring-save], which prepares for a second click to delete the text. If you have selected words or lines, this command extends the selection through the word or line clicked on. If you do this again in a different position, it extends the selection again. If you do this twice in the same position, the selection is killed." "e"]) (byte-code "\"\"\"\"\"!\"\f!+͇" [global-set-key [M-mouse-1] mouse-start-secondary [M-drag-mouse-1] mouse-set-secondary [M-down-mouse-1] mouse-drag-secondary [M-mouse-3] mouse-secondary-save-then-kill [M-mouse-2] mouse-yank-secondary boundp mouse-secondary-overlay nil mouse-secondary-start] 3) (defalias 'mouse-start-secondary #[(click) " ! A@) @)!q! A@:/ A@@2 A@)X@  A@:R A@@U A@)ʓ*" [mouse-minibuffer-check click event posn window-buffer position mouse-secondary-overlay delete-overlay mouse-secondary-start make-marker nil] 4 "\ Set one end of the secondary selection to the position clicked on. Use \\[mouse-secondary-save-then-kill] to set the other end and complete the secondary selection." "e"]) (defalias 'mouse-set-secondary #[(click) " ! A@) \n8:Ă\n8)\n@)!q\nA@:A\nA@@E\nA@)d\nA@:]\nA@@a\nA@)  \nA@:\nA@@\nA@)#\nA@:\nA@@\nA@)\"  #," [mouse-minibuffer-check click event nil 2 1 end beg posn window-buffer position mouse-secondary-overlay move-overlay make-overlay overlay-put face secondary-selection] 5 "\ Set the secondary selection to the text that the mouse is dragged over. This must be bound to a mouse drag event." "e"]) (defalias 'mouse-drag-secondary #[(start-event) " ! A@)A@:\fA@@\fA@) @)!!\nA@ !F\n8K\n8S \n8\\\n8])S!qw``\"#\"V #މЉ!$@A@!$)  ޓ!މ\"# \n:!拂!!{\".\f" [mouse-minibuffer-check start-event event start-posn position start-point start-window window-frame start-frame window-edges bounds top window-minibuffer-p 3 bottom 2 1 click-count window-buffer mouse-selection-click-count mouse-secondary-overlay make-overlay overlay-put face secondary-selection mod 0 mouse-start-end range mouse-secondary-start nil move-overlay make-marker delete-overlay end-point end (lambda nil (track-mouse (byte-code " :\n@=) = =  8:-ł. 8)A@:EA@@IA@) @)\n= !  #  Uy!҉@A@#) AAW\nZ $Y\nZT $)" [read-event event object mouse-movement switch-frame 2 1 end position end-point start-window integer-or-marker-p mouse-start-end start-point click-count range marker-position mouse-secondary-start nil move-overlay mouse-secondary-overlay mouse-position mouse-row top mouse-scroll-subr bottom] 6))) marker-position ((byte-code " !\"!b!)" [delete-overlay mouse-secondary-overlay x-set-selection SECONDARY nil select-window start-window mouse-secondary-start sit-for 1] 3)) x-set-selection SECONDARY overlay-start overlay-end] 7 "\ Set the secondary selection to the text that the mouse is dragged over. Highlight the drag area as you move the mouse. This must be bound to a button-down mouse event." "e"]) (defalias 'mouse-yank-secondary #[(click) "\n!!c" [mouse-yank-at-point mouse-set-point click x-get-selection SECONDARY] 2 "\ Insert the secondary selection at the position clicked on. Move point to the end of the inserted text. If `mouse-yank-at-point' is non-nil, insert at point regardless of where you click." "e"]) (defalias 'mouse-kill-secondary #[nil " GS\f!\n<\n!!!p=$!*\f!q\f!\f!\")\f!\"Љ" [this-command-keys keys click overlay-buffer mouse-secondary-overlay window-buffer posn-window event-start error "Select or click on the buffer where the secondary selection is" kill-region overlay-start overlay-end delete-overlay x-set-selection SECONDARY nil] 6 "\ Kill the text in the secondary selection. This is intended more as a keyboard command than as a mouse command but it can work as either one. The current buffer (in case of keyboard use), or the buffer clicked on, must be the one that the secondary selection is in. This requirement is to prevent accidents." nil]) (defalias 'mouse-secondary-save-then-kill #[(click) " ! A@) A@)A@: A@@\" A@)\f!! : !C C !=K!@)!q\"V=q @ #  !Z!  !Z!W @ !#  !A@# ! !{@!@` E) ! !\" !=@@=A` D ! !\" ! ! W  !Z!  !Z!WJ  !#T  ! #!=z ! !{@! ! !\"  ## \"  # ## \"  #)@` E ! ! !{\"," [mouse-minibuffer-check click event position this-command click-posn posn window-buffer posn-window mouse-secondary-overlay overlay-buffer mouse-secondary-start marker-buffer error "Wrong buffer" mod mouse-selection-click-count 3 0 last-command mouse-secondary-save-then-kill mouse-save-then-kill-posn mouse-start-end range abs overlay-start overlay-end move-overlay kill-ring interprogram-cut-function mouse-save-then-kill-delete-region nil delete-overlay deactivate-mark copy-region-as-kill start kill-ring-save make-overlay overlay-put face secondary-selection x-set-selection SECONDARY] 6 "\ Save text to point in kill ring; the second time, kill the text. You must use this in a buffer where you have recently done \\[mouse-start-secondary]. If the text between where you did \\[mouse-start-secondary] and where you use this command matches the text at the front of the kill ring, this command deletes the text. Otherwise, it adds the text to the kill ring, like \\[kill-ring-save], which prepares for a second click with this command to delete the text. If you have already made a secondary selection in that buffer, this command extends or retracts the selection to where you click. If you do this again in a different position, it extends or retracts again. If you do this twice in the same position, it kills the selection." "e"]) (defalias 'mouse-buffer-menu #[(event) " !  4 @!H=+ @!G] A    @\f\f!\"ω\"\f!\f!`҂aӊ\fqoՂp)\f!y%\fBB) A <!+BD \" A@)@)!!!+" [mouse-minibuffer-check event "Buffer Menu" "Select Buffer" buffer-list 0 nil head maxbuf tail buffer-name 32 elt string-match "^ " format "%%%ds %%s%%s %%s" buffer-modified-p "*" " " buffer-read-only "%" buffer-file-name "" reverse menu x-popup-menu position window buf framep select-window switch-to-buffer] 10 "\ Pop up a menu of buffers for selection with the mouse. This switches buffers in the window that you clicked on, and selects that window." "e"]) (defalias 'mouse-choose-completion #[(event) "  A@)@)!q A@)A@::A@@>A@)b \nmY`\"Y` `T\n\nb!\n\"\n \"rd \n {,  A@)@)!\" ! ! ! !) \f\n#+" [window-buffer nil base-size choice buffer event position completion-reference-buffer completion-base-size end beg get-text-property mouse-face error "No completion here" previous-single-property-change next-single-property-change selected-window owindow select-window one-window-p t selected-frame window-dedicated-p iconify-frame bury-buffer choose-completion-string] 5 "\ Click on an alternative in the `*Completions*' buffer to choose it." "e"]) (defalias (quote font-menu-add-default) #[nil " !A\f \" A@\"(\"\" !ADAB+" [font frame-parameters selected-frame default x-fixed-font-alist font-alist assoc "Misc" elt "Default" delete] 5]) (defvar x-fixed-font-alist (quote ("Font menu" ("Misc" ("fixed" "fixed") ("6x10" "-misc-fixed-medium-r-normal--10-*-*-*-c-60-iso8859-1" "6x10") ("6x12" "-misc-fixed-medium-r-semicondensed--12-*-*-*-c-60-iso8859-1" "6x12") ("6x13" "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" "6x13") ("7x13" "-misc-fixed-medium-r-normal--13-*-*-*-c-70-iso8859-1" "7x13") ("7x14" "-misc-fixed-medium-r-normal--14-*-*-*-c-70-iso8859-1" "7x14") ("8x13" "-misc-fixed-medium-r-normal--13-*-*-*-c-80-iso8859-1" "8x13") ("9x15" "-misc-fixed-medium-r-normal--15-*-*-*-c-90-iso8859-1" "9x15") ("10x20" "-misc-fixed-medium-r-normal--20-*-*-*-c-100-iso8859-1" "10x20") ("11x18" "-misc-fixed-medium-r-normal--18-*-*-*-c-110-iso8859-1" "11x18") ("12x24" "-misc-fixed-medium-r-normal--24-*-*-*-c-120-iso8859-1" "12x24") ("") ("clean 5x8" "-schumacher-clean-medium-r-normal--8-*-*-*-c-50-iso8859-1") ("clean 6x8" "-schumacher-clean-medium-r-normal--8-*-*-*-c-60-iso8859-1") ("clean 8x8" "-schumacher-clean-medium-r-normal--8-*-*-*-c-80-iso8859-1") ("clean 8x10" "-schumacher-clean-medium-r-normal--10-*-*-*-c-80-iso8859-1") ("clean 8x14" "-schumacher-clean-medium-r-normal--14-*-*-*-c-80-iso8859-1") ("clean 8x16" "-schumacher-clean-medium-r-normal--16-*-*-*-c-80-iso8859-1") ("") ("sony 8x16" "-sony-fixed-medium-r-normal--16-*-*-*-c-80-iso8859-1")) ("Courier" ("8" "-adobe-courier-medium-r-normal--*-80-*-*-m-*-iso8859-1") ("10" "-adobe-courier-medium-r-normal--*-100-*-*-m-*-iso8859-1") ("12" "-adobe-courier-medium-r-normal--*-120-*-*-m-*-iso8859-1") ("14" "-adobe-courier-medium-r-normal--*-140-*-*-m-*-iso8859-1") ("18" "-adobe-courier-medium-r-normal--*-180-*-*-m-*-iso8859-1") ("24" "-adobe-courier-medium-r-normal--*-240-*-*-m-*-iso8859-1") ("8 bold" "-adobe-courier-bold-r-normal--*-80-*-*-m-*-iso8859-1") ("10 bold" "-adobe-courier-bold-r-normal--*-100-*-*-m-*-iso8859-1") ("12 bold" "-adobe-courier-bold-r-normal--*-120-*-*-m-*-iso8859-1") ("14 bold" "-adobe-courier-bold-r-normal--*-140-*-*-m-*-iso8859-1") ("18 bold" "-adobe-courier-bold-r-normal--*-180-*-*-m-*-iso8859-1") ("24 bold" "-adobe-courier-bold-r-normal--*-240-*-*-m-*-iso8859-1") ("8 slant" "-adobe-courier-medium-o-normal--*-80-*-*-m-*-iso8859-1") ("10 slant" "-adobe-courier-medium-o-normal--*-100-*-*-m-*-iso8859-1") ("12 slant" "-adobe-courier-medium-o-normal--*-120-*-*-m-*-iso8859-1") ("14 slant" "-adobe-courier-medium-o-normal--*-140-*-*-m-*-iso8859-1") ("18 slant" "-adobe-courier-medium-o-normal--*-180-*-*-m-*-iso8859-1") ("24 slant" "-adobe-courier-medium-o-normal--*-240-*-*-m-*-iso8859-1") ("8 bold slant" "-adobe-courier-bold-o-normal--*-80-*-*-m-*-iso8859-1") ("10 bold slant" "-adobe-courier-bold-o-normal--*-100-*-*-m-*-iso8859-1") ("12 bold slant" "-adobe-courier-bold-o-normal--*-120-*-*-m-*-iso8859-1") ("14 bold slant" "-adobe-courier-bold-o-normal--*-140-*-*-m-*-iso8859-1") ("18 bold slant" "-adobe-courier-bold-o-normal--*-180-*-*-m-*-iso8859-1") ("24 bold slant" "-adobe-courier-bold-o-normal--*-240-*-*-m-*-iso8859-1")))) "\ X fonts suitable for use in Emacs.") (defalias 'mouse-set-font #[(&rest fonts) "ď\n?!)" [fonts nil font (byte-code " @! @Ç" [set-default-font fonts font nil] 2) ((error (byte-code "A" [fonts nil] 1))) error "Font not found"] 3 "\ Select an emacs font from a list of known good fonts" (x-popup-menu last-nonmenu-event x-fixed-font-alist)]) (byte-code " #\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"!" [define-key global-map [down-mouse-1] mouse-drag-region global-set-key [mouse-1] mouse-set-point [drag-mouse-1] mouse-set-region [double-mouse-1] [triple-mouse-1] [mouse-2] mouse-yank-at-click [mouse-3] mouse-save-then-kill [C-down-mouse-1] mouse-buffer-menu [C-down-mouse-3] mouse-set-font [mode-line mouse-1] mouse-select-window [mode-line drag-mouse-1] [mode-line down-mouse-1] mouse-drag-mode-line [mode-line mouse-2] mouse-delete-other-windows [mode-line mouse-3] mouse-delete-window [mode-line C-mouse-2] mouse-split-window-horizontally [vertical-scroll-bar C-mouse-2] mouse-split-window-vertically [vertical-line C-mouse-2] provide mouse] 4)