40#include <Inventor/SbBasic.h>
41#include <Inventor/SbString.h>
42#include <Inventor/SoType.h>
44#include <Inventor/Qt/SoQtBasic.h>
49 static SoType classTypeId;
57 static void init(
void);
64#if (SOQT_MAJOR_VERSION > 1)
65#error Resolve missing virtual destructor issue for the new major release!
74#define SOQT_SUN_CC_4_0_SOTYPE_INIT_BUG 0
76#if SOQT_SUN_CC_4_0_SOTYPE_INIT_BUG
77#define SOQT_STATIC_SOTYPE_INIT
79#define SOQT_STATIC_SOTYPE_INIT = SoType::badType()
90#define SOQT_OBJECT_ABSTRACT_HEADER(classname, parentname) \
92 static void initClass(void); \
93 static SoType getClassTypeId(void); \
94 virtual SoType getTypeId(void) const ; \
96 typedef parentname inherited; \
97 static SoType classTypeId
99#define SOQT_OBJECT_HEADER(classname, parentname) \
101 static void initClass(void); \
102 static SoType getClassTypeId(void); \
103 virtual SoType getTypeId(void) const; \
104 static void * createInstance(void); \
106 typedef parentname inherited; \
107 static SoType classTypeId
109#define SOQT_OBJECT_ABSTRACT_SOURCE(classname) \
110void classname::initClass(void) { \
111 assert(classname::classTypeId == SoType::badType()); \
112 classname::classTypeId = \
113 SoType::createType(inherited::getClassTypeId(), \
114 SO__QUOTE(classname)); \
116SoType classname::getClassTypeId(void) { \
117 return classname::classTypeId; \
119SoType classname::getTypeId(void) const { \
120 return classname::classTypeId; \
122SoType classname::classTypeId SOQT_STATIC_SOTYPE_INIT
124#define SOQT_OBJECT_SOURCE(classname) \
125void classname::initClass(void) { \
126 assert(classname::classTypeId == SoType::badType()); \
127 classname::classTypeId = \
128 SoType::createType(inherited::getClassTypeId(), \
129 SO__QUOTE(classname), \
130 classname::createInstance); \
132SoType classname::getClassTypeId(void) { \
133 return classname::classTypeId; \
135SoType classname::getTypeId(void) const { \
136 return classname::classTypeId; \
138void * classname::createInstance(void) { \
139 assert(classname::classTypeId != SoType::badType()); \
140 return (void *) new classname; \
142SoType classname::classTypeId SOQT_STATIC_SOTYPE_INIT
The SoQtObject class is the common superclass for all SoQt component classes.
Definition SoQtObject.h:48
virtual SoType getTypeId(void) const =0
static SoType getClassTypeId(void)
Definition SoQtObject.cpp:152
SbBool isOfType(SoType type) const
Definition SoQtObject.cpp:142
static void initClass(void)
Definition SoQtObject.cpp:130
static void init(void)
Definition SoQtObject.cpp:162