]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-properties.scm
*** empty log message ***
[lilypond.git] / scm / define-grob-properties.scm
index d38ce94d100e0742704bcb58bedbe14d2b4f8d71..a8563388e5f21dd392bac85c1ac8fb6c028f8b2d 100644 (file)
@@ -2,22 +2,16 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
 ;;;;
 ;;;;  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>
 
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
-
-
 (define (define-grob-property symbol type? description)
   (if (not (equal? (object-property symbol 'backend-doc) #f))
 (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)
   
   (set-object-property! symbol 'backend-type? type?)
   (set-object-property! symbol 'backend-doc description)
-  symbol
-  )
+  symbol)
 
 ;; put this in an alist?
 (define-public
 
 ;; put this in an alist?
 (define-public
@@ -54,7 +48,7 @@ called first.  The functions take a grob and axis argument. ")
 arrow on the arpeggio squiggly line.")
   
      (auto-knee-gap ,ly:dimension? "If a gap is found between note heads
 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.")
 
      (axes ,list? "list of axis numbers.
 In the case of alignment grobs, this should contain only one number.")
 
@@ -83,7 +77,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,
      (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
 depending on the number flags/beams.")
      (beaming ,pair?
              "Pair of number lists. Each number list specifies which
@@ -137,6 +131,8 @@ 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.")
 
 the slope of the beam.")
      (collapse-height ,ly:dimension? "Minimum height of system start delimiter.  If equal or smaller, the bracket is removed.")
 
+     (color ,color? "The color of this grob.")
+
      (context ,ly:context? "Originating context of the grob")
      
      ;;DOCME
      (context ,ly:context? "Originating context of the grob")
      
      ;;DOCME
@@ -151,19 +147,16 @@ negative, no line is drawn at all.")
 dash-period. Should be between 0.0 (no line) and 1.0 (continuous
 line).")
 
 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.")
      ;; todo: why is this tunable?
      (dir-function ,procedure? "The function to determine the
 direction of a beam. Choices include: 
 
 @table @code
      ;; 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
 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
 
 mean center distance weighted per note
 @end table
 
@@ -268,7 +261,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.")
 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?")
      (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?")
@@ -288,6 +283,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.")
 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.")
      (lengths ,list? "Default stem lengths. The list gives a length
 for each flag-count.")
      (line-count ,integer? "The number of staff lines.")
@@ -306,6 +302,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. ")
 
 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
      (minimum-distance ,ly:dimension? "Minimum distance between rest
 and notes or beam.")
      (minimum-X-extent ,number-pair? "Minimum size of an object in X
@@ -437,7 +434,9 @@ stems that are placed in tight configurations. For opposite
 directions, this amount is the correction for two normal sized stems
 that overlap completely.")
 
 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.")
      
      (string-count ,integer? "The number of strings in a fret diagram.")
      (stroke-style ,string? "set to \"grace\" to turn stroke through flag on.")
      
@@ -516,7 +515,8 @@ sizes (like the dynamic @b{p} and @b{f}) on their baselines.")
      (apply define-internal-grob-property x))
    
    `(
      (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.")     
      (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.")     
@@ -527,6 +527,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).")
      (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.")
      (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.")
@@ -598,8 +600,9 @@ debugging")
      (position-callbacks ,list? "list of
 functions set spanner positions.")
 
      (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")
 
      (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")
@@ -613,7 +616,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. ")
      (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.")
      
      (use-breve-rest ,boolean? "Use breve rests for measures longer
 than a whole rest.")
      
@@ -640,7 +643,6 @@ than a whole rest.")
   
  
      (add-stem ,boolean? "is this ligature head a virga and therefore needs an additional stem on the right side?")
   
  
      (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?")
      (context-info ,integer? "DOCME")
      (inclinatum ,boolean? "is this neume an inclinatum?")
      (oriscus ,boolean? "is this neume an oriscus?")