/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
efficient to add "fresh" stencils to what you're going to build.
* Do not create Stencil objects on the heap. That includes passing
- around Stencil* which are produced by unsmob_stencil(). Either
+ around Stencil* which are produced by unsmob<Stencil>(). Either
copy Stencil objects, or use SCM references.
* Empty stencils have empty dimensions. If add_at_edge is used to
DIMENSIONS = (Interval (0, 0), Interval (0, 0)
*/
-class Stencil
+class Stencil : public Simple_smob<Stencil>
{
+public:
+ SCM mark_smob () const;
+ static const char type_p_name_[];
+private:
Box dim_;
SCM expr_;
- DECLARE_SIMPLE_SMOBS (Stencil);
public:
Stencil (Box, SCM s);
Stencil ();
static SCM skylines_from_stencil (SCM, Real, Axis);
};
-DECLARE_UNSMOB (Stencil, stencil);
void interpret_stencil_expression (SCM expr,
- void (*func) (void *, SCM),
+ SCM (*func) (void *, SCM),
void *func_arg,
Offset o);
SCM find_expression_fonts (SCM expr);