]> git.donarmstrong.com Git - lilypond.git/blob - scm/interface-description.scm
25370f169afd30e4520e0a798450830aa8808258
[lilypond.git] / scm / interface-description.scm
1 ;;;; interface-description.scm -- part of generated backend documentation
2 ;;;;
3 ;;;;  source file of the GNU LilyPond music typesetter
4 ;;;; 
5 ;;;; (c)  1998--2003  Han-Wen Nienhuys <hanwen@cs.uu.nl>
6 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
7
8
9 ; should include default value?
10
11 (ly:add-interface
12 'note-name-interface
13  "Note name"
14  '(style))
15
16 (ly:add-interface
17  'dynamic-interface
18    "Any kind of loudness sign"
19    '()
20     )
21
22 (ly:add-interface
23  'finger-interface
24  "A fingering instruction"
25  '()
26  )
27
28 (ly:add-interface
29  'rhythmic-grob-interface
30  "Any object with a rhythmic basis. Used to determine which grobs 
31 are interesting enough to maintain a hara-kiri staff."
32  '()
33  )
34
35 (ly:add-interface
36  'ligature-interface
37  "A ligature"
38  '()
39  )
40
41 (ly:add-interface
42  'ligature-bracket-interface
43  "A bracket indicating a ligature in the original edition"
44  '(width thickness height ligature-primitive-callback))
45
46 (ly:add-interface
47  'mark-interface
48  "a rehearsal mark"
49  '(
50    ))
51
52 (ly:add-interface
53  'metronome-mark-interface
54  "a rehearsal mark"
55  '(
56    ))
57
58 ;;; todo: this is not typesetting info. Move to interpretation.
59 (ly:add-interface
60  'tablature-interface
61  "tablature notes"
62  '())
63
64
65
66 ;; todo: figure out where  to put this doco:
67
68 "
69 Grob properties form a name space where you can set variables per
70 object.  Each object however, may have multiple functions. For
71 example, consider a dynamic symbol, such @code{\ff} (fortissimo). It
72 is printed above or below the staff, it is a dynamic sign, and it is a
73 kind of text.
74
75 To reflect this different functions of a grob, procedures and variables
76 are grouped into so-called interfaces.  The dynamic text for example
77 supports the  following interfaces:
78 @table @code 
79 @item font-interface
80   The glyph is built from characters from a font, hence the
81 @code{font-interface}. For objects supporting @code{font-interface}, you
82 can select alternate fonts by setting @code{font-style},
83 @code{font-point-size}, etc.
84
85 @item dynamic-interface
86   Dynamic interface is not associated with any variable or function in
87 particular, but this makes it possible to distinguish this grob from
88 other similar grobs (like @code{TextScript}), that have no meaning of
89 dynamics.
90
91 @item text-interface
92   This interface is for texts that are to be set using special routines
93 to stack text into lines, using kerning, etc.
94
95 @item general-grob-interface
96   This interface is supported by all grob types.
97 @end table
98 "