anchor.diff:  	  (draw-label pane (gadget-label pane) (round w 2) (round h 2)))))))
   
   
  -;;
  -;; SCROLL-BAR gadget
  -;;
  +;;;;
  +;;;; SCROLL-BAR gadget
  +;;;;
   
   (defgeneric drag-callback (pane client gadget-id value))
   (defgeneric scroll-to-top-callback (scroll-bar client gadget-id))
  
positive.code: 			      :height *scrollbar-thickness*
  			      :min-width (* 3 *scrollbar-thickness*)
  			      :width (* 4 *scrollbar-thickness*))))
  
  (defmethod repaint-sheet ((sb scroll-bar-pane) region)
    (declare (ignore region))
    (with-bounding-rectangle* (minx miny maxx maxy) (sheet-region sb)
      (with-special-choices (sb)
        (draw-rectangle* sb minx miny maxx maxy :filled t :ink (medium-background sb))
        (let ((width (- maxx minx (* 2 *scrollbar-thickness*)))
  	    (height (- maxy miny (* 2 *scrollbar-thickness*)))
  	    (pos (/ (- (gadget-value sb)
  		       (gadget-min-value sb))
  		    (gadget-range sb)))
  	    (len (/ (if (eq (gadget-orientation sb) :vertical)
  			(- maxy miny)
  		      (- maxx minx))
  		    (gadget-range sb)))
  	    (highlight +white+)
  	    (shadow +black+)
  	    (thickness 2))
  	(cond
  	 ((eq (gadget-orientation sb) :vertical)
  	  (let ((points (list (/ (- maxx minx) 2) miny
  			      (1- maxx) (1- *scrollbar-thickness*)
  			      minx (1- *scrollbar-thickness*))))
  	    (draw-polygon* sb points
  			   :filled t :ink (medium-foreground sb))
  	    (draw-polygon* sb points
  			   :closed nil :filled nil :line-thickness thickness :ink shadow)
  	    (draw-line* sb
  			(first points) (second points)
  			(fifth points) (sixth points)
  			:line-thickness thickness :ink highlight))
  	  (let ((x-min minx)
  		(y-min (+ miny
  			  (* height pos)
  			  *scrollbar-thickness*))
  		(x-max (1- maxx))
  		(y-max (1- (min (+ miny
  				   (* height (+ pos len))
  				   *scrollbar-thickness*)
  				(- maxy *scrollbar-thickness*)))))
  	    (draw-rectangle* sb
  			     x-min y-min x-max y-max
  			     :filled t :ink (medium-foreground sb))
  	    (draw-line* sb
  			x-max y-min x-max y-max
  			:line-thickness thickness :ink shadow)
  	    (draw-line* sb
  			x-min y-max x-max y-max
  			:line-thickness thickness :ink shadow)
  	    (draw-line* sb
  			x-min y-min x-max y-min
  			:line-thickness thickness :ink highlight)
  	    (draw-line* sb
  			x-min y-min x-min y-max
  			:line-thickness thickness :ink highlight))
  	  (let ((points (list (/ (- maxx minx) 2) (1- maxy)
  			      minx (- maxy *scrollbar-thickness*)
  			      (1- maxx) (- maxy *scrollbar-thickness*))))
  	    (draw-polygon* sb points
  			   :filled t :ink (medium-foreground sb))
  	    (draw-line* sb
  			(first points) (second points)
  			(fifth points) (sixth points)
  			:line-thickness thickness :ink shadow)
  	    (draw-polygon* sb points
  			   :closed nil :filled nil :line-thickness thickness :ink highlight)))
  	 (t
  	  (let ((points (list (1- *scrollbar-thickness*) miny
  			      minx (/ (+ miny maxy) 2)
  			      (1- *scrollbar-thickness*) (1- maxy))))
  	    (draw-polygon* sb points
  			   :filled t :ink (medium-foreground sb))
  	    (draw-line* sb
  			(first points) (second points)
  			(fifth points) (sixth points)
  			:line-thickness thickness :ink shadow)
  	    (draw-polygon* sb points
  			   :closed nil :filled nil :line-thickness thickness :ink highlight))
  	  (let ((x-min (+ minx
  			  (* width pos)
  			  *scrollbar-thickness*))
  		(y-min miny)
  		(x-max (1- (min (+ minx
  				   (* width (+ pos len))
  				   *scrollbar-thickness*)
  				(- maxx *scrollbar-thickness*))))
  		(y-max (1- maxy)))
  	    (draw-rectangle* sb
  			     x-min y-min x-max y-max
  			     :filled t :ink (medium-foreground sb))
  	    (draw-line* sb
  			x-max y-min x-max y-max
  			:line-thickness thickness :ink shadow)
  	    (draw-line* sb
  			x-min y-max x-max y-max
  			:line-thickness thickness :ink shadow)
  	    (draw-line* sb
  			x-min y-min x-max y-min
  			:line-thickness thickness :ink highlight)
  	    (draw-line* sb
  			x-min y-min x-min y-max
  			:line-thickness thickness :ink highlight))
  	  (let ((points (list (- maxx *scrollbar-thickness*) miny
  			      (1- maxx) (/ (+ minx maxx) 2)
  			      (- maxx *scrollbar-thickness*) (1- maxy))))
  	    (draw-polygon* sb points
  			   :filled t :ink (medium-foreground sb))
  	    (draw-polygon* sb points
  			   :closed nil :filled nil :line-thickness thickness :ink shadow)
  	    (draw-line* sb
  			(first points) (second points)
  			(fifth points) (sixth points)
  			:line-thickness thickness :ink highlight))))))))
  
  (defmethod handle-event ((sb scroll-bar-pane) (event window-repaint-event))
    (dispatch-repaint sb (sheet-region sb)))
  
  (defmethod handle-event ((sb scroll-bar-pane) (event pointer-enter-event))
    (declare (ignorable event))
    (with-slots (armed) sb
  
negative.code: ;;;  (c) copyright 2001 by
  ;;; Lionel Salabartan (salabart@emi.u-bordeaux.fr)
  ;;;  (c) copyright 2001 by Michael McDonald (mikemac@mikemac.com)
  ;;;  (c) copyright 2001 by Gilbert Baumann <unk6@rz.uni-karlsruhe.de>
  
  ;;; This library is free software; you can redistribute it and/or
  ;;; modify it under the terms of the GNU Library General Public
  