anchor.diff:                       :initform +gray76+
                        :reader pane-background)))
   
  +; Convenience
  +
  +
  +(defun draw-up-box (pane x1 y1 x2 y2 foreground)
  +  (let ((x2 (- x2 1)))
  +    (draw-rectangle* pane x1 y1 x2 y2 :ink foreground)
  +    ;; white outline
  +    (draw-line* pane x1 y2 x1 y1 :ink +white+)
  +    (draw-line* pane x2 y1 x1 y1 :ink +white+)
  +    ;; now for the gray inline
  +    (let ((x1 (+ x1 2))
  +          (y1 (+ y1 2))
  +          (x2 (- x2 1))
  +          (y2 (- y2 1)))
  +      (draw-line* pane x1 y2 (+ x2 1) y2 :ink +gray54+) ; <- not a typo
  +      (draw-line* pane x2 y1 x2 (+ y2 1) :ink +gray54+))
  +    ;; now for the black outline
  +    (draw-line* pane x1 y2 (+ x2 1) y2 :ink +black+)
  +    (draw-line* pane x2 y1 x2 (+ y2 1) :ink +black+)
  +    (draw-label* pane x1 y1 x2 y2
  +                      :ink (pane-inking-color pane))))
  +
  +(defun draw-down-box (pane x1 y1 x2 y2 foreground)
  +  (draw-rectangle* pane x1 y1 x2 y2 :ink foreground)
  +  ;; white outline
  +  (draw-line* pane x1 y2 x1 y1 :ink +gray58+)
  +  (draw-line* pane x2 y1 x1 y1 :ink +gray58+)
  +  ;; now for the black inline
  +  (let ((x1 (+ x1 1))
  +        (y1 (+ y1 1))
  +        (x2 (- x2 2))
  +        (y2 (- y2 2)))
  +    (draw-line* pane x1 y1 (+ x2 1) y1 :ink +black+)
  +    (draw-line* pane x1 y1 x1 (+ y2 1) :ink +black+))
  +  ;; now for the black outline
  +  (draw-line* pane x1 y2 (+ x2 1) y2 :ink +white+)
  +  (draw-line* pane x2 y1 x2 (+ y2 1) :ink +white+)
  +  (draw-label* pane x1 y1 x2 y2
  +               :ink (pane-inking-color pane)))
  +
   ; Highlighting (could the defaults be less horrible?)
   
   (defmethod gadget-highlight-background ((gadget pixie-gadget))
  
positive.code:             (let ((ya (translate-range-value v minv (+ maxv thumb-size) y1 y2))
                    (yb (translate-range-value (+ v thumb-size) minv
                                               (+ maxv thumb-size) y1 y2)))
                (make-rectangle* x1 ya x2 yb))))))))
  
  (defmethod gadget-bed-region ((pane pixie-slider-pane))
    (with-bounding-rectangle* (minx miny maxx maxy)
  
negative.code: (defmethod effective-gadget-input-area-color ((gadget pixie-gadget))
    +white+)
  
  (defclass draggable-arming-mixin (arm/disarm-repaint-mixin)
    ()
    (:documentation
     "Mixin class for gadgets, which will be armed, when the mouse enters and 
      disarmed, when the mouse leaves, and manages dragging."))
  
  (defmethod handle-event :before ((pane draggable-arming-mixin) (event pointer-enter-event))
    (declare (ignorable event))
    (with-slots (armed dragging) pane
      (if dragging
          (setf dragging :inside)
          (unless armed
            (arm-gadget pane)))))
  
  (defmethod handle-event :after ((pane draggable-arming-mixin) (event pointer-exit-event))
    (declare (ignorable event))
    (with-slots (armed dragging) pane
      (if dragging
          (setf dragging :outside)
          (when armed
            (disarm-gadget pane)))))
  
  ; Slider (refactor into 'thumbed' gadget?)
  
  