]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
* scm/define-grobs.scm (all-grob-descriptions): new grob
[lilypond.git] / scm / define-grob-properties.scm
index 74522da880f7757957c173cb23cf28bd184c453d..7569f3bc3a0e6eb71c258de019a4c1d4f97de2e2 100644 (file)
      (apply define-grob-property x))
 
    `(
-     (X-extent-callback ,procedure? "Procedure that calculates the
-extent of this object. If this value is set to @code{#f}, the object
-is empty in the X direction.  The procedure takes a grob and axis
-argument, and returns a number-pair.
-")
-
-     (X-offset-callbacks ,list? "A list of functions determining this
-objects' position relative to its parent. The last one in the list is
-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}.")
-
+     (X-offset ,number? "The horizontal amount that this object is moved relative to its X-parent")
+     (Y-offset ,number? "The vertical amount that this object is moved
+relative to its X-parent")
+     (self-X-offset ,number? "")
+     (self-Y-offset ,number? "")
      (accidentals ,list? "List of alteration numbers")
      (alteration-alist ,list? "List of @code{(@var{pitch}
 . @var{accidental})} pairs for key signature.")
@@ -47,6 +39,7 @@ arrow on the arpeggio squiggly line.")
   
      (auto-knee-gap ,ly:dimension? "If a gap is found between note heads
 where a horizontal beam fits that is larger than this number, make a kneed beam.")
+     (average-spacing-wishes ,boolean? "If set, the spacing wishes are averaged over staves.")
      (axes ,list? "list of axis numbers.
 In the case of alignment grobs, this should contain only one number.")
 
@@ -56,7 +49,7 @@ for balloon text.")
      (balloon-text-offset ,number-pair?
                          "Where to put text relative to balloon.")
      (balloon-padding ,ly:dimension? "Text to add to help balloon")
-     (balloon-original-callback ,procedure? "The
+     (original-stencil ,ly:stencil? "The
 original stencil drawer to draw the balloon around.")
 
 
@@ -121,10 +114,6 @@ middle C.")
      (cautionary-style ,symbol? "How to print cautionary
 accidentals. Choices are @code{smaller} or
 @code{parentheses}.")
-     (callbacks ,list? "An alist of (@var{symbol} . @var{procedure})
-pairs.  When the grob property @var{symbol} is requested,
-@var{procedure} is invoked. The return value, if it is unequal to
-@code{#<unspecified>} is recorded as the value of the property.") 
      (cautionary ,boolean? "Is this a cautionary accidental?")
      (concaveness ,number? "A beam is concave when its inner stems are
 closer to the beam than the two outside stems. This number is a
@@ -134,8 +123,6 @@ the slope of the beam.")
 
      (color ,color? "The color of this grob.")
 
-     (context ,ly:context? "Originating context of the grob")
-     
      ;;DOCME
      (control-points ,list? "List of 4 offsets (number-pairs) that form control points for the  tie/slur shape.")
 
@@ -191,10 +178,7 @@ fret diagram.  Options include @code{none}, @code{in-dot}, and @code{below-strin
 typeset on a Stem. Valid options include @code{()} and
 @code{mensural}.  Additionally, @code{\"no-flag\"} switches off the
 flag.")
-     
-     (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},
@@ -351,9 +335,15 @@ as a real penalty.")
 staff-space unit of the current staff.")
      (ratio ,number? "Parameter for slur shape. The higher this number, the
 quicker the slur attains it @code{height-limit}.")
+     
+     (remove-empty ,boolean? "If set, remove group if it contains no
+@code{interesting-items}")
      (remove-first ,boolean? "Remove the first staff of a orchestral score?")
      (right-padding ,ly:dimension? "Space to insert between note and
 accidentals.")
+     (same-direction-correction ,number? "Optical correction amount
+for stems that are placed in tight configurations. This amount is used
+for stems with the same direction to compensate for note-head to stem distance.")
      (script-priority ,number? "A sorting key that determines in what
 order a script is within a stack of scripts.")
 
@@ -379,6 +369,7 @@ note that starts here.")
                              "Multiply direction of
 @code{direction-source} with this to get the direction of this
 object.")
+     (side-axis ,number? "Is this object horizontally or vertically next to another object?")
      (size ,number? "Size of object, relative to standard size.")
      (slope ,number? "The slope of this object.")
      (slur-padding ,number? "Extra distance between slur and script.")
@@ -412,15 +403,16 @@ stems that are placed in tight configurations. For opposite
 directions, this amount is the correction for two normal sized stems
 that overlap completely.")
 
-     (same-direction-correction ,number? "Optical correction amount
-for stems that are placed in tight configurations. This amount is used
-for stems with the same direction to compensate for note-head to stem distance.")
+     (strict-note-spacing ,boolean? "If set, unbroken columns
+with non-musical material (clefs, barlines, etc.) are not spaced
+separately, but put before musical columns.")
      (string-count ,integer? "The number of strings in a fret diagram.")
      (stroke-style ,string? "set to \"grace\" to turn stroke through flag on.")
      
      (style ,symbol? "This setting determines in what style a grob is
-typeset. Valid choices depend on the @code{print-function} that is
-reading this property.")
+typeset. Valid choices depend on the @code{stencil} callback reading
+this property.")
+     (styles ,list? "A list of style symbols.")   
      (text ,markup? "Text markup.  See @usermanref{Text markup}.")
 ;;FIXME -- Should both be the same?
      (text-direction ,ly:dir? "This controls the ordering of the
@@ -436,9 +428,7 @@ use LEFT.")
 @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.")
+     (transparent ,boolean? "This makes the grob invisible.")
      (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")
@@ -551,21 +541,19 @@ entries @code{name} and @code{interfaces}.")
 
 
      ;; TODO: use interface for this!
+     (quantized-positions ,number-pair? "Beam positions after quanting.")
      (chord-tremolo ,boolean? "if set, this beam is a tremolo. ")
      (begin-of-line-visible ,boolean? "Used for marking ChordNames that should only show changes.")
 
+     (quantize-position ,boolean? "If set, a vertical alignment is aligned to be within staff spaces.")
      (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.")
      (stem-info ,pair? "caching of stem parameters")
      (note-columns ,pair? "list of NoteColumn grobs.")
 
-     (position-callbacks ,list? "list of
-functions set spanner positions.")
-
 ;;; add-join would be enough if in Mensural_ligature::brew_ligature_primitive
 ;;; the next note could be seen
      (join-right-amount ,number? "")
@@ -575,7 +563,7 @@ functions set spanner positions.")
 
      ;; [TODO: change this]
      (primitive ,integer? "Pointer to a ligature primitive, i.e. an item similar to a note head that is part of a ligature. ")
-     (stencil ,ly:stencil? "Cached output of the print-function.")
+     (stencil ,ly:stencil? "The symbol to print.")
      (ideal-distances ,list? "(@var{obj} . (@var{dist} . @var{strength})) pairs.")
      (minimum-distances ,list? "list of rods, that have the format (@var{obj} . @var{dist}).")
 
@@ -583,14 +571,17 @@ functions set spanner positions.")
      (shorten ,ly:dimension? "The amount of space that a
 stem. Internally used to distribute beam shortening over stems. ")
      (slur ,ly:grob? "A pointer to a slur object")
+     (staff-hierarchy ,pair? "A nested list of staff symbol grobs.")
      (use-breve-rest ,boolean? "Use breve rests for measures longer
 than a whole rest.")
      
 
      (spaceable-staves ,ly:grob-array? "Objects to be spaced during page layout.")
 
+     
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      ;; ancient notation
-
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      ;;;;;;; TODO:
      ;; there are too many properties for ancient notation
      ;; probably neume-types (a list of symbols) would also work.