X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grobs.scm;h=15d0b0d9086f2a7c02d99c8c36d21db634c21808;hb=d7c0f4263534307616c82d9b2ce6fdef9472456f;hp=7be62f1c82cb0ccf5f810ffce2d18be47472d10c;hpb=55d4389e74f830d759176867dae44ed0400c3b68;p=lilypond.git diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 7be62f1c82..15d0b0d908 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -111,6 +111,10 @@ (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) (meta . ((class . Item) + (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (ambitus-interface axis-group-interface break-aligned-interface)))))) @@ -270,6 +274,10 @@ (stacking-dir . ,DOWN) (Y-extent . ,ly:axis-group-interface::height) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (align-interface axis-group-interface bass-figure-alignment-interface)))))) @@ -284,6 +292,10 @@ (Y-extent . ,ly:axis-group-interface::height) (Y-offset . ,ly:side-position-interface::y-aligned-side) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface side-position-interface)))))) @@ -309,6 +321,10 @@ (vertical-skylines . ,ly:axis-group-interface::calc-skylines) (Y-extent . ,ly:axis-group-interface::height) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface)))))) @@ -501,6 +517,7 @@ (next-note . (extra-space . 0.5)) (right-edge . (extra-space . 0.5)))) (stencil . ,ly:clef::print) + (extra-spacing-height . (-0.5 . 0.5)) (Y-offset . ,ly:staff-symbol-referencer::callback) (meta . ((class . Item) (interfaces . (break-aligned-interface @@ -581,6 +598,7 @@ (dot-count . ,dots::calc-dot-count) (staff-position . ,dots::calc-staff-position) (stencil . ,ly:dots::print) + (extra-spacing-height . (-0.5 . 0.5)) (meta . ((class . Item) (interfaces . (dots-interface font-interface @@ -644,6 +662,10 @@ (Y-extent . ,ly:axis-group-interface::height) (Y-offset . ,ly:side-position-interface::y-aligned-side) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface dynamic-interface dynamic-line-spanner-interface @@ -979,6 +1001,7 @@ (head-direction . ,LEFT) (stencil . ,laissez-vibrer::print) (thickness . 1.0) + (extra-spacing-height . (-0.5 . 0.5)) (meta . ((class . Item) (interfaces . (semi-tie-interface)))))) @@ -1151,6 +1174,7 @@ (expand-limit . 10) (hair-thickness . 2.0) (padding . 1) + (spacing-pair . (break-alignment . staff-bar)) (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods) (staff-position . 0) (stencil . ,ly:multi-measure-rest::print) @@ -1229,6 +1253,10 @@ (X-extent . ,ly:axis-group-interface::width) (meta . ((class . Paper_column) + (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface font-interface paper-column-interface @@ -1243,6 +1271,10 @@ (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) (meta . ((class . Item) + (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface note-collision-interface)))))) @@ -1253,6 +1285,10 @@ (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) (meta . ((class . Item) + (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface note-column-interface separation-item-interface)))))) @@ -1260,6 +1296,7 @@ (NoteHead . ( (duration-log . ,note-head::calc-duration-log) + (extra-spacing-height . ,ly:note-head::include-ledger-line-height) (glyph-name . ,note-head::calc-glyph-name) (stem-attachment . ,ly:note-head::calc-stem-attachment) (stencil . ,ly:note-head::print) @@ -1353,6 +1390,10 @@ ;; debugging ;; (font-size . -6) (font-name . "sans") (Y-extent . #f) (meta . ((class . Paper_column) + (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface font-interface paper-column-interface @@ -1374,6 +1415,7 @@ (dot-negative-kern . 0.75) (font-encoding . fetaMusic) (slope . 1.0) + (spacing-pair . (break-alignment . staff-bar)) (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods) (stencil . ,ly:multi-measure-rest::percent) (thickness . 0.48) @@ -1486,6 +1528,7 @@ (head-direction . ,RIGHT) (stencil . ,ly:tie::print) (thickness . 1.0) + (extra-spacing-height . (-0.5 . 0.5)) (meta . ((class . Item) (interfaces . (semi-tie-interface)))))) @@ -1525,6 +1568,7 @@ (Script . ( + (add-stem-support . #t) (cross-staff . ,ly:script-interface::calc-cross-staff) (direction . ,ly:script-interface::calc-direction) (font-encoding . fetaMusic) @@ -1600,6 +1644,10 @@ (Y-extent . ,ly:axis-group-interface::height) (Y-offset . ,ly:side-position-interface::y-aligned-side) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface piano-pedal-interface side-position-interface)))))) @@ -1641,6 +1689,10 @@ (X-extent . ,ly:span-bar::width) (Y-extent . ,ly:axis-group-interface::height) (meta . ((class . Item) + (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (bar-line-interface font-interface span-bar-interface)))))) @@ -1823,17 +1875,26 @@ (Y-extent . ,ly:axis-group-interface::height) (Y-offset . ,ly:side-position-interface::y-aligned-side) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface piano-pedal-interface side-position-interface)))))) (System . ( + (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights) (axes . (,X ,Y)) (vertical-skylines . ,ly:axis-group-interface::calc-skylines) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) + (Y-extent . ,ly:system::height) (meta . ((class . System) + (object-callbacks . ((pure-relevant-grobs . ,ly:system::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners) + (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common))) (interfaces . (axis-group-interface system-interface)))))) @@ -2181,6 +2242,10 @@ (Y-extent . ,ly:axis-group-interface::height) (Y-offset . ,ly:side-position-interface::y-aligned-side) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface piano-pedal-interface side-position-interface)))))) @@ -2204,7 +2269,11 @@ (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) (meta . ((class . Spanner) - (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common))) + (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners) + (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common))) (interfaces . (align-interface axis-group-interface)))))) @@ -2223,7 +2292,13 @@ (Y-extent . ,ly:hara-kiri-group-spanner::y-extent) (Y-offset . ,ly:hara-kiri-group-spanner::force-hara-kiri-callback) (meta . ((class . Spanner) - (object-callbacks . ((X-common . ,ly:axis-group-interface::calc-x-common))) + (object-callbacks . ( + (X-common . ,ly:axis-group-interface::calc-x-common) + (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) + (interfaces . (axis-group-interface hara-kiri-group-spanner-interface vertically-spaceable-interface)))))) @@ -2281,6 +2356,10 @@ (Y-extent . ,ly:axis-group-interface::height) (Y-offset . ,ly:side-position-interface::y-aligned-side) (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) + (pure-relevant-items . ,ly:axis-group-interface::calc-pure-relevant-items) + (pure-relevant-spanners . ,ly:axis-group-interface::calc-pure-relevant-spanners))) (interfaces . (axis-group-interface side-position-interface volta-interface)))))) @@ -2357,6 +2436,7 @@ ly:note-head::print ly:dots::print ly:clef::print + ly:percent-repeat-item-interface::beat-slash ly:text-interface::print ly:script-interface::print)) @@ -2383,19 +2463,27 @@ (else '(0 . 0))))) +;; Sometimes, a pure callback will be chained to a non-pure callback via +;; chain_offset_callback, in which case this provides a default by simply +;; passing through the value from the pure callback. +(define (pure-chain-offset-callback grob start end prev-offset) prev-offset) + (define pure-conversions-alist `( (,ly:accidental-interface::height . ,ly:accidental-interface::pure-height) - (,ly:slur::outside-slur-callback . ,ly:slur::pure-outside-slur-callback) - (,ly:stem::height . ,ly:stem::pure-height) - (,ly:rest::height . ,ly:rest::pure-height) + (,ly:axis-group-interface::calc-next-staff-spacing . ,ly:axis-group-interface::calc-pure-next-staff-spacing) + (,ly:axis-group-interface::height . ,ly:axis-group-interface::pure-height) (,ly:grob::stencil-height . ,pure-stencil-height) + (,ly:hara-kiri-group-spanner::y-extent . ,ly:hara-kiri-group-spanner::pure-height) + (,ly:rest-collision::force-shift-callback-rest . ,pure-chain-offset-callback) + (,ly:rest::height . ,ly:rest::pure-height) (,ly:self-alignment-interface::y-aligned-on-self . ,ly:self-alignment-interface::pure-y-aligned-on-self) (,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side) - (,ly:axis-group-interface::height . ,ly:axis-group-interface::pure-height) - (,ly:hara-kiri-group-spanner::y-extent . ,ly:hara-kiri-group-spanner::pure-height) + (,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side) (,ly:slur::height . ,ly:slur::pure-height) - (,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side))) + (,ly:slur::outside-slur-callback . ,ly:slur::pure-outside-slur-callback) + (,ly:stem::height . ,ly:stem::pure-height) + (,ly:system::height . ,ly:system::calc-pure-height))) (define pure-functions (list