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

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