(mouse-wheel-down-button, mouse-wheel-up-button):
authorGerd Moellmann <gerd@gnu.org>
Fri, 27 Jul 2001 08:41:35 +0000 (08:41 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 27 Jul 2001 08:41:35 +0000 (08:41 +0000)
New user-options.
(mouse-wheel-change-button): New function.
(mouse-wheel-mode): Use mouse-wheel-{up,down}-button.
(mwheel-scroll): Ditto.

lisp/ChangeLog
lisp/mwheel.el

index 5374687..4de616f 100644 (file)
@@ -1,3 +1,11 @@
+2001-07-27  Gerd Moellmann  <gerd@gnu.org>
+
+       * mwheel.el (mouse-wheel-down-button, mouse-wheel-up-button): 
+       New user-options.
+       (mouse-wheel-change-button): New function.
+       (mouse-wheel-mode): Use mouse-wheel-{up,down}-button.
+       (mwheel-scroll): Ditto.
+
 2001-07-26  Gerd Moellmann  <gerd@gnu.org>
 
        * emacs-lisp/lisp-mode.el (eval-last-sexp-1): Don't search for
index b58d42e..461ae41 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mwheel.el --- Mouse support for MS intelli-mouse type mice
 
-;; Copyright (C) 1998, 2000, Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
 ;; Maintainer: William M. Perry <wmperry@gnu.org>
 ;; Keywords: mouse
 
 
 (require 'custom)
 
+;; Setter function for mouse-button user-options.  Switch Mouse Wheel
+;; mode off and on again so that the old button is unbound and
+;; new button is bound to mwheel-scroll.
+
+(defun mouse-wheel-change-button (var button)
+  (set-default var button)
+  (when mouse-wheel-mode
+    (mouse-wheel-mode 0)
+    (mouse-wheel-mode 1)))
+
+(defcustom mouse-wheel-down-button 4
+  "Mouse button number for scrolling down."
+  :group 'mouse
+  :type 'integer
+  :set 'mouse-wheel-change-button)
+
+(defcustom mouse-wheel-up-button 5
+  "Mouse button number for scrolling up."
+  :group 'mouse
+  :type 'integer
+  :set 'mouse-wheel-change-button)
+
 (defcustom mouse-wheel-scroll-amount '(5 . 1)
   "Amount to scroll windows by when spinning the mouse wheel.
 This is actually a cons cell, where the first item is the amount to scroll
@@ -89,8 +111,8 @@ This can be slightly disconcerting, but some people may prefer it."
               (car mouse-wheel-scroll-amount))))
     (unwind-protect
        (let ((button (mwheel-event-button event)))
-         (cond ((= button 4) (scroll-down amt))
-               ((= button 5) (scroll-up amt))
+         (cond ((= button mouse-wheel-down-button) (scroll-down amt))
+               ((= button mouse-wheel-up-button) (scroll-up amt))
                (t (error "Bad binding in mwheel-scroll"))))
       (if curwin (select-window curwin)))))
 
@@ -112,8 +134,14 @@ Returns non-nil if the new state is enabled."
   ;; versions of XEmacs as it can.
   (let ((keys
         (if (featurep 'xemacs)
-            '(button4 [(shift button4)] button5 [(shift button5)])
-          '([mouse-4] [S-mouse-4] [mouse-5] [S-mouse-5]))))
+            (let ((down (intern (format "button%d" mouse-wheel-down-button)))
+                  (up (intern (format "button%d" mouse-wheel-up-button))))
+              `(,down [(shift ,down)] ,up [(shift ,up)]))
+          (let ((down (intern (format "mouse-%d" mouse-wheel-down-button)))
+                (s-down (intern (format "S-mouse-%d" mouse-wheel-down-button)))
+                (up (intern (format "mouse-%d" mouse-wheel-up-button)))
+                (s-up (intern (format "S-mouse-%d" mouse-wheel-up-button))))
+            `([,down] [,s-down] [,up] [,s-up])))))
     ;; This condition-case is here because Emacs 19 will throw an error
     ;; if you try to define a key that it does not know about.  I for one
     ;; prefer to just unconditionally do a mwheel-install in my .emacs, so
@@ -133,7 +161,6 @@ Returns non-nil if the new state is enabled."
   "Enable mouse wheel support."
   (mouse-wheel-mode t))
 
-
 (provide 'mwheel)
 
 ;;; mwheel.el ends here