X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fgrob-array.hh;h=ccbf8c82a889e9ad89198606d510b0f963c4f8ee;hb=3e89af67bc6a9e3fd5d9a28db256608ac79510e0;hp=958c59d55e0707d486ec5731dda7cb433861a09b;hpb=82bc9ad690e201aaa55694f8b92261ae7338f56a;p=lilypond.git diff --git a/lily/include/grob-array.hh b/lily/include/grob-array.hh index 958c59d55e..ccbf8c82a8 100644 --- a/lily/include/grob-array.hh +++ b/lily/include/grob-array.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2005--2014 Han-Wen Nienhuys + Copyright (C) 2005--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 @@ -24,12 +24,16 @@ #include "smobs.hh" #include "std-vector.hh" -class Grob_array +class Grob_array : public Simple_smob { - vector grobs_; +public: + int print_smob (SCM, scm_print_state *) const; + SCM mark_smob () const; + static const char type_p_name_[]; +private: + std::vector grobs_; bool ordered_; - DECLARE_SIMPLE_SMOBS (Grob_array); Grob_array (); public: @@ -37,23 +41,21 @@ public: void set_ordered (bool b) { ordered_ = b; } Item *item (vsize i); Spanner *spanner (vsize i); - Grob *grob (vsize i) { return grobs_.at (i); } + Grob *grob (vsize i) const { return grobs_.at (i); } vsize size () const { return grobs_.size (); } bool empty () const; void remove_duplicates (); void clear (); void add (Grob *x) { grobs_.push_back (x); } - void set_array (vector const &src); - vector &array_reference (); - vector const &array () const; + void set_array (std::vector const &src); + std::vector &array_reference (); + std::vector const &array () const; static SCM make_array (); }; -DECLARE_UNSMOB (Grob_array, grob_array); -vector const &ly_scm2link_array (SCM x); +std::vector const &ly_scm2link_array (SCM x); SCM grob_list_to_grob_array (SCM lst); SCM grob_array_to_list (Grob_array *array); #endif /* GROB_ARRAY_HH */ -