]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
* scm/define-markup-commands.scm (justify-field): add.
[lilypond.git] / scm / define-grob-properties.scm
index e58197fe78a4245aaea78fe8734b3a3aa71871c1..e45f4bb914dba9565b36e5b66f52c4c7f996fc91 100644 (file)
@@ -2,22 +2,16 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c)  1998--2004  Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 1998--2005  Han-Wen Nienhuys <hanwen@cs.uu.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
-
-
 (define (define-grob-property symbol type? description)
   (if (not (equal? (object-property symbol 'backend-doc) #f))
-      (begin
-       (ly:warn-append "Redefining ~S" symbol)
-       (exit 2)
-      ))
+      (ly:error (_ "symbol ~S redefined") symbol))
   
   (set-object-property! symbol 'backend-type? type?)
   (set-object-property! symbol 'backend-doc description)
-  symbol
-  )
+  symbol)
 
 ;; put this in an alist?
 (define-public
@@ -46,15 +40,11 @@ called first.  The functions take a grob and axis argument. ")
     
      (align-dir ,ly:dir? "Which side to align? @code{-1}: left side,
 @code{0}: around center of width, @code{1}: right side.")
-     (arch-angle ,number? "Turning angle of the hook of a system brace" )
-     (arch-height ,ly:dimension? "Height of the hook of a system brace.")
-     (arch-thick ,number? "Thickness of the hook of system brace.")
-     (arch-width ,ly:dimension? "Width of the hook of a system brace.")
      (arpeggio-direction ,ly:dir? "If set, put an
 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.")
+where a horizontal beam fits that is larger than this number, make a kneed beam.")
      (axes ,list? "list of axis numbers.
 In the case of alignment grobs, this should contain only one number.")
 
@@ -83,7 +73,7 @@ Choices include @code{curved} and @code{straight}.")
      (beamed-extreme-minimum-free-lengths ,list? "list of extreme minimum free stem lengths (chord to beams) given beam multiplicity.")
 
      (beamed-stem-shorten ,list? "How much to shorten beamed stems,
-when their direction is forced. It is a  list, since the value is different
+when their direction is forced. It is a list, since the value is different
 depending on the number flags/beams.")
      (beaming ,pair?
              "Pair of number lists. Each number list specifies which
@@ -100,7 +90,6 @@ potential line breaks.")
      (bracket-flare ,number-pair? "A pair of numbers specifying how
 much edges of brackets should slant outward.  Value 0.0 means straight
 edges")
-     (bracket-thick ,number? "width of a system start bracket.")
      (break-align-symbol ,symbol? "This key is used for aligning and
 spacing breakable items.")
      (break-align-orders ,vector? " Defines the order in which
@@ -137,8 +126,11 @@ measure of the closeness of the inner stems. It is used for damping
 the slope of the beam.")
      (collapse-height ,ly:dimension? "Minimum height of system start delimiter.  If equal or smaller, the bracket is removed.")
 
-     ;;DOCME
+     (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.")
 
      (damping ,number? "Amount of beam slope damping. 0: no, 1: yes,
@@ -150,19 +142,20 @@ negative, no line is drawn at all.")
 dash-period. Should be between 0.0 (no line) and 1.0 (continuous
 line).")
 
-     ;; [FIXME: use dash-period/dash length; see text-spanner]
-     (dashed ,number? " number representing the length of the dashes.")
+     (arrow ,boolean? "Add an arrow to the line.")
+     (arrow-length ,number? "Arrow length.")
+     (arrow-width ,number? "Arrow width.")
+
      ;; todo: why is this tunable?
      (dir-function ,procedure? "The function to determine the
 direction of a beam. Choices include: 
 
 @table @code
-@item  beam-dir-majority
+@item beam-dir-majority
 number count of up or down notes
 @item beam-dir-mean
 mean center distance of all notes
-@item  beam-dir-median.
+@item beam-dir-median.
 mean center distance weighted per note
 @end table
 
@@ -267,7 +260,9 @@ slur. If set to false, the script places itself around the slur. If
 unset, script and slur ignore each other ")
      (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
+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.")
      (knee ,boolean? "Is this beam kneed?")
@@ -287,6 +282,7 @@ second for staff space. Both contributions are added.")
 left to a group of accidentals.")
      (length ,ly:dimension? "User override for the stem length of
 unbeamed stems.")
+     (length-fraction ,number? "Length of ledger line as fraction of note head size.")
      (lengths ,list? "Default stem lengths. The list gives a length
 for each flag-count.")
      (line-count ,integer? "The number of staff lines.")
@@ -305,6 +301,7 @@ polyphonic guitar notation. The value of this setting is used by
 collisions, even if they have a different number of dots. This normal
 notation for some types of polyphonic music. ")
 
+     (minimum-length-fraction ,number? "Minimum length of ledger line as fraction of note head size.")
      (minimum-distance ,ly:dimension? "Minimum distance between rest
 and notes or beam.")
      (minimum-X-extent ,number-pair? "Minimum size of an object in X
@@ -436,7 +433,9 @@ 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.")
      (string-count ,integer? "The number of strings in a fret diagram.")
      (stroke-style ,string? "set to \"grace\" to turn stroke through flag on.")
      
@@ -515,7 +514,8 @@ sizes (like the dynamic @b{p} and @b{f}) on their baselines.")
      (apply define-internal-grob-property x))
    
    `(
-     
+     (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")
      (after-line-breaking-callback ,procedure? "This procedure is called after line breaking. Its return value is ignored.")     
@@ -526,6 +526,8 @@ function is to protect objects from being garbage collected.")
      (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.")
@@ -597,8 +599,9 @@ debugging")
      (position-callbacks ,list? "list of
 functions set spanner positions.")
 
-;;; Junk me, replace it by add-join.
-     (join-left-amount ,number? "")
+;;; add-join would be enough if in Mensural_ligature::brew_ligature_primitive
+;;; the next note could be seen
+     (join-right-amount ,number? "")
 
      (delta-pitch ,number? "the interval between this and the next note, or, more precisely, their vertical distance; this is used in ligatures for calculation of the height of vertical joins flexa shapes")
      (head-width ,ly:dimension? "width of this ligature head")
@@ -612,7 +615,7 @@ functions set spanner positions.")
      (interfaces ,list? "list of symbols indicating the interfaces supported by this object. Is initialized from the @code{meta} field.")
      (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")
+     (slur ,ly:grob? "A pointer to a slur object")
      (use-breve-rest ,boolean? "Use breve rests for measures longer
 than a whole rest.")
      
@@ -639,7 +642,6 @@ than a whole rest.")
   
  
      (add-stem ,boolean? "is this ligature head a virga and therefore needs an additional stem on the right side?")
-     (join-left ,boolean? "is this ligature head joined with the previous one by a vertical line?")
      (context-info ,integer? "DOCME")
      (inclinatum ,boolean? "is this neume an inclinatum?")
      (oriscus ,boolean? "is this neume an oriscus?")