+2006-05-24 Nicolas Sceaux <nicolas.sceaux@free.fr>
+
+ * input/no-notation/display-lily-tests.ly: fix \applyOutput
+ test. Add \break, \pageBreak, \pageTurn, etc, tests.
+
+ * scm/define-music-display-methods.scm: display methods for
+ breaks. Fix \applyOutput.
+
2006-05-24 Han-Wen Nienhuys <hanwen@lilypond.org>
* Documentation/user/macros.itexi: comment out funindex expansion.
-\version "2.7.39"
+\version "2.9.5"
#(use-modules (srfi srfi-13)
(ice-9 format))
(make-music 'SequentialMusic
'elements
(list (make-music 'EventChord
- 'elements (list (make-music 'BreakEvent
- 'page-penalty 0
- 'penalty -10001)))
+ 'elements (list (make-music 'LineBreakEvent
+ 'break-permission 'force)))
(make-music 'EventChord
'elements (list (make-music 'SkipEvent
'duration (ly:make-duration 0 0 1 1))
\context {
\Staff
\override StaffSymbol #'line-count = #1
- %\remove "Staff_symbol_engraver"
\remove "Time_signature_engraver"
\remove "Clef_engraver"
}
}
}
{
+ \fatText
%% Sequential music
\test #"" ##[ { { a b } { c d } } #] % SequentialMusic
\test #"" ##[ << { a b } { c d } >> #] % SimultaneousMusic
\test #"" ##[ \lyricsto "foo" { bla bla } #] % LyricCombineMusic
\test #"" ##[ { { c d }
\addlyrics { bla bla } } #]
- \test #"" ##[ \oldaddlyrics { c d }
-\lyricmode { bla bla } #] % OldLyricCombineMusic
%% Drums
\test #"" ##[ \drums { hihat } #]
\test #"" ##[ \~ #] % PesOrFlexaEvent
\test #"" ##[ \break #]
+ \test #"" ##[ \noBreak #]
+ \test #"" ##[ \pageBreak #]
+ \test #"" ##[ \noPageBreak #]
+ \test #"" ##[ \pageTurn #]
+ \test #"" ##[ \noPageTurn #]
%% Checks
\test #"" ##[ \octave a' #] % RelativeOctaveCheck
\test #"" ##[ \revert Beam #'thickness #]
%% \applyOutput
- \test #"" ##[ \applyOutput #(lambda (arg) ()) #]
+ \test #"" ##[ \applyOutput #'Foo #(lambda (arg) (list)) #]
%% \applyContext
- \test #"" ##[ \applyContext #(lambda (arg) ()) #]
+ \test #"" ##[ \applyContext #(lambda (arg) (list)) #]
%% \partial
\test #"" ##[ \partial 2 #]
(define-display-method BarCheck (check)
(format #f "|~a" (new-line->lily-string)))
-;; TODO: also display something when there is a penalty?
-(define-display-method LineBreakEvent (br)
- (if (eq? (ly:music-property br 'break-permission) 'forbid)
- ("\\noBreak")
- ("\\break")))
-
-(define-display-method PageBreakEvent (br)
- (if (eq? (ly:music-property br 'break-permission) 'forbid)
- ("\\noPageBreak")
- ("\\pageBreak")))
-
-(define-display-method PageTurnEvent (br)
- (if (eq? (ly:music-property br 'break-permission) 'forbid)
- ("\\noPageTurn")
- ("\\pageTurn")))
-
(define-display-method PesOrFlexaEvent (expr)
"\\~")
;;;
(define-display-method ApplyOutputEvent (applyoutput)
- (let ((proc (ly:music-property applyoutput 'procedure)))
- (format #f "\\applyOutput #~a"
+ (let ((proc (ly:music-property applyoutput 'procedure))
+ (ctx (ly:music-property applyoutput 'context-type)))
+ (format #f "\\applyOutput #'~a #~a"
+ ctx
(or (procedure-name proc)
(with-output-to-string
(lambda ()
(ly:music-property expr 'quoted-music-name)
(music->lily-string (ly:music-property expr 'element)))))
+;;;
+;;; Breaks
+;;;
+(define-display-method LineBreakEvent (expr)
+ (if (null? (ly:music-property expr 'break-permission))
+ "\\noBreak"
+ "\\break"))
+
+(define-display-method PageBreakEvent (expr)
+ (if (null? (ly:music-property expr 'break-permission))
+ "\\noPageBreak"
+ "\\pageBreak"))
+
+(define-display-method PageTurnEvent (expr)
+ (if (null? (ly:music-property expr 'break-permission))
+ "\\noPageTurn"
+ "\\pageTurn"))
+
+(define-extra-display-method EventChord (expr)
+ (with-music-match (expr (music 'EventChord
+ elements ((music 'LineBreakEvent
+ break-permission 'force)
+ (music 'PageBreakEvent
+ break-permission 'force))))
+ "\\pageBreak"))
+
+(define-extra-display-method EventChord (expr)
+ (with-music-match (expr (music 'EventChord
+ elements ((music 'LineBreakEvent
+ break-permission 'force)
+ (music 'PageBreakEvent
+ break-permission 'force)
+ (music 'PageTurnEvent
+ break-permission 'force))))
+ "\\pageTurn"))
+
;;;
;;; Lyrics
;;;
(parameterize ((*explicit-mode* #f))
(music->lily-string (ly:music-property expr 'element)))))
-(define-display-method OldLyricCombineMusic (expr)
- (format #f "\\oldaddlyrics ~a~a~a"
- (music->lily-string (first (ly:music-property expr 'elements)))
- (new-line->lily-string)
- (music->lily-string (second (ly:music-property expr 'elements)))))
-
;; \addlyrics
(define-extra-display-method SimultaneousMusic (expr)
(with-music-match (expr (music 'SimultaneousMusic