CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
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 \
39QString 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 \
61QString 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\
83QString 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 \
107int 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 \
124int qvtkDisconnectAll() \
125{ \
126 return MyQVTK.removeAllConnections(); \
127}
128
129//-----------------------------------------------------------------------------
132#define QVTK_OBJECT_IS_CONNECTION_METHOD \
133 \
134 \
135 \
136 \
137 \
138 \
139bool 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 \
153void 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 \
163void qvtkBlock(const QString& id, bool blocked) \
164{ \
165 MyQVTK.blockConnection(id, blocked); \
166}
167
168//-----------------------------------------------------------------------------
171#define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD \
172bool qvtkBlockAll() \
173{ \
174 return MyQVTK.blockAllConnections(true); \
175}
176
177//-----------------------------------------------------------------------------
180#define QVTK_OBJECT_BLOCKALL_CONNECTION_METHOD2 \
181bool qvtkBlockAll(bool block) \
182{ \
183 return MyQVTK.blockAllConnections(block); \
184}
185
186//-----------------------------------------------------------------------------
189#define QVTK_OBJECT_UNBLOCK_CONNECTION_METHOD \
190void 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 \
200bool qvtkUnblockAll() \
201{ \
202 return MyQVTK.blockAllConnections(false); \
203}
204
205//-----------------------------------------------------------------------------
222#define QVTK_OBJECT \
223protected: \
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 \
236private: \
237 ctkVTKObjectEventsObserver MyQVTK;
238
240
241#endif