+
/*
- scoreline.hh -- part of LilyPond
+ scoreline.hh -- part of GNU LilyPond
(c) 1996,97 Han-Wen Nienhuys
*/
#ifndef SCORELINE_HH
#define SCORELINE_HH
-#include "proto.hh"
-#include "plist.hh"
-#include "varray.hh"
-/// the columns of a score that form one line.
-struct
-Line_of_score {
- Link_list<PCol *> cols;
+#include "colhpos.hh"
+#include "spanner-elem-group.hh"
+/// the columns of a score that form one line.
+class Line_of_score : public Spanner_elem_group {
+public:
+ Link_array<Spanner_elem_group> line_arr_;
+ Link_array<PCol > cols;
bool error_mark_b_;
- // need to store height of each staff.
- Pointer_list<Line_of_staff*> staffs;
- PScore * pscore_l_; // needed to generate staffs
-
+ virtual String TeX_string() const;
+
/* *************** */
- void process() ;
- Line_of_score(Array<PCol *> sv, PScore *);
-
- String TeXstring() const;
-
- // is #c# contained in #*this#?
- bool element(PCol const *c);
+ NAME_MEMBERS(Line_of_score);
+ Line_of_score();
+
+ void add_line(Spanner_elem_group *);
+
+ /// is #c# contained in #*this#?
+ bool contains_b(PCol const *c)const;
+
+ Link_array<Line_of_score> get_lines()const;
+ void set_breaking(Array<Col_hpositions> const&);
+
+protected:
+ virtual void break_into_pieces();
+ virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void do_pre_processing();
+ virtual void do_post_processing();
+
+
+ SPANNER_CLONE(Line_of_score)
};
#endif
--- /dev/null
+/*
+ super-elem.hh -- declare Super_elem
+
+ source file of the LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef SUPER_ELEM_HH
+#define SUPER_ELEM_HH
+
+#include "score-elem.hh"
+/** The toplevel element. The PScore contains this element, and any
+ element shoud be a dependency for the super element.
+ */
+class Super_elem : public virtual Score_elem {
+public:
+ Link_array<Line_of_score> lines_arr_;
+ Line_of_score * line_of_score_l_;
+ void add_broken_line(Line_of_score*);
+ Super_elem();
+ virtual String TeX_string()const;
+protected:
+ virtual void do_substitute_dependency(Score_elem*,Score_elem*);
+ virtual void handle_broken_dependencies();
+
+ virtual void do_add_processing();
+ NAME_MEMBERS(Super_elem);
+};
+
+#endif // SUPER_ELEM_HH