X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grobs.scm;h=d3270748bbfa28263ee66322d2ce502ffa7df8aa;hb=e42585017a01fd02f6353b994cf0c87b03a7bb2e;hp=3ad6b22bff125b113e77982f4eac300a2ae2340d;hpb=85eb6b81242d79e3d1c23094c8f86a621f8055dd;p=lilypond.git diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 3ad6b22bff..d3270748bb 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -20,13 +20,29 @@ (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 . ( @@ -36,12 +52,13 @@ ,(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) @@ -103,12 +121,13 @@ (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) - (interfaces . (item-interface + (interfaces . ( accidental-interface break-aligned-interface side-position-interface @@ -144,6 +163,14 @@ side-position-interface font-interface)))))) + (BalloonTextItem + . ((stencil . ,ly:balloon-interface::print) + (text . ,(grob::calc-property-by-copy 'text)) + (X-offset . ,(grob::calc-property-by-copy 'X-offset)) + (Y-offset . ,(grob::calc-property-by-copy 'Y-offset)) + (meta . ((class . Item) + (interfaces . (text-interface + font-interface)))))) (BarLine . ( (break-align-symbol . staff-bar) @@ -152,6 +179,7 @@ (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) @@ -192,10 +220,11 @@ (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))))) @@ -207,7 +236,7 @@ ((class . Item) (interfaces . (side-position-interface text-interface - break-alignment-align-interface + break-alignable-interface self-alignment-interface font-interface )))) @@ -229,6 +258,7 @@ (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 @@ -266,6 +296,7 @@ . ( (axes . (,Y)) (Y-extent . ,ly:axis-group-interface::height) + (skylines . ,ly:axis-group-interface::calc-skylines) (meta . ((class . Spanner) (interfaces . (axis-group-interface )))))) @@ -294,7 +325,8 @@ (beaming . ,ly:beam::calc-beaming) (stencil . ,ly:beam::print) (clip-edges . #t) - + + (details . ((hint-direction-penalty . 20))) ;; TODO: should be in SLT. (thickness . 0.48) ; in staff-space (neutral-direction . ,DOWN) @@ -320,12 +352,14 @@ ;; only for debugging. (font-family . roman) (meta . ((class . Spanner) + (object-callbacks . ((normal-stems . ,ly:beam::calc-normal-stems))) (interfaces . (staff-symbol-referencer-interface + unbreakable-spanner-interface beam-interface)))))) (BendAfter . ( - (stencil . ,fall::print) + (stencil . ,bend::print) (thickness . 2.0) (meta . ((class . Spanner) (interfaces . (spanner-interface @@ -335,7 +369,7 @@ . ( (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 #(( @@ -413,6 +447,7 @@ (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) @@ -435,7 +470,8 @@ . ( (Y-extent . ,ly:cluster-beacon::height) (meta . ((class . Item) - (interfaces . (cluster-beacon-interface)))))) + (interfaces . (rhythmic-grob-interface + cluster-beacon-interface)))))) (ClusterSpanner . ( @@ -459,12 +495,12 @@ rhythmic-grob-interface text-interface chord-name-interface - item-interface)))))) + )))))) (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) @@ -515,6 +551,7 @@ . ( (stencil . ,ly:dots::print) (dot-count . ,dots::calc-dot-count) + (staff-position . ,dots::calc-staff-position) (meta . ((class . Item) (interfaces . (font-interface staff-symbol-referencer-interface @@ -533,7 +570,7 @@ (meta . ((class . Item) (interfaces . (font-interface break-aligned-interface - percent-repeat-interface)))))) + percent-repeat-item-interface)))))) (DoublePercentRepeatCounter . ( @@ -551,7 +588,7 @@ (meta . ((class . Item) (interfaces . (side-position-interface self-alignment-interface - percent-repeat-interface + percent-repeat-item-interface font-interface text-interface)))))) (DynamicLineSpanner @@ -565,6 +602,7 @@ (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) @@ -589,8 +627,8 @@ (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 @@ -633,7 +671,6 @@ (self-alignment-X . 0) (self-alignment-Y . 0) (script-priority . 100) - (stencil . ,ly:text-interface::print) (direction . ,ly:script-interface::calc-direction) (text . ,fingering::calc-text) @@ -646,7 +683,7 @@ text-interface side-position-interface self-alignment-interface - item-interface)))))) + )))))) (FretBoard . ((stencil . ,fret-board::calc-stencil) (finger-code . below-string) @@ -660,13 +697,13 @@ (style . line) (gap . 0.5) (zigzag-width . 0.75) - (non-musical . #t) (X-extent . #f) (Y-extent . #f) (stencil . ,ly:line-spanner::print) (after-line-breaking . ,ly:line-spanner::after-line-breaking) (meta . ((class . Spanner) (interfaces . (line-interface + unbreakable-spanner-interface line-spanner-interface)))))) (GraceSpacing @@ -767,6 +804,7 @@ (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)) @@ -778,12 +816,15 @@ (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)) @@ -834,7 +875,7 @@ (length-fraction . 0.25) (layer . 0) (meta . ((class . Spanner) - (interfaces . (ledger-line-interface)))))) + (interfaces . (ledger-line-spanner-interface)))))) (LeftEdge . ( @@ -896,8 +937,8 @@ (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 @@ -907,7 +948,7 @@ (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) @@ -920,7 +961,7 @@ (LyricText . ( (stencil . ,lyric-text::print) - (text . ,lyric-text::calc-text) + (text . ,(grob::calc-property-by-copy 'text)) (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (self-alignment-X . 0) (word-space . 0.6) @@ -969,6 +1010,7 @@ (direction . ,UP) (padding . 0.8) (side-axis . ,Y) + (outside-staff-priority . 1000) (meta . ((class . Item) (interfaces . (text-interface side-position-interface @@ -1120,11 +1162,7 @@ (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) @@ -1145,6 +1183,7 @@ (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 @@ -1170,11 +1209,20 @@ (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) @@ -1202,7 +1250,7 @@ (meta . ((class . Spanner) (interfaces . (multi-measure-rest-interface font-interface - percent-repeat-interface)))))) + percent-repeat-item-interface)))))) (PercentRepeatCounter . ( (stencil . ,ly:text-interface::print) @@ -1219,7 +1267,7 @@ (meta . ((class . Spanner) (interfaces . (side-position-interface self-alignment-interface - percent-repeat-interface + percent-repeat-item-interface font-interface text-interface)))))) @@ -1245,7 +1293,7 @@ (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))))) @@ -1256,12 +1304,13 @@ (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)))))) @@ -1272,7 +1321,8 @@ (thickness . 0.48) (slope . 1.7) (meta . ((class . Item) - (interfaces . (percent-repeat-interface)))))) + (interfaces . (rhythmic-grob-interface + percent-repeat-item-interface)))))) (RepeatTie . ( @@ -1304,7 +1354,7 @@ (Rest . ( (stencil . ,ly:rest::print) - (duration-log . ,note-head::calc-duration-log) + (duration-log . ,stem::calc-duration-log) (X-extent . ,ly:rest::width) (Y-extent . ,ly:rest::height) (Y-offset . ,ly:rest::y-offset-callback) @@ -1329,7 +1379,6 @@ ;; padding set in script definitions. (staff-padding . 0.25) - ;; (script-priority . 0) priorities for scripts, see script.scm (X-offset . ,ly:self-alignment-interface::centered-on-x-parent) (Y-offset . ,ly:side-position-interface::y-aligned-side) (side-axis . ,Y) @@ -1358,6 +1407,7 @@ (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)))))) @@ -1368,7 +1418,7 @@ (meta . ((class . Spanner) (interfaces . (only-prebreak-interface spacing-interface - separation-spanner-interface)))))) + separating-group-spanner-interface)))))) (Slur . ((details . ,default-slur-details) @@ -1391,7 +1441,7 @@ (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) @@ -1492,7 +1542,7 @@ (Stem . ( (direction . ,ly:stem::calc-direction) - (duration-log . ,note-head::calc-duration-log) + (duration-log . ,stem::calc-duration-log) (default-direction . ,ly:stem::calc-default-direction) (stem-end-position . ,ly:stem::calc-stem-end-position) @@ -1571,7 +1621,7 @@ text-interface side-position-interface self-alignment-interface - item-interface)))))) + )))))) (StrokeFinger . ( @@ -1592,12 +1642,12 @@ text-interface side-position-interface self-alignment-interface - item-interface)))))) + )))))) (SustainPedal . ( - (no-spacing-rods . #t) + (extra-spacing-width . (+inf.0 . -inf.0)) (stencil . ,ly:sustain-pedal::print) (self-alignment-X . 0) (direction . ,RIGHT) @@ -1632,6 +1682,8 @@ (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)))))) @@ -1694,12 +1746,12 @@ (interfaces . (side-position-interface system-start-delimiter-interface)))))) - (TabNoteHead . ( (stencil . ,ly:text-interface::print) (Y-offset . ,ly:staff-symbol-referencer::callback) - (duration-log . ,note-head::calc-duration-log) + (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (direction . 0) (font-size . -2) (stem-attachment . (0.0 . 1.35)) (font-series . bold) @@ -1713,7 +1765,7 @@ (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) @@ -1726,6 +1778,7 @@ (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) @@ -1747,6 +1800,7 @@ (dash-period . 3.0) (side-axis . ,Y) (direction . ,UP) + (outside-staff-priority . 350) (meta . ((class . Spanner) (interfaces . (text-spanner-interface line-spanner-interface @@ -1762,7 +1816,7 @@ (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) @@ -1800,6 +1854,7 @@ (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)) @@ -1822,6 +1877,7 @@ (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 @@ -1835,9 +1891,10 @@ (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 + (interfaces . (trill-pitch-accidental-interface + accidental-interface side-position-interface font-interface)))))) @@ -1846,15 +1903,16 @@ (axes . (,X)) (font-size . -4) (stencil . ,parenthesize-elements) + (stencils . ,parentheses-item::calc-parenthesis-stencils) (direction . ,RIGHT) (side-axis . ,X) (padding . 0.3) (meta . ((class . Item) (interfaces . (side-position-interface + parentheses-interface note-head-interface rhythmic-head-interface font-interface - accidental-interface axis-group-interface)))))) (TrillPitchHead @@ -1864,8 +1922,7 @@ (Y-offset . ,ly:staff-symbol-referencer::callback) (font-size . -4) (meta . ((class . Item) - (interfaces . (item-interface - rhythmic-head-interface + (interfaces . (rhythmic-head-interface font-interface pitched-trill-interface ledgered-interface @@ -1903,7 +1960,7 @@ . ( (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 @@ -1946,8 +2003,10 @@ (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) + (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common))) (interfaces . (align-interface axis-group-interface)))))) (VerticalAxisGroup @@ -1956,9 +2015,11 @@ (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) + (object-callbacks . ((X-common . ,ly:axis-group-interface::calc-x-common))) (interfaces . (axis-group-interface - hara-kiri-group-interface + hara-kiri-group-spanner-interface vertically-spaceable-interface)))))) @@ -1974,6 +2035,7 @@ (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 @@ -2025,6 +2087,8 @@ (cons 'spanner-interface ifaces-entry)))) (else (ly:warning "Unknown class ~a" class))) + + (set! ifaces-entry (uniq-list (sort ifaces-entry symbol