anchor.diff:  (defmethod handle-event ((pane slider-pane) (event pointer-motion-event))
     (with-slots (armed) pane
       (when (eq armed ':button-press)
  -      (let ((value (convert-position-to-value pane (pointer-event-y event))))
  +      (let ((value (convert-position-to-value pane
  +					      (if (eq (gadget-orientation pane) :vertical)
  +						  (pointer-event-y event)
  +						  (pointer-event-x event)))))
   	(setf (gadget-value pane :invoke-callback nil) value)
   	(drag-callback pane (gadget-client pane) (gadget-id pane) value)
   	(dispatch-repaint pane (sheet-region pane))))))
  
positive.code: 			 range-gadget-mixin
  			 gadget-color-mixin)
    ()
    (:documentation "The value is a real number"))
    
  (defclass slider-pane (slider-gadget)
    ((drag-callback :initform nil
  
negative.code:     (when armed
        (setf armed t
  	    (gadget-show-value-p pane) t
  	    (gadget-value pane :invoke-callback t)
  	    (convert-position-to-value pane (if (eq (gadget-orientation pane) :vertical)
  						(pointer-event-y event)
  						(pointer-event-x event))))
        (dispatch-repaint pane (sheet-region pane)))))
  
  (defmethod handle-event ((pane slider-pane) (event window-repaint-event))
    (dispatch-repaint pane (sheet-region pane)))
  
  (defmethod convert-position-to-value ((pane slider-pane) position)
    (multiple-value-bind (x1 y1 x2 y2) (bounding-rectangle* (sheet-region pane))
      (if (eq (gadget-orientation pane) :vertical)
  	(round (+ (gadget-min-value pane) (/ (* (gadget-range pane) (- y2 position)) (- y2 y1))))
  	(round (+ (gadget-min-value pane) (/ (* (gadget-range pane) (+ x1 position)) (- x2 x1)))))))
  
  (defun orientation-dependent-draw (pane position x1 x2 y1 y2)
    (if (eq (slot-value pane 'orientation) :vertical)
        (let ((middle (round (- x2 x1) 2)))
  	(draw-line* pane middle y1 middle y2 :ink +black+)
  	(draw-rectangle* pane (- middle 15) (- position 5)
  			 (+ middle 15) (+ position 5)
  			 :ink +grey75+ :filled t)
  	(draw-edges-lines* pane (- middle 15) (- position 5) (+ middle 15) (+ position 5))
  	(when (gadget-show-value-p pane)
  	  (draw-text* pane (princ-to-string (gadget-value pane))
  			 (+ middle 20) position)))
        (let ((middle (round (- y2 y1) 2)))
  	(draw-line* pane x1 middle x2 middle :ink +black+)
  	(draw-rectangle* pane (- position 5) (- middle 15)
  			 (+ position 5) (+ middle 15)
  			 :ink +grey75+ :filled t)
  	(draw-edges-lines* pane (- position 5) (- middle 15) (+ position 5) (+ middle 15))
  	(when (gadget-show-value-p pane)
  	  (draw-text* pane (princ-to-string (gadget-value pane))
  		      position (+ middle 20))))))
  
  (defmethod repaint-sheet ((pane slider-pane) region)
    (declare (ignore region))
    (let ((region (sheet-region pane))
  	(position (convert-value-to-position pane)))
      (multiple-value-bind (x1 y1 x2 y2) (bounding-rectangle* region)
        (display-gadget-background pane 0 0 (- x2 x1) (- y2 y1))
        (orientation-dependent-draw pane position x1 x2 y1 y2))))
  
  (defmethod convert-value-to-position ((pane slider-pane))
    (multiple-value-bind (x1 y1 x2 y2) (bounding-rectangle* (sheet-region pane))
      (if (eq (gadget-orientation pane) :vertical)
  	(- y2 (/ (* (- (gadget-value pane) (gadget-min-value pane)) (- y2 y1)) (gadget-range pane)))
  	(+ x1 (/ (* (- (gadget-value pane) (gadget-min-value pane)) (- x2 x1)) (gadget-range pane))))))
  
  ;;
  ;; RADIO-BOX gadget
  