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*)