CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkVTKObject.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Library: CTK
4 
5  Copyright (c) Kitware Inc.
6 
7  Licensed under the Apache License, Version 2.0 (the "License");
8  you may not use this file except in compliance with the License.
9  You may obtain a copy of the License at
10 
11  http://www.apache.org/licenses/LICENSE-2.0.txt
12 
13  Unless required by applicable law or agreed to in writing, software
14  distributed under the License is distributed on an "AS IS" BASIS,
15  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  See the License for the specific language governing permissions and
17  limitations under the License.
18 
19 =========================================================================*/
20 
21 #ifndef __ctkVTKObject_h
22 #define __ctkVTKObject_h
23 
24 // ctkVTK includes
26 
29 
30 //-----------------------------------------------------------------------------
33 #define QVTK_OBJECT_ADD_CONNECTION_METHOD \
34  \
35 \
36  \
37  \
38  \
39 QString qvtkConnect(vtkObject* vtk_obj, unsigned long vtk_event, \
40  const QObject* qt_obj, const char* qt_slot, \
41  float priority = 0.0, \
42  Qt::ConnectionType connectionType = Qt::AutoConnection)\
43 { \
44  return MyQVTK.addConnection(vtk_obj, vtk_event, \
45  qt_obj, qt_slot, priority, connectionType);\
46 }
47 
48 //-----------------------------------------------------------------------------
51 #define QVTK_OBJECT_RECONNECT_METHOD \
52  \
53  \
54  \
55 \
56  \
57  \
58 \
59  \
60  \
61 QString qvtkReconnect(vtkObject* old_vtk_obj, vtkObject* vtk_obj, \
62  unsigned long vtk_event, const QObject* qt_obj, \
63  const char* qt_slot, float priority = 0.0, \
64  Qt::ConnectionType connectionType = Qt::AutoConnection)\
65 { \
66  return MyQVTK.addConnection(old_vtk_obj, vtk_obj, vtk_event, \
67  qt_obj, qt_slot, priority, connectionType);\
68 }
69 
70 //-----------------------------------------------------------------------------
73 #define QVTK_OBJECT_RECONNECT_METHOD_2 \
74 \
75 \
76  \
77 \
78  \
79  \
80  \
81  \
82 \
83 QString qvtkReconnect(vtkObject* vtk_obj, \
84  unsigned long vtk_event, const QObject* qt_obj, \
85  const char* qt_slot, float priority = 0.0, \
86  Qt::ConnectionType connectionType = Qt::AutoConnection)\
87 { \
88  return MyQVTK.reconnection(vtk_obj, vtk_event, \
89  qt_obj, qt_slot, priority, connectionType);\
90 }
91 
92 //-----------------------------------------------------------------------------
95 #define QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
96  \
97  \
98  \
99 \
100  \
101 \
102  \
103  \
104  \
105  \
106  \
107 int qvtkDisconnect(vtkObject* vtk_obj, unsigned long vtk_event, \
108  const QObject* qt_obj, const char* qt_slot) \
109 { \
110  return MyQVTK.removeConnection(vtk_obj, vtk_event, \
111  qt_obj, qt_slot); \
112 }
113 
114 //-----------------------------------------------------------------------------
117 #define QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
118 \
119  \
120  \
121  \
122  \
123  \
124 int qvtkDisconnectAll() \
125 { \
126  return MyQVTK.removeAllConnections(); \
127 }
128 
129 //-----------------------------------------------------------------------------
132 #define QVTK_OBJECT_IS_CONNECTION_METHOD \
133  \
134  \
135  \
136  \
137  \
138  \
139 bool qvtkIsConnected(vtkObject* vtk_obj = 0, \
140  unsigned long vtk_event = vtkCommand::NoEvent, \
141  const QObject* qt_obj = 0, \
142  const char* qt_slot = 0) \
143 { \
144  return MyQVTK.containsConnection(vtk_obj, vtk_event, \
145  qt_obj, qt_slot); \
146 }
147 
148 //-----------------------------------------------------------------------------
152 #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
153 void qvtkBlock(vtkObject* vtk_obj, unsigned long vtk_event, \
154  const QObject* qt_obj) \
155 { \
156  MyQVTK.blockConnection(true, vtk_obj, vtk_event, qt_obj); \
157 }
158 
159 //-----------------------------------------------------------------------------
162 #define QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
163 void qvtkBlock(const QString& id, bool blocked) \
164 { \
165  MyQVTK.blockConnection(id, blocked); \
166 }
167 
168 //-----------------------------------------------------------------------------
171 #define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
172 bool qvtkBlockAll() \
173 { \
174  return MyQVTK.blockAllConnections(true); \
175 }
176 
177 //-----------------------------------------------------------------------------
180 #define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD2 \
181 bool qvtkBlockAll(bool block) \
182 { \
183  return MyQVTK.blockAllConnections(block); \
184 }
185 
186 //-----------------------------------------------------------------------------
189 #define QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
190 void qvtkUnblock(vtkObject* vtk_obj, unsigned long vtk_event, \
191  const QObject* qt_obj) \
192 { \
193  MyQVTK.blockConnection(false, vtk_obj, vtk_event, qt_obj); \
194 }
195 
196 //-----------------------------------------------------------------------------
199 #define QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
200 bool qvtkUnblockAll() \
201 { \
202  return MyQVTK.blockAllConnections(false); \
203 }
204 
205 //-----------------------------------------------------------------------------
222 #define QVTK_OBJECT \
223 protected: \
224  QVTK_OBJECT_ADD_CONNECTION_METHOD \
225  QVTK_OBJECT_RECONNECT_METHOD \
226  QVTK_OBJECT_RECONNECT_METHOD_2 \
227  QVTK_OBJECT_REMOVE_CONNECTION_METHOD \
228  QVTK_OBJECT_REMOVEALL_CONNECTION_METHOD \
229  QVTK_OBJECT_IS_CONNECTION_METHOD \
230  QVTK_OBJECT_BLOCK_CONNECTION_METHOD \
231  QVTK_OBJECT_BLOCK_CONNECTION_METHOD2 \
232  QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
233  QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
234  QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD2 \
235  QVTK_OBJECT_UNBLOCKALL_CONNECTION_METHOD \
236 private: \
237  ctkVTKObjectEventsObserver MyQVTK;
238 
240 
241 #endif