]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-interfaces.scm
Doc-de: update commitsh strings to reflect status as up-to-date
[lilypond.git] / scm / define-grob-interfaces.scm
index 23e5f4a0a9575a07c3fd34fd09050dc1fec74e2e..8d9c457037538c4bddd95e8d44ecaad4ee1c6105 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 1998--2011  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2012  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
@@ -36,6 +36,50 @@ note)."
  "The line between note heads for a pitch range."
  '(gap note-heads thickness))
 
+(ly:add-interface
+ 'bar-line-interface
+ "Print a special bar symbol.  It replaces the regular bar
+symbol with a special symbol.  The argument @var{bartype}
+is a string which specifies the kind of bar line to print.
+Options are @code{|}, @code{:|}, @code{|:}, @code{:|:}, @code{:|.|:},
+@code{:|.:}, @code{.}, @code{||}, @code{|.}, @code{.|}, @code{.|.},
+@code{|.|}, @code{:}, @code{dashed}, @code{'} and @code{S}.
+
+These produce, respectively, a normal bar line, a right repeat, a left repeat,
+a thick double repeat, a thin-thick-thin double repeat,
+a thin-thick double repeat, a thick bar, a double bar, a start bar,
+an end bar, a thick double bar, a thin-thick-thin bar,
+a dotted bar, a dashed bar, a tick as bar line and a segno bar.
+
+In addition, there is an option
+@code{||:} which is equivalent to @code{|:} except at line
+breaks, where it produces a double bar (@code{||}) at the
+end of the line and a repeat sign (@code{|:}) at the
+beginning of the new line.
+
+For segno, @code{S} produces a segno sign except at line breaks,
+where it produces a double bar (@code{||}) at the
+end of the line and a segno sign at the beginning of the new line.
+@code{|S} is equivalent to @code{S} but produces a simple bar line
+(@code{|}) instead of a double bar line (@code{||}) at line breaks.
+@code{S|} produces the segno sign at line breaks and starts the following
+line without special bar lines.
+
+@code{S|:} and @code{:|S} are used for repeat/segno combinations that are
+separated at line breaks.  Alternatively, @code{.S|:} and @code{:|S.}
+may be used which combine repeat signs and segno at the same line in
+case of a line break.  @code{:|S|:} is a combination of a left repeat
+(@code{:|}), a segno (@code{S}) and a right repeat @code{|:} which
+splits before the segno at line breaks; @code{:|S.|:} splits after
+the segno sign.
+
+If @var{bartype} is set to @code{empty} then nothing is
+printed, but a line break is allowed at that spot.
+
+@code{gap} is used for the gaps in dashed bar lines."
+ '(allow-span-bar bar-extent gap glyph glyph-name has-span-bar
+   hair-thickness kern thin-kern thick-thickness))
+
 (ly:add-interface
  'bass-figure-interface
  "A bass figure text."
@@ -81,6 +125,19 @@ note)."
  "A fingering instruction."
  '())
 
+(ly:add-interface
+ 'footnote-interface
+ "Make a footnote."
+ '(automatically-numbered
+   footnote
+   footnote-text
+   numbering-assertion-function))
+
+(ly:add-interface
+ 'footnote-spanner-interface
+ "Make a footnote spanner."
+ '(footnote-text spanner-placement))
+
 (ly:add-interface
  'fret-diagram-interface
  "A fret diagram"
@@ -90,13 +147,19 @@ note)."
 (ly:add-interface
   'glissando-interface
   "A glissando."
-  '())
+  '(glissando-index))
 
 (ly:add-interface
  'grace-spacing-interface
  "Keep track of durations in a run of grace notes."
  '(columns common-shortest-duration))
 
+(ly:add-interface
+ 'inline-accidental-interface
+ "An inlined accidental (i.e. normal accidentals, cautionary
+accidentals)."
+ '())
+
 (ly:add-interface
  'instrument-specific-markup-interface
  "Instrument-specific markup (like fret boards or harp pedal diagrams)."
@@ -107,6 +170,11 @@ note)."
  "A key cancellation."
  '())
 
+(ly:add-interface
+ 'ligature-head-interface
+ "A note head that can become part of a ligature."
+ '())
+
 (ly:add-interface
  'ligature-bracket-interface
  "A bracket indicating a ligature in the original edition."
@@ -188,6 +256,14 @@ interesting enough to maintain a hara-kiri staff."
  "Supports setting of spacing variables."
  '(spacing-increment shortest-duration-space))
 
+(ly:add-interface
+ 'span-bar-interface
+ "A bar line that is spanned between other barlines.
+  This interface is used for bar lines that connect different
+  staves."
+ '(glyph-name elements pure-Y-common pure-relevant-grobs
+   pure-relevant-items pure-relevant-spanners))
+
 (ly:add-interface
  'stanza-number-interface
  "A stanza number, to be put in from of a lyrics line."