X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-interfaces.scm;h=4ffd761607c788feef67edba4b1b1e5522bf78fb;hb=9e781b7dc83b60a543ce218aa1a5f139f74c760f;hp=2949afcfbc3b30bd9742019be0f8bc328bd9648b;hpb=6019a1e8f0301c1c3bf86ccc92178d820f9c3784;p=lilypond.git diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index 2949afcfbc..4ffd761607 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2010 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -17,6 +17,11 @@ ;;;; along with LilyPond. If not, see . +;; 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? @@ -29,7 +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. + +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 + thin-kern + thick-thickness)) (ly:add-interface 'bass-figure-interface @@ -44,7 +75,15 @@ note)." (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." + '()) (ly:add-interface 'dynamic-interface @@ -76,27 +115,61 @@ 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" - '(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." @@ -122,6 +195,12 @@ note)." "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." @@ -142,15 +221,29 @@ note)." "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 @@ -176,7 +269,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)) (ly:add-interface 'stanza-number-interface @@ -196,12 +302,15 @@ 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)) + '(details display-cautionary span-start)) (ly:add-interface 'trill-spanner-interface