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 #if QT_VERSION >= 0x040000
00068 ,Qt::ConnectionType type = Qt::AutoConnection);
00069 #else
00070 );
00071 #endif
00072
00073
00074 bool IsConnection(vtkObject* vtk_obj, unsigned long event,
00075 const QObject* qt_obj, const char* slot,
00076 void* client_data);
00077
00078 static void DoCallback(vtkObject* vtk_obj, unsigned long event,
00079 void* client_data, void* call_data);
00080
00081 signals:
00082
00083 void EmitExecute(vtkObject*, unsigned long, void* client_data, void* call_data, vtkCommand*);
00084
00085 protected:
00086
00087
00088 vtkObject* VTKObject;
00089 vtkCallbackCommand* Callback;
00090 const QObject* QtObject;
00091 void* ClientData;
00092 unsigned long VTKEvent;
00093 QString QtSlot;
00094 vtkEventQtSlotConnect* Owner;
00095
00096 private:
00097 vtkQtConnection(const vtkQtConnection&);
00098 void operator=(const vtkQtConnection&);
00099
00100 };
00101
00102 #endif
00103