
Update of /project/gsharp/cvsroot/gsharp In directory common-lisp.net:/tmp/cvs-serv3200 Modified Files: gui.lisp modes.lisp Log Message: Lyrics input now allows for accents, provided that your keyboard is capable of generating dead keys for these accents. It only works for X11 at the moment, I would think. The way I do it is not great, since now I get messages about missing commands for the control keys. I have to think of a better way of doing it. Loading a file now calls select-layer so that the appropriate mode is selected. Loading the bach score with lyrics now immediately lets you edit the lyrics. Date: Sun Aug 1 08:14:33 2004 Author: rstrandh Index: gsharp/gui.lisp diff -u gsharp/gui.lisp:1.16 gsharp/gui.lisp:1.17 --- gsharp/gui.lisp:1.16 Sat Jul 24 13:09:55 2004 +++ gsharp/gui.lisp Sun Aug 1 08:14:33 2004 @@ -17,8 +17,8 @@ (defparameter *last-character* nil) (defmethod dispatch-event :around ((pane score-pane:score-pane) (event key-press-event)) - (when (keyboard-event-character event) - (let ((key (list (keyboard-event-character event) + (when (or (keyboard-event-character event) (keyboard-event-key-name event)) + (let ((key (list (or (keyboard-event-character event) (keyboard-event-key-name event)) (event-modifier-state event)))) (setf *accumulated-keys* (append *accumulated-keys* (list key))) (setf *last-character* (char-to-unicode (car key))) @@ -289,7 +289,8 @@ (setf (buffer *gsharp-frame*) buffer (input-state *gsharp-frame*) input-state (cursor *gsharp-frame*) cursor) - (number-all (buffer *gsharp-frame*)))) + (number-all (buffer *gsharp-frame*)) + (select-layer cursor (car (layers (segment (cursor *gsharp-frame*))))))) (define-gsharp-command (com-save-buffer-as :name t) () (let* ((stream (frame-standard-input *gsharp-frame*)) Index: gsharp/modes.lisp diff -u gsharp/modes.lisp:1.2 gsharp/modes.lisp:1.3 --- gsharp/modes.lisp:1.2 Sat Jul 24 13:09:55 2004 +++ gsharp/modes.lisp Sun Aug 1 08:14:33 2004 @@ -97,70 +97,70 @@ do (add-keyseq `((,c)) (make-insert-fun i) *lyrics-layer-mode-table*)) ;;; try some latin prefix mode for national characters -(add-keyseq '((#\`) (#\A :shift)) (make-insert-fun 192) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\A :shift)) (make-insert-fun 193) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\A :shift)) (make-insert-fun 194) *lyrics-layer-mode-table*) -(add-keyseq '((#\~) (#\A :shift)) (make-insert-fun 195) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\A :shift)) (make-insert-fun 196) *lyrics-layer-mode-table*) -(add-keyseq '((#\/) (#\A :shift)) (make-insert-fun 197) *lyrics-layer-mode-table*) -(add-keyseq '((#\/) (#\E :shift)) (make-insert-fun 198) *lyrics-layer-mode-table*) -(add-keyseq '((#\/) (#\C :shift)) (make-insert-fun 199) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\E :shift)) (make-insert-fun 200) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\E :shift)) (make-insert-fun 201) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\E :shift)) (make-insert-fun 202) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\E :shift)) (make-insert-fun 203) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\I :shift)) (make-insert-fun 204) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\I :shift)) (make-insert-fun 205) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\I :shift)) (make-insert-fun 206) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\I :shift)) (make-insert-fun 207) *lyrics-layer-mode-table*) -(add-keyseq '((#\/) (#\D :shift)) (make-insert-fun 208) *lyrics-layer-mode-table*) -(add-keyseq '((#\~) (#\N :shift)) (make-insert-fun 209) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\O :shift)) (make-insert-fun 210) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\O :shift)) (make-insert-fun 211) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\O :shift)) (make-insert-fun 212) *lyrics-layer-mode-table*) -(add-keyseq '((#\~) (#\O :shift)) (make-insert-fun 213) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\O :shift)) (make-insert-fun 214) *lyrics-layer-mode-table*) - -(add-keyseq '((#\/) (#\O :shift)) (make-insert-fun 216) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\U :shift)) (make-insert-fun 217) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\U :shift)) (make-insert-fun 218) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\U :shift)) (make-insert-fun 219) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\U :shift)) (make-insert-fun 220) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\Y :shift)) (make-insert-fun 221) *lyrics-layer-mode-table*) - - -(add-keyseq '((#\`) (#\a)) (make-insert-fun 224) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\a)) (make-insert-fun 225) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\a)) (make-insert-fun 226) *lyrics-layer-mode-table*) -(add-keyseq '((#\~) (#\a)) (make-insert-fun 227) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\a)) (make-insert-fun 228) *lyrics-layer-mode-table*) -(add-keyseq '((#\/) (#\a)) (make-insert-fun 229) *lyrics-layer-mode-table*) -(add-keyseq '((#\/) (#\e)) (make-insert-fun 230) *lyrics-layer-mode-table*) -(add-keyseq '((#\~) (#\c)) (make-insert-fun 231) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\e)) (make-insert-fun 232) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\e)) (make-insert-fun 233) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\e)) (make-insert-fun 234) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\e)) (make-insert-fun 235) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\i)) (make-insert-fun 236) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\i)) (make-insert-fun 237) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\i)) (make-insert-fun 238) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\i)) (make-insert-fun 239) *lyrics-layer-mode-table*) - - -(add-keyseq '((#\`) (#\o)) (make-insert-fun 242) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\o)) (make-insert-fun 243) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\o)) (make-insert-fun 244) *lyrics-layer-mode-table*) -(add-keyseq '((#\~) (#\o)) (make-insert-fun 245) *lyrics-layer-mode-table*) -(add-keyseq `((#\") (#\o)) (make-insert-fun 246) *lyrics-layer-mode-table*) - -(add-keyseq '((#\/) (#\o)) (make-insert-fun 248) *lyrics-layer-mode-table*) -(add-keyseq '((#\`) (#\u)) (make-insert-fun 249) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\u)) (make-insert-fun 250) *lyrics-layer-mode-table*) -(add-keyseq '((#\^) (#\u)) (make-insert-fun 251) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\u)) (make-insert-fun 252) *lyrics-layer-mode-table*) -(add-keyseq '((#\') (#\y)) (make-insert-fun 253) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\A :shift)) (make-insert-fun 192) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\A :shift)) (make-insert-fun 193) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\A :shift)) (make-insert-fun 194) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--tilde :shift) (#\A :shift)) (make-insert-fun 195) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\A :shift)) (make-insert-fun 196) *lyrics-layer-mode-table*) +(add-keyseq '((:dead-above-ring) (#\A :shift)) (make-insert-fun 197) *lyrics-layer-mode-table*) +(add-keyseq '((:dead-above-ring) (#\E :shift)) (make-insert-fun 198) *lyrics-layer-mode-table*) +(add-keyseq '((:dead-above-ring) (#\C :shift)) (make-insert-fun 199) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\E :shift)) (make-insert-fun 200) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\E :shift)) (make-insert-fun 201) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\E :shift)) (make-insert-fun 202) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\E :shift)) (make-insert-fun 203) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\I :shift)) (make-insert-fun 204) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\I :shift)) (make-insert-fun 205) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\I :shift)) (make-insert-fun 206) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\I :shift)) (make-insert-fun 207) *lyrics-layer-mode-table*) +(add-keyseq '((:dead-above-ring) (#\D :shift)) (make-insert-fun 208) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--tilde :shift) (#\N :shift)) (make-insert-fun 209) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\O :shift)) (make-insert-fun 210) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\O :shift)) (make-insert-fun 211) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\O :shift)) (make-insert-fun 212) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--tilde :shift) (#\O :shift)) (make-insert-fun 213) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\O :shift)) (make-insert-fun 214) *lyrics-layer-mode-table*) + +(add-keyseq '((:dead-above-ring) (#\O :shift)) (make-insert-fun 216) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\U :shift)) (make-insert-fun 217) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\U :shift)) (make-insert-fun 218) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\U :shift)) (make-insert-fun 219) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\U :shift)) (make-insert-fun 220) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\Y :shift)) (make-insert-fun 221) *lyrics-layer-mode-table*) + + +(add-keyseq '((:dead--grave) (#\a)) (make-insert-fun 224) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\a)) (make-insert-fun 225) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\a)) (make-insert-fun 226) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--tilde :shift) (#\a)) (make-insert-fun 227) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\a)) (make-insert-fun 228) *lyrics-layer-mode-table*) +(add-keyseq '((:dead-above-ring) (#\a)) (make-insert-fun 229) *lyrics-layer-mode-table*) +(add-keyseq '((:dead-above-ring) (#\e)) (make-insert-fun 230) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--tilde :shift) (#\c)) (make-insert-fun 231) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\e)) (make-insert-fun 232) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\e)) (make-insert-fun 233) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\e)) (make-insert-fun 234) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\e)) (make-insert-fun 235) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\i)) (make-insert-fun 236) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\i)) (make-insert-fun 237) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\i)) (make-insert-fun 238) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\i)) (make-insert-fun 239) *lyrics-layer-mode-table*) + + +(add-keyseq '((:dead--grave) (#\o)) (make-insert-fun 242) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\o)) (make-insert-fun 243) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\o)) (make-insert-fun 244) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--tilde :shift) (#\o)) (make-insert-fun 245) *lyrics-layer-mode-table*) +(add-keyseq `((:dead--diaeresis :shift) (#\o)) (make-insert-fun 246) *lyrics-layer-mode-table*) + +(add-keyseq '((:dead-above-ring) (#\o)) (make-insert-fun 248) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--grave) (#\u)) (make-insert-fun 249) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\u)) (make-insert-fun 250) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--circumflex :shift) (#\u)) (make-insert-fun 251) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\u)) (make-insert-fun 252) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--acute) (#\y)) (make-insert-fun 253) *lyrics-layer-mode-table*) -(add-keyseq '((#\") (#\y)) (make-insert-fun 255) *lyrics-layer-mode-table*) +(add-keyseq '((:dead--diaeresis :shift) (#\y)) (make-insert-fun 255) *lyrics-layer-mode-table*)