X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Ftranslator-group.hh;h=a2c6f8de2dee344ee8c68c8dbf0f98c9a4c8ef2c;hb=aa2b5b377586a52fcb6b14d4dd464b94f6738560;hp=edad599eea6d6ff03babaa0be125ef11187c83a5;hpb=c39d188d28fdc84cef8cbaea7b8d6e2fb718c30f;p=lilypond.git diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index edad599eea..a2c6f8de2d 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2014 Han-Wen Nienhuys + Copyright (C) 1997--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 @@ -30,12 +30,12 @@ typedef void (*Translator_group_void_method) (Translator_group *); struct Translator_method_binding { Translator *translator_; - Translator_void_method_ptr method_; + Translator::Callback method_; Translator_method_binding () { } - Translator_method_binding (Translator *tr, Translator_void_method_ptr ptr) + Translator_method_binding (Translator *tr, Translator::Callback ptr) { translator_ = tr; method_ = ptr; @@ -47,11 +47,16 @@ struct Translator_method_binding } }; -class Translator_group +class Translator_group : public Smob { +public: + SCM mark_smob () const; + int print_smob (SCM, scm_print_state *) const; + static const char type_p_name_[]; + virtual ~Translator_group (); private: void precompute_method_bindings (); - vector + std::vector precomputed_method_bindings_[TRANSLATOR_METHOD_PRECOMPUTE_COUNT]; Translator_group_void_method @@ -59,13 +64,11 @@ private: SCM protected_events_; - DECLARE_LISTENER (create_child_translator); + void create_child_translator (SCM); public: - VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Translator_group); - DECLARE_SMOBS (Translator_group); + DECLARE_CLASSNAME (Translator_group); -public: virtual void connect_to_context (Context *c); virtual void disconnect_from_context (); virtual SCM get_simple_trans_list (); @@ -102,6 +105,5 @@ Translator_group *get_translator_group (SCM sym); #define foobar #define ADD_TRANSLATOR_GROUP(classname, desc, grobs, read, write) foobar -DECLARE_UNSMOB (Translator_group, translator_group); #endif // TRANSLATOR_GROUP_HH