ctkVTKObjectEventsObserver.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef __ctkVTKObjectEventsObserver_h
  2. #define __ctkVTKObjectEventsObserver_h
  3. /// CTK includes
  4. #include <ctkPimpl.h>
  5. /// Qt includes
  6. #include <QObject>
  7. #include <QList>
  8. #include <QString>
  9. /// VTK includes
  10. #include <vtkCommand.h>
  11. #include "CTKVisualizationVTKCoreExport.h"
  12. class ctkVTKConnection;
  13. class vtkObject;
  14. class ctkVTKObjectEventsObserverPrivate;
  15. class CTK_VISUALIZATION_VTK_CORE_EXPORT ctkVTKObjectEventsObserver : public QObject
  16. {
  17. Q_OBJECT
  18. public:
  19. typedef QObject Superclass;
  20. explicit ctkVTKObjectEventsObserver(QObject* parent = 0);
  21. virtual ~ctkVTKObjectEventsObserver(){}
  22. virtual void printAdditionalInfo();
  23. ///
  24. /// Enable / Disable all ctkVTKConnections
  25. void setAllEnabled( bool enable );
  26. bool allEnabled()const;
  27. ///
  28. /// Add a connection, an Id allowing to uniquely identify the connection is also returned
  29. QString addConnection(vtkObject* vtk_obj, unsigned long vtk_event,
  30. const QObject* qt_obj, const char* qt_slot, float priority = 0.0);
  31. ///
  32. /// Utility function that remove a connection on old_vtk_obj and add a connection
  33. /// to vtk_obj (same event, object, slot, priority)
  34. QString addConnection(vtkObject* old_vtk_obj, vtkObject* vtk_obj, unsigned long vtk_event,
  35. const QObject* qt_obj, const char* qt_slot, float priority = 0.0);
  36. ///
  37. /// Utility function that remove a connection on old_vtk_obj and add a connection
  38. /// to vtk_obj (same event, object, slot, priority)
  39. QString reconnection(vtkObject* vtk_obj, unsigned long vtk_event,
  40. const QObject* qt_obj, const char* qt_slot,
  41. float priority = 0.0);
  42. ///
  43. /// Remove a connection
  44. int removeConnection(vtkObject* vtk_obj, unsigned long vtk_event = vtkCommand::NoEvent,
  45. const QObject* qt_obj = 0, const char* qt_slot = 0);
  46. ///
  47. /// Remove all the connections
  48. inline int removeAllConnections();
  49. ///
  50. /// Temporarilly block all the connection
  51. void blockAllConnections(bool block);
  52. ///
  53. /// Block/Unblock a connection.
  54. int blockConnection(bool block, vtkObject* vtk_obj,
  55. unsigned long vtk_event, const QObject* qt_obj);
  56. void blockConnection(const QString& id, bool blocked);
  57. private:
  58. CTK_DECLARE_PRIVATE(ctkVTKObjectEventsObserver);
  59. };
  60. int ctkVTKObjectEventsObserver::removeAllConnections()
  61. {
  62. return this->removeConnection(0);
  63. }
  64. #endif