Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Common/vtkCommand.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCommand.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00050 #ifndef __vtkCommand_h 00051 #define __vtkCommand_h 00052 00053 #include "vtkObjectBase.h" 00054 00055 class vtkObject; 00056 00057 // The superclass that all commands should be subclasses of 00058 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase 00059 { 00060 public: 00062 00065 void UnRegister(); 00066 virtual void UnRegister(vtkObjectBase *) 00067 { this->UnRegister(); } 00069 00071 00080 virtual void Execute(vtkObject *caller, unsigned long eventId, 00081 void *callData) = 0; 00083 00085 00087 static const char *GetStringFromEventId(unsigned long event); 00088 static unsigned long GetEventIdFromString(const char *event); 00090 00092 00094 void SetAbortFlag(int f) 00095 { if(this->AbortFlag) *this->AbortFlag = f; } 00096 int GetAbortFlag() 00097 { return (this->AbortFlag) ? *this->AbortFlag: 0; } 00098 void AbortFlagOn() 00099 { this->SetAbortFlag(1); } 00100 void AbortFlagOff() 00101 { this->SetAbortFlag(0); } 00103 00104 //BTX 00106 00110 enum EventIds { 00111 NoEvent = 0, 00112 AnyEvent, 00113 DeleteEvent, 00114 StartEvent, 00115 EndEvent, 00116 ProgressEvent, 00117 PickEvent, 00118 StartPickEvent, 00119 EndPickEvent, 00120 AbortCheckEvent, 00121 ExitEvent, 00122 LeftButtonPressEvent, 00123 LeftButtonReleaseEvent, 00124 MiddleButtonPressEvent, 00125 MiddleButtonReleaseEvent, 00126 RightButtonPressEvent, 00127 RightButtonReleaseEvent, 00128 EnterEvent, 00129 LeaveEvent, 00130 KeyPressEvent, 00131 KeyReleaseEvent, 00132 CharEvent, 00133 ExposeEvent, 00134 ConfigureEvent, 00135 TimerEvent, 00136 MouseMoveEvent, 00137 ResetCameraEvent, 00138 ResetCameraClippingRangeEvent, 00139 ModifiedEvent, 00140 WindowLevelEvent, 00141 StartWindowLevelEvent, 00142 EndWindowLevelEvent, 00143 ResetWindowLevelEvent, 00144 NextDataEvent, 00145 PushDataStartEvent, 00146 SetOutputEvent, 00147 EndOfDataEvent, 00148 ErrorEvent, 00149 WarningEvent, 00150 StartInteractionEvent, //mainly used by vtkInteractorObservers 00151 InteractionEvent, 00152 EndInteractionEvent, 00153 EnableEvent, 00154 DisableEvent, 00155 CreateTimerEvent, 00156 DestroyTimerEvent, 00157 PlaceWidgetEvent, 00158 CursorChangedEvent, 00159 ExecuteInformationEvent, 00160 RenderWindowMessageEvent, 00161 UserEvent = 1000 00162 }; 00164 //ETX 00165 00166 protected: 00167 int* AbortFlag; 00168 vtkCommand(); 00169 virtual ~vtkCommand() {} 00170 00171 //helper function for manipulating abort flag 00172 void SetAbortFlagPointer(int* f) 00173 { this->AbortFlag = f; } 00174 00175 friend class vtkSubjectHelper; 00176 //BTX 00177 vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {} 00178 void operator=(const vtkCommand&) {} 00179 //ETX 00180 }; 00181 00182 #endif /* __vtkCommand_h */ 00183