]> git.donarmstrong.com Git - lilypond.git/blob - item.hh
release: 0.0.2
[lilypond.git] / item.hh
1 #ifndef ITEM_HH
2 #define ITEM_HH
3
4 #include "glob.hh"
5 #include "boxes.hh"
6 #include "string.hh"
7 #include "tex.hh"
8
9 /// a symbol which is attached between two columns.
10 struct Spanner {
11     const PCol *left, *right;
12     Stretchable_symbol *strets;
13     PStaff * pstaff_;
14     ///      clone a piece of  this spanner.
15     Spanner *broken_at(const PCol *c1, const PCol *c2) const; 
16     /**
17  
18     PRE
19     c1 >= start, c2  <= stop
20     */
21     String TeXstring () const ;
22     Spanner();
23 };
24 /** Spanner should know about the items which it should consider:
25     e.g. slurs should be steep enough to "enclose" all those items. This
26     is absolutely necessary for beams, since they have to adjust the
27     length of stems of notes they encompass.
28
29     */
30     
31 /// a fixed size element of the score
32 struct Item {
33     virtual Interval width() const;    
34     virtual Interval height() const;
35     const PCol * col;
36     Output *output;
37     
38     PStaff *pstaff_;
39     /** needed for knowing at which staff to output this item
40     */
41     String TeXstring () const ;
42     Item();
43 };
44 /** An item must be part of a Column
45 */
46
47 #endif