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 00047 #ifndef VTK_EVENT_QT_SLOT_CONNECT 00048 #define VTK_EVENT_QT_SLOT_CONNECT 00049 00050 #include "vtkGUISupportQtModule.h" // For export macro 00051 #include "vtkObject.h" 00052 #include "vtkCommand.h" // for event defines 00053 #include "QVTKWin32Header.h" // for export define 00054 #include <QtCore/QObject> // for version info 00055 00056 class QObject; 00057 class vtkQtConnections; 00058 class vtkQtConnection; 00059 00060 // manage connections between VTK object events and Qt slots 00061 class VTKGUISUPPORTQT_EXPORT vtkEventQtSlotConnect : public vtkObject 00062 { 00063 public: 00064 static vtkEventQtSlotConnect* New(); 00065 vtkTypeMacro(vtkEventQtSlotConnect, vtkObject) 00066 00067 00068 void PrintSelf(ostream& os, vtkIndent indent); 00069 00071 00074 virtual void Connect(vtkObject* vtk_obj, unsigned long event, 00075 const QObject* qt_obj, const char* slot, 00076 void* client_data=NULL, float priority=0.0 00077 ,Qt::ConnectionType type = Qt::AutoConnection); 00079 00081 00086 virtual void Disconnect( 00087 vtkObject* vtk_obj=NULL, unsigned long event=vtkCommand::NoEvent, 00088 const QObject* qt_obj=NULL, const char* slot = 0, void* client_data=NULL); 00090 00093 virtual int GetNumberOfConnections() const; 00094 00095 protected: 00096 vtkQtConnections* Connections; 00097 friend class vtkQtConnection; 00098 void RemoveConnection(vtkQtConnection*); 00099 00100 vtkEventQtSlotConnect(); 00101 ~vtkEventQtSlotConnect(); 00102 00103 private: 00104 // unimplemented 00105 vtkEventQtSlotConnect(const vtkEventQtSlotConnect&); 00106 void operator=(const vtkEventQtSlotConnect&); 00107 }; 00108 00109 #endif 00110