]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/grob-property-description.scm
patch::: 1.5.40.jcn1
[lilypond.git] / scm / grob-property-description.scm
index 0d018c3d971ada032d313ef83de935aa5e0b1e89..a171dc3db2e817d97b0e91abd22deb0d5d88f4fe 100644 (file)
@@ -21,8 +21,6 @@
   (set! all-backend-properties (cons symbol all-backend-properties))
   )
 
-
-  
 ;; put this in an alist?
 
 (grob-property-description 'X-extent-callback procedure? "procedure taking an grob and axis argument, returning a number-pair. The return value is the extent of the grob.")
@@ -33,6 +31,7 @@
 . OPTION-LIST) entries. OPTION-LIST can contain 'cautionary, 'natural
 and 'tie-break-reminder ")
 (grob-property-description 'add-stem boolean? "Add stem to porrectus?.")
+(grob-property-description 'adjust-if-on-staffline boolean? "If this grob is on a staff line, adjust its appearance, so that it better fits into the staff.  E.g., if set true on stem grobs, flares of mensural flags will always be aligned with the staff lines, regardless if the associated note head is printed on a staff line or inbetween.")
 (grob-property-description 'after-line-breaking-callback procedure? "Procedure taking a grob as argument.
 This procedure is called (using dependency resolution) after line breaking. Return value is ignored.")
 (grob-property-description 'align number? "the alignment of the text, 0 is horizontal, 1 is vertical.")
@@ -43,16 +42,17 @@ This procedure is called (using dependency resolution) after line breaking. Retu
 (grob-property-description 'arch-height number? "height of the hook of a system brace.")
 (grob-property-description 'arch-thick number? "thickness of the hook of system brace.")
 (grob-property-description 'arch-width number? "width of the hook of a system brace.")
-(grob-property-description 'arithmetic-basicspace number? "see @ref{spacing-spanner-interface}.")
-(grob-property-description 'arithmetic-multiplier number? "see @ref{spacing-spanner-interface}.")
+(grob-property-description 'shortest-duration-space number? "Start
+with this much space for the shortest duration. This is explessed in @code{spacing-increment} as unit. See also
+@ref{spacing-spanner-interface}.")
+(grob-property-description 'spacing-increment number? "Add this much space for a doubled duration. Typically, the width of a note head. See also @ref{spacing-spanner-interface}.")
+
+(grob-property-description 'arpeggio ly-grob? "pointer to arpeggio object.") 
 (grob-property-description 'arpeggio-direction dir? "If set, put an
 arrow on the arpeggio squiggly line.")
 (grob-property-description 'attachment pair? "cons of symbols, '(LEFT-TYPE . RIGHT-TYPE), where both types may be alongside-stem, stem, head or loose-end.")
 
-(grob-property-description 'stem-attachment-function procedure? "Where
-does the stem attach to the notehead? Function takes a symbol argument
-being the style. It returns a (X . Y) pair, specifying location in
-terms of note head bounding box.")
+
 (grob-property-description 'attachment-offset pair? "cons of offsets,
 '(LEFT-offset . RIGHT-offset).  This offset is added to the
 attachments to prevent ugly slurs.  [fixme: we need more documentation here].
@@ -96,6 +96,12 @@ column as start/begin point. Only columns that have grobs or act as bounds are s
 (grob-property-description 'center-element ly-grob? "grob which will
 be at the center of the group after aligning (when using
 Align_interface::center_on_element). .")
+(grob-property-description 'concaveness-threshold number? "A beam is
+considered to be concave is concaveness is bigger than this threshold.
+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.")
@@ -108,12 +114,9 @@ Align_interface::center_on_element). .")
 (grob-property-description 'dash-period number? "the length of one dash + white space.")
 (grob-property-description 'dashed number? "[FIXME: use dash-period/dash length; see text-spanner] number representing the length of the dashes.")
 (grob-property-description 'de-uglify-parameters list? "list of 3 real constants. They define the valid areas for the middle control points. Used in de_uglyfy. They are a bit empirical.")
-(grob-property-description 'neutral-direction dir? "Where to go if
-we're in the middle of the staff.  [Ross] has the following to say
-about this: Some engravers consider the middle line neutral, and take
-the option of using either up- or down-stems for notes that fall on
-it. However, more up-to-date engraving no longer permits an option;
-now a down-stem is always appropriate.")
+
+(grob-property-description 'neutral-direction dir? "Where to go if we're on the neutral position of the staff (by default, the middle of the staff; see also grob-property neutral-position).  [Ross] has the following to say about this: Some engravers consider the middle line neutral, and take the option of using either up- or down-stems for notes that fall on it. However, more up-to-date engraving no longer permits an option; now a down-stem is always appropriate.")
+(grob-property-description 'neutral-position number? "Position (in half staff spaces) where to flip the direction of stems: by default, custodes above this position get their stems downwards; custodes below this position get their stems upwards.  A value of 0 designates the center of the staff.  Use property neutral-direction to control the behaviour of stems on the neutral position itself.  (Note: currently, neutral-position is supported only for custodes; for stems of note heads, neutral-position is currently fixed to 0, i.e. the middle of the staff.)")
 
 (grob-property-description 'delta-y number? "amount of ascension.")
 (grob-property-description 'dependencies list? "list of score-grob pointers that indicate who to compute first for certain global passes.")
@@ -161,9 +164,11 @@ procedure is tried.")
 (grob-property-description 'flag-width-function procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).")
 (grob-property-description 'font-family symbol? "partial font
 definition: music roman braces dynamic math ...")
-(grob-property-description 'font-name symbol? "partial font definition:
-base name of font file FIXME: should override other partials.")
+(grob-property-description 'font-name string? "file name for the font to load.
+Overrides all other font-X qualifiers.")
 (grob-property-description 'font-design-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size.")
+(grob-property-description 'font-magnification number? "Magnification
+  of the font. If undefined, the default is @code{1.0}.")
 (grob-property-description 'font-relative-size number? "partial font definition: the relative size compared the `normal' size.
  0 is style-sheet's normal size, -1 is smaller, +1 is bigger, -1 is smaller.")
 (grob-property-description 'font-series symbol? "partial font definition: medium, bold.")
@@ -180,7 +185,7 @@ is used by @ref{note-collision-interface}.")
 (grob-property-description 'fraction number-pair? "fraction of a time signature.")
 (grob-property-description 'full-size-change boolean? "if set, don't make a change clef smaller.")
 
-(grob-property-description 'glyph symbol? "a string determining what (style) of  glyph is typeset. Valid choices depend on the function that is reading this property. .")
+(grob-property-description 'glyph string? "a string determining what (style) of  glyph is typeset. Valid choices depend on the function that is reading this property. .")
 (grob-property-description 'glyph-name string? "a name of character within font.")
 
 (grob-property-description 'gap number? "Size of a gap in a variable symbol.")
@@ -208,7 +213,9 @@ For text,  this is `relative'(?) to the current alignment.
 
 For barline, space after a thick line.")
 (grob-property-description 'layer number? "The output layer [0..2].  The default is 1.")
+
 (grob-property-description 'left-padding number? "space left of accs.")
+
 (grob-property-description 'length number? "Stem length for unbeamed stems, only for user override.")
 (grob-property-description 'lengths list? "Stem length given multiplicity of flag.")
 (grob-property-description 'line-count integer? "Number of staff
@@ -223,6 +230,7 @@ and will have no effect.
 (grob-property-description 'maximum-duration-for-spacing moment? "space as if a duration of this type is available in this measure.")
 (grob-property-description 'maximum-length number? "don't make Grob longer than this")
 (grob-property-description 'maximum-rest-count integer? "kill off rests so we don't more than this number left.")
+(grob-property-description 'measure-count integer? "number of measures for a multimeasure rest.")
 (grob-property-description 'merge-differently-dotted boolean? " Merge noteheads in collisions, even if they have a different number of dots. This normal notation for some types of polyphonic music. The value of this setting is used by @ref{note-collision-interface} .")
 (grob-property-description 'minimum-distance number? "minimum distance between notes and rests.")
 (grob-property-description 'minimum-distances list? "list of rods (ie. (OBJ . DIST) pairs).")
@@ -239,14 +247,19 @@ Also works as a scaling parameter for the length of hyphen. .")
 FIXME: also pair? (cons LEFT RIGHT)
 
 ")
+(grob-property-description 'minimum-space-pair number-pair? "
+
+? (cons LEFT RIGHT)
 
+")
 (grob-property-description 'minimum-width number? "minimum-width of rest symbol, in staffspace.")
 (grob-property-description 'molecule-callback procedure? "Function taking grob as argument, returning a Scheme encoded Molecule.")
+(grob-property-description 'molecule molecule? "Cached output of the molecule-callback.")
+
 (grob-property-description 'new-accidentals list? "list of (pitch, accidental) pairs.")
 (grob-property-description 'no-spacing-rods boolean? "read from grobs: boolean that makes Separation_item ignore this item (MOVE ME TO ITEM).")
 (grob-property-description 'no-stem-extend boolean? "should stem not be extended to middle staff line?.")
 (grob-property-description 'non-default boolean? "not set because of existence of a bar?.")
-(grob-property-description 'note-character string? "character to print in a note head.")
 (grob-property-description 'note-width number? "unit for horizontal translation, measured in staff-space.")
 (grob-property-description 'note-heads list? "List of note head grobs")
 (grob-property-description 'number-gap number? "size of the gap for tohe number in a tuplet.")
@@ -266,26 +279,34 @@ as a real penalty.")
 
 (grob-property-description 'pitches list? "list of musical-pitch.")
 (grob-property-description 'porrectus-width number? "width of the porrectus ligature measured in staff space.")
+(grob-property-description 'positions pair? "cons of staff positions (LEFT . RIGHT")
 (grob-property-description 'raise number? "height for text to be raised (a negative value lowers the text.")
 (grob-property-description 'right-padding number? "space right of accs.")
 (grob-property-description 'right-trim-amount number? "shortening of the lyric extender on the right.")
 (grob-property-description 'script-priority number? "A sorting key that determines in what order a script is within a stack of scripts.")
-(grob-property-description 'self-alignment-X number? "real number: -1 =
+(grob-property-description 'self-alignment-X number-or-grob? "real number: -1 =
 left aligned, 0 = center, 1 right-aligned in X direction.
 
  Set to an grob pointer, if you want that grob to be the center.
 In this case, the center grob should have this object as a
 reference point.
-.")
+
+TODO: revise typing.")
 (grob-property-description 'self-alignment-Y number? "like self-alignment-X but for Y axis.")
 (grob-property-description 'shortest-playing-duration moment? "duration of the shortest playing in that column.")
 (grob-property-description 'shortest-starter-duration moment? "duration of the shortest notes that starts exactly in this column.")
 (grob-property-description 'side-relative-direction dir? "if set: get the direction from a different object, and multiply by this.")
-(grob-property-description 'side-support list? "the support, a list of grobs.")
+(grob-property-description 'side-support-elements list? "the support, a list of grobs.")
 (grob-property-description 'slope number? "some kind of slope")
 (grob-property-description 'slope-limit number? "set slope to zero if slope is running away steeper than this.")
 (grob-property-description 'solid boolean? "should porrectus be solidly filled?.")
-(grob-property-description 'space-alist list? "Alist of break align spacing tuples. See basic-property.scm")
+
+(grob-property-description 'space-alist list? "Alist of break align
+spacing tuples: format = (SYMBOL . (TYPE . DISTANCE)), where TYPE can be
+minimum-space or extra-space.")
+
+(grob-property-description 'space-factor number? "Scale horizontal spacing up by this amount.")
+
 (grob-property-description 'space-function procedure? "function of type multiplicity -> real (in staffspace).")
 (grob-property-description 'spacing-procedure procedure? "procedure
 taking grob as argument. This is called after
@@ -294,10 +315,17 @@ itself.  Return value is ignored.")
 (grob-property-description 'stacking-dir dir? "stack contents of grobs in which direction ?.")
 (grob-property-description 'staff-space number? "Amount of line leading relative to global staffspace.")
 (grob-property-description 'staff-position number? "vertical position in staff spaces, counted from the middle line.")
-(grob-property-description 'staff-symbol boolean? "the staff symbol grob that we're in.")
+
 (grob-property-description 'staffline-clearance number? "don't get closer than this to stafflines.")
 (grob-property-description 'stem ly-grob? "pointer to Stem object.")
-(grob-property-description 'stem-direction dir? "up or down?.")
+(grob-property-description 'stem-attachment-function procedure? "Where
+does the stem attach to the notehead? Function takes a symbol argument
+being the style. It returns a (X . Y) pair, specifying location in
+terms of note head bounding box.")
+(grob-property-description 'stem-direction dir? "up or down?.
+
+[docme: why not direction]
+")
 (grob-property-description 'stem-end-position number? "Where does the stem end (the end is opposite to the support-head.")
 (grob-property-description 'stem-length number? "length of stem.")
 (grob-property-description 'stem-shorten list? "shorten stems in forced directions given flag multiplicity.")
@@ -369,6 +397,7 @@ The following abbreviations are currently defined:
 (grob-property-description 'thickness number? "thickness, measured in stafflinethickness.")
 (grob-property-description 'thin-kern number? "space after a hair-line.")
 (grob-property-description 'forced-distance number? "forced distance for an alignment.")
+
 (grob-property-description 'threshold number-pair? "(cons MIN MAX), where MIN and MAX are dimensions in staffspace.")
 (grob-property-description 'transparent boolean? "This is almost the
 same as setting molecule-callback to #f, but this retains the
@@ -396,3 +425,36 @@ function of type (beam multiplicity dy staff-line-thickness) -> real.  Default v
 (grob-property-description 'y-free number? "minimal vertical gap between slur and noteheads or stems.")
 (grob-property-description 'y-offset number? "extra vertical offset for ties away from the center line.")
 (grob-property-description 'y number? "set by beam: position of left edge.")
+
+
+;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;; INTERNAL
+
+(grob-property-description 'left-neighbors list? " List of
+spacing-wish grobs that are close to the current column.
+
+The closest spacing-wishes determine the actual distances between the
+columns.
+")
+(grob-property-description 'right-neighbors list? "see left-neighbors")
+(grob-property-description 'left-items list? "")
+(grob-property-description 'right-items list? "")
+
+(grob-property-description 'cause scheme? "Any kind of causation objects (i.e. music, or perhaps translator) that was the cause for this grob.  ")
+(grob-property-description 'font font-metric? "Cached font metric object")
+(grob-property-description 'break-alignment-done boolean? "mark flag to signal we've done alignment already.")
+(grob-property-description 'staff-symbol ly-grob? "the staff symbol grob that we're in.")
+(grob-property-description 'collision-done boolean? "")
+(grob-property-description 'rest ly-grob? "the staff symbol grob that we're in.")
+(grob-property-description 'rest-collision ly-grob? "rest collision that a rest is in.")
+
+(grob-property-description 'staff-support boolean? " JUNKME.")
+(grob-property-description 'script-molecule pair? "index code for script.")
+
+(grob-property-description 'accidentals-grob ly-grob? "accidentals for this note.")
+
+(grob-property-description 'causes list? "list of cause objects.")
+(grob-property-description 'tremolo-flags number? "")
+(grob-property-description 'chord-tremolo boolean? "if set, this beam is a tremolo. TODO: use interface for this!")
+(grob-property-description 'chord pair? "?")
+(grob-property-description 'begin-of-line-visible boolean? "?")