/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1996--2012 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
is absolutely necessary for beams, since they have to adjust the
length of stems of notes they encompass.
*/
-class Spanner : public Grob
+
+struct Preinit_Spanner
{
Drul_array<Item *> spanned_drul_;
+ SCM pure_property_cache_;
+ Preinit_Spanner ();
+};
+
+class Spanner : Preinit_Spanner, public Grob
+{
vsize break_index_;
DECLARE_CLASSNAME (Spanner);
static bool less (Spanner *const &, Spanner *const &);
virtual Grob *find_broken_piece (System *) const;
virtual void derived_mark () const;
- DECLARE_GROB_INTERFACE ();
virtual System *get_system () const;
SCM get_cached_pure_property (SCM sym, int start, int end);
void cache_pure_property (SCM sym, int start, int end, SCM value);
protected:
- SCM pure_property_cache_;
-
void set_my_columns ();
virtual Grob *clone () const;
virtual void do_break_processing ();