]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grob-interfaces.scm
Add '-dcrop' option to ps and svg backends
[lilypond.git] / scm / define-grob-interfaces.scm
index eb76e96e0b53e76bccc60a281543bb0013700f09..31188d0d8ea8156e1b762a7512522fbc39f120de 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 1998--2012  Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2015  Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
@@ -34,51 +34,33 @@ note)."
 (ly:add-interface
  'ambitus-interface
  "The line between note heads for a pitch range."
- '(gap note-heads thickness))
+ '(gap
+   length-fraction
+   maximum-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.
+
+The list of allowed glyphs and predefined bar lines can be
+found in @file{scm/bar-line.scm}.
 
 @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))
+ '(allow-span-bar
+   bar-extent
+   gap
+   glyph
+   glyph-name
+   hair-thickness
+   has-span-bar
+   kern
+   rounded
+   segno-kern
+   thick-thickness))
 
 (ly:add-interface
  'bass-figure-interface
@@ -93,7 +75,15 @@ printed, but a line break is allowed at that spot.
 (ly:add-interface
  'bend-after-interface
  "A doit or drop."
- '(thickness delta-position))
+ '(delta-position
+   thickness))
+
+(ly:add-interface
+ 'clef-modifier-interface
+ "The number describing transposition of the clef, placed below
+or above clef sign. Usually this is 8 (octave transposition)
+or 15 (two octaves), but LilyPond allows any integer here."
+ '(clef-alignments))
 
 (ly:add-interface
  'dynamic-interface
@@ -136,23 +126,33 @@ printed, but a line break is allowed at that spot.
 (ly:add-interface
  'footnote-spanner-interface
  "Make a footnote spanner."
- '(footnote-text spanner-placement))
+ '(footnote-text
+   spanner-placement))
 
 (ly:add-interface
  'fret-diagram-interface
  "A fret diagram"
- '(align-dir fret-diagram-details size dot-placement-list
+ '(align-dir
+   dot-placement-list
+   fret-diagram-details
+   size
    thickness))
 
 (ly:add-interface
 'glissando-interface
 "A glissando."
 '(glissando-index))
+ '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))
+ '(columns
+   common-shortest-duration))
+
+(ly:add-interface
+ 'horizontal-bracket-text-interface
+ "Label for an analysis bracket."
+ '(bracket columns))
 
 (ly:add-interface
  'inline-accidental-interface
@@ -200,6 +200,13 @@ accidentals)."
  "A rehearsal mark."
  '())
 
+(ly:add-interface
+ 'measure-counter-interface
+ "A counter for numbering measures."
+ '(columns
+   count-from
+   spacing-pair))
+
 (ly:add-interface
  'metronome-mark-interface
  "A metronome mark."
@@ -216,27 +223,38 @@ accidentals)."
  '())
 
 (ly:add-interface
- 'octavate-eight-interface
-  "Interface that permits the nominal identification of the octavian
-annotation that multiplies by two the freqency of the pitches present
-in a given staff were they played on a clef that lacked said octavian
-annotation."
-  '())
+ 'number-interface
+ "Numbers."
+ '(number-type))
 
 (ly:add-interface
  'only-prebreak-interface
  "Kill this grob after the line breaking process."
  '())
 
+(ly:add-interface
+ 'outside-staff-axis-group-interface
+ "A vertical axis group on which outside-staff skyline calculations are done."
+ '(outside-staff-placement-directive vertical-skyline-elements))
+
+(ly:add-interface
+ 'outside-staff-interface
+ "A grob that could be placed outside staff."
+ '(outside-staff-horizontal-padding outside-staff-padding outside-staff-priority))
+
 (ly:add-interface
  'parentheses-interface
  "Parentheses for other objects."
- '(padding stencils))
+ '(padding
+   stencils))
 
 (ly:add-interface
  'percent-repeat-interface
  "Beat, Double and single measure repeats."
- '(dot-negative-kern slash-negative-kern slope thickness))
+ '(dot-negative-kern
+   slash-negative-kern
+   slope
+   thickness))
 
 (ly:add-interface
  'piano-pedal-interface
@@ -262,15 +280,20 @@ interesting enough to maintain a hara-kiri staff."
 (ly:add-interface
  'spacing-options-interface
  "Supports setting of spacing variables."
- '(spacing-increment shortest-duration-space))
+ '(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))
+ '(glyph-name
+   elements
+   pure-Y-common
+   pure-relevant-grobs
+   pure-relevant-items
+   pure-relevant-spanners))
 
 (ly:add-interface
  'stanza-number-interface
@@ -290,13 +313,34 @@ interesting enough to maintain a hara-kiri staff."
 (ly:add-interface
  'system-start-text-interface
  "Text in front of the system."
- '(long-text self-alignment-X self-alignment-Y text))
+ '(long-text
+   self-alignment-X
+   self-alignment-Y
+   text))
 
 (ly:add-interface
  'tab-note-head-interface
  "A note head in tablature."
  '(details display-cautionary span-start))
 
+(ly:add-interface
+ 'time-signature-interface
+ "A time signature, in different styles.  The following values for @code{style} are are recognized:
+
+ @table @code
+ @item C
+ 4/4 and 2/2 are typeset as C and struck C, respectively. All other time signatures are written with two digits. The value @code{default} is equivalent to @code{C}.
+ @item neomensural
+ 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8, and 9/8 are typeset with neo-mensural style mensuration marks.  All other time signatures are written with two digits.
+ @item mensural
+ 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8, and 9/8 are typeset with mensural style mensuration marks.  All other time signatures are written with two digits.
+ @item single-digit
+ All time signatures are typeset with a single digit, e.g., 3/2 is written as 3.
+ @item numbered
+ All time signatures are typeset with two digits.
+ @end table"
+ '(fraction style))
+
 (ly:add-interface
  'trill-spanner-interface
  "A trill spanner."