2 item.hh -- declare Item
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
14 #include "score-elem.hh"
17 A horizontally fixed size element of the score.
19 Item is the datastructure for printables whose width is known
20 before the spacing is calculated
22 NB. This doesn't mean an Item has to initialize the output field before
26 class Item : public virtual Score_elem {
28 /// indirection to the column it is in
31 Item * broken_to_a_[2];
33 /// should be put in a breakable col.
36 /// nobreak = 0, pre = -1, post = 1
37 int break_status_i()const;
38 Item * find_prebroken_piece (PCol*)const;
39 Item * find_prebroken_piece (Line_of_score*)const;
41 virtual Item *item() { return this; }
44 DECLARE_MY_RUNTIME_TYPEINFO;
45 virtual Line_of_score * line_l() const;
48 virtual void do_breakable_col_processing();
49 virtual void handle_prebroken_dependencies();
50 virtual void do_print()const;
52 void copy_breakable_items();