Update of /project/climacs/cvsroot/climacs In directory common-lisp.net:/tmp/cvs-serv26310
Modified Files: esa.lisp gui.lisp packages.lisp Log Message: Moved keyboard macros to esa.lisp and to a new command table: keyboard-macro-table.
Date: Mon Jul 25 05:41:14 2005 Author: rstrandh
Index: climacs/esa.lisp diff -u climacs/esa.lisp:1.10 climacs/esa.lisp:1.11 --- climacs/esa.lisp:1.10 Sun Jul 24 07:10:47 2005 +++ climacs/esa.lisp Mon Jul 25 05:41:13 2005 @@ -331,6 +331,42 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; +;;; Keyboard macros + +(define-command-table keyboard-macro-table) + +(define-command (com-start-kbd-macro + :name t + :command-table keyboard-macro-table) + () + (setf (recordingp *application-frame*) t) + (setf (recorded-keys *application-frame*) '())) + +(set-key 'com-start-kbd-macro 'keyboard-macro-table '((#\x :control) #()) + +(define-command (com-end-kbd-macro + :name t + :command-table keyboard-macro-table) + () + (setf (recordingp *application-frame*) nil) + (setf (recorded-keys *application-frame*) + ;; this won't work if the command was invoked in any old way + (reverse (cddr (recorded-keys *application-frame*))))) + +(set-key 'com-end-kbd-macro 'keyboard-macro-table '((#\x :control) #))) + +(define-command (com-call-last-kbd-macro + :name t + :command-table keyboard-macro-table) + () + (setf (remaining-keys *application-frame*) + (recorded-keys *application-frame*)) + (setf (executingp *application-frame*) t)) + +(set-key 'com-call-last-kbd-macro 'keyboard-macro-table '((#\x :control) #\e)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; ;;; example application
(defclass example-info-pane (info-pane) @@ -393,5 +429,6 @@ ;;; ;;; Commands and key bindings
-(define-command-table global-example-table :inherit-from (global-esa-table)) +(define-command-table global-example-table + :inherit-from (global-esa-table keyboard-macro-table))
Index: climacs/gui.lisp diff -u climacs/gui.lisp:1.164 climacs/gui.lisp:1.165 --- climacs/gui.lisp:1.164 Sun Jul 24 07:10:47 2005 +++ climacs/gui.lisp Mon Jul 25 05:41:13 2005 @@ -159,7 +159,8 @@ do (when (modified-p buffer) (setf (needs-saving buffer) t))))
-(make-command-table 'global-climacs-table :errorp nil :inherit-from '(global-esa-table)) +(make-command-table 'global-climacs-table :errorp nil + :inherit-from '(global-esa-table keyboard-macro-table))
(defmacro define-named-command (command-name args &body body) `(define-command ,(if (listp command-name) @@ -740,25 +741,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; -;;; Keyboard macros - -(define-named-command com-start-kbd-macro () - (setf (recordingp *application-frame*) t) - (setf (recorded-keys *application-frame*) '())) - -(define-named-command com-end-kbd-macro () - (setf (recordingp *application-frame*) nil) - (setf (recorded-keys *application-frame*) - ;; this won't work if the command was invoked in any old way - (reverse (cddr (recorded-keys *application-frame*))))) - -(define-named-command com-call-last-kbd-macro () - (setf (remaining-keys *application-frame*) - (recorded-keys *application-frame*)) - (setf (executingp *application-frame*) t)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; ;;; Commands for splitting windows
(defun replace-constellation (constellation additional-constellation vertical-p) @@ -1361,10 +1343,7 @@ (c-x-set-key '(#\1) 'com-single-window) (c-x-set-key '(#\2) 'com-split-window-vertically) (c-x-set-key '(#\3) 'com-split-window-horizontally) -(c-x-set-key '(#() 'com-start-kbd-macro) -(c-x-set-key '(#)) 'com-end-kbd-macro) (c-x-set-key '(#\b) 'com-switch-to-buffer) -(c-x-set-key '(#\e) 'com-call-last-kbd-macro) (c-x-set-key '(#\f :control) 'com-find-file) (c-x-set-key '(#\i) 'com-insert-file) (c-x-set-key '(#\k) 'com-kill-buffer)
Index: climacs/packages.lisp diff -u climacs/packages.lisp:1.68 climacs/packages.lisp:1.69 --- climacs/packages.lisp:1.68 Sun Jul 24 07:10:48 2005 +++ climacs/packages.lisp Mon Jul 25 05:41:13 2005 @@ -174,9 +174,7 @@ #:esa-frame-mixin #:windows #:recordingp #:executingp #:*numeric-argument-p* #:*current-gesture* #:esa-top-level #:simple-command-loop - #:global-esa-table - ;; remove these when kbd macros move to esa - #:recorded-keys #:remaining-keys)) + #:global-esa-table #:keyboard-macro-table))
(defpackage :climacs-gui (:use :clim-lisp :clim :climacs-buffer :climacs-base :climacs-abbrev :climacs-syntax