VTK
dox/GUISupport/Qt/vtkEventQtSlotConnect.h
Go to the documentation of this file.
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 
00044 #ifndef VTK_EVENT_QT_SLOT_CONNECT
00045 #define VTK_EVENT_QT_SLOT_CONNECT
00046 
00047 #include "vtkObject.h"
00048 #include "vtkCommand.h"  // for event defines
00049 #include "QVTKWin32Header.h"  // for export define
00050 #include "qobject.h"          // for version info
00051 
00052 class QObject;
00053 class vtkQtConnections;
00054 class vtkQtConnection;
00055 
00056 // manage connections between VTK object events and Qt slots
00057 class QVTK_EXPORT vtkEventQtSlotConnect : public vtkObject
00058 {
00059   public:
00060     static vtkEventQtSlotConnect* New();
00061     vtkTypeMacro(vtkEventQtSlotConnect, vtkObject)
00062     
00063     
00064     void PrintSelf(ostream& os, vtkIndent indent);
00065     
00067 
00070     virtual void Connect(vtkObject* vtk_obj, unsigned long event, 
00071                          const QObject* qt_obj, const char* slot, 
00072                          void* client_data=NULL, float priority=0.0
00073                          ,Qt::ConnectionType type = Qt::AutoConnection);
00075     
00077 
00082     virtual void Disconnect(
00083       vtkObject* vtk_obj=NULL, unsigned long event=vtkCommand::NoEvent, 
00084       const QObject* qt_obj=NULL, const char* slot = 0, void* client_data=NULL);
00086 
00087   protected:
00088     vtkQtConnections* Connections;
00089     friend class vtkQtConnection;
00090     void RemoveConnection(vtkQtConnection*);
00091   
00092     vtkEventQtSlotConnect();
00093     ~vtkEventQtSlotConnect();
00094 
00095   private:
00096     // unimplemented
00097     vtkEventQtSlotConnect(const vtkEventQtSlotConnect&);
00098     void operator=(const vtkEventQtSlotConnect&);
00099 };
00100 
00101 #endif
00102