changeset 15136:6a1b4fcbb216

(win32-handle-scroll-bar-event): New function.
author Geoff Voelker <voelker@cs.washington.edu>
date Fri, 03 May 1996 18:26:22 +0000
parents 72a1f82a6748
children 74c840c2f577
files lisp/term/w32-win.el
diffstat 1 files changed, 32 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/w32-win.el	Fri May 03 18:25:59 1996 +0000
+++ b/lisp/term/w32-win.el	Fri May 03 18:26:22 1996 +0000
@@ -77,8 +77,38 @@
 (require 'select)
 (require 'menu-bar)
 
-;; Disable until scrollbars are fully functional
-(scroll-bar-mode nil)
+;; Because Windows scrollbars look and act quite differently compared
+;; with the standard X scroll-bars, we don't try to use the normal
+;; scroll bar routines.
+
+(defun win32-handle-scroll-bar-event (event)
+  "Handle Win32 scroll bar events to do normal Window style scrolling."
+  (interactive "e")
+  (let* ((position (event-start event))
+	 (window (nth 0 position))
+	 (portion-whole (nth 2 position))
+	 (bar-part (nth 4 position)))
+    (save-excursion
+      (select-window window)
+      (cond
+       ((eq bar-part 'up-arrow)
+	(scroll-down 1))
+       ((eq bar-part 'above-handle)
+	(scroll-down))
+       ((eq bar-part 'handle)
+	(scroll-bar-drag-1 event))
+       ((eq bar-part 'below-handle)
+	(scroll-up))
+       ((eq bar-part 'down-arrow)
+	(scroll-up 1))
+       ))))
+
+;; The following definition is used for debugging.
+;(defun win32-handle-scroll-bar-event (event) (interactive "e") (princ event))
+
+(global-set-key [vertical-scroll-bar mouse-1] 'win32-handle-scroll-bar-event)
+
+;; (scroll-bar-mode nil)
 
 (defvar x-invocation-args)