]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-interfaces.scm
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[lilypond.git] / scm / define-grob-interfaces.scm
index 12ecacfe063f21ebc0cc76bb190367926e0ac127..fe584ad40dca4cc6cdbcfe1a74aa3570fc34dbe9 100644 (file)
@@ -1,50 +1,85 @@
 ;;;; interface-description.scm -- part of generated backend documentation
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
-;;;; 
-;;;; (c)  1998--2003  Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;;
+;;;; (c) 1998--2006  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
-; should include default value?
+;; should include default value?
+
 
+(ly:add-interface
+ 'accidental-suggestion-interface
+   "An accidental, printed as a suggestion (typically: vertically over a note)"
+   '())
 
 (ly:add-interface
- 'cluster-beacon-interface
+ 'bass-figure-interface
+ "A bass figure text"
+ '(implicit))
 
- "A place holder for the cluster spanner to determine the vertical
-extents of a cluster spanner at this X position.
+(ly:add-interface
+ 'bend-after-interface
+ "A doit or drop."
+ '(thickness delta-position))
 
- "
- '(positions)
- )
+(ly:add-interface
+ 'bass-figure-alignment-interface
+ ""
+ '())
 
 (ly:add-interface
  'dynamic-interface
    "Any kind of loudness sign"
-   '()
-    )
+   '())
+
+(ly:add-interface
+ 'dynamic-line-spanner-interface
+   "Dynamic line spanner"
+   '(avoid-slur))
 
 (ly:add-interface
  'finger-interface
  "A fingering instruction"
- '()
- )
+ '())
+
+(ly:add-interface
+ 'fret-diagram-interface
+ "A fret diagram"
+ '(align-dir barre-type dot-color dot-radius finger-code fret-count
+  label-dir number-type size string-count
+  string-fret-finger-combinations thickness))
+
+(ly:add-interface
+ 'grace-spacing-interface
+ "Keep track of durations in a run of grace notes."
+ '(columns common-shortest-duration))
+
+(ly:add-interface
+ 'key-cancellation-interface
+ "A key cancellation"
+ '())
 
 (ly:add-interface
  'ligature-interface
  "A ligature"
- '()
- )
+ '())
+
+(ly:add-interface
+ 'key-cancellation-interface
+ "A key cancellation"
+ '())
 
 (ly:add-interface
  'ligature-bracket-interface
  "A bracket indicating a ligature in the original edition"
- '(width thickness height ligature-primitive-callback))
+ '(width thickness height))
+
 
 (ly:add-interface
  'lyric-syllable-interface
- "a single piece of lyrics"
+ "A single piece of lyrics"
  '())
 
 (ly:add-interface
@@ -54,21 +89,18 @@ extents of a cluster spanner at this X position.
 
 (ly:add-interface
  'mark-interface
- "a rehearsal mark"
+ "A rehearsal mark"
  '())
 
 (ly:add-interface
  'metronome-mark-interface
- "a rehearsal mark"
- '(
-   ))
-
+ "A metronome mark"
+ '())
 
 (ly:add-interface
  'multi-measure-interface
- "Multi measure rest, and friends (mmrest number, mmrest text)."
- '())
-
+ "Multi measure rest, and the text or number that is printed over it."
+ '(bound-padding))
 
 (ly:add-interface
 'note-name-interface
@@ -78,64 +110,73 @@ extents of a cluster spanner at this X position.
 (ly:add-interface
  'only-prebreak-interface
  "Kill this grob after the line breaking process."
- '() )
+ '())
+
+(ly:add-interface
+ 'parentheses-interface
+ "Parentheses for other objects"
+ '(padding stencils))
 
 (ly:add-interface
  'piano-pedal-interface
  "A piano pedal sign"
  '())
 
+(ly:add-interface
+ 'piano-pedal-script-interface
+ "A piano pedal sign, fixed size"
+ '())
+
+(ly:add-interface
+ 'pitched-trill-interface
+   "A note head to indicate trill pitches"
+   '(accidental-grob))
+
+(ly:add-interface
+ 'trill-pitch-accidental-interface
+ "An accidental for trill pitch"
+ '(accidentals))
 
 (ly:add-interface
  'rhythmic-grob-interface
- "Any object with a rhythmic basis. Used to determine which grobs 
-are interesting enough to maintain a hara-kiri staff."
- '()
- )
+ "Any object with a duration. Used to determine which grobs are
+interesting enough to maintain a hara-kiri staff."
+ '())
+
+
+(ly:add-interface
+ 'spacing-options-interface
+ "Supports setting of spacing variables"
+ '(spacing-increment shortest-duration-space))
 
 (ly:add-interface
  'stanza-number-interface
- ""
- '()
- )
+ "A stanza number, to be put in from of a lyrics line"
+ '())
+
+(ly:add-interface
+ 'string-number-interface
+ "A string number instruction"
+ '())
+
+(ly:add-interface
+ 'stroke-finger-interface
+ "A right hand finger instruction"
+ '(digit-names))
+
+(ly:add-interface
+ 'system-start-text-interface
+ "A text at the beginning of a system."
+ '(text long-text collapse-height style))
 
 ;;; todo: this is not typesetting info. Move to interpretation.
 (ly:add-interface
  'tablature-interface
- "tablature notes"
- '())
-
-
-;; todo: figure out where  to put this doco:
-
-"
-Grob properties form a name space where you can set variables per
-object.  Each object however, may have multiple functions. For
-example, consider a dynamic symbol, such @code{\ff} (fortissimo). It
-is printed above or below the staff, it is a dynamic sign, and it is a
-kind of text.
-
-To reflect this different functions of a grob, procedures and variables
-are grouped into so-called interfaces.  The dynamic text for example
-supports the  following interfaces:
-@table @code 
-@item font-interface
-  The glyph is built from characters from a font, hence the
-@code{font-interface}. For objects supporting @code{font-interface}, you
-can select alternate fonts by setting @code{font-style},
-@code{font-point-size}, etc.
-
-@item dynamic-interface
-  Dynamic interface is not associated with any variable or function in
-particular, but this makes it possible to distinguish this grob from
-other similar grobs (like @code{TextScript}), that have no meaning of
-dynamics.
-
-@item text-interface
-  This interface is for texts that are to be set using special routines
-to stack text into lines, using kerning, etc.
-
-@item general-grob-interface
-  This interface is supported by all grob types.
-@end table
-"
+ "An interface for any notes set in a tablature staff"
+ '())
+
+(ly:add-interface
+ 'vertically-spaceable-interface
+ "Objects that should be kept at constant vertical distances. Typically:
+@internalsref{VerticalAxisGroup} objects of @internalsref{Staff} contexts."
+ '())