Update of /project/gsharp/cvsroot/gsharp In directory common-lisp.net:/tmp/cvs-serv22545
Modified Files: esa.lisp gui.lisp packages.lisp Log Message: Sync esa with climacs.
Implement FIND-APPLICABLE-COMMAND-TABLE.
Date: Mon Nov 14 15:27:32 2005 Author: crhodes
Index: gsharp/esa.lisp diff -u gsharp/esa.lisp:1.9 gsharp/esa.lisp:1.10 --- gsharp/esa.lisp:1.9 Thu Nov 3 15:59:23 2005 +++ gsharp/esa.lisp Mon Nov 14 15:27:32 2005 @@ -215,7 +215,7 @@ ('menu-item) (object) (with-input-context - (`(command :command-table ,(command-table (car (windows frame))))) + (`(command :command-table ,command-table)) (object) (let ((gestures '())) (multiple-value-bind (numarg numargp) @@ -263,6 +263,11 @@ (car command) command)))
+(defgeneric find-applicable-command-table (frame)) + +(defmethod find-applicable-command-table ((frame esa-frame-mixin)) + (command-table (car (windows frame)))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Top level @@ -281,12 +286,12 @@ do (restart-case (progn (handler-case - (progn + (let ((command-table (find-applicable-command-table frame))) ;; for presentation-to-command-translators, ;; which are searched for in ;; (frame-command-table *application-frame*) - (setf (frame-command-table frame) (command-table (car (windows frame)))) - (process-gestures-or-command frame (command-table (car (windows frame))))) + (setf (frame-command-table frame) command-table) + (process-gestures-or-command frame command-table)) (abort-gesture () (display-message "Quit"))) (redisplay-frame-panes frame)) (return-to-esa () nil))))))
Index: gsharp/gui.lisp diff -u gsharp/gui.lisp:1.41 gsharp/gui.lisp:1.42 --- gsharp/gui.lisp:1.41 Thu Nov 10 18:37:16 2005 +++ gsharp/gui.lisp Mon Nov 14 15:27:32 2005 @@ -423,12 +423,12 @@ (declare (ignore string)) (if success layer (error 'no-such-layer))))
-(defmethod select-layer :after (cursor (layer layer)) - (typecase layer - (lyrics-layer (setf (command-table (first (windows *application-frame*))) - (find-command-table 'total-lyrics-table))) - (melody-layer (setf (command-table (first (windows *application-frame*))) - (find-command-table 'total-melody-table))))) +(defmethod find-applicable-command-table ((frame gsharp)) + (let* ((layer (layer (cursor *application-frame*)))) + ;; F-A-C-T-WITH-LAYER? + (typecase layer + (lyrics-layer (find-command-table 'total-lyrics-table)) + (melody-layer (find-command-table 'total-melody-table)))))
(define-gsharp-command (com-select-layer :name t) () (let ((selected-layer (accept 'layer :prompt "Select layer")))
Index: gsharp/packages.lisp diff -u gsharp/packages.lisp:1.26 gsharp/packages.lisp:1.27 --- gsharp/packages.lisp:1.26 Mon Nov 7 21:00:52 2005 +++ gsharp/packages.lisp Mon Nov 14 15:27:32 2005 @@ -138,7 +138,8 @@ #:esa-top-level #:simple-command-loop #:global-esa-table #:keyboard-macro-table #:help-table - #:set-key)) + #:set-key + #:find-applicable-command-table))
(defpackage :score-pane (:use :clim :clim-extensions :clim-lisp :sdl :esa)