VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/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 
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