]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
(grob-cause): escape spaces in URLs.
[lilypond.git] / scm / define-grob-properties.scm
index 86de012065880054a8dde80dea0432b16d2009e7..a3c637534ab8387eb06c12fdcba5190b3ff0d542 100644 (file)
@@ -35,7 +35,9 @@ called first.  The functions take a grob and axis argument. ")
      (Y-extent-callback ,procedure? "see @code{X-extent-callback}.")
      (Y-offset-callbacks ,list? "see @code{X-offset-callbacks}.")
 
-     (accidentals ,list? "List of alteration numbers.")
+     (accidentals ,list? "List of alteration numbers")
+     (alteration-alist ,list? "List of @code{(@var{pitch}
+. @var{accidental})} pairs for key signature.")
      (add-stem-support ,boolean? "If set, the Stem object is included in this script's support") 
     
      (align-dir ,ly:dir? "Which side to align? @code{-1}: left side,
@@ -112,6 +114,16 @@ For example, clefs are put after key signatures by setting
      (break-glyph-function ,procedure? "This function determines the
 appearance of a bar line at the line break.  It takes a glyph and
 break-direction and returns the glyph at a line break.")
+     (break-overshoot ,number-pair? "How much does a broken spanner
+stick out of its bounds?")
+     (bracket-visibility ,boolean-or-symbol? "This controls the
+visibility of the tuplet bracket.  Setting it to false will prevent
+printing of the bracket. Setting the property to @code{'if-no-beam}
+will make it print only if there is no beam associated with this
+tuplet bracket.")
+     (break-visibility ,vector? "A vector of 3 booleans, #(end-of-line unbroken begin-of-line).
+#t means visible, #f means killed.")
+
      (breakable ,boolean? "Can this object appear at a line break,
 like clefs and bar lines?")
      (c0-position ,integer? "An integer indicating the position of
@@ -173,6 +185,10 @@ the vertical edges '(@var{left-height} . @var{right-height}).")
 edges '(@var{left-text} . @var{right-text}).")
      (eccentricity ,number? "How asymmetrical to make a slur. Positive means move the center to the right.")
      
+     (enclose-bounds ,number?
+                    "How much of the bound a spanner should enclose:
++1 = completely, 0 = center, -1 not at all.")
+
      (expand-limit ,integer? "maximum number of measures expanded in church rests.")
 
      ;; remove me? 
@@ -189,12 +205,17 @@ engine is completely oblivious to it.")
 
      (finger-code ,symbol? "Code for the type of fingering indication in a
 fret diagram.  Options include @code{none}, @code{in-dot}, and @code{below-string}.")
+     (flag-count ,number? "The number of tremolo beams.")
      (flag-style ,symbol?
                 "a string determining what style of flag-glyph is
 typeset on a Stem. Valid options include @code{()} and
 @code{mensural}.  Additionally, @code{\"no-flag\"} switches off the
 flag.")
+     
      (flag-width-function ,procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).")
+     (strict-note-spacing ,boolean? "If set, unbroken columns
+with non-musical material (clefs, barlines, etc.) are not spaced
+separately, but put before musical columns.")
      (font-family ,symbol? "The font family is the broadest category for selecting text fonts. Options include: @code{sans}, @code{roman} ")
      (font-encoding ,symbol? "The font encoding is the broadest
 category for selecting a font. Options include: @code{fetaMusic},
@@ -255,13 +276,13 @@ slur, the closer it is to this height.")
      (horizontal-shift ,integer? "An integer that identifies ranking
 of note-column for horizontal shifting. This is used by
 @internalsref{note-collision-interface}.")
-     (inside-slur ,boolean? "If set, this script should be inside the
-slur. If set to false, the script places itself around the slur. If
-unset, script and slur ignore each other ")
+     (avoid-slur ,symbol? "Method of handling slur collisions.
+Choices are @code{around}, @code{inside}, @code{outside}.  If unset, script
+and slur ignore eachother.")
      (inspect-quants ,number-pair? "If debugging is set,
 set beam quant to this position, and print the respective scores.")
 
-     (allow-outside-line ,boolean? "If set, allow this column to
+     (keep-inside-line ,boolean? "If set, this column cannot have
 things sticking into the margin.")
      (kern ,ly:dimension? "Amount of extra white space to add. For
 bar line, this is the amount of space after a thick line.")
@@ -312,15 +333,11 @@ this long. This requires an appropriate routine for the
 @code{spacing-procedure} property.")
      (minimum-space ,ly:dimension? "Minimum distance that the victim
 should move (after padding).")
-     (print-function ,procedure? "Function taking grob as argument,
-returning a @code{Stencil} object.")
      (neutral-direction ,ly:dir? "Which direction to take in the
 center of the staff.")
      (neutral-position ,number? "Position (in half staff spaces) where
 to flip the direction of custos stem.")
 
-     (new-accidentals ,list? "List of @code{(@var{pitch}
-. @var{accidental})} pairs.")
      (next ,ly:grob? "Object that is next relation (eg. the lyric syllable following an extender.")
      (note-names ,vector? "Vector of strings containing names for
 easy-notation note heads.")
@@ -331,14 +348,13 @@ spacing constraints.")
 get stems extending to the middle staff line.")
      (number-type ,symbol? "Type of numbers to use in label.  Choices
 include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.")
-     
-     (old-accidentals ,list? "List of @code{(@var{pitch} . @var{accidental})
-pairs.}")
+     (number-visibility ,boolean-or-symbol? "Like
+@code{bracket-visibility}, but for the number.")
 
-     (enclose-bounds ,number?
-                    "How much of the bound a spanner should enclose:
-+1 = completely, 0 = center, -1 not at all.")
 
+
+     (packed-spacing ,boolean? "If set, the notes are spaced as
+tightly as possible.")
      (padding ,ly:dimension? "Add this much extra space between
 objects that are next to each other.")
      (page-penalty ,number? "Penalty for page break at
@@ -354,7 +370,9 @@ as a real penalty.")
                "Pair of staff coordinates @code{(@var{left}
 . @var{right})}, where both @var{left} and @var{right} are in the
 staff-space unit of the current staff.")
-
+     (print-function ,procedure? "Function taking grob as argument,
+returning a @code{Stencil} object.")
+     
      (ratio ,number? "Parameter for slur shape. The higher this number, the
 quicker the slur attains it @code{height-limit}.")
      (remove-first ,boolean? "Remove the first staff of a orchestral score?")
@@ -412,8 +430,7 @@ parameters.  The routine is called after
 expressed in global staffspace.")
      (staff-position ,number? "Vertical position, measured in half
 staff spaces, counted from the middle line.")
-     (staffline-clearance ,ly:dimension? "How far away ties keep from
-staff lines.")
+     
      (stemlet-length ,number? "How long should a stem over a rest be?")
      (stem-attachment-function ,procedure? "A function that calculates
 where a stem attaches to the note head? This is a fallback when this
@@ -452,34 +469,20 @@ reading this property.")
 
      (threshold ,number-pair? "(@var{min} . @var{max}), where
 @var{min} and @var{max} are dimensions in staff space.")
+     (tie-configuration ,list? "List of (@var{position} . @var{dir})
+pairs, indicating the desired tie configuration.")
      (transparent ,boolean? "This is almost the same as setting
 @code{print-function} to @code{#f}, but this retains the dimensions of
 this grob, which means that grobs can be erased individually.")
-     (bracket-visibility ,boolean-or-symbol? "This controls the
-visibility of the tuplet bracket.  Setting it to false will prevent
-printing of the bracket. Setting the property to @code{'if-no-beam}
-will make it print only if there is no beam associated with this
-tuplet bracket.")
-     (number-visibility ,boolean-or-symbol? "Like
-@code{bracket-visibility}, but for the number.")
-
-     ;; FIXME.
-     (break-visibility ,procedure? "A function that takes the break
-direction and returns a cons of booleans containing (@var{transparent}
-. @var{empty}).  The following variables are predefined:
-@code{all-visible}, @code{begin-of-line-visible},
-@code{end-of-line-visible}, @code{begin-of-line-invisible},
-@code{end-of-line-invisible}, @code{all-invisible}.")
-     (flag-count ,number? "The number of tremolo beams.")
-
+     (uniform-stretching ,boolean? "If set, items stretch proportional
+to their durations. This looks better in complex polyphonic patterns")
+     (used ,boolean? "If set, this spacing column is kept in the spacing problem")
      (when ,ly:moment? "Global time step associated with this column
 happen?")
      (word-space ,ly:dimension? "space to insert between lyrics or
 words in texts.")
      (width ,ly:dimension? "The width of a grob measured in staff space.")
      (x-gap ,ly:dimension? "The horizontal gap between note head and tie.")
-     (y-offset ,ly:dimension? "Extra vertical offset for ties away
-from the center line.")
      (zigzag-length ,ly:dimension? "The length of the lines of a
 zigzag, relative to @code{zigzag-width}. A value of 1 gives 60-degree
 zigzags.")
@@ -517,17 +520,12 @@ sizes (like the dynamic @b{p} and @b{f}) on their baselines.")
      (axis-group-parent-X ,ly:grob? "Containing X axis group")
      (axis-group-parent-Y ,ly:grob? "Containing Y axis group")
      (accidental-grobs ,list? "Alist with (NOTENAME . GROBLIST) entries")
-     (adjacent-hairpins ,grob-list? "List of directly neighboring hairpins")
+     (adjacent-hairpins ,ly:grob-array? "List of directly neighboring hairpins")
      (after-line-breaking-callback ,procedure? "This procedure is called after line breaking. Its return value is ignored.")     
-     (all-elements ,grob-list? "list of all grobs in this line. Its
+     (all-elements ,ly:grob-array? "list of all grobs in this line. Its
 function is to protect objects from being garbage collected.")
      (arpeggio ,ly:grob? "pointer to arpeggio object.")
      (beam ,ly:grob? "pointer to the beam, if applicable.")
-     (center-element ,ly:grob? "grob which will be at the center of
-the group after aligning (when using
-Align_interface::center_on_element).")
-     (tweak-count ,number? "Number of otherwise unique Grobs.")
-     (tweak-rank ,number? "Identify otherwise unique Grobs.")
      (direction-source ,ly:grob? "in case side-relative-direction is
 set, which grob to get the direction from .")
      (dot ,ly:grob? "reference to Dots object.")
@@ -537,38 +535,38 @@ set, which grob to get the direction from .")
      (tie ,ly:grob? "")
      (staff-symbol ,ly:grob? "the staff symbol grob that we're in.")
      (rest ,ly:grob? "the staff symbol grob that we're in.")
-     (rests ,grob-list? "A list of rest objects.")
+     (rests ,ly:grob-array? "A list of rest objects.")
      (rest-collision ,ly:grob? "rest collision that a rest is in.")
      (accidental-grob ,ly:grob? "Accidental for this note.")
-     (bars ,grob-list? "list of bar line pointers.")
-     (bounded-by-me ,grob-list? "list of spanners that have this
+     (bars ,ly:grob-array? "list of bar line pointers.")
+     (bounded-by-me ,ly:grob-array? "list of spanners that have this
 column as start/begin point. Only columns that have grobs or act as bounds are spaced.")
-     (columns ,grob-list? "list of grobs, typically containing
+     (columns ,ly:grob-array? "list of grobs, typically containing
 paper-columns or note-column objects.")
-     (conditional-elements ,grob-list? "Internal use only")
-     (dependencies ,grob-list? "list of score-grob pointers that indicate who to compute first for certain global passes.")
-     (encompass-objects ,grob-list? "Objects that a slur should avoid
+     (conditional-elements ,ly:grob-array? "Internal use only")
+     (dependencies ,ly:grob-array? "list of score-grob pointers that indicate who to compute first for certain global passes.")
+     (encompass-objects ,ly:grob-array? "Objects that a slur should avoid
 in addition to notes and stems.")
-     (elements ,grob-list? "list of grobs, type depending on the Grob where this is set in.")
-     (heads ,grob-list? "List of note heads.")
-     (items-worth-living ,grob-list? "A list of interesting items. If
+     (elements ,ly:grob-array? "list of grobs, type depending on the Grob where this is set in.")
+     (heads ,ly:grob-array? "List of note heads.")
+     (items-worth-living ,ly:grob-array? "A list of interesting items. If
 empty in a particular staff, then that staff is erased.")
      (details ,list? "alist of parameters for detailed grob behavior.")
-     (note-heads ,grob-list? "List of note head grobs")
-     (side-support-elements ,grob-list? "the support, a list of grobs.")
-     (spacing-wishes ,grob-list? "List of note spacing or staff spacing objects.")
-     (stems ,grob-list? "list of stem objects, corresponding to the notes that the arpeggio has to be before.")
-
+     (note-heads ,ly:grob-array? "List of note head grobs")
+     (side-support-elements ,ly:grob-array? "the support, a list of grobs.")
+     (spacing-wishes ,ly:grob-array? "List of note spacing or staff spacing objects.")
+     (stems ,ly:grob-array? "list of stem objects, corresponding to the notes that the arpeggio has to be before.")
+     (tuplets ,ly:grob-array? "list of smaller tuplet brackets")
 
-     (left-neighbors ,grob-list? " List of
+     (left-neighbors ,ly:grob-array? " List of
 spacing-wish grobs that are close to the current column.
 
 The closest spacing-wishes determine the actual distances between the
 columns.
 ")
-     (right-neighbors ,grob-list? "see left-neighbors")
-     (left-items ,grob-list? "")
-     (right-items ,grob-list? "")
+     (right-neighbors ,ly:grob-array? "see left-neighbors")
+     (left-items ,ly:grob-array? "")
+     (right-items ,ly:grob-array? "")
      (cause ,scheme? "Any kind of causation objects (i.e. music, or perhaps translator) that was the cause for this grob.  ")
      (font ,ly:font-metric? "Cached font metric object")
 
@@ -587,9 +585,10 @@ entries @code{name} and @code{interfaces}.")
      ;; TODO: use interface for this!
      (chord-tremolo ,boolean? "if set, this beam is a tremolo. ")
      (begin-of-line-visible ,boolean? "Used for marking ChordNames that should only show changes.")
-     (head-pair ,pair? "Pair of grob pointers, pointing to the two heads of the tie.")
+
      (quant-score ,string? "Beam quanting score -- can be stored for
 debugging")
+     
      (least-squares-dy ,number? 
                       "ideal beam slope, without damping.")
      (ligature-primitive-callback ,procedure? "callback that brews ligature head.")
@@ -620,7 +619,7 @@ stem. Internally used to distribute beam shortening over stems. ")
 than a whole rest.")
      
 
-     (spaceable-staves ,grob-list? "Objects to be spaced during page layout.")
+     (spaceable-staves ,ly:grob-array? "Objects to be spaced during page layout.")
 
      ;; ancient notation