]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/align-element.hh
49d4e4bab1039c069efe7bbd5209a0edae45a415
[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   align-dir: deprecate! Use Side_pos_interface::self_align
40   
41
42 */
43 class Align_element : public virtual Axis_group_element {
44 public:
45   Interval threshold_interval_ ;
46
47   Axis axis () const;
48   
49   Align_element ();
50   void set_axis (Axis);
51   int get_count (Score_element*)const;
52 protected:
53   virtual void after_line_breaking () ;
54   virtual void before_line_breaking ();
55   virtual void do_side_processing ();
56 };
57 #endif // VERTICAL_ALIGN_ITEM_HH