53 #include "vtkSetGet.h"
57 class vtkSubjectHelper;
71 void*
operator new(
size_t tSize );
72 void operator delete(
void* p );
76 virtual void DebugOn();
79 virtual void DebugOff();
82 unsigned char GetDebug();
85 void SetDebug(
unsigned char debugFlag);
89 static void BreakOnError();
95 virtual void Modified();
98 virtual unsigned long GetMTime();
109 static void SetGlobalWarningDisplay(
int val);
113 static int GetGlobalWarningDisplay();
127 unsigned long AddObserver(
unsigned long event,
vtkCommand *,
128 float priority=0.0f);
129 unsigned long AddObserver(
const char *event,
vtkCommand *,
130 float priority=0.0f);
133 void RemoveObservers(
unsigned long event,
vtkCommand *);
134 void RemoveObservers(
const char *event,
vtkCommand *);
135 int HasObserver(
unsigned long event,
vtkCommand *);
136 int HasObserver(
const char *event,
vtkCommand *);
138 void RemoveObserver(
unsigned long tag);
139 void RemoveObservers(
unsigned long event);
140 void RemoveObservers(
const char *event);
141 void RemoveAllObservers();
142 int HasObserver(
unsigned long event);
143 int HasObserver(
const char *event);
166 template <
class U,
class T>
168 U observer,
void (T::*callback)(),
float priority=0.0f)
170 vtkClassMemberCallback<T> *callable =
171 new vtkClassMemberCallback<T>(observer, callback);
174 return this->AddTemplatedObserver(event, callable, priority);
176 template <
class U,
class T>
178 U observer,
void (T::*callback)(
vtkObject*,
unsigned long,
void*),
181 vtkClassMemberCallback<T> *callable =
182 new vtkClassMemberCallback<T>(observer, callback);
185 return this->AddTemplatedObserver(event, callable, priority);
195 int InvokeEvent(
unsigned long event,
void *callData);
196 int InvokeEvent(
const char *event,
void *callData);
224 void InternalReleaseFocus();
238 class vtkClassMemberCallbackBase
243 virtual void operator()(
vtkObject*,
unsigned long,
void*) = 0;
244 virtual ~vtkClassMemberCallbackBase(){}
252 class vtkClassMemberHandlerPointer
259 if ((this->VoidPointer = dynamic_cast<T*>(o)) == 0)
262 this->VoidPointer = o;
264 this->WeakPointer = o;
265 this->UseWeakPointer =
true;
267 void operator=(
void *o)
269 this->VoidPointer = o;
270 this->WeakPointer = 0;
271 this->UseWeakPointer =
false;
275 if (this->UseWeakPointer && !this->WeakPointer.GetPointer())
279 return static_cast<T*
>(this->VoidPointer);
291 class vtkClassMemberCallback :
public vtkClassMemberCallbackBase
293 vtkClassMemberHandlerPointer<T> Handler;
294 void (T::*Method1)();
295 void (T::*Method2)(
vtkObject*,
unsigned long,
void*);
299 vtkClassMemberCallback(T* handler,
void (T::*method)())
301 this->Handler = handler;
302 this->Method1 = method;
303 this->Method2 = NULL;
306 vtkClassMemberCallback(
307 T* handler,
void (T::*method)(
vtkObject*,
unsigned long,
void*))
309 this->Handler = handler;
310 this->Method1 = NULL;
311 this->Method2 = method;
313 virtual ~vtkClassMemberCallback() { }
316 virtual void operator()(
317 vtkObject* caller,
unsigned long event,
void* calldata)
324 (handler->*this->Method1)();
326 else if (this->Method2)
328 (handler->*this->Method2)(caller, event, calldata);
336 unsigned long AddTemplatedObserver(
337 unsigned long event, vtkClassMemberCallbackBase* callable,
float priority);
339 friend class vtkObjectCommandInternal;
unsigned long AddObserver(unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
static vtkObjectBase * New()
abstract base class for most VTK objects
record modification and/or execution time
int InvokeEvent(unsigned long event)
virtual void PrintSelf(ostream &os, vtkIndent indent)
virtual void RegisterInternal(vtkObjectBase *, int check)
static void GlobalWarningDisplayOff()
superclass for callback/observer methods
vtkObjectBase * GetPointer() const
static void SetGlobalWarningDisplay(int val)
a simple class to control print indentation
Non-templated superclass for vtkWeakPointer.
abstract base class for most VTK objects
int InvokeEvent(const char *event)
virtual void UnRegisterInternal(vtkObjectBase *, int check)
unsigned long AddObserver(unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
void operator=(const vtkObjectBase &)
vtkSubjectHelper * SubjectHelper
static void GlobalWarningDisplayOn()