#ifdef __cplusplus extern "C" { #endif #pragma once #include "HROOT-coreType.h" #include "HROOTCoreTObject.h" #include "STDDeletable.h" #define TNAMED_DECL_VIRT(Type) \ void Type##_SetName ( Type##_p p, const char* name );\ void Type##_SetNameTitle ( Type##_p p, const char* name, const char* title );\ void Type##_SetTitle ( Type##_p p, const char* name ); #define TNAMED_DECL_NONVIRT(Type) \ Type##_p Type##_newTNamed ( const char* name, const char* title ); #define TNAMED_DECL_ACCESSOR(Type) \ #define TNAMED_DEF_VIRT(Type) \ void Type##_SetName ( Type##_p p, const char* name ) {\ ((TYPECASTMETHOD(Type, SetName, TNamed))(p))->SetName(name);\ }\ \ void Type##_SetNameTitle ( Type##_p p, const char* name, const char* title ) {\ ((TYPECASTMETHOD(Type, SetNameTitle, TNamed))(p))->SetNameTitle(name, title);\ }\ \ void Type##_SetTitle ( Type##_p p, const char* name ) {\ ((TYPECASTMETHOD(Type, SetTitle, TNamed))(p))->SetTitle(name);\ } #define TNAMED_DEF_NONVIRT(Type) \ Type##_p Type##_newTNamed ( const char* name, const char* title ) {\ Type* newp=new Type(name, title);return from_nonconst_to_nonconst(newp);\ } #define TNAMED_DEF_ACCESSOR(Type) \ TOBJECT_DECL_VIRT(TNamed) DELETABLE_DECL_VIRT(TNamed) TNAMED_DECL_VIRT(TNamed) TNAMED_DECL_NONVIRT(TNamed) TNAMED_DECL_ACCESSOR(TNamed) #ifdef __cplusplus } #endif