;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;; Jan Nieuwenhuizen <janneke@gnu.org>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
+;; The interfaces defined here generally have no code (e.g.,
+;; dynamic-interface), or have callbacks defined entirely in
+;; scheme. Others interfaces are defined in lily/*.cc with the
+;; ADD_INTERFACE function.
+
;; should include default value?
(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.
+
+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
+ hair-thickness
+ has-span-bar
+ kern
+ rounded
+ segno-kern
+ thick-thickness))
(ly:add-interface
'bass-figure-interface
(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
"Dynamic text spanner."
'(text))
+(ly:add-interface
+ 'episema-interface
+ "An episema line."
+ '())
+
(ly:add-interface
'finger-interface
"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"
- '(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))
+
(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
+ '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)."
- '(fret-diagram-details harp-pedal-details size thickness))
+ '(fret-diagram-details graphical harp-pedal-details size thickness))
(ly:add-interface
'key-cancellation-interface
"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."
"A rehearsal mark."
'())
+(ly:add-interface
+ 'measure-counter-interface
+ "A counter for numbering measures."
+ '(columns
+ count-from))
+
(ly:add-interface
'metronome-mark-interface
"A metronome mark."
"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
(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))
(ly:add-interface
'stanza-number-interface
(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))
+ '(details display-cautionary span-start))
(ly:add-interface
'trill-spanner-interface
with @code{breakable=##t}."
'(breakable))
-(ly:add-interface
- 'vertically-spaceable-interface
- "Objects that should be kept at constant vertical distances. Typically:
-@rinternals{VerticalAxisGroup} objects of @rinternals{Staff} contexts."
- '())
-
(ly:add-interface
'volta-interface
"A volta repeat."