(lambda (grob) (circle-stencil (callback grob) thickness padding)))
(define-public (print-circled-text-callback grob)
- (let* ((text (ly:grob-property grob 'text))
-
- (layout (ly:grob-layout grob))
- (defs (ly:output-def-lookup layout 'text-font-defaults))
- (props (ly:grob-alist-chain grob defs))
- (circle (ly:text-interface::interpret-markup
- layout props (make-circle-markup text))))
- circle))
-
-(define-public (music-cause grob)
- (let*
- ((event (event-cause grob)))
-
- (if (ly:stream-event? event)
- (ly:event-property event 'music-cause)
- #f)))
+ (grob-interpret-markup grob (make-circle-markup
+ (ly:grob-property grob 'text))
+ ))
(define-public (event-cause grob)
(let*
(ly:duration-dot-count
(ly:event-property (event-cause grob) 'duration)))
+(define-public (dots::calc-staff-position grob)
+ (let*
+ ((head (ly:grob-parent grob Y))
+ (log (ly:grob-property head 'duration-log)))
+
+ (cond
+ ((or (not (grob::has-interface head 'rest-interface))
+ (not (integer? log))) 0)
+ ((= log 7) 4)
+ ((> log 4) 3)
+ ((= log 0) -1)
+ ((= log 1) 1)
+ ((= log -1) 1)
+ (else 0))))
+
(define (note-head::calc-tablature-stem-attachment grob)
(cons 0.0 1.35))
;; statement. -- jr
((xcircle) "2xcircle")
((harmonic) "0harmonic")
+ ((harmonic-black) "2harmonic")
+ ((harmonic-mixed) (if (<= log 1) "0harmonic"
+ "2harmonic"))
((baroque)
;; Oops, I actually would not call this "baroque", but, for
;; backwards compatibility to 1.4, this is supposed to take
(list lp rp)))
-(define (grob-text grob text)
+(define-public (grob-interpret-markup grob text)
(let*
((layout (ly:grob-layout grob))
(defs (ly:output-def-lookup layout 'text-font-defaults))
(define-public (parentheses-item::calc-angled-bracket-stencils grob)
(let* (
(font (ly:grob-default-font grob))
- (lp (ly:stencil-aligned-to (ly:stencil-aligned-to (grob-text grob (ly:wide-char->utf-8 #x2329))
+ (lp (ly:stencil-aligned-to (ly:stencil-aligned-to (grob-interpret-markup grob (ly:wide-char->utf-8 #x2329))
Y CENTER) X RIGHT))
- (rp (ly:stencil-aligned-to (ly:stencil-aligned-to (grob-text grob (ly:wide-char->utf-8 #x232A))
+ (rp (ly:stencil-aligned-to (ly:stencil-aligned-to (grob-interpret-markup grob (ly:wide-char->utf-8 #x232A))
Y CENTER) X LEFT))
)
"Allow interpretation of tildes as lyric tieing marks."
(let*
- ((text (ly:grob-property grob 'text))
- (layout (ly:grob-layout grob))
- (defs (ly:output-def-lookup layout 'text-font-defaults))
- (props (ly:grob-alist-chain grob defs)))
+ ((text (ly:grob-property grob 'text)))
- (ly:text-interface::interpret-markup layout
- props
- (if (string? text)
- (make-tied-lyric-markup text)
- text))))
+ (grob-interpret-markup grob
+ (if (string? text)
+ (make-tied-lyric-markup text)
+ text))))
(define-public ((grob::calc-property-by-copy prop) grob)
(ly:event-property (event-cause grob) prop))
(define-public (fret-board::calc-stencil grob)
(let* ((string-frets (ly:grob-property grob 'string-fret-finger-combinations))
- (string-count (ly:grob-property grob 'string-count))
- (layout (ly:grob-layout grob))
- (defs (ly:output-def-lookup layout 'text-font-defaults))
- (props (ly:grob-alist-chain grob defs)))
-
- (make-fret-diagram layout props
- (string-frets->description string-frets 6))))
+ (string-count (ly:grob-property grob 'string-count)))
+
+ (grob-interpret-markup grob
+ (make-fret-diagram-verbose-markup
+ (string-frets->description string-frets string-count)))))