]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/align-interface.hh
release: 1.3.69
[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   static Real alignment_callback (Score_element *,Axis);
39   static void do_side_processing (Score_element*,Axis a);
40   static void set_axis (Score_element*,Axis);
41   static Axis axis (Score_element*) ;
42   static void add_element (Score_element*,Score_element*);
43   static int get_count (Score_element*,Score_element*);
44   static void set_interface (Score_element*);
45   static bool has_interface (Score_element*);
46   static Real center_on_element (Score_element *c, Axis);
47 };
48
49 #endif /* ALIGN_INTERFACE_HH */
50