ctkVTKObject.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #ifndef __ctkVTKObject_h
  2. #define __ctkVTKObject_h
  3. /// ctkVTK includes
  4. #include "ctkVTKObjectEventsObserver.h"
  5. //-----------------------------------------------------------------------------
  6. #define QVTK_OBJECT_ADD_CONNECTION_METHOD \
  7. QString qvtkConnect(vtkObject* vtk_obj, unsigned long vtk_event, \
  8. const QObject* qt_obj, const char* qt_slot, \
  9. float priority = 0.0) \
  10. { \
  11. return MyQVTK.addConnection(vtk_obj, vtk_event, \
  12. qt_obj, qt_slot, priority); \
  13. }
  14. //-----------------------------------------------------------------------------
  15. #define QVTK_OBJECT_RECONNECT_METHOD \
  16. QString qvtkReconnect(vtkObject* old_vtk_obj, vtkObject* vtk_obj, \
  17. unsigned long vtk_event, const QObject* qt_obj, \
  18. const char* qt_slot, float priority = 0.0) \
  19. { \
  20. return MyQVTK.addConnection(old_vtk_obj, vtk_obj, vtk_event, \
  21. qt_obj, qt_slot, priority); \
  22. }
  23. //-----------------------------------------------------------------------------
  24. #define QVTK_OBJECT_RECONNECT_METHOD_2 \
  25. QString qvtkReconnect(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.reconnection(vtk_obj, vtk_event, \
  30. qt_obj, qt_slot, priority); \
  31. }
  32. //-----------------------------------------------------------------------------
  33. #define QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
  34. int qvtkDisconnect(vtkObject* vtk_obj, unsigned long vtk_event, \
  35. const QObject* qt_obj, const char* qt_slot) \
  36. { \
  37. return MyQVTK.removeConnection(vtk_obj, vtk_event, \
  38. qt_obj, qt_slot); \
  39. }
  40. //-----------------------------------------------------------------------------
  41. #define QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
  42. int qvtkDisconnectAll() \
  43. { \
  44. return MyQVTK.removeAllConnections(); \
  45. }
  46. //-----------------------------------------------------------------------------
  47. #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
  48. void qvtkBlock(vtkObject* vtk_obj, unsigned long vtk_event, \
  49. const QObject* qt_obj) \
  50. { \
  51. MyQVTK.blockConnection(true, vtk_obj, vtk_event, qt_obj); \
  52. }
  53. //-----------------------------------------------------------------------------
  54. #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
  55. void qvtkBlock(const QString& id, bool blocked) \
  56. { \
  57. MyQVTK.blockConnection(id, blocked); \
  58. }
  59. //-----------------------------------------------------------------------------
  60. #define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
  61. void qvtkBlockAll() \
  62. { \
  63. MyQVTK.blockAllConnections(true); \
  64. }
  65. //-----------------------------------------------------------------------------
  66. #define QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
  67. void qvtkUnblock(vtkObject* vtk_obj, unsigned long vtk_event, \
  68. const QObject* qt_obj) \
  69. { \
  70. MyQVTK.blockConnection(false, vtk_obj, vtk_event, qt_obj); \
  71. }
  72. //-----------------------------------------------------------------------------
  73. #define QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
  74. void qvtkUnblockAll() \
  75. { \
  76. MyQVTK.blockAllConnections(false); \
  77. }
  78. //-----------------------------------------------------------------------------
  79. #define QVTK_OBJECT \
  80. protected: \
  81. QVTK_OBJECT_ADD_CONNECTION_METHOD \
  82. QVTK_OBJECT_RECONNECT_METHOD \
  83. QVTK_OBJECT_RECONNECT_METHOD_2 \
  84. QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
  85. QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
  86. QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
  87. QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
  88. QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
  89. QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
  90. QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
  91. private: \
  92. ctkVTKObjectEventsObserver MyQVTK;
  93. #endif