]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grobs.scm
Use aligned-on-x-parent instead of other callbacks for some grobs
[lilypond.git] / scm / define-grobs.scm
index ea606ece065b3b0edf7a2b41636b79f08eadab80..673398149f1a9f2e54e27e61cad21f32c9788bba 100644 (file)
@@ -79,6 +79,7 @@
         (font-size . -2)
         (glyph-name-alist . ,standard-alteration-glyph-name-alist)
         (outside-staff-priority . 0)
+        (parent-alignment-X . ,CENTER)
         (script-priority . 0)
         (self-alignment-X . ,CENTER)
         (side-axis . ,Y)
         (self-alignment-X . ,RIGHT)
         (side-axis . ,Y)
         (stencil . ,ly:text-interface::print)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:break-alignable-interface::self-align-callback))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
+        (X-offset . ,self-alignment-interface::self-aligned-on-breakable)
         (Y-offset . ,side-position-interface::y-aligned-side)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta .
      . (
         (break-visibility . ,(grob::inherit-parent-property
                               X 'break-visibility))
+        (clef-alignments . ((G . (-0.2 . 0.1))
+                            (F . (-0.3 . -0.2))
+                            (C . (0 . 0))))
         (color . ,(grob::inherit-parent-property
                    X 'color))
         (font-shape . italic)
         (font-size . -4)
+        (parent-alignment-X . ,ly:clef-modifier::calc-parent-alignment)
         (self-alignment-X . ,CENTER)
         (staff-padding . 0.7)
         (stencil . ,ly:text-interface::print)
         (font-series . bold)
         (outside-staff-priority . 450)
         (padding . 0.5)
+        (parent-alignment-X . #f)
         (script-priority . 200)
         (self-alignment-X . #f)
         (side-axis . ,Y)
         (font-encoding . fetaText)
         (font-size . -2)
         (padding . 0.2)
+        (parent-alignment-X . ,CENTER)
         (self-alignment-X . ,CENTER)
         (side-axis . ,Y)
         (staff-padding . 0.25)
         (font-encoding . fetaText)
         (font-series . bold)
         (font-shape . italic)
+        (parent-alignment-X . ,CENTER)
         (positioning-done . ,ly:script-interface::calc-positioning-done)
         (right-padding . 0.5)
         (self-alignment-X . ,CENTER)
         (font-encoding . fetaText)
         (font-size . -5)                ; don't overlap when next to heads.
         (padding . 0.5)
+        (parent-alignment-X . ,CENTER)
+        (parent-alignment-Y . ,CENTER)
         (positioning-done . ,ly:script-interface::calc-positioning-done)
         (script-priority . 100)
         (self-alignment-X . ,CENTER)
     (GridLine
      . (
         (layer . 0)
+        (parent-alignment-X . ,CENTER)
         (self-alignment-X . ,CENTER)
         (stencil . ,ly:grid-line-interface::print)
         (X-extent . ,ly:grid-line-interface::width)
                  (interfaces . (font-interface
                                 self-alignment-interface
                                 side-position-interface
-                                system-start-text-interface))))))
+                                system-start-text-interface
+                                text-interface))))))
 
     (InstrumentSwitch
      . (
         (extra-spacing-width . (+inf.0 . -inf.0))
         (outside-staff-priority . 500)
         (padding . 0.5)
+        (parent-alignment-X . #f)
         (self-alignment-X . ,LEFT)
         (side-axis . ,Y)
         (staff-padding . 0.5)
         (stencil . ,ly:text-interface::print)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
                  (interfaces . (font-interface
         (extra-spacing-height . (0.2 . -0.2))
         (font-series . medium)
         (font-size . 1.0)
+        (parent-alignment-X . ())
         (self-alignment-X . ,CENTER)
         (stencil . ,lyric-text::print)
         (text . ,(grob::calc-property-by-copy 'text))
         (stencil . ,ly:text-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
         (Y-offset . ,side-position-interface::y-aligned-side)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:break-alignable-interface::self-align-callback))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
+        (X-offset . ,self-alignment-interface::self-aligned-on-breakable)
         (self-alignment-X . ,LEFT)
         (break-align-symbols . (time-signature))
         (non-break-align-symbols . (paper-column-interface))
         (direction . ,UP)
         (font-encoding . fetaText)
         (padding . 0.4)
+        (parent-alignment-X . ,CENTER)
         (self-alignment-X . ,CENTER)
         (side-axis . ,Y)
         (springs-and-rods . ,ly:multi-measure-rest::set-text-rods)
         (direction . ,UP)
         (outside-staff-priority . 450)
         (padding . 0.2)
+        (parent-alignment-X . ,CENTER)
         (self-alignment-X . ,CENTER)
         (skyline-horizontal-padding . 0.2)
         (staff-padding . 0.25)
         (font-encoding . fetaText)
         (font-size . -2)
         (padding . 0.2)
+        (parent-alignment-X . ,CENTER)
         (self-alignment-X . ,CENTER)
         (staff-padding . 0.25)
         (stencil . ,ly:text-interface::print)
         (self-alignment-X . ,CENTER)
         (stencil . ,ly:text-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
-        (X-offset . ,(ly:make-simple-closure
-                      `(,+
-                        ,(ly:make-simple-closure
-                          (list ly:break-alignable-interface::self-align-callback))
-                        ,(ly:make-simple-closure
-                          (list ly:self-alignment-interface::x-aligned-on-self)))))
+        (X-offset . ,self-alignment-interface::self-aligned-on-breakable)
         (Y-offset . ,side-position-interface::y-aligned-side)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
         (font-encoding . fetaMusic)
         (horizon-padding . 0.1) ; to avoid interleaving with accidentals
         (positioning-done . ,ly:script-interface::calc-positioning-done)
+        (self-alignment-X . ,CENTER)
         (side-axis . ,Y)
 
         ;; padding set in script definitions.
                  (interfaces . (font-interface
                                 outside-staff-interface
                                 script-interface
+                                self-alignment-interface
                                 side-position-interface))))))
 
     (ScriptColumn
         (extra-spacing-width . (+inf.0 . -inf.0))
         (font-shape . italic)
         (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
+        (parent-alignment-X . #f)
         (self-alignment-X . ,CENTER)
         (stencil . ,ly:text-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (font-interface
         (beam-thickness . 0.48) ; staff-space
         (beam-width . ,ly:stem-tremolo::calc-width) ; staff-space
         (direction . ,ly:stem-tremolo::calc-direction)
+        (parent-alignment-X . ,CENTER)
         (slope . ,ly:stem-tremolo::calc-slope)
         (stencil . ,ly:stem-tremolo::print)
         (style . ,ly:stem-tremolo::calc-style)
         (font-encoding . fetaText)
         (font-size . -5)                ; don't overlap when next to heads.
         (padding . 0.5)
+        (parent-alignment-X . ,CENTER)
         (script-priority . 100)
         (self-alignment-X . ,CENTER)
         (self-alignment-Y . ,CENTER)
         (font-shape . italic)
         (font-size . -4)                ; don't overlap when next to heads.
         (padding . 0.5)
+        (parent-alignment-X . ,CENTER)
         (script-priority . 100)
         (self-alignment-X . ,CENTER)
         (self-alignment-Y . ,CENTER)
      . (
         (extra-spacing-width . (+inf.0 . -inf.0))
         (padding . 0.0)  ;; padding relative to SustainPedalLineSpanner
+        (parent-alignment-X . #f)
         (self-alignment-X . ,CENTER)
         (stencil . ,ly:sustain-pedal::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (font-interface
         ;; sync with Fingering ?
         (padding . 0.3)
 
+        (parent-alignment-X . #f)
         (script-priority . 200)
         ;; self-alignment cannot be LEFT because of fingering diagrams.
         (self-alignment-X . #f)
         (extra-spacing-width . (+inf.0 . -inf.0))
         (font-shape . italic)
         (padding . 0.0)  ;; padding relative to UnaCordaPedalLineSpanner
+        (parent-alignment-X . #f)
         (self-alignment-X . ,CENTER)
         (stencil . ,ly:text-interface::print)
         (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
-        (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+        (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
         (meta . ((class . Item)
                  (interfaces . (font-interface
                                 piano-pedal-script-interface
 (for-each (lambda (x)
             ;; (display (car x)) (newline)
 
-            (set-object-property! (car x) 'translation-type? list?)
+            (set-object-property! (car x) 'translation-type? ly:grob-properties?)
             (set-object-property! (car x) 'is-grob? #t))
           all-grob-descriptions)