00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef VTK_QT_CONNECTION
00032 #define VTK_QT_CONNECTION
00033
00034 #include "vtkObject.h"
00035 #include "vtkCommand.h"
00036 #include "qobject.h"
00037
00038 class QObject;
00039 class vtkCallbackCommand;
00040 class vtkEventQtSlotConnect;
00041
00042
00043
00044
00045 class vtkQtConnection : public QObject
00046 {
00047 Q_OBJECT
00048
00049 public:
00050
00051
00052 vtkQtConnection(vtkEventQtSlotConnect* owner);
00053
00054
00055 ~vtkQtConnection();
00056
00057
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00060
00061 void Execute(vtkObject* caller, unsigned long event, void* client_data);
00062
00063
00064 void SetConnection(vtkObject* vtk_obj, unsigned long event,
00065 const QObject* qt_obj, const char* slot,
00066 void* client_data, float priority=0.0
00067 ,Qt::ConnectionType type = Qt::AutoConnection);
00068
00069
00070 bool IsConnection(vtkObject* vtk_obj, unsigned long event,
00071 const QObject* qt_obj, const char* slot,
00072 void* client_data);
00073
00074 static void DoCallback(vtkObject* vtk_obj, unsigned long event,
00075 void* client_data, void* call_data);
00076
00077 signals:
00078
00079 void EmitExecute(vtkObject*, unsigned long, void* client_data, void* call_data, vtkCommand*);
00080
00081 protected slots:
00082 void deleteConnection();
00083
00084 protected:
00085
00086
00087 vtkObject* VTKObject;
00088 vtkCallbackCommand* Callback;
00089 const QObject* QtObject;
00090 void* ClientData;
00091 unsigned long VTKEvent;
00092 QString QtSlot;
00093 vtkEventQtSlotConnect* Owner;
00094
00095 private:
00096 vtkQtConnection(const vtkQtConnection&);
00097 void operator=(const vtkQtConnection&);
00098
00099 };
00100
00101 #endif
00102