]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/staff-side.hh
release: 0.0.74pre
[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 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef STAFF_SIDE_HH
11 #define STAFF_SIDE_HH
12
13 #include "score-elem.hh"
14 #include "interval.hh"
15
16 /** A symbol which sits along a staff
17
18   Should override translate_y() ?
19   */
20 class Staff_side : virtual Score_elem {
21     Link_array<Score_elem> support_l_arr_;
22     int staff_size_i_;
23     Interval support_height()const;
24     Staff_symbol* staff_sym_l_;
25     int get_position_i()const;
26
27     void read_staff_sym();
28 public:
29
30     /**
31       Vertical dir of symbol relative to staff. -1 = below staff?
32       */
33     int dir_i_;
34     Interval sym_int_;
35     
36     /// follow the support inside the staff?
37     bool inside_staff_b_;
38
39     int pos_i_;
40
41     void set_staffsym(Staff_symbol *  );
42   
43     Staff_side();
44     void add_support(Score_elem*);
45     NAME_MEMBERS();
46     
47 protected:
48     virtual Interval symbol_height() const;
49     virtual void do_substitute_dependency(Score_elem *, Score_elem*);
50     virtual void do_post_processing();
51 };
52 #endif // STAFF_SIDE_HH