]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grobs.scm
Better shape control of arpeggio brackets.
[lilypond.git] / scm / define-grobs.scm
index 9ec6f122ba9ad7d7e902441da05d0efe6ae5d24d..b89fc14757cde390830f60033eb8210f01e74dab 100644 (file)
        (direction . ,LEFT)
        (padding . 0.5)
        (positions . ,ly:arpeggio::calc-positions)
+       (protrusion . 0.4)
        (script-priority . 0)
        (side-axis . ,X)
        (staff-position . 0.0)
        (clip-edges . #t)
        (collision-interfaces . (beam-interface
                                 clef-interface
+                                clef-modifier-interface
                                 flag-interface
                                 inline-accidental-interface
                                 key-signature-interface
                                 note-head-interface
-                                octavate-eight-interface
                                 stem-interface
                                 time-signature-interface))
        (cross-staff . ,ly:beam::calc-cross-staff)
      . (
        (avoid-slur . inside)
        (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+       (break-align-anchor-alignment . ,RIGHT)
        (break-align-symbol . clef)
        (break-visibility . ,begin-of-line-visible)
        (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-at-beginning-of-line)
                                pure-from-neighbor-interface
                                staff-symbol-referencer-interface))))))
 
+    (ClefModifier
+     . (
+       (break-visibility . ,(grob::inherit-parent-property
+                              X 'break-visibility))
+       (font-shape . italic)
+       (font-size . -4)
+       (self-alignment-X . ,CENTER)
+       (staff-padding . 0.2)
+       (stencil . ,ly:text-interface::print)
+       (X-offset . ,(ly:make-simple-closure
+                     `(,+
+                       ,(ly:make-simple-closure
+                         (list ly:self-alignment-interface::x-aligned-on-self))
+                       ,(ly:make-simple-closure
+                         (list ly:self-alignment-interface::centered-on-x-parent)))))
+       (Y-offset . ,side-position-interface::y-aligned-side)
+       (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+       (Y-extent . ,grob::always-Y-extent-from-stencil)
+       (meta . ((class . Item)
+                (interfaces . (clef-modifier-interface
+                               font-interface
+                               self-alignment-interface
+                               side-position-interface
+                               text-interface))))))
+
     (ClusterSpanner
      . (
        (cross-staff . ,ly:cluster::calc-cross-staff)
        (annotation-balloon . #f)
        (annotation-line . #t)
        (automatically-numbered . ,(grob::calc-property-by-copy 'automatically-numbered))
-       (break-visibility . ,inherit-y-parent-visibility)
+       (break-visibility . ,(grob::inherit-parent-property
+                              X 'break-visibility))
        (footnote . #t)
        (footnote-text . ,(grob::calc-property-by-copy 'footnote-text))
        (stencil . ,ly:balloon-interface::print)
      . (
        (avoid-slur . inside)
        (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+       (break-align-anchor-alignment . ,RIGHT)
        (break-align-symbol . key-signature)
        (break-visibility . ,begin-of-line-visible)
        (glyph-name-alist . ,standard-alteration-glyph-name-alist)
    (LaissezVibrerTie
      . (
        (control-points . ,ly:semi-tie::calc-control-points)
+       (cross-staff . ,semi-tie::calc-cross-staff)
        (details . ((ratio . 0.333)
                    (height-limit . 1.0)))
        (direction . ,ly:tie::calc-direction)
        (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
        (break-visibility . ,end-of-line-invisible)
        (direction . ,UP)
-       (extra-spacing-width . (+inf.0 . -inf.0))
        (outside-staff-horizontal-padding . 0.12)
        (outside-staff-priority . 1000)
-       (padding . 0.8)
+       (outside-staff-padding . 0.5)
        (side-axis . ,Y)
+       (skyline-horizontal-padding . 0.2)
        (stencil . ,ly:text-interface::print)
        (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
-       (Y-offset . ,side-position-interface::y-aligned-side)
+       (Y-offset . ,(ly:make-unpure-pure-container
+                       side-position-interface::y-aligned-side
+                       outside-staff::pure-Y-offset))
        (X-offset . ,(ly:make-simple-closure
                      `(,+
                        ,(ly:make-simple-closure
                          (list ly:self-alignment-interface::x-aligned-on-self)))))
        (self-alignment-X . ,LEFT)
        (break-align-symbols . (time-signature))
-       (non-break-align-symbols . (multi-measure-rest-interface))
+       (non-break-align-symbols . (paper-column-interface))
        (Y-extent . ,grob::always-Y-extent-from-stencil)
        (meta . ((class . Item)
                 (interfaces . (break-alignable-interface
                 (interfaces . (note-spacing-interface
                                spacing-interface))))))
 
-
-    (OctavateEight
-     . (
-       (break-visibility . ,inherit-x-parent-visibility)
-       (font-shape . italic)
-       (font-size . -4)
-       (self-alignment-X . ,CENTER)
-       (staff-padding . 0.2)
-       (stencil . ,ly:text-interface::print)
-       (X-offset . ,(ly:make-simple-closure
-                     `(,+
-                       ,(ly:make-simple-closure
-                         (list ly:self-alignment-interface::x-aligned-on-self))
-                       ,(ly:make-simple-closure
-                         (list ly:self-alignment-interface::centered-on-x-parent)))))
-       (Y-offset . ,side-position-interface::y-aligned-side)
-       (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
-       (Y-extent . ,grob::always-Y-extent-from-stencil)
-       (meta . ((class . Item)
-                (interfaces . (font-interface
-                               octavate-eight-interface
-                               self-alignment-interface
-                               side-position-interface
-                               text-interface))))))
-
     (OttavaBracket
      . (
        (dash-fraction . 0.3)
      . (
        (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
        (baseline-skip . 2)
-       (break-align-symbols . (staff-bar clef))
+       (break-align-symbols . (staff-bar key-signature clef))
        (break-visibility . ,end-of-line-invisible)
        (direction . ,UP)
-       (extra-spacing-width . (+inf.0 . -inf.0))
        (font-size . 2)
        (non-musical . #t)
        (outside-staff-horizontal-padding . 0.12)
        (outside-staff-priority . 1500)
-       (padding . 0.8)
+       (outside-staff-padding . 0.5)
        (self-alignment-X . ,CENTER)
        (stencil . ,ly:text-interface::print)
        (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
                          (list ly:break-alignable-interface::self-align-callback))
                        ,(ly:make-simple-closure
                          (list ly:self-alignment-interface::x-aligned-on-self)))))
-       (Y-offset . ,side-position-interface::y-aligned-side)
+       (Y-offset . ,(ly:make-unpure-pure-container
+                       side-position-interface::y-aligned-side
+                       outside-staff::pure-Y-offset))
        (Y-extent . ,grob::always-Y-extent-from-stencil)
        (meta . ((class . Item)
                 (interfaces . (break-alignable-interface
 
     (RepeatTie
      . (
+       (cross-staff . ,semi-tie::calc-cross-staff)
        (control-points . ,ly:semi-tie::calc-control-points)
        (details . ((ratio . 0.333)
                    (height-limit . 1.0)))
 
     (SpanBarStub
      . (
-        (X-extent . ,grob::x-parent-width)
+        (X-extent . ,(grob::inherit-parent-property
+                      X 'X-extent))
        (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height)
        ; we want this to be ignored, so empty, but the extra spacing height
        ; should preserve the span bar's presence for horizontal spacing