VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkCommand.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00204 #ifndef __vtkCommand_h 00205 #define __vtkCommand_h 00206 00207 #include "vtkObjectBase.h" 00208 #include "vtkObject.h" // Need vtkTypeMacro 00209 00210 // The superclass that all commands should be subclasses of 00211 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase 00212 { 00213 public: 00214 vtkTypeMacro(vtkCommand,vtkObjectBase); 00215 00217 00220 void UnRegister(); 00221 virtual void UnRegister(vtkObjectBase *) 00222 { this->UnRegister(); } 00224 00226 00235 virtual void Execute(vtkObject *caller, unsigned long eventId, 00236 void *callData) = 0; 00238 00240 00242 static const char *GetStringFromEventId(unsigned long event); 00243 static unsigned long GetEventIdFromString(const char *event); 00245 00247 00249 void SetAbortFlag(int f) 00250 { this->AbortFlag = f; } 00251 int GetAbortFlag() 00252 { return this->AbortFlag; } 00253 void AbortFlagOn() 00254 { this->SetAbortFlag(1); } 00255 void AbortFlagOff() 00256 { this->SetAbortFlag(0); } 00258 00260 00264 void SetPassiveObserver(int f) 00265 { this->PassiveObserver = f; } 00266 int GetPassiveObserver() 00267 { return this->PassiveObserver; } 00268 void PassiveObserverOn() 00269 { this->SetPassiveObserver(1); } 00270 void PassiveObserverOff() 00271 { this->SetPassiveObserver(0); } 00273 00274 //BTX 00276 00280 enum EventIds { 00281 NoEvent = 0, 00282 AnyEvent, 00283 DeleteEvent, 00284 StartEvent, 00285 EndEvent, 00286 RenderEvent, 00287 ProgressEvent, 00288 PickEvent, 00289 StartPickEvent, 00290 EndPickEvent, 00291 AbortCheckEvent, 00292 ExitEvent, 00293 LeftButtonPressEvent, 00294 LeftButtonReleaseEvent, 00295 MiddleButtonPressEvent, 00296 MiddleButtonReleaseEvent, 00297 RightButtonPressEvent, 00298 RightButtonReleaseEvent, 00299 EnterEvent, 00300 LeaveEvent, 00301 KeyPressEvent, 00302 KeyReleaseEvent, 00303 CharEvent, 00304 ExposeEvent, 00305 ConfigureEvent, 00306 TimerEvent, 00307 MouseMoveEvent, 00308 MouseWheelForwardEvent, 00309 MouseWheelBackwardEvent, 00310 ActiveCameraEvent, 00311 CreateCameraEvent, 00312 ResetCameraEvent, 00313 ResetCameraClippingRangeEvent, 00314 ModifiedEvent, 00315 WindowLevelEvent, 00316 StartWindowLevelEvent, 00317 EndWindowLevelEvent, 00318 ResetWindowLevelEvent, 00319 SetOutputEvent, 00320 ErrorEvent, 00321 WarningEvent, 00322 StartInteractionEvent, //mainly used by vtkInteractorObservers 00323 InteractionEvent, 00324 EndInteractionEvent, 00325 EnableEvent, 00326 DisableEvent, 00327 CreateTimerEvent, 00328 DestroyTimerEvent, 00329 PlacePointEvent, 00330 PlaceWidgetEvent, 00331 CursorChangedEvent, 00332 ExecuteInformationEvent, 00333 RenderWindowMessageEvent, 00334 WrongTagEvent, 00335 StartAnimationCueEvent, // used by vtkAnimationCue 00336 AnimationCueTickEvent, 00337 EndAnimationCueEvent, 00338 VolumeMapperRenderEndEvent, 00339 VolumeMapperRenderProgressEvent, 00340 VolumeMapperRenderStartEvent, 00341 VolumeMapperComputeGradientsEndEvent, 00342 VolumeMapperComputeGradientsProgressEvent, 00343 VolumeMapperComputeGradientsStartEvent, 00344 WidgetModifiedEvent, 00345 WidgetValueChangedEvent, 00346 WidgetActivateEvent, 00347 ConnectionCreatedEvent, 00348 ConnectionClosedEvent, 00349 DomainModifiedEvent, 00350 PropertyModifiedEvent, 00351 UpdateEvent, 00352 RegisterEvent, 00353 UnRegisterEvent, 00354 UpdateInformationEvent, 00355 AnnotationChangedEvent, 00356 SelectionChangedEvent, 00357 UpdatePropertyEvent, 00358 ViewProgressEvent, 00359 UpdateDataEvent, 00360 CurrentChangedEvent, 00361 ComputeVisiblePropBoundsEvent, 00362 TDxMotionEvent, // 3D Connexion device event 00363 TDxButtonPressEvent, // 3D Connexion device event 00364 TDxButtonReleaseEvent, // 3D Connexion device event 00365 HoverEvent, 00366 LoadStateEvent, 00367 SaveStateEvent, 00368 StateChangedEvent, 00369 WindowMakeCurrentEvent, 00370 WindowIsCurrentEvent, 00371 WindowFrameEvent, 00372 HighlightEvent, 00373 WindowSupportsOpenGLEvent, 00374 WindowIsDirectEvent, 00375 UserEvent = 1000 00376 }; 00377 //ETX 00379 00380 protected: 00381 int AbortFlag; 00382 int PassiveObserver; 00383 00384 vtkCommand(); 00385 virtual ~vtkCommand() {} 00386 00387 friend class vtkSubjectHelper; 00388 //BTX 00389 vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {} 00390 void operator=(const vtkCommand&) {} 00391 //ETX 00392 }; 00393 00394 #endif /* __vtkCommand_h */ 00395