]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
Ignore lsr-unsafe.txt.
[lilypond.git] / scm / define-grob-properties.scm
index 9f577d84b41c53d96de56b2539eeaf6ba4f364a5..26c735e16e61c6e0c8cfddeeade57f258f3baebc 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2006  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2007  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (define-grob-property symbol type? description)
@@ -37,9 +37,12 @@ callback for @code{after-line-breaking}.")
 @code{0}: around center of width, @code{1}: right side.")
      (allow-loose-spacing ,boolean? "If set, column can be detached
 from main spacing.")
+     (allow-span-bar ,boolean? "If false, no inter-staff barline will
+be created below this barline.")
      (alteration ,number? "Alteration numbers for accidental.")
      (alteration-alist ,list? "List of @code{(@var{pitch}
 . @var{accidental})} pairs for key signature.")
+     (annotation ,string? "Annotate a grob for debug purposes.")
      (arpeggio-direction ,ly:dir? "If set, put an arrow on the
 arpeggio squiggly line.")
      (arrow-length ,number? "Arrow length.")
@@ -94,7 +97,7 @@ printing of the bracket.  Setting the property to @code{if-no-beam}
 makes it print only if there is no beam associated with this tuplet
 bracket.")
      (break-align-anchor ,number? "Grobs aligned to this break-align
-grob will have their X-offsets shifted by this number. In barlines,
+grob will have their X-offsets shifted by this number.  In barlines,
 for example, this is used to position grobs relative to the (visual)
 center of the barline.")
      (break-align-anchor-alignment ,number? "Read by
@@ -103,7 +106,7 @@ an anchor to a grobs extent")
      (break-align-symbol ,symbol? "This key is used for aligning and
 spacing breakable items.")
      (break-align-symbols ,list? "A list of symbols that determine
-which break-aligned grobs to align this to. If the grob selected by
+which break-aligned grobs to align this to.  If the grob selected by
 the first symbol in the list is invisible due to break-visibility,
 we will align to the next grob (and so on).")
      (break-align-orders ,vector? "Defines the order in which
@@ -135,7 +138,7 @@ middle@tie{}C.")
      (clip-edges ,boolean? "Allow outward pointing beamlets at the
 edges of beams?")
      (collapse-height ,ly:dimension? "Minimum height of system start
-delimiter.  If equal or smaller, the bracket is removed.")
+delimiter.  If equal or smaller, the bracket/brace/line is removed.")
      (color ,color? "The color of this grob.")
      (common-shortest-duration ,ly:moment? "The most common shortest
 note length.  This is used in spacing.  Enlarging this sets the score
@@ -159,20 +162,19 @@ whitespace.  If negative, no line is drawn at all.")
      (default-direction ,ly:dir? "Direction determined by note head
 positions.")
      (digit-names ,vector "Names for string finger digits.")
-     (direction ,ly:dir? "If @code{side-axis} is @code{1} (or
+     (direction ,ly:dir? "If @code{side-axis} is @code{0} (or
 @code{#X}), then this property determines whether the object is placed
 @code{#LEFT}, @code{#CENTER} or @code{#RIGHT} with respect to the
 other object.  Otherwise, it determines whether the object is placed
 @code{#UP}, @code{#CENTER} or @code{#DOWN}.  Numerical values may also
 be used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1},
-@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{CENTER}=@code{0}
-but also other numerical values are permitted.")
+@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{#CENTER}=@code{0}.")
      (dot-color ,symbol? "Color of dots.  Options include 
 @code{black} and @code{white}.")
      (dot-count ,integer? "The number of dots.")
      (dot-radius ,number? "Radius of dots.")
      (duration-log ,integer? "The 2-log of the note head duration,
-i.e. @code{0} = whole note, @code{1} = half note, etc.")
+i.e., @code{0} = whole note, @code{1} = half note, etc.")
 
      (eccentricity ,number? "How asymmetrical to make a slur.
 Positive means move the center to the right.")
@@ -221,12 +223,12 @@ include @code{medium}, @code{bold}, @code{bold-narrow}, etc.")
 include @code{upright}, @code{italic}, @code{caps}.")
      (font-size ,number? "The font size, compared to the @q{normal}
 size.  @code{0}@tie{}is style-sheet's normal size, @code{-1} is
-smaller, @code{+1} is bigger. Each step of@tie{}1 is approximately
+smaller, @code{+1} is bigger.  Each step of@tie{}1 is approximately
 12% larger, 6@tie{}steps are exactly a factor@tie{}2 larger.
 Fractional values are allowed.")
      (force-hshift ,number? "This specifies a manual shift for notes
 in collisions.  The unit is the note head width of the first voice
-note.  This is used by @internalsref{note-collision-interface}.")
+note.  This is used by @rinternals{note-collision-interface}.")
      (forced ,boolean? "Manually forced accidental.")
      (fraction ,number-pair? "Numerator and denominator of a time
 signature object.")
@@ -254,7 +256,7 @@ semitie?")
 slur, the closer it is to this height.")
      (horizontal-shift ,integer? "An integer that identifies ranking
 of @code{NoteColumn}s for horizontal shifting.  This is used by
-@internalsref{note-collision-interface}.")
+@rinternals{note-collision-interface}.")
      (horizontal-skylines ,ly:skyline-pair? "Two skylines, one to the
 left and one to the right of this grob.")
 
@@ -314,8 +316,8 @@ if this column is the start of a system.")
      (line-positions ,list? "Vertical positions of staff lines.")
      (line-thickness ,number? "The thickness of the tie or slur
 contour.")
-     (long-text ,markup? "Text markup.  See @usermanref{Text
-markup}.")
+     (long-text ,markup? "Text markup.  See @ruser{Formatting
+text}.")
 
      (max-beam-connect ,integer? "Maximum number of beams to connect
 to beams from this stem.  Further beams are typeset as beamlets.")
@@ -331,15 +333,15 @@ collisions, even if they have a different number of dots.  This is
 normal notation for some types of polyphonic music.
 
 @code{merge-differently-dotted} only applies to opposing stem
-directions (i.e. voice 1 &@tie{}2).")
+directions (i.e., voice 1 &@tie{}2).")
      (merge-differently-headed ,boolean? "Merge note heads in
 collisions, even if they have different note heads.  The
 smaller of the two heads is rendered invisible.  This is used in
 polyphonic guitar notation.  The value of this setting is used by
-@internalsref{note-collision-interface}.
+@rinternals{note-collision-interface}.
 
 @code{merge-differently-headed} only applies to opposing stem
-directions (i.e. voice 1 &@tie{}2).")
+directions (i.e., voice 1 &@tie{}2).")
      (minimum-X-extent ,number-pair? "Minimum size of an object in
 X@tie{}dimension, measured in @code{staff-space} units.")
      (minimum-Y-extent ,number-pair? "See @code{minimum-X-extent}.")
@@ -406,11 +408,14 @@ at a column with a negative penalty.")
 whether to put a page turn at this column.  Can be @code{force} or
 @code{allow}.")
      (parenthesized ,boolean? "Parenthesize this grob.")
-     (positions ,pair? "Pair of staff coordinates @code{(@var{left}
-. @var{right})}, where both @var{left} and @var{right} are in
-@code{staff-space} units of the current staff.  LilyPond uses these
-values to select which slur candidate positions to use; if extreme
-positions are requested, LilyPond selects the closest positions.")
+     (positions ,number-pair? "Pair of staff coordinates
+@code{(@var{left} . @var{right})}, where both @var{left} and
+@var{right} are in @code{staff-space} units of the current staff.
+For slurs, this value selects which slur candidate to use; if
+extreme positions are requested, the closest one is taken.")
+     (prefer-dotted-right ,boolean? "For note collisions, prefer to
+shift dotted up-note to the right, rather than shifting just the
+dot.")
 
      (ratio ,number? "Parameter for slur shape.  The higher this
 number, the quicker the slur attains its @code{height-limit}.")
@@ -438,8 +443,8 @@ stem distance.")
 order a script is within a stack of scripts.")
      (self-alignment-X ,number? "Specify alignment of an object.  The
 value @code{-1} means left aligned, @code{0}@tie{}centered, and
-@code{1}@tie{}right-aligned in X@tie{}direction.  Values in-between
-may also be specified.")
+@code{1}@tie{}right-aligned in X@tie{}direction.  Other numerical
+values may also be specified.")
      (self-alignment-Y ,number? "Like @code{self-alignment-X} but for
 the Y@tie{}axis.")
      (shorten-pair ,number-pair? "The lengths to shorten a
@@ -448,14 +453,14 @@ values shorten the text-spanner, while negative values lengthen it.")
      (shortest-duration-space ,ly:dimension? "Start with this much
 space for the shortest duration.  This is expressed in
 @code{spacing-increment} as unit.  See also
-@internalsref{spacing-spanner-interface}.")
+@rinternals{spacing-spanner-interface}.")
      (shortest-playing-duration ,ly:moment? "The duration of the
 shortest playing here.")
      (shortest-starter-duration ,ly:moment? "The duration of the
 shortest note that starts here.")
      (side-axis ,number? "If the value is @code{#X} (or
-equivalently@tie{}@code{1}), the object is placed horizontally next
-to the other object.  If the value is @code{#Y} or@tie{}@code{0}, it
+equivalently@tie{}@code{0}), the object is placed horizontally next
+to the other object.  If the value is @code{#Y} or@tie{}@code{1}, it
 is placed vertically.")
      (side-relative-direction ,ly:dir? "Multiply direction of
 @code{direction-source} with this to get the direction of this
@@ -468,9 +473,14 @@ prefatory items, like clef and time-signature.  The format is an alist
 of spacing tuples: @code{(@var{break-align-symbol} @var{type}
 . @var{distance})}, where @var{type} can be the symbols
 @code{minimum-space} or @code{extra-space}.")
+     (space-to-barline ,boolean? "If set, the distance between a note
+and the following non-musical column will be measured to the barline
+instead of to the beginning of the non-musical column.  If there is a
+clef change followed by a barline, for example, this means that we will
+try to space the non-musical column as though the clef is not there.")
      (spacing-increment ,number? "Add this much space for a doubled
-duration.  Typically, the width of a note head. See also
-@internalsref{spacing-spanner-interface}.")
+duration.  Typically, the width of a note head.  See also
+@rinternals{spacing-spanner-interface}.")
      (springs-and-rods ,boolean? "Dummy variable for triggering
 spacing routines.")
      (stacking-dir ,ly:dir? "Stack objects in which direction?")
@@ -512,7 +522,7 @@ through flag on.")
 typeset.  Valid choices depend on the @code{stencil} callback reading
 this property.")
 
-     (text ,markup? "Text markup.  See @usermanref{Text markup}.")
+     (text ,markup? "Text markup.  See @ruser{Formatting text}.")
 ;;FIXME -- Should both be the same?
      (text-direction ,ly:dir? "This controls the ordering of the
 words.  The default @code{RIGHT} is for roman text.  Arabic or Hebrew
@@ -596,6 +606,9 @@ function is to protect objects from being garbage collected.")
      (axis-group-parent-X ,ly:grob? "Containing X@tie{}axis group.")
      (axis-group-parent-Y ,ly:grob? "Containing Y@tie{}axis group.")
 
+     (bar-extent ,number-pair? "The Y-extent of the actual barline.
+This may differ from 'Y-extent because it does not include the dots in
+a repeat barline.")
      (bars ,ly:grob-array? "A list of bar line pointers.")
      (beam ,ly:grob? "A pointer to the beam, if applicable.")
      (bounded-by-me ,ly:grob-array? "A list of spanners that have this
@@ -643,6 +656,8 @@ columns.")
      (note-head ,ly:grob? "A single note head.")
      (note-heads ,ly:grob-array? "A list of note head grobs.")
 
+     (padding-pairs ,list? "An alist mapping @code{(@var{name} . @var{name})}
+to distances.")
      (pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano
 pedal.")
      (pure-Y-common ,ly:grob? "A cache of the
@@ -684,7 +699,7 @@ notes that the arpeggio has to be before.")
      (begin-of-line-visible ,boolean? "Used for marking @code{ChordNames}
 that should only show changes.")
 
-     (cause ,scheme? "Any kind of causation objects (i.e. music, or perhaps
+     (cause ,scheme? "Any kind of causation objects (i.e., music, or perhaps
 translator) that was the cause for this grob.")
      (circled-tip ,boolean? "Put a circle at start/end of hairpins (al/del
 niente).")
@@ -718,7 +733,7 @@ entries @code{name} and @code{interfaces}.")
 did its job.  This ensures that a positioning is only done once.")
      (pure-Y-extent ,number-pair? "The estimated height of a system.")
 
-     (quant-score ,string? "The Beam quanting score -- can be stored for
+     (quant-score ,string? "The beam quanting score; stored for
 debugging.")
      (quantize-position ,boolean? "If set, a vertical alignment is aligned
 to be within staff spaces.")