X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fgrob-interface.hh;h=f9fd7a48fbd179fd46f2111d05b3d0013892cda6;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=fb90e2e2bcf8f509a4312701562372b9e2171efa;hpb=b4d2043223a86826764bc531e684a864c97605fe;p=lilypond.git diff --git a/lily/include/grob-interface.hh b/lily/include/grob-interface.hh index fb90e2e2bc..f9fd7a48fb 100644 --- a/lily/include/grob-interface.hh +++ b/lily/include/grob-interface.hh @@ -3,30 +3,36 @@ source file of the GNU LilyPond music typesetter - (c) 2002--2005 Han-Wen Nienhuys + (c) 2002--2008 Han-Wen Nienhuys */ #ifndef INTERFACE_HH #define INTERFACE_HH -#include /* SCM */ +#include "lily-guile.hh" -#define ADD_INTERFACE(cl, a, b, c) \ +#define DECLARE_GROB_INTERFACE() \ + static SCM interface_symbol_; \ + static bool has_interface (Grob*) + +#define ADD_INTERFACE(cl, b, c) \ + SCM cl::interface_symbol_; \ bool cl::has_interface (Grob *me) \ { \ - return me->internal_has_interface (ly_symbol2scm (a)); \ + return me->internal_has_interface (interface_symbol_); \ } \ void cl ## _init_ifaces () \ { \ - add_interface (a, b, c); \ + cl::interface_symbol_ = add_interface (#cl, b, c); \ } \ ADD_SCM_INIT_FUNC (cl ## ifaces, cl ## _init_ifaces); -void add_interface (char const *symbol, +SCM add_interface (char const *cxx_name, char const *descr, char const *vars); SCM ly_add_interface (SCM, SCM, SCM); +void internal_add_interface (SCM, SCM, SCM); SCM ly_all_grob_interfaces (); #endif /* INTERFACE_HH */