(in-package :clim-user)

(define-application-frame menus ()
  ()
  (:menu-bar menubar-command-table)
  (:panes 
   (interactor :interactor)
   (application :application :display-time nil))
  (:layouts
   (default
     (vertically ()
       application
       interactor))))

(define-command-table commands-command-table) 

(define-command-table menubar-command-table
  :menu (("Commands" :menu commands-command-table)))

(define-menus-command (com-add-command :name t) ((name 'string))
  (add-menu-item-to-command-table 
   'commands-command-table name :command `(com-display ,name)
   :errorp nil))

(define-menus-command com-display ((name 'string))
  (format *standard-output* "~&Displaying ")
  (present name 'string)
  (terpri))

(define-menus-command (com-remove-command :name t) ((name 'string))
  (remove-menu-item-from-command-table 
   'commands-command-table name :errorp nil))

(define-presentation-to-command-translator string-to-remove-command
    (string com-remove-command menus)
    (object)
  (list object))
