X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fspanner.hh;h=255b21eaa82a245e10d81b48bceaa0227a3551ae;hb=refs%2Ftags%2Frelease%2F1.1.1;hp=074a555da2c7ab2e02dab150b57b2a6d1f4f4805;hpb=04f01c7e890bd4f1b358378e5911fb7c117c3802;p=lilypond.git diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index 074a555da2..255b21eaa8 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -1,19 +1,18 @@ /* spanner.hh -- part of GNU LilyPond - (c) 1996,97 Han-Wen Nienhuys + (c) 1996--1998 Han-Wen Nienhuys */ #ifndef SPANNER_HH #define SPANNER_HH #include "lily-proto.hh" -#include "score-elem.hh" +#include "score-element.hh" +#include "drul-array.hh" +#include "rod.hh" - -#define SPANNER_CLONE(T) VIRTUAL_COPY_CONS(T, Spanner) - -/** a symbol which is attached between two columns. A spanner is a +/** A symbol which is attached between two columns. A spanner is a symbol which spans across several columns, so its final appearance can only be calculated after the breaking problem is solved. @@ -33,25 +32,36 @@ length of stems of notes they encompass. */ -class Spanner:public virtual Score_elem { +class Spanner : public virtual Score_element { public: - PCol *left_col_l_, *right_col_l_; - - /* *************** */ - NAME_MEMBERS(Spanner); - virtual Spanner* spanner() { return this; } - Spanner(); - bool broken_b() const; - Spanner* find_broken_piece(Line_of_score*)const; + Drul_array spanned_drul_; + void set_bounds (Direction d, Item*); + + DECLARE_MY_RUNTIME_TYPEINFO; + Spanner (); + Spanner (Spanner const &); + bool broken_b () const; + virtual Array get_rods () const; + Spanner* find_broken_piece (Line_of_score*) const; protected: - SPANNER_CLONE(Spanner) - virtual void break_into_pieces(); - - Link_array broken_into_l_arr_; - - virtual void do_break_processing(); - virtual Interval do_width()const; - virtual void do_print()const; - virtual Line_of_score*line_l()const; + void set_my_columns (); + SCORE_ELEMENT_CLONE (Spanner); + + /** + this is virtual; for instance, Line_of_score overrides it. + */ + virtual void break_into_pieces (); + + Link_array broken_into_l_arr_; + Spanner * unbroken_original_l_; + + virtual void do_unlink (); + virtual void do_junk_links (); + virtual void do_brew_molecule (); + virtual void do_space_processing (); + virtual void do_break_processing (); + virtual Interval do_width () const; + virtual void do_print () const; + virtual Line_of_score*line_l () const; }; #endif