]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/translator.hh
Issue 4899/2: Revert "Issue 4885/3: Remove ack_finder/ack_find_base"
[lilypond.git] / lily / include / translator.hh
index 0adc835c09f02fa1b0bee4b8c671b1427df97e1d..5197305ea280057977b37a79567998e0a6dc48c3 100644 (file)
@@ -38,7 +38,8 @@
   /* end #define */
 
 #define TRANSLATOR_INHERIT(BASE)                                        \
-  using BASE::method_finder
+  using BASE::method_finder;                                            \
+  using BASE::ack_finder;
 
 #define DECLARE_TRANSLATOR_CALLBACKS(NAME)                              \
   template <void (NAME::*mf)()>                                         \
@@ -48,6 +49,8 @@
   {                                                                     \
     return Callback_wrapper::make_smob<trampoline<NAME, mf> > ();       \
   }                                                                     \
+  template <void (NAME::*callback)(Grob_info)>                          \
+  static SCM ack_finder () { return ack_find_base<NAME, callback> (); } \
   /* end #define */
 
 /*
@@ -161,6 +164,15 @@ protected:                      // should be private.
   static SCM
   method_finder () { return SCM_UNDEFINED; }
 
+  // Overriden in Engraver.
+  template <class T, void (T::*callback)(Grob_info)>
+  static SCM
+  ack_find_base () { return SCM_UNDEFINED; }
+
+  template <void (Translator::*)(Grob_info)>
+  static SCM
+  ack_finder () { return SCM_UNDEFINED; }
+
   virtual void derived_mark () const;
   static SCM event_class_symbol (const char *ev_class);
   SCM static_translator_description (const char *grobs,