]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grobs.scm
Run grand-replace (issue 3765)
[lilypond.git] / scm / define-grobs.scm
index de27efca1e2ab013add0735a7dd2afb2b13b479f..fa013a9bbff4582d5032aba11bd1489257708a0d 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
@@ -97,6 +97,7 @@
                  (interfaces . (accidental-interface
                                 accidental-suggestion-interface
                                 font-interface
+                                outside-staff-interface
                                 script-interface
                                 self-alignment-interface
                                 side-position-interface))))))
 
     (Arpeggio
      . (
-       (cross-staff . ,ly:arpeggio::calc-cross-staff)
+        (cross-staff . ,ly:arpeggio::calc-cross-staff)
         (direction . ,LEFT)
         (padding . 0.5)
         (positions . ,ly:arpeggio::calc-positions)
               ((class . Item)
                (interfaces . (break-alignable-interface
                               font-interface
+                              outside-staff-interface
                               self-alignment-interface
                               side-position-interface
                               text-interface))))))
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
                  (interfaces . (axis-group-interface
+                                outside-staff-interface
                                 side-position-interface))))))
 
     (BassFigureBracket
         (meta . ((class . Spanner)
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
-                 (interfaces . (axis-group-interface))))))
+                 (interfaces . (axis-group-interface
+                                outside-staff-axis-group-interface))))))
 
 
     (Beam
                  (interfaces . (break-aligned-interface
                                 breathing-sign-interface
                                 font-interface
+                                outside-staff-interface
                                 text-interface))))))
 
     (ChordName
         (meta . ((class . Item)
                  (interfaces . (chord-name-interface
                                 font-interface
+                                outside-staff-interface
                                 rhythmic-grob-interface
                                 text-interface))))))
 
         (meta . ((class . Item)
                  (interfaces . (clef-modifier-interface
                                 font-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 side-position-interface
                                 text-interface
                                 text-script-interface))))))
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 percent-repeat-interface
                                 percent-repeat-item-interface
                                 self-alignment-interface
         (thickness . 0.48)
         (meta . ((class . Item)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 percent-repeat-interface
                                 percent-repeat-item-interface
                                 rhythmic-grob-interface))))))
                  (interfaces . (axis-group-interface
                                 dynamic-interface
                                 dynamic-line-spanner-interface
+                                outside-staff-interface
                                 side-position-interface))))))
 
     (DynamicText
 
         ;; todo.
 
-        (collision-bias . -2.0)
-        (collision-padding . 0.5)
         (direction . ,ly:script-interface::calc-direction)
         (extra-spacing-width . (+inf.0 . -inf.0))
         (font-encoding . fetaText)
                  (interfaces . (dynamic-interface
                                 dynamic-text-interface
                                 font-interface
+                                outside-staff-interface
                                 script-interface
                                 self-alignment-interface
                                 text-interface))))))
                                 font-interface
                                 line-interface
                                 line-spanner-interface
+                                ;for now, LilyPond never will typeset
+                                ;these without a DynamicLineSpanner
+                                ;as their controlling element
+                                ;so, they do not need the
+                                ;outside-staff-interface
                                 spanner-interface
                                 text-interface))))))
 
         (meta . ((class . Item)
                  (interfaces . (finger-interface
                                 font-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface
                  (interfaces . (chord-name-interface
                                 font-interface
                                 fret-diagram-interface
+                                outside-staff-interface
                                 rhythmic-grob-interface))))))
 
 
                  (interfaces . (dynamic-interface
                                 hairpin-interface
                                 line-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 spanner-interface))))))
 
         (meta . ((class . Spanner)
                  (interfaces . (horizontal-bracket-interface
                                 line-interface
+                                outside-staff-interface
                                 side-position-interface
                                 spanner-interface))))))
 
         (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 measure-counter-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Spanner)
                  (interfaces . (measure-grouping-interface
+                                outside-staff-interface
                                 side-position-interface))))))
 
     (MelodyItem
                  (interfaces . (break-alignable-interface
                                 font-interface
                                 metronome-mark-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 multi-measure-interface
+                                outside-staff-interface
                                 multi-measure-rest-interface
                                 rest-interface
                                 staff-symbol-referencer-interface))))))
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 multi-measure-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 multi-measure-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
                  (interfaces . (font-interface
                                 horizontal-bracket-interface
                                 line-interface
+                                outside-staff-interface
                                 ottava-bracket-interface
                                 side-position-interface
                                 text-interface))))))
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
                                 percent-repeat-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (vertical-skylines . ,(ly:make-unpure-pure-container ly:slur::vertical-skylines ly:grob::pure-simple-vertical-skylines-from-extents))
         (Y-extent . ,slur::height)
         (meta . ((class . Spanner)
-                 (interfaces . (slur-interface))))))
+                 (interfaces . (outside-staff-interface
+                                slur-interface))))))
 
     ;; an example of a text spanner
     (PianoPedalBracket
                  (interfaces . (break-alignable-interface
                                 font-interface
                                 mark-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface))))))
         (cross-staff . ,ly:script-interface::calc-cross-staff)
         (direction . ,ly:script-interface::calc-direction)
         (font-encoding . fetaMusic)
+        (horizon-padding . 0.1) ; to avoid interleaving with accidentals
         (positioning-done . ,ly:script-interface::calc-positioning-done)
         (side-axis . ,Y)
 
         (Y-offset . ,side-position-interface::y-aligned-side)
         (meta . ((class . Item)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 script-interface
                                 side-position-interface))))))
 
         (vertical-skylines . ,(ly:make-unpure-pure-container ly:slur::vertical-skylines ly:grob::pure-simple-vertical-skylines-from-extents))
         (Y-extent . ,slur::height)
         (meta . ((class . Spanner)
-                 (interfaces . (slur-interface))))))
+                 (interfaces . (outside-staff-interface
+                                slur-interface))))))
 
     (SostenutoPedal
      . (
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
                  (interfaces . (axis-group-interface
+                                outside-staff-interface
                                 piano-pedal-interface
                                 side-position-interface))))))
 
         (meta . ((class . Item)
                  (interfaces . (font-interface
                                 self-alignment-interface
+                                outside-staff-interface
                                 side-position-interface
                                 string-number-interface
                                 text-interface
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 stroke-finger-interface
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
                  (interfaces . (axis-group-interface
+                                outside-staff-interface
                                 piano-pedal-interface
                                 side-position-interface))))))
 
                                       (vertical-skyline-elements . ,ly:system::vertical-skyline-elements)
                                       (vertical-alignment . ,ly:system::get-vertical-alignment)))
                  (interfaces . (axis-group-interface
-                                system-interface))))))
+                                system-interface
+                                outside-staff-axis-group-interface))))))
 
     (SystemStartBar
      . (
         (meta . ((class . Item)
                  (interfaces . (font-interface
                                 instrument-specific-markup-interface
+                                outside-staff-interface
                                 self-alignment-interface
                                 side-position-interface
                                 text-interface
                  (interfaces . (font-interface
                                 line-interface
                                 line-spanner-interface
+                                outside-staff-interface
                                 side-position-interface))))))
 
     (Tie
         (axes . (,X))
         (direction . ,RIGHT)
         (font-size . -4)
+        ;; minimum shift to the right, in case the parent note has no stem
+        (minimum-space . 2.5)
+        (horizon-padding . 0.1) ; to avoid interleaving with augmentation dots
         (padding . 0.3)
         (side-axis . ,X)
         (stencil . ,parenthesize-elements)
         (stencils . ,parentheses-item::calc-parenthesis-stencils)
-        ;; offset a bit to the right, further if needed to clear the main note
-        (X-offset . ,(lambda (grob)
-                       (ly:side-position-interface::x-aligned-side grob 2.5)))
+        (X-offset . ,ly:side-position-interface::x-aligned-side)
         (Y-extent . ,grob::always-Y-extent-from-stencil)
         (meta . ((class . Item)
                  (interfaces . (axis-group-interface
                  (interfaces . (font-interface
                                 line-interface
                                 line-spanner-interface
+                                outside-staff-interface
                                 side-position-interface
                                 trill-spanner-interface))))))
 
 
         (meta . ((class . Spanner)
                  (interfaces . (line-interface
+                                outside-staff-interface
                                 tuplet-bracket-interface))))))
 
     (TupletNumber
         (Y-offset . ,ly:tuplet-number::calc-y-offset)
         (meta . ((class . Spanner)
                  (interfaces . (font-interface
+                                outside-staff-interface
                                 text-interface
                                 tuplet-number-interface))))))
 
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
                  (interfaces . (axis-group-interface
+                                outside-staff-interface
                                 piano-pedal-interface
                                 side-position-interface))))))
 
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
 
                  (interfaces . (axis-group-interface
-                                hara-kiri-group-spanner-interface))))))
+                                hara-kiri-group-spanner-interface
+                                outside-staff-axis-group-interface))))))
 
     (VoiceFollower
      . (
 
     (VoltaBracket
      . (
+        (baseline-skip . 1.7)
         (direction . ,UP)
         (edge-height . (2.0 . 2.0)) ;; staff-space;
         (font-encoding . fetaText)
                  (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
                                       (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
                  (interfaces . (axis-group-interface
+                                outside-staff-interface
                                 side-position-interface
                                 volta-interface))))))