ctkVTKObject.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /*=========================================================================
  2. Library: CTK
  3. Copyright (c) 2010 Kitware Inc.
  4. Licensed under the Apache License, Version 2.0 (the "License");
  5. you may not use this file except in compliance with the License.
  6. You may obtain a copy of the License at
  7. http://www.commontk.org/LICENSE
  8. Unless required by applicable law or agreed to in writing, software
  9. distributed under the License is distributed on an "AS IS" BASIS,
  10. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  11. See the License for the specific language governing permissions and
  12. limitations under the License.
  13. =========================================================================*/
  14. #ifndef __ctkVTKObject_h
  15. #define __ctkVTKObject_h
  16. /// ctkVTK includes
  17. #include "ctkVTKObjectEventsObserver.h"
  18. //-----------------------------------------------------------------------------
  19. #define QVTK_OBJECT_ADD_CONNECTION_METHOD \
  20. QString qvtkConnect(vtkObject* vtk_obj, unsigned long vtk_event, \
  21. const QObject* qt_obj, const char* qt_slot, \
  22. float priority = 0.0) \
  23. { \
  24. return MyQVTK.addConnection(vtk_obj, vtk_event, \
  25. qt_obj, qt_slot, priority); \
  26. }
  27. //-----------------------------------------------------------------------------
  28. #define QVTK_OBJECT_RECONNECT_METHOD \
  29. QString qvtkReconnect(vtkObject* old_vtk_obj, vtkObject* vtk_obj, \
  30. unsigned long vtk_event, const QObject* qt_obj, \
  31. const char* qt_slot, float priority = 0.0) \
  32. { \
  33. return MyQVTK.addConnection(old_vtk_obj, vtk_obj, vtk_event, \
  34. qt_obj, qt_slot, priority); \
  35. }
  36. //-----------------------------------------------------------------------------
  37. #define QVTK_OBJECT_RECONNECT_METHOD_2 \
  38. QString qvtkReconnect(vtkObject* vtk_obj, \
  39. unsigned long vtk_event, const QObject* qt_obj, \
  40. const char* qt_slot, float priority = 0.0) \
  41. { \
  42. return MyQVTK.reconnection(vtk_obj, vtk_event, \
  43. qt_obj, qt_slot, priority); \
  44. }
  45. //-----------------------------------------------------------------------------
  46. #define QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
  47. int qvtkDisconnect(vtkObject* vtk_obj, unsigned long vtk_event, \
  48. const QObject* qt_obj, const char* qt_slot) \
  49. { \
  50. return MyQVTK.removeConnection(vtk_obj, vtk_event, \
  51. qt_obj, qt_slot); \
  52. }
  53. //-----------------------------------------------------------------------------
  54. #define QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
  55. int qvtkDisconnectAll() \
  56. { \
  57. return MyQVTK.removeAllConnections(); \
  58. }
  59. //-----------------------------------------------------------------------------
  60. #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
  61. void qvtkBlock(vtkObject* vtk_obj, unsigned long vtk_event, \
  62. const QObject* qt_obj) \
  63. { \
  64. MyQVTK.blockConnection(true, vtk_obj, vtk_event, qt_obj); \
  65. }
  66. //-----------------------------------------------------------------------------
  67. #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
  68. void qvtkBlock(const QString& id, bool blocked) \
  69. { \
  70. MyQVTK.blockConnection(id, blocked); \
  71. }
  72. //-----------------------------------------------------------------------------
  73. #define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
  74. void qvtkBlockAll() \
  75. { \
  76. MyQVTK.blockAllConnections(true); \
  77. }
  78. //-----------------------------------------------------------------------------
  79. #define QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
  80. void qvtkUnblock(vtkObject* vtk_obj, unsigned long vtk_event, \
  81. const QObject* qt_obj) \
  82. { \
  83. MyQVTK.blockConnection(false, vtk_obj, vtk_event, qt_obj); \
  84. }
  85. //-----------------------------------------------------------------------------
  86. #define QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
  87. void qvtkUnblockAll() \
  88. { \
  89. MyQVTK.blockAllConnections(false); \
  90. }
  91. //-----------------------------------------------------------------------------
  92. #define QVTK_OBJECT \
  93. protected: \
  94. QVTK_OBJECT_ADD_CONNECTION_METHOD \
  95. QVTK_OBJECT_RECONNECT_METHOD \
  96. QVTK_OBJECT_RECONNECT_METHOD_2 \
  97. QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
  98. QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
  99. QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
  100. QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
  101. QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
  102. QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
  103. QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
  104. private: \
  105. ctkVTKObjectEventsObserver MyQVTK;
  106. #endif