ctkVTKObject.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*=========================================================================
  2. Library: CTK
  3. Copyright (c) Kitware Inc.
  4. All rights reserved.
  5. Distributed under a BSD License. See LICENSE.txt file.
  6. This software is distributed "AS IS" WITHOUT ANY WARRANTY; without even
  7. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. See the above copyright notice for more information.
  9. =========================================================================*/
  10. #ifndef __ctkVTKObject_h
  11. #define __ctkVTKObject_h
  12. /// ctkVTK includes
  13. #include "ctkVTKObjectEventsObserver.h"
  14. //-----------------------------------------------------------------------------
  15. #define QVTK_OBJECT_ADD_CONNECTION_METHOD \
  16. QString qvtkConnect(vtkObject* vtk_obj, unsigned long vtk_event, \
  17. const QObject* qt_obj, const char* qt_slot, \
  18. float priority = 0.0) \
  19. { \
  20. return MyQVTK.addConnection(vtk_obj, vtk_event, \
  21. qt_obj, qt_slot, priority); \
  22. }
  23. //-----------------------------------------------------------------------------
  24. #define QVTK_OBJECT_RECONNECT_METHOD \
  25. QString qvtkReconnect(vtkObject* old_vtk_obj, vtkObject* vtk_obj, \
  26. unsigned long vtk_event, const QObject* qt_obj, \
  27. const char* qt_slot, float priority = 0.0) \
  28. { \
  29. return MyQVTK.addConnection(old_vtk_obj, vtk_obj, vtk_event, \
  30. qt_obj, qt_slot, priority); \
  31. }
  32. //-----------------------------------------------------------------------------
  33. #define QVTK_OBJECT_RECONNECT_METHOD_2 \
  34. QString qvtkReconnect(vtkObject* vtk_obj, \
  35. unsigned long vtk_event, const QObject* qt_obj, \
  36. const char* qt_slot, float priority = 0.0) \
  37. { \
  38. return MyQVTK.reconnection(vtk_obj, vtk_event, \
  39. qt_obj, qt_slot, priority); \
  40. }
  41. //-----------------------------------------------------------------------------
  42. #define QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
  43. int qvtkDisconnect(vtkObject* vtk_obj, unsigned long vtk_event, \
  44. const QObject* qt_obj, const char* qt_slot) \
  45. { \
  46. return MyQVTK.removeConnection(vtk_obj, vtk_event, \
  47. qt_obj, qt_slot); \
  48. }
  49. //-----------------------------------------------------------------------------
  50. #define QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
  51. int qvtkDisconnectAll() \
  52. { \
  53. return MyQVTK.removeAllConnections(); \
  54. }
  55. //-----------------------------------------------------------------------------
  56. #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
  57. void qvtkBlock(vtkObject* vtk_obj, unsigned long vtk_event, \
  58. const QObject* qt_obj) \
  59. { \
  60. MyQVTK.blockConnection(true, vtk_obj, vtk_event, qt_obj); \
  61. }
  62. //-----------------------------------------------------------------------------
  63. #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
  64. void qvtkBlock(const QString& id, bool blocked) \
  65. { \
  66. MyQVTK.blockConnection(id, blocked); \
  67. }
  68. //-----------------------------------------------------------------------------
  69. #define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
  70. void qvtkBlockAll() \
  71. { \
  72. MyQVTK.blockAllConnections(true); \
  73. }
  74. //-----------------------------------------------------------------------------
  75. #define QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
  76. void qvtkUnblock(vtkObject* vtk_obj, unsigned long vtk_event, \
  77. const QObject* qt_obj) \
  78. { \
  79. MyQVTK.blockConnection(false, vtk_obj, vtk_event, qt_obj); \
  80. }
  81. //-----------------------------------------------------------------------------
  82. #define QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
  83. void qvtkUnblockAll() \
  84. { \
  85. MyQVTK.blockAllConnections(false); \
  86. }
  87. //-----------------------------------------------------------------------------
  88. #define QVTK_OBJECT \
  89. protected: \
  90. QVTK_OBJECT_ADD_CONNECTION_METHOD \
  91. QVTK_OBJECT_RECONNECT_METHOD \
  92. QVTK_OBJECT_RECONNECT_METHOD_2 \
  93. QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
  94. QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
  95. QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
  96. QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
  97. QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
  98. QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
  99. QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
  100. private: \
  101. ctkVTKObjectEventsObserver MyQVTK;
  102. #endif