anchor.diff:  (defclass scroll-bar (value-gadget oriented-gadget-mixin range-gadget-mixin) ()
     (:documentation "The value is a real number"))
   
  -(defclass scroll-bar-pane (scroll-bar clim-stream-pane)
  +(defclass scroll-bar-pane (scroll-bar)
     ((drag-callback :initarg :drag-callback
   		  :reader scroll-bar-drag-callback)
      (scroll-to-bottom-callback :initarg :scroll-to-bottom-callback
  
positive.code: (defclass menu-button (value-gadget labelled-gadget-mixin) ()
    (:documentation "The value is a button"))
  
  (defclass menu-button-pane (menu-button clim-stream-pane) ())
  
  (defclass clx-menu-button-pane (menu-button-pane) ())
  
  
negative.code:       (if (gadget-value pane)
  	  (setf (gadget-current-color pane) (gadget-pushed-and-highlighted-color pane))
  	  (setf (gadget-current-color pane) (gadget-normal-color pane)))
        (disarmed-callback pane (gadget-client pane) (gadget-id pane)))))
  
  (defmethod handle-event ((pane toggle-button-pane) (event pointer-button-press-event))
    (with-slots (armed) pane
      (unless armed
        (armed-callback pane (gadget-client pane) (gadget-id pane)))
      (setf armed ':button-press
  	  (gadget-current-color pane) (gadget-pushed-and-highlighted-color pane))))
        
  (defmethod handle-event ((pane toggle-button-pane) (event pointer-button-release-event))
    (with-slots (armed) pane
      (when (eql armed ':button-press)
        (setf armed t
  	    (gadget-value pane :invoke-callback t) (not (gadget-value pane)))
        (unless (gadget-value pane)
  	(setf (gadget-current-color pane) (gadget-highlighted-color pane)))
        (disarmed-callback pane (gadget-client pane) (gadget-id pane)))))
  
  (defmethod handle-event ((pane toggle-button-pane) (event window-repaint-event))
  