anchor.diff:      (when default-p
         (%dialog-set-default-response dialog response-id-num))
       widget))
  -  
  -
  -(defun dialog-add-child (dialog child &rest args)
  -  (apply #'container-add (slot-value dialog 'vbox) child args))
  +
  +
  +(defbinding %dialog-set-default-response () nil
  +  (dialog dialog)
  +  (response-id-num int))
  +
  +(defun dialog-set-default-response (dialog response-id)
  +  (%dialog-set-default-response
  +   dialog (%dialog-find-response-id-num dialog response-id nil t)))
  +
  +(defbinding dialog-set-response-sensitive (dialog response-id sensitive) nil
  +  (dialog dialog)
  +  ((%dialog-find-response-id-num dialog response-id nil t) int)
  +  (sensitive boolean))
  +
  +
  +;; Addition dialog functions
  +
  +(defmethod container-add ((dialog dialog) (child widget) &rest args)
  +  (apply #'container-add (slot-value dialog 'main-area) child args))
  +
  +(defmethod container-remove ((dialog dialog) (child widget))
  +  (container-remove (slot-value dialog 'main-area) child))
   
   (defmethod container-children ((dialog dialog))
  -  (container-children (dialog-vbox dialog)))
  +  (container-children (dialog-main-area dialog)))
   
   (defmethod (setf container-children) (children (dialog dialog))
  -  (setf (container-children (dialog-vbox dialog)) children))
  +  (setf (container-children (dialog-main-area dialog)) children))
   
   
   
   ;;; Drawing area -- no functions
  -
  -
  -
  -
   
   
   
  
positive.code: 
  
  
  ;;; Dialog
  
  (defmethod initialize-instance ((dialog dialog) &rest initargs)
    (apply #'call-next-method dialog (plist-remove initargs :child))
    (dolist (button-definition (get-all initargs :button))
      (apply #'dialog-add-button dialog button-definition))
    (dolist (child (get-all initargs :child))
      (apply #'dialog-add-child dialog (mklist child))))
  
  
  (defvar %*response-id-key* (gensym))
  
  (defun %dialog-find-response-id-num (dialog response-id create-p)
    (or
     (cadr (assoc response-id (rest (type-expand-1 'response-type))))
     (let* ((response-ids (object-data dialog %*response-id-key*))
  
negative.code:        (t
  	(setf (object-data dialog %*response-id-key*) (list response-id))
  	0)))
       (error-p
        (error "Invalid response: ~A" response-id))))))
  
  (defun %dialog-find-response-id (dialog response-id-num)
    (if (< response-id-num 0)
  