]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/align-element.hh
patch::: 1.3.35.jcn1
[lilypond.git] / lily / include / align-element.hh
1 /*
2   align-item.hh -- declare Align_elem
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef VERTICAL_ALIGN_ITEM_HH
11 #define VERTICAL_ALIGN_ITEM_HH
12
13 #include "axis-group-element.hh"
14 #include "interval.hh"
15 #include "direction.hh"
16 #include "axes.hh"
17 #include "hash-table.hh"
18
19 /**
20   Order elements top to bottom/left to right/right to left etc..
21
22   TODO: implement padding.
23
24   document usage of this.
25
26
27
28   *******
29   
30   element properties
31
32   stacking-dir
33   
34   Which side to align?  -1: left side, 0: centered (around
35      center_l_ if not nil, or around center of width), 1: right side
36
37
38 */
39 class Align_element : public virtual Axis_group_element {
40 public:
41   Axis axis () const;
42
43   void set_axis (Axis);
44   int get_count (Score_element*)const;
45   void add_element (Score_element *);
46   static Real alignment_callback (Dimension_cache const *);
47 protected:
48   virtual void do_side_processing (Axis);
49   
50 };
51 #endif // VERTICAL_ALIGN_ITEM_HH