]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grobs.scm
Make pure-height on accidentals ignore tied accidentals after breaks.
[lilypond.git] / scm / define-grobs.scm
index be0de886f52b2b3479ff723aa8077582a5c2eed8..33493aabdf55f106378bd7c144c04d9993b37118 100644 (file)
     (Accidental
      . (
        (avoid-slur . inside)
-       (cautionary-style . parentheses)
+       (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+       (alteration . ,accidental-interface::calc-alteration) 
        (stencil . ,ly:accidental-interface::print)
+       (pure-Y-extent . ,ly:accidental-interface::pure-height)
        (after-line-breaking
         . ,ly:accidental-interface::after-line-breaking)
        (meta . ((class . Item)
                 (interfaces . (accidental-interface
                                font-interface))))))
+    (AccidentalCautionary
+     . (
+       (avoid-slur . inside)
+       (parenthesized . #t)
+       (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+       (alteration . ,accidental-interface::calc-alteration) 
+       (stencil . ,ly:accidental-interface::print)
+       (pure-Y-extent . ,ly:accidental-interface::pure-height)
+       (after-line-breaking
+        . ,ly:accidental-interface::after-line-breaking)
+       (meta . ((class . Item)
+                (interfaces . (accidental-interface
+                               font-interface))))))
+
     
     (AccidentalSuggestion
      . (
                        ,(ly:make-simple-closure (list ly:self-alignment-interface::centered-on-x-parent))
                        ,(ly:make-simple-closure (list ly:self-alignment-interface::x-aligned-on-self)))))
        (self-alignment-X . ,CENTER)
-       (cautionary . #t)
-       (cautionary-style . smaller)
+       (font-size . -2)
+       (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+       (alteration . ,accidental-interface::calc-alteration)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
-       (cautionary-style . parentheses)
        (direction . ,UP)
        (staff-padding . 0.25)
+       (outside-staff-priority . 0)
        (script-priority . 0)
        (side-axis . ,X)
        (meta . ((class . Item)
@@ -51,6 +68,7 @@
                                accidental-suggestion-interface
                                self-alignment-interface
                                font-interface))))))
+
     (AccidentalPlacement
      . (
        (left-padding . 0.2)
        (padding . 0.5)
        (X-offset . ,ly:side-position-interface::x-aligned-side)
        (direction . ,LEFT)
-       (cautionary-style . parentheses)
        (stencil . ,ly:accidental-interface::print)
+       (pure-Y-extent . ,ly:accidental-interface::pure-height)
+       (glyph-name-alist . ,standard-alteration-glyph-name-alist)      
        (after-line-breaking . ,ly:accidental-interface::after-line-breaking)
        (side-axis . ,X)
        (meta . ((class . Item)
        (layer . 0)
        (break-visibility . ,all-visible)
        (non-musical . #t)
+       (extra-spacing-width . (-0.3 . 0.3))
 
        (stencil . ,ly:bar-line::print)
        (glyph-name . ,bar-line::calc-glyph-name)
        (font-size . -2)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (side-axis . ,Y)
+       (outside-staff-priority . 100)
        (X-offset . ,(ly:make-simple-closure
                      `(,+
                        ,(ly:make-simple-closure
-                         (list ly:break-alignment-align-interface::self-align-callback))
+                         (list ly:break-alignable-interface::self-align-callback))
                        ,(ly:make-simple-closure
                          (list ly:self-alignment-interface::x-aligned-on-self)))))
 
              ((class . Item)
               (interfaces . (side-position-interface
                              text-interface
-                             break-alignment-align-interface
+                             break-alignable-interface
                              self-alignment-interface
                              font-interface
                              ))))
        (positioning-done . ,ly:align-interface::calc-positioning-done)
        (Y-extent . ,ly:axis-group-interface::height)
        (stacking-dir . -1)
+       (padding . 0.2)
        (meta . ((class . Spanner)
                 (interfaces . (align-interface
                                bass-figure-alignment-interface
      . (
        (axes . (,Y))
        (Y-extent . ,ly:axis-group-interface::height)
+       (skylines . ,ly:axis-group-interface::calc-skylines)
        (meta . ((class . Spanner)
                 (interfaces . (axis-group-interface
                                ))))))
 
     (BendAfter
      . (
-       (stencil . ,fall::print)
+       (stencil . ,bend::print)
        (thickness . 2.0)
        (meta . ((class . Spanner)
                 (interfaces . (spanner-interface
      . (
        (non-musical . #t)
        (stacking-dir . 1)
-       (positioning-done . ,ly:break-align-interface::calc-positioning-done)
+       (positioning-done . ,ly:break-alignment-interface::calc-positioning-done)
        (X-extent . ,ly:axis-group-interface::width)
        (break-align-orders . ;; end of line
                            #((
        (stencil . ,ly:clef::print)
        (glyph-name . ,ly:clef::calc-glyph-name)
        (non-musical . #t)
+       (avoid-slur . inside)
        (font-family . music)
        (break-align-symbol . clef)
        (break-visibility . ,begin-of-line-visible)
      . (
        (Y-extent . ,ly:cluster-beacon::height)
        (meta . ((class . Item)
-                (interfaces . (cluster-beacon-interface))))))
+                (interfaces . (rhythmic-grob-interface
+                               cluster-beacon-interface))))))
 
     (ClusterSpanner
      . (
     (CombineTextScript
      . (
        (stencil . ,ly:text-interface::print)
-       (no-spacing-rods . #t)
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (direction . ,UP)
        (meta . ((class . Item)
                 (interfaces . (font-interface
                                break-aligned-interface
-                               percent-repeat-interface))))))
+                               percent-repeat-item-interface))))))
 
     (DoublePercentRepeatCounter
      . (
        (meta . ((class . Item)
                 (interfaces . (side-position-interface
                                self-alignment-interface
-                               percent-repeat-interface
+                               percent-repeat-item-interface
                                font-interface
                                text-interface))))))
     (DynamicLineSpanner
        (minimum-space . 1.2)
        (direction . ,DOWN)
        (side-axis . ,Y)
+       (outside-staff-priority . 250)
        (Y-extent . ,ly:axis-group-interface::height)
        (X-extent . ,ly:axis-group-interface::width)
        (meta . ((class . Spanner)
        (font-encoding . fetaDynamic)
        (font-shape . italic)
        (avoid-slur . around)
-       (no-spacing-rods . #t)
-       (script-priority . 100)
+       (extra-spacing-width . (+inf.0 . -inf.0))
+       (outside-staff-priority . 250)
        (meta . ((class . Item)
                 (interfaces . (font-interface
                                text-interface
        (style . line)
        (gap . 0.5)
        (zigzag-width . 0.75)
-       (non-musical . #t)
        (X-extent . #f)
        (Y-extent . #f)
        (stencil . ,ly:line-spanner::print)
     (KeyCancellation
      . (
        (stencil . ,ly:key-signature-interface::print)
+       (glyph-name-alist . ,cancellation-glyph-name-alist)
        (space-alist . (
                        (time-signature . (extra-space . 1.25))
                        (staff-bar . (extra-space . 0.6))
        (break-visibility . ,begin-of-line-invisible)
        (non-musical . #t)
        (meta . ((class . Item)
-                (interfaces . (key-signature-interface
+                (interfaces . (key-cancellation-interface
+                               key-signature-interface
                                font-interface
                                break-aligned-interface))))))
     (KeySignature
      . (
        (stencil . ,ly:key-signature-interface::print)
+       (avoid-slur . inside)
+       (glyph-name-alist . ,standard-alteration-glyph-name-alist)
        (space-alist . (
                        (time-signature . (extra-space . 1.15))
                        (staff-bar . (extra-space . 1.1))
        (length-fraction . 0.25)
        (layer . 0)
        (meta . ((class . Spanner)
-                (interfaces . (ledger-line-interface))))))
+                (interfaces . (ledger-line-spanner-interface))))))
 
     (LeftEdge
      . (
        (minimum-length . 0.3)
        (minimum-distance . 0.1)
        (padding . 0.07)
-       (springs-and-rods . ,ly:hyphen-spanner::set-spacing-rods)
-       (stencil . ,ly:hyphen-spanner::print)
+       (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods)
+       (stencil . ,ly:lyric-hyphen::print)
        (Y-extent . (0 . 0))
        (meta . ((class . Spanner)
                 (interfaces . (lyric-interface
 
     (LyricSpace
      . ((minimum-distance . 0.45)
-       (springs-and-rods . ,ly:hyphen-spanner::set-spacing-rods)
+       (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods)
        (padding . 0.0)
        (Y-extent . #f)
        (X-extent . #f)
        (direction . ,UP)
        (padding . 0.8)
        (side-axis . ,Y)
+       (outside-staff-priority . 1000)
        (meta . ((class . Item)
                 (interfaces . (text-interface
                                side-position-interface
        
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (stencil . ,ly:text-interface::print)
-
-       ;; no Y dimensions, because of lyrics under tenor clef.
-       (Y-extent . (0 . 0))
        (font-shape . italic)
-       (padding . 0.6)
        (staff-padding . 0.2)
        (font-size . -4)
        (meta . ((class . Item)
        (dash-fraction . 0.3)
        (edge-height . (0 . 1.2))
        (direction . ,UP)
+       (outside-staff-priority . 400)
        (meta . ((class . Spanner)
                 (interfaces . (ottava-bracket-interface
                                horizontal-bracket-interface
 
     (ParenthesesItem
      . ((stencil . ,parentheses-item::print)
+       (stencils . ,parentheses-item::calc-parenthesis-stencils)
        (font-size . -6)
        (padding . 0.2)
        (meta . ((class . Item)
                 (interfaces . (parentheses-interface font-interface))))
        ))
+
+    (HarmonicParenthesesItem
+     . ((stencil . ,parentheses-item::print)
+       (padding . 0)
+       (stencils . ,parentheses-item::calc-angled-bracket-stencils)
+       (meta . ((class . Item)
+                (interfaces . (parentheses-interface font-interface))))
+       ))
     
     (PhrasingSlur
      . ((details . ,default-slur-details)
        (meta . ((class . Spanner)
                 (interfaces . (multi-measure-rest-interface
                                font-interface
-                               percent-repeat-interface))))))
+                               percent-repeat-item-interface))))))
     (PercentRepeatCounter
      . (
        (stencil . ,ly:text-interface::print)
        (meta . ((class . Spanner)
                 (interfaces . (side-position-interface
                                self-alignment-interface
-                               percent-repeat-interface
+                               percent-repeat-item-interface
                                font-interface
                                text-interface))))))
 
        (X-offset . ,(ly:make-simple-closure
                      `(,+
                        ,(ly:make-simple-closure
-                         (list ly:break-alignment-align-interface::self-align-callback))
+                         (list ly:break-alignable-interface::self-align-callback))
                        ,(ly:make-simple-closure
                          (list ly:self-alignment-interface::x-aligned-on-self)))))
 
        (font-size . 2)
        (baseline-skip . 2)
        (break-visibility . ,end-of-line-invisible)
-       (break-align-symbol . staff-bar)
+       (break-align-symbol . clef)
        (padding . 0.8)
+       (outside-staff-priority . 1500)
        (meta . ((class . Item)
                 (interfaces . (text-interface
                                side-position-interface
-                               break-alignment-align-interface
+                               break-alignable-interface
                                font-interface
                                mark-interface
                                self-alignment-interface))))))
        (thickness . 0.48)
        (slope . 1.7)
        (meta . ((class . Item)
-                (interfaces . (percent-repeat-interface))))))
+                (interfaces . (rhythmic-grob-interface
+                               percent-repeat-item-interface))))))
 
     (RepeatTie
      . (
        (avoid-slur . inside)
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
+       (skylines . ,ly:separation-item::calc-skylines)
        (meta . ((class . Item)
                 (interfaces . (spacing-interface
                                separation-item-interface))))))
        (meta . ((class . Spanner)
                 (interfaces . (only-prebreak-interface
                                spacing-interface
-                               separation-spanner-interface))))))
+                               separating-group-spanner-interface))))))
 
     (Slur
      . ((details . ,default-slur-details)
        (stencil . ,ly:text-interface::print)
        (direction . ,RIGHT)
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
-       (no-spacing-rods . #t)
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
        (font-shape . italic)
        (self-alignment-X . 0)
 
     (SustainPedal
      . (
-       (no-spacing-rods . #t)
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (stencil . ,ly:sustain-pedal::print)
        (self-alignment-X . 0)
        (direction . ,RIGHT)
        (axes . (0 1))
        (X-extent . ,ly:axis-group-interface::width)
        (Y-extent . ,ly:axis-group-interface::height)
+       (skylines . ,ly:axis-group-interface::calc-skylines)
+       (skyline-horizontal-padding . 1.0)
        (meta . ((class . System)
                 (interfaces . (system-interface
                                axis-group-interface))))))
                 (interfaces . (side-position-interface
                                system-start-delimiter-interface))))))
 
-
     (TabNoteHead
      . (
        (stencil . ,ly:text-interface::print)
        (Y-offset . ,ly:staff-symbol-referencer::callback)
+       (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+       (direction . 0)
        (font-size . -2)
        (stem-attachment . (0.0 . 1.35))
        (font-series . bold)
 
     (TextScript
      . (
-       (no-spacing-rods . #t)
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (side-axis . ,Y)
        (stencil . ,ly:text-interface::print)
        (direction . ,ly:script-interface::calc-direction)
 
+       (outside-staff-priority . 450)
        (avoid-slur . around)
        (slur-padding . 0.5)
        (script-priority . 200)
        (dash-period . 3.0)
        (side-axis . ,Y)
        (direction . ,UP)
+       (outside-staff-priority . 350)
        (meta . ((class . Spanner)
                 (interfaces . (text-spanner-interface
                                line-spanner-interface
        (stencil . ,ly:tie::print)
        (font-size . -6)
        (details . (
-                   ;; for a full list, see tie-helper.cc
+                   ;; for a full list, see tie-details.cc
                    (ratio . 0.333)
                    (center-staff-line-clearance . 0.6)
                    (tip-staff-line-clearance . 0.45)
        (stencil . ,ly:time-signature::print)
        (break-align-symbol . time-signature)
        (break-visibility . ,all-visible)
+       (avoid-slur . inside)
        (space-alist . (
                        (first-note . (fixed-space . 2.0))
                        (right-edge . (extra-space . 0.5))
        (direction . ,UP)
        (Y-offset . ,ly:side-position-interface::y-aligned-side)
        (side-axis . ,Y)
+       (outside-staff-priority . 50)
        (meta . ((class . Spanner)
                 (interfaces . (text-spanner-interface
                                line-spanner-interface
        (font-size . -4)
        (side-axis . ,X)
        (stencil . ,ly:accidental-interface::print)
+       (glyph-name-alist . ,standard-alteration-glyph-name-alist)
        (meta . ((class . Item)
                 (interfaces . (item-interface
                                trill-pitch-accidental-interface
        (axes . (,X))
        (font-size . -4)
        (stencil . ,parenthesize-elements)
+       (stencils . ,parentheses-item::calc-parenthesis-stencils)
        (direction . ,RIGHT)
        (side-axis . ,X)
        (padding . 0.3)
                                note-head-interface
                                rhythmic-head-interface
                                font-interface
-                               accidental-interface
                                axis-group-interface))))))
 
     (TrillPitchHead
      . (
        (stencil . ,ly:text-interface::print)
        (font-shape . italic)
-       (no-spacing-rods . #t)
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (self-alignment-X . 0)
        (direction . ,RIGHT)
        (padding . 0.0)  ;; padding relative to UnaCordaPedalLineSpanner
        (Y-extent . ,ly:axis-group-interface::height)
        (X-extent . ,ly:axis-group-interface::width)
        (stacking-dir . -1)
-       (padding . 0.1) 
+       (padding . 0.5)
+       (skylines . ,ly:axis-group-interface::combine-skylines)
        (meta . ((class . Spanner)
                 (interfaces . (align-interface
                                axis-group-interface))))))
        (Y-offset . ,ly:hara-kiri-group-spanner::force-hara-kiri-callback)
        (Y-extent . ,ly:hara-kiri-group-spanner::y-extent)
        (X-extent . ,ly:axis-group-interface::width)
+       (skylines . ,ly:axis-group-interface::calc-skylines);
        (meta . ((class . Spanner)
                 (interfaces . (axis-group-interface
-                               hara-kiri-group-interface
+                               hara-kiri-group-spanner-interface
                                vertically-spaceable-interface))))))
 
 
        (edge-height . (2.0 . 2.0)) ;; staff-space;
        (minimum-space . 5)
        (font-size . -4)
+       (outside-staff-priority . 100)
        (meta . ((class . Spanner)
                 (interfaces . (volta-bracket-interface
                                horizontal-bracket-interface                            
 
 (define pure-print-callbacks
   (list
+   ly:bar-line::print
    ly:note-head::print
+   ly:accidental-interface::print
+   ly:dots::print
    ly:clef::print
    ly:text-interface::print
    ly:script-interface::print))
              (apply unpure args)
              (let ((pure (assq unpure pure-conversions-alist)))
                (if pure
-                   (apply (cdr pure) (append (list (car args) start end) (cdr args)))))))))
+                   (apply (cdr pure)
+                          (append
+                           (list (car args) start end)
+                           (cdr args)))))))))