#ifdef __cplusplus extern "C" { #endif #pragma once #include "HROOT-coreType.h" #include "STDDeletable.h" #include "stdcxxType.h" #define TOBJECT_DECL_VIRT(Type) \ void Type##_Clear ( Type##_p p, const char* option );\ void Type##_Draw ( Type##_p p, const char* option );\ TObject_p Type##_FindObject ( Type##_p p, const char* name );\ const char* Type##_GetName ( Type##_p p );\ TClass_p Type##_IsA ( Type##_p p );\ void Type##_Paint ( Type##_p p, const char* option );\ void Type##_printObj ( Type##_p p, const char* option );\ void Type##_SaveAs ( Type##_p p, const char* filename, const char* option );\ int Type##_Write ( Type##_p p, const char* name, int option, int bufsize );\ int Type##_Write_ ( Type##_p p ); #define TOBJECT_DECL_NONVIRT(Type) \ Type##_p Type##_newTObject ( );\ bool Type##_tObject_GetObjectStat ( ); #define TOBJECT_DECL_ACCESSOR(Type) \ #define TOBJECT_DEF_VIRT(Type) \ void Type##_Clear ( Type##_p p, const char* option ) {\ ((TYPECASTMETHOD(Type, Clear, TObject))(p))->Clear(option);\ }\ \ void Type##_Draw ( Type##_p p, const char* option ) {\ ((TYPECASTMETHOD(Type, Draw, TObject))(p))->Draw(option);\ }\ \ TObject_p Type##_FindObject ( Type##_p p, const char* name ) {\ return from_nonconst_to_nonconst((TObject*)((TYPECASTMETHOD(Type, FindObject, TObject))(p))->FindObject(name));\ }\ \ const char* Type##_GetName ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, GetName, TObject))(p))->GetName();\ }\ \ TClass_p Type##_IsA ( Type##_p p ) {\ return from_nonconst_to_nonconst((TClass*)((TYPECASTMETHOD(Type, IsA, TObject))(p))->IsA());\ }\ \ void Type##_Paint ( Type##_p p, const char* option ) {\ ((TYPECASTMETHOD(Type, Paint, TObject))(p))->Paint(option);\ }\ \ void Type##_printObj ( Type##_p p, const char* option ) {\ ((TYPECASTMETHOD(Type, printObj, TObject))(p))->Print(option);\ }\ \ void Type##_SaveAs ( Type##_p p, const char* filename, const char* option ) {\ ((TYPECASTMETHOD(Type, SaveAs, TObject))(p))->SaveAs(filename, option);\ }\ \ int Type##_Write ( Type##_p p, const char* name, int option, int bufsize ) {\ return ((TYPECASTMETHOD(Type, Write, TObject))(p))->Write(name, option, bufsize);\ }\ \ int Type##_Write_ ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, Write_, TObject))(p))->Write();\ } #define TOBJECT_DEF_NONVIRT(Type) \ Type##_p Type##_newTObject ( ) {\ Type* newp=new Type();return from_nonconst_to_nonconst(newp);\ }\ \ bool Type##_tObject_GetObjectStat ( ) {\ return TObject::GetObjectStat();\ } #define TOBJECT_DEF_ACCESSOR(Type) \ DELETABLE_DECL_VIRT(TObject) TOBJECT_DECL_VIRT(TObject) TOBJECT_DECL_NONVIRT(TObject) TOBJECT_DECL_ACCESSOR(TObject) #ifdef __cplusplus } #endif