/*
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
#include <set>
-class Grob
+class Grob : public Smob<Grob>
{
+public:
+ int print_smob (SCM, scm_print_state *);
+ SCM mark_smob ();
+ static const char type_p_name_[];
+ virtual ~Grob ();
private:
- DECLARE_SMOBS (Grob);
DECLARE_CLASSNAME (Grob);
void init ();
void internal_set_property (SCM sym, SCM val);
/* messages */
- void warning (string) const;
- void programming_error (string) const;
+ void warning (const string&) const;
+ void programming_error (const string&) const;
/* class hierarchy */
virtual System *get_system () const;
static SCM internal_skylines_from_element_stencils (SCM, Axis);
};
-/* smob utilities */
-DECLARE_UNSMOB (Grob, grob);
-Spanner *unsmob_spanner (SCM);
-Item *unsmob_item (SCM);
+/* unification */
+void uniquify (vector <Grob *> &);
/* refpoints */
Grob *common_refpoint_of_list (SCM elt_list, Grob *, Axis a);