X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fstencil.hh;h=c887be149c7ae1b858059e381bdd0e3abe93b264;hb=44ad1d66c072e4d6545e75c769c86a460cb1df13;hp=c8b6263e43ff4f63ef65561489e22c6bf8878668;hpb=be4f786099ef94bc10aa48eb706631e4c1bbf016;p=lilypond.git diff --git a/lily/include/stencil.hh b/lily/include/stencil.hh index c8b6263e43..c887be149c 100644 --- a/lily/include/stencil.hh +++ b/lily/include/stencil.hh @@ -3,12 +3,13 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2005 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ #ifndef STENCIL_HH #define STENCIL_HH #include // size_t +using namespace std; #include "lily-proto.hh" #include "box.hh" @@ -45,8 +46,6 @@ */ class Stencil { - friend SCM ly_stencil_set_extent_x (SCM, SCM, SCM); - /* This provides the reference point of the symbol, for example with characters, it is on the base line of the character. Usually, @@ -56,7 +55,7 @@ class Stencil Box dim_; SCM expr_; - DECLARE_SIMPLE_SMOBS (Stencil,); + DECLARE_SIMPLE_SMOBS (Stencil); public: Stencil (Box, SCM s); Stencil (); @@ -74,29 +73,26 @@ public: Real minimum); void add_stencil (Stencil const &m); void translate (Offset); + void rotate (Real, Offset); void align_to (Axis a, Real x); void translate_axis (Real, Axis); Interval extent (Axis) const; Box extent_box () const; bool is_empty () const; - Stencil in_color (Real r, Real g, Real b) const; - - static SCM ly_get_stencil_extent (SCM mol, SCM axis); - static SCM ly_set_stencil_extent_x (SCM, SCM, SCM); - static SCM ly_stencil_combined_at_edge (SCM, SCM, SCM, SCM, SCM); + Stencil in_color (Real r, Real g, Real b) const; }; DECLARE_UNSMOB (Stencil, stencil); -SCM fontify_atom (Font_metric const *, SCM atom); void interpret_stencil_expression (SCM expr, void (*func) (void *, SCM), void *func_arg, Offset o); - -Stencil create_stencil (SCM print); SCM find_expression_fonts (SCM expr); +void register_stencil_head (SCM symbol); +bool is_stencil_head (SCM symbol); +SCM all_stencil_heads (); #endif /* STENCIL_HH */