From 5089d0035bf99837f6bb759cf0e7f0bb89ce1da9 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 10 Apr 2002 17:30:34 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 4 +++ lily/align-interface.cc | 15 +++++---- lily/mark-engraver.cc | 2 -- lily/side-position-interface.cc | 2 +- scm/grob-description.scm | 51 ++++++++++++++++--------------- scm/grob-property-description.scm | 7 +++-- 6 files changed, 44 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3df59d362f..ed088486f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2002-04-10 Han-Wen Nienhuys + * lily/include/grob-interface.hh (ADD_INTERFACE): make + implementation for Class::has_interface automatically. Junk all + other implementations. + * lily/grob.cc (internal_get_grob_property): also typecheck property reads. Catches even more undocced properties. Bugfixing left for the uninspired masses. diff --git a/lily/align-interface.cc b/lily/align-interface.cc index ef9d932842..6158a3720f 100644 --- a/lily/align-interface.cc +++ b/lily/align-interface.cc @@ -185,13 +185,16 @@ Align_interface::align_elements_to_extents (Grob * me, Axis a) prevent ugly cyclic dependencies that arise when you combine self-alignment on a child with alignment of children. */ + static SCM prop_syms[2]; - String s ("self-alignment-"); - - s += (a == X_AXIS) ? "X" : "Y"; - - SCM align (me->get_grob_property (s.ch_C ())); - + if (!prop_syms[0]) + { + prop_syms[X_AXIS] = ly_symbol2scm ("self-alignment-X"); + prop_syms[Y_AXIS] = ly_symbol2scm ("self-alignment-Y"); + } + + SCM align (me->internal_get_grob_property (prop_syms[a])); + Array translates ; Interval total; Real where_f=0; diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index a3123f1168..e39e57e66d 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -89,8 +89,6 @@ Mark_engraver::create_items (Request *rq) text_p_ = new Item (s); - Side_position_interface::set_axis (text_p_, Y_AXIS); - announce_grob(text_p_, rq->self_scm()); } diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index 0c923d28e8..825f7a2afd 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -284,4 +284,4 @@ ADD_INTERFACE (Side_position_interface,"side-position-interface", "Position a victim object (this one) next to other objects (the support). #'direction = where to put the victim object (left or right?) ", - "side-support-elements direction-source direction side-relative-direction minimum-space padding self-alignment-X self-alignment-Y"); + "side-support-elements direction-source direction side-relative-direction minimum-space padding"); diff --git a/scm/grob-description.scm b/scm/grob-description.scm index a237b014d1..a342dc1a22 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -87,14 +87,14 @@ (BassFigure . ( (molecule-callback . ,brew-bass-figure) - (Y-offset-callbacks . (,Side_position_interface::aligned_on_self)) + (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) (direction . 0) (font-family . number) (font-relative-size . -1) (padding . 0.1) (kern . 0.2) (thickness . 1.0) - (meta . ((interfaces . (text-interface font-interface)))) + (meta . ((interfaces . (text-interface self-alignment-interface font-interface)))) )) (Beam . ( @@ -241,9 +241,9 @@ (DynamicText . ( - (Y-offset-callbacks . (,Side_position_interface::aligned_on_self)) + (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) (molecule-callback . ,Text_item::brew_molecule) - (X-offset-callbacks . (,Side_position_interface::aligned_on_self)) + (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) (self-alignment-X . 0) (no-spacing-rods . #t) (script-priority . 100) @@ -251,7 +251,7 @@ (font-family . dynamic) (font-shape . italic) (self-alignment-Y . 0) - (meta . ((interfaces . (font-interface text-interface dynamic-interface)))) + (meta . ((interfaces . (font-interface text-interface self-alignment-interface dynamic-interface)))) )) (DynamicLineSpanner @@ -285,8 +285,8 @@ (Fingering . ( (molecule-callback . ,Text_item::brew_molecule) - (X-offset-callbacks . (,Side_position_interface::centered_on_parent - ,Side_position_interface::aligned_on_self)) + (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent + ,Self_alignment_interface::aligned_on_self)) (padding . 0.6) ; (direction . -1) (self-alignment-X . 0) @@ -294,7 +294,7 @@ (font-family . number) (font-relative-size . -3) (font-shape . upright) - (meta . ((interfaces . (finger-interface font-interface text-script-interface text-interface side-position-interface)))) + (meta . ((interfaces . (finger-interface font-interface text-script-interface text-interface side-position-interface self-alignment-interface)))) )) @@ -319,14 +319,14 @@ (dash-thickness . 1.2) (dash-length . 4.0) (self-alignment-Y . 0) - (Y-offset-callbacks . (,Side_position_interface::aligned_on_self)) - (meta . ((interfaces . (hairpin-interface dynamic-interface)))) + (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) + (meta . ((interfaces . (hairpin-interface self-alignment-interface dynamic-interface)))) )) (InstrumentName . ( (breakable . #t) - (Y-offset-callbacks . (,Side_position_interface::aligned_on_self + (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self ,Side_position_interface::aligned_on_support_refpoints)) ;; huh? what's this for? (direction . 0) @@ -340,7 +340,7 @@ (visibility-lambda . ,begin-of-line-visible) (baseline-skip . 2) (font-family . roman) - (meta . ((interfaces . (font-interface side-position-interface text-interface break-aligned-interface)))) + (meta . ((interfaces . (font-interface self-alignment-interface side-position-interface text-interface break-aligned-interface)))) )) (KeySignature @@ -382,7 +382,7 @@ (LyricText . ( (molecule-callback . ,Text_item::brew_molecule) - (X-offset-callbacks . (,Side_position_interface::aligned_on_self)) + (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) (self-alignment-X . 0) (non-rhythmic . #t) (word-space . 0.6) @@ -392,7 +392,7 @@ (font-family . roman) (font-shape . upright) ;; duh, side-position-interface? - (meta . ((interfaces . (lyric-syllable-interface side-position-interface text-interface font-interface)))) + (meta . ((interfaces . (lyric-syllable-interface self-alignment-interface text-interface font-interface)))) )) (Porrectus @@ -411,14 +411,15 @@ (RehearsalMark . ( (molecule-callback . ,Text_item::brew_molecule) - (X-offset-callbacks . (,Side_position_interface::aligned_on_self)) + (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) + (Y-offset-callbacks . (,Side_position_interface::aligned_side)) (self-alignment-X . 0) (direction . 1) (breakable . #t) (visibility-lambda . ,end-of-line-invisible) (padding . 0.8) - (meta . ((interfaces . (text-interface font-interface mark-interface side-position-interface)))) + (meta . ((interfaces . (text-interface side-position-interface font-interface mark-interface self-alignment-interface)))) )) (MultiMeasureRest @@ -497,12 +498,12 @@ (self-alignment-X . 0) (text . "8") (visibility-lambda . ,begin-of-line-visible) - (X-offset-callbacks . (,Side_position_interface::centered_on_parent ,Side_position_interface::aligned_on_self)) + (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent ,Self_alignment_interface::aligned_on_self)) (Y-offset-callbacks . (,Side_position_interface::aligned_side)) (molecule-callback . ,Text_item::brew_molecule) (font-shape . italic) (font-family . roman) - (meta . ((interfaces . (text-interface side-position-interface font-interface)))) + (meta . ((interfaces . (text-interface self-alignment-interface side-position-interface font-interface)))) )) (PaperColumn @@ -609,7 +610,7 @@ ;; don't set direction here: it breaks staccato. (molecule-callback . ,Script::brew_molecule) (padding . 0.29) - (X-offset-callbacks . (,Side_position_interface::centered_on_parent)) + (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent)) (before-line-breaking-callback . ,Script::before_line_breaking) (font-family . music) (meta . ((interfaces . (script-interface side-position-interface font-interface)))) @@ -710,14 +711,14 @@ . ( (molecule-callback . ,Text_item::brew_molecule) (direction . 1) - (X-offset-callbacks . (,Side_position_interface::aligned_on_self)) + (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) (no-spacing-rods . #t) (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner (pedal-type . mixed) (font-family . roman) (font-shape . italic) (self-alignment-X . 0) - (meta . ((interfaces . (text-interface font-interface)))) + (meta . ((interfaces . (text-interface self-alignment-interface font-interface)))) )) (SostenutoPedalLineSpanner @@ -786,8 +787,8 @@ (direction . 1) (padding . 0.0) ;; padding relative to SustainPedalLineSpanner (pedal-type . text) - (X-offset-callbacks . (,Side_position_interface::aligned_on_self)) - (meta . ((interfaces . (piano-pedal-interface text-spanner-interface text-interface side-position-interface font-interface)))) + (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) + (meta . ((interfaces . (piano-pedal-interface text-spanner-interface text-interface self-alignment-interface font-interface)))) )) (SustainPedalLineSpanner @@ -933,8 +934,8 @@ (direction . 1) (pedal-type . text) (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner - (X-offset-callbacks . (,Side_position_interface::aligned_on_self)) - (meta . ((interfaces . (text-interface font-interface)))) + (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self)) + (meta . ((interfaces . (text-interface self-alignment-interface font-interface)))) )) (UnaCordaPedalLineSpanner diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index f1a1c2dbc5..4d00c8a28a 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -100,9 +100,8 @@ Concaveness is calculated as the sum of the vertical distances of inner noteheads that fall outside the interval of the two outer noteheads, to the vertically nearest outer notehead, divided by the square of the inner notes involved.") -(grob-property-description 'bar-line-collapse-height number? "Minimum height of system start delimiter bar-line glyphs. If equal or smaller, the bar-line is removed.") -(grob-property-description 'brace-collapse-height number? "Minimum height of system start delimiter brace glyphs. If equal or smaller, the brace is removed.") -(grob-property-description 'bracket-collapse-height number? "Minimum height of system start delimiter bracket glyphs. If equal or smaller, the bracket is removed.") +(grob-property-description 'collapse-height number? "Minimum height of system start delimiter. If equal or smaller, the bracket is removed.") + (grob-property-description 'columns list? "list of grobs, typically containing paper-columns.") (grob-property-description 'control-points list? "List of 4 offsets (number-pairs) that form control points for the tie/slur shape.") (grob-property-description 'damping integer? "amount of beam slope damping should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams .") @@ -452,3 +451,5 @@ columns. (grob-property-description 'if-text-padding number? "padding in case texts are there.") (grob-property-description 'grace-space-factor number? "space grace at this fraction of the increment.") +(grob-property-description 'position-callbacks list? "list of +functions set spanner positions.") -- 2.39.5