VTK
|
00001 /*========================================================================= 00002 00003 Copyright 2004 Sandia Corporation. 00004 Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00005 license for use of this work by or on behalf of the 00006 U.S. Government. Redistribution and use in source and binary forms, with 00007 or without modification, are permitted provided that this Notice and any 00008 statement of authorship are reproduced on all copies. 00009 00010 =========================================================================*/ 00011 00012 /*======================================================================== 00013 For general information about using VTK and Qt, see: 00014 http://www.trolltech.com/products/3rdparty/vtksupport.html 00015 =========================================================================*/ 00016 00017 /*======================================================================== 00018 !!! WARNING for those who want to contribute code to this file. 00019 !!! If you use a commercial edition of Qt, you can modify this code. 00020 !!! If you use an open source version of Qt, you are free to modify 00021 !!! and use this code within the guidelines of the GPL license. 00022 !!! Unfortunately, you cannot contribute the changes back into this 00023 !!! file. Doing so creates a conflict between the GPL and BSD-like VTK 00024 !!! license. 00025 =========================================================================*/ 00026 00041 #ifndef VTK_EVENT_QT_SLOT_CONNECT 00042 #define VTK_EVENT_QT_SLOT_CONNECT 00043 00044 #include "vtkObject.h" 00045 #include "vtkCommand.h" // for event defines 00046 #include "QVTKWin32Header.h" // for export define 00047 #include "qobject.h" // for version info 00048 00049 class QObject; 00050 class vtkQtConnections; 00051 class vtkQtConnection; 00052 00053 // manage connections between VTK object events and Qt slots 00054 class QVTK_EXPORT vtkEventQtSlotConnect : public vtkObject 00055 { 00056 public: 00057 static vtkEventQtSlotConnect* New(); 00058 vtkTypeMacro(vtkEventQtSlotConnect, vtkObject) 00059 00060 00061 void PrintSelf(ostream& os, vtkIndent indent); 00062 00064 00067 virtual void Connect(vtkObject* vtk_obj, unsigned long event, 00068 const QObject* qt_obj, const char* slot, 00069 void* client_data=NULL, float priority=0.0 00070 #if QT_VERSION >= 0x040000 00071 ,Qt::ConnectionType type = Qt::AutoConnection); 00073 #else 00074 ); 00075 #endif 00076 00078 00083 virtual void Disconnect( 00084 vtkObject* vtk_obj=NULL, unsigned long event=vtkCommand::NoEvent, 00085 const QObject* qt_obj=NULL, const char* slot = 0, void* client_data=NULL); 00087 00088 protected: 00089 vtkQtConnections* Connections; 00090 friend class vtkQtConnection; 00091 void RemoveConnection(vtkQtConnection*); 00092 00093 vtkEventQtSlotConnect(); 00094 ~vtkEventQtSlotConnect(); 00095 00096 private: 00097 // unimplemented 00098 vtkEventQtSlotConnect(const vtkEventQtSlotConnect&); 00099 void operator=(const vtkEventQtSlotConnect&); 00100 }; 00101 00102 #endif 00103