]> git.donarmstrong.com Git - lilypond.git/blob - item.hh
release: 0.0.8
[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     
8 /// a horizontally fixed size element of the score
9 struct Item {
10     const PCol * col;
11     Molecule *output;
12     
13     PStaff *pstaff_;
14     /** needed for knowing at which staff to output this item
15     */
16
17     /****************/
18     
19     /// do calculations after determining horizontal spacing
20     virtual void postprocess();
21
22     /// do calculations before determining horizontal spacing
23     virtual void preprocess();
24     /**
25       This is executed directly after the item is added to the
26       PScore
27       */
28     
29     virtual Interval width() const;    
30     virtual Interval height() const;
31     String TeXstring () const ;
32     Item();
33     void print()const;
34     virtual ~Item();
35 };
36 /** Item is the datastructure for printables whose width is known
37   before the spacing is calculated
38
39   NB. This doesn't mean an Item has to initialize the output field before
40   spacing calculation. 
41   
42 */
43
44
45 #endif