anchor.diff:  (defmethod (setf radio-box-current-selection) :before (button (pane radio-box-pane))
     (declare (ignore button))
     (let ((old-button (radio-box-current-selection pane)))
  -    (setf (gadget-value old-button :invoke-callback t) nil)))
  -
  -(defmethod (setf radio-box-current-selection) :after (button (pane radio-box-pane))
  -  (declare (ignorable pane))
  -  (setf (gadget-value button :invoke-callback t) t))
  -
  -(defmacro with-radio-box ( (&rest options) &body body)
  -  `(make-pane 'radio-box ,@options
  -	      :current-selection (first ,body)
  -	      ,@body))
  +    (setf (gadget-value old-button :invoke-callback t) nil)
  +    (dispatch-repaint old-button (sheet-region old-button))))
  +
  +(defmethod warn-client ((gadget toggle-button-pane) (client radio-box-pane))
  +  (setf (radio-box-current-selection client) gadget))
  +
  +(defun find-current (&rest l)
  +    (let (current)
  +      (loop for element in l
  +	    do (when (equal (first element) 'radio-box-current-selection)
  +		 (return (setf current element))))
  +      (or current (first l))))
  +
  +(defmacro with-radio-box ((&rest options) &body body)
  +  (let* ((current (apply #'find-current body))
  +	 (other-body (remove current body)))
  +    (when (eql (first current) 'radio-box-current-selection)
  +      (setf current (second current))) ; first case of the or in find-current
  +    `(let* ((current-button ,current)
  +	    (radio-box (make-pane-1 (slot-value *application-frame* 'manager)
  +				    *application-frame*
  +				    'radio-box-pane
  +				    ,@options
  +				    :current-selection current-button)))
  +       (mapcar #'(lambda (gadget) (setf (gadget-client gadget) radio-box))
  +	       (list ,@other-body))
  +       (mapcar #'(lambda (gadget) (setf (gadget-value gadget :invoke-callback t) nil))
  +	       (list ,@other-body))
  +       (setf (gadget-client current-button) radio-box
  +	     (gadget-value current-button :invoke-callback t) t)
  +       radio-box)))
   
   
   ;;
  
positive.code:   (let ((callback (gadget-disarmed-callback gadget)))
      (when callback
        (funcall callback gadget))))
  
  
  ;;;
  
negative.code:        :initform (gensym "GADGET")
         :accessor gadget-id)
     (client :initarg :client
             :initform *application-frame*
             :accessor gadget-client)
     (armed-callback :initarg :armed-callback
                     :initform nil
  