]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/staff-side.hh
patch::: 1.1.44.jcn1
[lilypond.git] / lily / include / staff-side.hh
1 /*
2   staff-side.hh -- declare Staff_side
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef STAFF_SIDE_HH
11 #define STAFF_SIDE_HH
12
13 #include "score-element.hh"
14 #include "interval.hh"
15 #include "direction.hh"
16 #include "staff-symbol-referencer.hh"
17
18 /**
19
20    A symbol which sits either below or above "something" (usually, a
21    staff).
22
23 */
24 class Staff_side : public  Staff_symbol_referencer 
25 {
26 public:
27
28   /**
29     Vertical dir of symbol relative to staff. -1 = below staff?
30     */
31   Direction dir_;
32   Axis axis_;
33   Interval sym_int_;
34     
35   Real coordinate_offset_f_;
36
37   /**
38      Add extra vertical space to the support symbols.
39    */
40   Real padding_f_;
41
42   Staff_side ();
43   void add_support (Score_element*);
44   
45     
46 protected:
47   virtual Interval symbol_height () const;
48   Interval symbol_extent () const;
49   virtual Real get_position_f () const;
50   virtual void do_substitute_element_pointer (Score_element *, Score_element*);
51   virtual void do_pre_processing ();
52   virtual void do_post_processing ();
53   virtual void do_add_processing ();
54   Interval support_extent () const;
55 private:
56   void do_side_processing ();
57   Link_array<Score_element> support_l_arr_;
58 };
59
60 #endif // STAFF_SIDE_HH