[gsharp-cvs] CVS update: gsharp/esa.lisp

Christophe Rhodes crhodes at common-lisp.net
Tue Nov 1 09:50:17 UTC 2005


Update of /project/gsharp/cvsroot/gsharp
In directory common-lisp.net:/tmp/cvs-serv5196

Modified Files:
	esa.lisp 
Log Message:
Make menus work.  Basically copy the body of McCLIM's READ-FRAME-COMMAND 
:AROUND method into the ESA toplevel

Date: Tue Nov  1 10:50:16 2005
Author: crhodes

Index: gsharp/esa.lisp
diff -u gsharp/esa.lisp:1.7 gsharp/esa.lisp:1.8
--- gsharp/esa.lisp:1.7	Sat Oct 29 00:16:37 2005
+++ gsharp/esa.lisp	Tue Nov  1 10:50:16 2005
@@ -212,7 +212,7 @@
 
 (defun process-gestures-or-command (frame command-table)
   (with-input-context 
-      (`(command :command-table ,(command-table (car (windows frame)))))
+      (`(or menu-item (command :command-table ,(command-table (car (windows frame))))))
       (object)
       (let ((gestures '()))
         (multiple-value-bind (numarg numargp)
@@ -234,7 +234,18 @@
                   (execute-frame-command frame command)
                   (return)))
                (t nil))))))
-      (t
+      (menu-item
+       (let ((command (command-menu-item-value object)))
+         (unless (listp command)
+           (setq command (list command)))       
+         (when (and (typep (frame-standard-input frame) 'interactor-pane)
+                    (member *unsupplied-argument-marker* command :test #'eq))
+           (setq command
+                 (command-line-read-remaining-arguments-for-partial-command
+                  (frame-command-table frame) (frame-standard-input frame) 
+                  command 0)))
+         (execute-frame-command frame command)))
+      (command
        (execute-frame-command frame object))))
 
 (defmethod redisplay-frame-panes :around ((frame esa-frame-mixin) &key force-p)




More information about the Gsharp-cvs mailing list