/*
staff-side.hh -- declare Staff_side
- source file of the LilyPond music typesetter
+ source file of the GNU LilyPond music typesetter
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#ifndef STAFF_SIDE_HH
#define STAFF_SIDE_HH
-#include "staff-elem.hh"
+#include "score-elem.hh"
+#include "interval.hh"
-/// A symbol which sits along the staff
-class Staff_side {
- Array<Staff_elem*> support_l_arr_;
+/** A symbol which sits along a staff
- Staff_symbol * staff_sym_l_;
- Staff_elem * elem_l_;
+ Should override translate_y() ?
+ */
+class Staff_side : virtual Score_elem {
+ Link_array<Score_elem> support_l_arr_;
+ int staff_size_i_;
Interval support_height()const;
+ Staff_symbol* staff_sym_l_;
+ int get_position_i()const;
+
+ void read_staff_sym();
public:
- /**
+
+ /**
Vertical dir of symbol relative to staff. -1 = below staff?
*/
int dir_i_;
+ Interval sym_int_;
/// follow the support inside the staff?
bool inside_staff_b_;
- void set_staffsym(Staff_symbol*);
+ int pos_i_;
+
+ void set_staffsym(Staff_symbol * );
- Staff_side(Staff_elem*);
- void add_support(Staff_elem*);
+ Staff_side();
+ void add_support(Score_elem*);
+ NAME_MEMBERS();
protected:
- int get_position_i()const;
+ virtual Interval symbol_height() const;
+ virtual void do_substitute_dependency(Score_elem *, Score_elem*);
+ virtual void do_post_processing();
};
#endif // STAFF_SIDE_HH