]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/horizontal-align-item.hh
release: 0.0.68pre
[lilypond.git] / lily / include / horizontal-align-item.hh
1 /*
2   horizontal-align-item.hh -- declare Horizontal_align_item
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef HORIZONTAL_ALIGN_ITEM_HH
11 #define HORIZONTAL_ALIGN_ITEM_HH
12 #include "elem-group.hh"
13 #include "item.hh"
14
15 /**
16   Order elems left to right.
17
18   TODO: insert(order, elem)
19   */
20 class Horizontal_align_item :  public Item {
21 protected:
22     Link_array<Item> item_l_arr_;
23     Array<int> priority_i_arr_;
24     int align_i_;
25     
26 public:
27     NAME_MEMBERS();
28     SCORE_ELEM_CLONE(Horizontal_align_item)
29     void add(Item*, int p);
30     Horizontal_align_item();
31 protected:
32     virtual void do_substitute_dependency(Score_elem * , Score_elem *);
33     /// do calculations before determining horizontal spacing
34     virtual void do_pre_processing();
35     virtual void do_print()const;
36     virtual Interval do_width()const;
37     bool contains_b(Item*)const;
38 };
39 #endif // HORIZONTAL_ALIGN_ITEM_HH