00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00025 #ifndef __vtkKWObject_h
00026 #define __vtkKWObject_h
00027
00028 #include "vtkObject.h"
00029
00030 #include "vtkTcl.h"
00031 #include "vtkKWWidgets.h"
00032
00033 class vtkKWApplication;
00034 class vtkCallbackCommand;
00035
00036 class KWWIDGETS_EXPORT vtkKWObject : public vtkObject
00037 {
00038 public:
00039 static vtkKWObject* New();
00040 vtkTypeRevisionMacro(vtkKWObject,vtkObject);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044 const char *GetTclName();
00045
00047
00048 vtkGetObjectMacro(Application,vtkKWApplication);
00049 virtual void SetApplication (vtkKWApplication* arg);
00051
00052
00054
00056 virtual const char* Script(const char *EventString, ...);
00057
00059
00061
00070 virtual void AddCallbackCommandObserver(
00071 vtkObject *object, unsigned long event);
00072 virtual void RemoveCallbackCommandObserver(
00073 vtkObject *object, unsigned long event);
00075
00077
00081 virtual void AddCallbackCommandObservers() {};
00082 virtual void RemoveCallbackCommandObservers();
00084
00085 protected:
00086 vtkKWObject();
00087 ~vtkKWObject();
00088
00090
00097 void SetObjectMethodCommand(
00098 char **command, vtkObject *object, const char *method);
00100
00108 virtual vtkCallbackCommand* GetCallbackCommand();
00109
00111
00114 static void ProcessCallbackCommandEventsFunction(
00115 vtkObject *object, unsigned long event, void *clientdata, void *calldata);
00117
00119
00122 virtual void ProcessCallbackCommandEvents(
00123 vtkObject *caller, unsigned long event, void *calldata);
00125
00126 private:
00127
00128 vtkKWApplication *Application;
00129 char *TclName;
00130
00133 vtkCallbackCommand *CallbackCommand;
00134
00135 vtkKWObject(const vtkKWObject&);
00136 void operator=(const vtkKWObject&);
00137 };
00138
00139 #endif
00140