anchor.diff:        (setf (gadget-value pane :invoke-callback t) (not (gadget-value pane)))
         (setf armed t)
         (unless (gadget-value pane)
  -	(unhighlight-button pane))
  +	(setf (gadget-current-color pane) (gadget-highlighted-color pane))
  +	(dispatch-repaint pane (sheet-region pane)))
         (disarmed-callback pane (gadget-client pane) (gadget-id pane)))))
   
   (defmethod handle-event ((pane toggle-button-pane) (event window-repaint-event))
  
positive.code: 
  (defmethod repaint-sheet ((pane toggle-button-pane) region)
    (declare (ignore region))
    (with-sheet-medium (medium pane)
       (let ((text (gadget-label pane))
  	   (region (sheet-region pane))
  	   (armed (slot-value pane 'armed)))
         (multiple-value-bind (x1 y1 x2 y2) (bounding-rectangle* region)
  	 (setf x1 (+ x1 2)
  	       x2 (- x2 2)
  	       y1 (+ y1 2)
  	       y2 (- y2 2))
  	 (if (or (gadget-value pane) (eql armed ':button-press))
  	     (progn
  	       (draw-line* pane x1 y1 x2 y1 :ink +black+)
  	       (draw-line* pane x1 y1 x1 y2 :ink +black+)
  	       (draw-line* pane x1 y2 x2 y2 :ink +white+)
  	       (draw-line* pane x2 y1 x2 y2 :ink +white+))
  	     (progn
  	       (draw-line* pane x1 y1 x2 y1 :ink +white+)
  	       (draw-line* pane x1 y1 x1 y2 :ink +white+)
  	       (draw-line* pane x1 y2 x2 y2 :ink +black+)
  	       (draw-line* pane x2 y1 x2 y2 :ink +black+)))
  	 (draw-text* pane text
  		     (round (- x2 x1) 2)
  		     (round (- y2 y1) 2)
  		     :align-x :center
  		     :align-y :center)))))
  
  
  ;;
  
negative.code:   (with-slots (armed) pane
      (unless armed
        (setf armed t)
        (armed-callback pane (gadget-client pane) (gadget-id pane)))))
  
  (defmethod handle-event ((pane menu-button-pane) (event pointer-exit-event))
    (with-slots (armed) pane
      (when armed
        (setf armed nil)
        (disarmed-callback pane (gadget-client pane) (gadget-id pane)))))
  
  (defmethod handle-event ((pane menu-button-pane) (event pointer-button-press-event))
  