[gnu.emacs] Input remapping, Part 8 of 8: default_mouse.el

raveling@venera.isi.edu (Paul Raveling) (06/23/89)

	HP/ISI input remapping files:  Part 8 of 8

	These are differences between lisp/x-mouse.el and
	lisp/term/default_mouse.el in GNU emacs version 18.54.

	Changes are different a different set of functions for the
	mouse buttons, motivated to some extent by the change in
	"standard" X11 mouse button bindings for cut/paste functions.

	Adding the recenter function on a right-button-click was
	an unrelated change that's proved outrageously convenient.
	Another convenience feature is availability of both 
	destructive and non-destructive region extraction.


------------------------------  Cut  Here  --------------------------------
0a1,6
> 
> ;;	term/default_mouse:el:
> 
> ;;	This is a variant of x-mouse.el customized by Paul Raveling,
> ;;	USC-ISI, for different mouse button functionality.
> 
264,270c270
< (define-key mouse-map x-button-c-s-left 'x-buffer-menu)
< (define-key mouse-map x-button-c-s-middle 'x-help)
< (define-key mouse-map x-button-c-s-right 'x-mouse-keep-one-window)
< (define-key mouse-map x-button-s-middle 'x-cut-text)
< (define-key mouse-map x-button-s-right 'x-paste-text)
< (define-key mouse-map x-button-c-middle 'x-cut-and-wipe-text)
< (define-key mouse-map x-button-c-right 'x-mouse-select-and-split)
---
> ;;	Deleted from original version:
272,279c272,397
< (if (= window-system-version 10)
<     (progn
<       (define-key mouse-map x-button-right 'x-mouse-select)
<       (define-key mouse-map x-button-left 'x-mouse-set-mark)
<       (define-key mouse-map x-button-middle 'x-mouse-set-point))
<   (define-key mouse-map x-button-right 'x-cut-text)
<   (define-key mouse-map x-button-left 'x-mouse-set-point)
<   (define-key mouse-map x-button-middle 'x-paste-text))
---
> ;;(define-key mouse-map x-button-c-s-left 'x-buffer-menu)
> ;;(define-key mouse-map x-button-c-s-middle 'x-help)
> ;;(define-key mouse-map x-button-c-s-right 'x-mouse-keep-one-window)
> ;;(define-key mouse-map x-button-s-middle 'x-cut-text)
> ;;(define-key mouse-map x-button-s-right 'x-paste-text)
> ;;(define-key mouse-map x-button-c-middle 'x-cut-and-wipe-text)
> ;;(define-key mouse-map x-button-c-right 'x-mouse-select-and-split)
> 
> ;;(if (= window-system-version 10)
> ;;    (progn
> ;;      (define-key mouse-map x-button-right 'x-mouse-select)
> ;;      (define-key mouse-map x-button-left 'x-mouse-set-mark)
> ;;      (define-key mouse-map x-button-middle 'x-mouse-set-point))
> ;;  (define-key mouse-map x-button-right 'x-cut-text)
> ;;  (define-key mouse-map x-button-left 'x-mouse-set-point)
> ;;  (define-key mouse-map x-button-middle 'x-paste-text))
> 
> 
> ;;	Added to replace deleted bindings:
> 
> 
> (defvar x-mouse-last-pos (list -1 -1) "position of the last mouse down event")
> (defvar x-mouse-last-dot 0 "Value of dot BEFORE the last mouse down event")
> 
> 
> (defun x-mouse-mark (arg)
>   (setq x-mouse-last-dot (dot))
>   (if (x-mouse-set-point arg)
>       (progn
> 	(setq x-mouse-last-pos arg))))
> 
> (defun x-mouse-markcenter (arg)
>   (setq x-mouse-last-dot (dot))
>   (if (x-mouse-set-point arg)
>       (progn
> 	(setq x-mouse-last-pos arg)))
>   (recenter arg))
> 
> 
> (defun x-mouse-copy (arg)
>   (if (equal x-mouse-last-pos arg)
>       (set-mark x-mouse-last-dot)
>       (let ((odot (dot)))
> 	(if (x-mouse-set-point arg)
> 	    (copy-region-as-kill odot (dot))))))
> 
> (defun x-mouse-delete (arg)
>   (if (equal x-mouse-last-pos arg)
>       (progn (set-mark x-mouse-last-dot) (recenter arg))
>       (let ((odot (dot)))
> 	(if (x-mouse-set-point arg)
> 	    (kill-region odot (dot))))))
> 
> (defun x-mouse-delete-insert (arg)
>   (if (equal x-mouse-last-pos arg)
>       (yank)
>       (let ((odot (dot)))
> 	(if (x-mouse-set-point arg)
> 	    (kill-region odot (dot))))))
> 
> (defun x-mouse-insert (arg)
>   (if (x-mouse-set-point arg)
>       (yank)))
> 
> 
> 
> (defun x-mouse-cut (arg)
>   (let ((odot (dot)))
>     (if (x-mouse-set-point arg)
> 	(x-store-cut-buffer (buffer-substring odot (dot))))))
> 
> (defun x-mouse-delcut (arg)
>   (if (equal x-mouse-last-pos arg)
>       (progn (set-mark x-mouse-last-dot) (recenter arg))
>       (let ((odot (dot)))
> 	(if (x-mouse-set-point arg)
> 	    (progn
> 		(x-store-cut-buffer (buffer-substring odot (dot)))
> 		(delete-region odot (dot)))))))
> 
> (defun x-mouse-insert-cut (arg)
>   (if (x-mouse-set-point arg)
>       (insert (x-get-cut-buffer))))
> 
> (defun mouse ()
>   "Describe default mouse button functions"
>   (interactive)
>   (view-file "/usr/local/gemacs-18.54/etc/HP_mouse.text"))
> 
> 
> ;;			Mouse Key Functions
> 
> ;;	All mouse keys move the gemacs character cursor
> ;;	to the character marked by the X11 cursor when
> ;;	the mouse key is released.
> 
> ;;	Button			Function
> ;;	------			--------
> 
> ;;	Left
> ;;		Click:		Mark X11 cursor location,
> ;;		Drag:		Mark region, copy to cut buffer
> ;;	Middle			Insert from cut buffer @ X11 cursor
> ;;	Right
> ;;		Click:		Mark X11 cursor location & center it
> ;;		Drag:		Delete region, save in cut buffer
> 
> 
> ;;	    Unshifted mouse keys operate on the editor's private cut buffer;
> ;;	    Shifted mouse keys operate on X11's (public) cut buffer
> 
> 
> 
> (define-key mouse-map x-button-left 'x-mouse-mark)
> (define-key mouse-map x-button-left-up 'x-mouse-copy)
> (define-key mouse-map x-button-middle 'null)
> (define-key mouse-map x-button-middle-up 'x-mouse-insert)
> (define-key mouse-map x-button-right 'x-mouse-mark)
> (define-key mouse-map x-button-right-up 'x-mouse-delete)
> 
> (define-key mouse-map x-button-s-left 'x-mouse-mark)
> (define-key mouse-map x-button-s-left-up 'x-mouse-cut)
> (define-key mouse-map x-button-s-middle 'null)
> (define-key mouse-map x-button-s-middle-up 'x-mouse-insert-cut)
> (define-key mouse-map x-button-s-right 'x-mouse-mark)
> (define-key mouse-map x-button-s-right-up 'x-mouse-delcut)