X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fspanner.hh;h=e56560744e51b6d08c038e19b285a54e8156b475;hb=d3bfb37a84872d98f245ca416e4b6c1d9a147b71;hp=34339a18f96db4c95ce4027bc1f002c32e763748;hpb=b0064942493df77833e6e41e05d362850f4874b0;p=lilypond.git diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index 34339a18f9..e56560744e 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -1,14 +1,14 @@ /* spanner.hh -- part of GNU LilyPond - (c) 1996--2000 Han-Wen Nienhuys + (c) 1996--2002 Han-Wen Nienhuys */ #ifndef SPANNER_HH #define SPANNER_HH #include "lily-proto.hh" -#include "score-element.hh" +#include "grob.hh" #include "drul-array.hh" #include "rod.hh" @@ -29,35 +29,43 @@ length of stems of notes they encompass. */ -class Spanner : public Score_element { +class Spanner : public Grob { Drul_array spanned_drul_; - + public: - Link_array broken_into_l_arr_; + DECLARE_SCHEME_CALLBACK (set_spacing_rods, (SCM)); + + Link_array broken_intos_; + int break_index_; + // todo: move to somewhere else. + Real get_broken_left_end_align () const; + void substitute_one_mutable_property (SCM sym, SCM val) ; + bool fast_fubstitute_grob_list (SCM sym, SCM grob_list); // TODO: make virtual and do this for Items as well. Interval_t spanned_rank_iv (); - void set_bound (Direction d, Item*); + void set_bound (Direction d, Grob*); Item *get_bound (Direction d) const; Spanner (SCM); Spanner (Spanner const &); bool broken_b () const; void do_break (); + Real spanner_length () const; static int compare (Spanner * const &,Spanner * const &); - virtual Array get_rods () const; - virtual Array get_springs () const; - virtual Score_element* find_broken_piece (Line_of_score*) const; - virtual void do_derived_mark (); + virtual Grob* find_broken_piece (System*) const; + virtual SCM do_derived_mark () const; + static bool has_interface (Grob*); + virtual System *get_system () const; protected: void set_my_columns (); - VIRTUAL_COPY_CONS(Score_element); - Real get_broken_left_end_align () const; - virtual void do_space_processing (); + VIRTUAL_COPY_CONS (Grob); virtual void do_break_processing (); - Real spanner_length () const; - virtual Line_of_score*line_l () const; }; + +void add_bound_item (Spanner*, Grob*); +///DECLARE_UNSMOB (Spanner, spanner); + #endif