]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/align-interface.hh
release: 1.3.68
[lilypond.git] / lily / include / align-interface.hh
1 /*
2   align-interface.hh -- declare Align_interface
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef ALIGN_INTERFACE_HH
11 #define ALIGN_INTERFACE_HH
12
13 #include "axes.hh"
14 #include "lily-proto.hh"
15
16 /*
17   TODO: rewrite this comment.
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 struct Align_interface  {
38   Score_element * elt_l_;
39   
40   Align_interface (Score_element const*);
41   static Real alignment_callback (Score_element *,Axis);
42   void do_side_processing (Axis a);
43   void set_axis (Axis);
44   Axis axis () const;
45   void add_element (Score_element*);
46   int get_count (Score_element*)const;
47   void set_interface ();
48   bool has_interface_b ();
49   static Real center_on_element (Score_element *c, Axis);
50 };
51
52 #endif /* ALIGN_INTERFACE_HH */
53