lilypond-0.0.3
[lilypond.git] / item.hh
blob28b6b5604c6ddbdac05dd46d8fbf3ed4c8d1fdd4
1 #ifndef ITEM_HH
2 #define ITEM_HH
4 #include "glob.hh"
5 #include "boxes.hh"
6 #include "string.hh"
7 #include "tex.hh"
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 /**
18 PRE
19 c1 >= start, c2 <= stop
21 String TeXstring () const ;
22 Spanner();
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.
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;
38 PStaff *pstaff_;
39 /** needed for knowing at which staff to output this item
41 String TeXstring () const ;
42 Item();
44 /** An item must be part of a Column
47 #endif