[mcclim-cvs] CVS mcclim
thenriksen
thenriksen at common-lisp.net
Wed Dec 13 22:30:31 UTC 2006
Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv8176
Modified Files:
commands.lisp
Log Message:
Added portable implementation of `display-command-table-menu'.
--- /project/mcclim/cvsroot/mcclim/commands.lisp 2006/11/08 01:18:22 1.65
+++ /project/mcclim/cvsroot/mcclim/commands.lisp 2006/12/13 22:30:31 1.66
@@ -541,6 +541,35 @@
gesture))
gesture)))
+(defmethod display-command-table-menu ((command-table standard-command-table)
+ (stream fundamental-output-stream)
+ &rest args
+ &key max-width max-height n-rows n-columns
+ x-spacing y-spacing initial-spacing
+ row-wise (cell-align-x :left)
+ (cell-align-y :top) (move-cursor t))
+ (formatting-item-list (stream :max-width max-width :max-height max-height :n-rows n-rows
+ :n-columns n-columns :x-spacing x-spacing :y-spacing y-spacing
+ :initial-spacing initial-spacing :row-wise row-wise
+ :move-cursor move-cursor)
+ (map-over-command-table-menu-items
+ #'(lambda (item-name accelerator item)
+ (declare (ignore accelerator))
+ (formatting-cell (stream :align-x cell-align-x :align-y cell-align-y)
+ (cond ((eq (command-menu-item-type item) :menu)
+ (with-text-style (stream (make-text-style :serif '(:bold :italic) nil))
+ (write-string item-name stream)
+ (terpri stream))
+ (surrounding-output-with-border (stream)
+ (apply #'display-command-table-menu
+ (find-command-table (command-menu-item-value item))
+ stream args)))
+ ((eq (command-menu-item-type item) :command)
+ (let ((name (command-name (command-menu-item-value item))))
+ (when (command-line-name-for-command name command-table :errorp nil)
+ (present name 'command-name :stream stream)))))))
+ command-table)))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Commands
More information about the Mcclim-cvs
mailing list