anchor.diff:      (apply #'frame-manager-menu-choose frame-manager items args)))
   
   (defmethod frame-manager-menu-choose
  -    (frame-manager items                ; XXX STANDARD-FRAME-MANAGER
  +    (frame-manager items    ; XXX specialize on STANDARD-FRAME-MANAGER
        &key associated-window printer presentation-type
        (default-item nil default-item-p)
        text-style label cache unique-id id-test cache-value cache-test
        max-width max-height n-rows n-columns x-spacing y-spacing row-wise
        cell-align-x cell-align-y scroll-bars pointer-documentation)
  -  (with-menu (menu)
  -    (menu-choose-from-drawer menu (or presentation-type 'menu-item)
  -                             (lambda (stream type)
  -                               (draw-standard-menu stream type items
  -                                                   (if default-item-p
  -                                                       default-item
  -                                                       (first items))))
  -                             )))
  +  (flet ((drawer (stream type)
  +           (draw-standard-menu stream type items
  +                               (if default-item-p
  +                                   default-item
  +                                   (first items))
  +                               :item-printer (if printer
  +                                                 (lambda (item stream)
  +                                                   (funcall printer (menu-item-display item) stream))
  +                                                 #'print-menu-item)
  +                               :max-width max-width
  +                               :max-height max-height
  +                               :n-rows n-rows
  +                               :n-columns n-columns
  +                               :x-spacing x-spacing
  +                               :y-spacing y-spacing
  +                               :row-wise row-wise
  +                               :cell-align-x cell-align-x
  +                               :cell-align-y cell-align-y)))
  +    (with-menu (menu)
  +      (when text-style
  +        (setf (medium-text-style menu) text-style))
  +      (multiple-value-bind (object event)
  +          (menu-choose-from-drawer menu (or presentation-type 'menu-item)
  +                                   #'drawer)
  +        ;; What is OBJECT? Assuming it is a menu item... - APD, 2002-08-03.
  +        (values (menu-item-value object) object event)))))
   
   (defmethod menu-choose-from-drawer
       (menu presentation-type drawer
  
positive.code:       nil))
  
  (defun print-menu-item (menu-item &optional (stream *standard-output*))
    (princ (menu-item-display menu-item) stream))
  
  (defun draw-standard-menu
      (stream presentation-type items default-item
       &key (item-printer #'print-menu-item)
       max-width max-height n-rows n-columns x-spacing y-spacing row-wise
       (cell-align-x :left) (cell-align-y :top))
    (declare (ignore default-item max-width max-height n-rows n-columns
                     row-wise)) ; FIXME!!!
    (formatting-table (stream :x-spacing x-spacing
                              :y-spacing y-spacing)
      (dolist (item items)
        (formatting-row (stream)
          (formatting-cell (stream :align-x cell-align-x
                                   :align-y cell-align-y)
            (with-output-as-presentation (stream (menu-item-value item)
                                                 presentation-type)
              (funcall item-printer item stream)))))))
  
  
  (defmacro with-menu ((menu &optional associated-window
  
negative.code:                                  :width x2
                                   :height y2
                                   :resize-frame t)))
    (handler-case
        (with-input-context (presentation-type :override t)
              (object type event)
            (loop
               (read-gesture :stream menu))
          (t (values object event)))
      (abort-gesture () (values nil))))
  