X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fspanner.hh;h=788b0e46ee46e1ef4889862b58d8c1bd4ed5a04e;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=e0f461a7dbc137acd7bf015cbf4984ea36dbba90;hpb=608a22622286e46de0f4b6ad78e6a349eab9332a;p=lilypond.git diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index e0f461a7db..788b0e46ee 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1996--2011 Han-Wen Nienhuys + Copyright (C) 1996--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,18 +44,26 @@ class Spanner : public Grob Drul_array spanned_drul_; vsize break_index_; - DECLARE_CLASSNAME(Spanner); + DECLARE_CLASSNAME (Spanner); public: DECLARE_SCHEME_CALLBACK (set_spacing_rods, (SCM)); + DECLARE_SCHEME_CALLBACK (calc_normalized_endpoints, (SCM)); DECLARE_SCHEME_CALLBACK (bounds_width, (SCM)); DECLARE_SCHEME_CALLBACK (kill_zero_spanned_time, (SCM)); - vector broken_intos_; + static Spanner *unsmob (SCM s) { + return dynamic_cast (Grob::unsmob (s)); + } + static bool is_smob (SCM s) { + return Grob::is_smob (s) && unsmob (s); + } + + vector broken_intos_; vsize get_break_index () const; Spanner *broken_neighbor (Direction d) const; - + // todo: move to somewhere else. Real get_broken_left_end_align () const; void substitute_one_mutable_property (SCM sym, SCM val); @@ -75,7 +83,7 @@ public: static bool less (Spanner *const &, Spanner *const &); virtual Grob *find_broken_piece (System *) const; virtual void derived_mark () const; - DECLARE_GROB_INTERFACE(); + DECLARE_GROB_INTERFACE (); virtual System *get_system () const; SCM get_cached_pure_property (SCM sym, int start, int end);