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

Common/vtkCommand.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkCommand.h,v $
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 =========================================================================*/
00046 #ifndef __vtkCommand_h
00047 #define __vtkCommand_h
00048 
00049 #include "vtkObjectBase.h"
00050 
00051 class vtkObject;
00052 
00053 // The superclass that all commands should be subclasses of
00054 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase
00055 {
00056 public:
00058 
00061   void UnRegister();
00062   virtual void UnRegister(vtkObjectBase *) 
00063     { this->UnRegister(); }
00065   
00067 
00076   virtual void Execute(vtkObject *caller, unsigned long eventId, 
00077                        void *callData) = 0;
00079 
00081 
00083   static const char *GetStringFromEventId(unsigned long event);
00084   static unsigned long GetEventIdFromString(const char *event);
00086 
00088 
00090   void SetAbortFlag(int f)  
00091     { this->AbortFlag = f; }
00092   int GetAbortFlag() 
00093     { return this->AbortFlag; }
00094   void AbortFlagOn() 
00095     { this->SetAbortFlag(1); }
00096   void AbortFlagOff() 
00097     { this->SetAbortFlag(0); }
00099   
00100 //BTX
00102 
00106   enum EventIds {
00107     NoEvent = 0,
00108     AnyEvent,
00109     DeleteEvent,
00110     StartEvent,
00111     EndEvent,
00112     ProgressEvent,
00113     PickEvent,
00114     StartPickEvent,
00115     EndPickEvent,
00116     AbortCheckEvent,
00117     ExitEvent,
00118     LeftButtonPressEvent,
00119     LeftButtonReleaseEvent,
00120     MiddleButtonPressEvent,
00121     MiddleButtonReleaseEvent,
00122     RightButtonPressEvent,
00123     RightButtonReleaseEvent,
00124     EnterEvent,
00125     LeaveEvent,
00126     KeyPressEvent,
00127     KeyReleaseEvent,
00128     CharEvent,
00129     ExposeEvent,
00130     ConfigureEvent,
00131     TimerEvent,
00132     MouseMoveEvent,
00133     ResetCameraEvent,
00134     ResetCameraClippingRangeEvent,
00135     ModifiedEvent,
00136     WindowLevelEvent,
00137     StartWindowLevelEvent,
00138     EndWindowLevelEvent,
00139     ResetWindowLevelEvent,
00140     NextDataEvent,
00141     PushDataStartEvent,
00142     SetOutputEvent,
00143     EndOfDataEvent,
00144     ErrorEvent,
00145     WarningEvent,
00146     StartInteractionEvent, //mainly used by vtkInteractorObservers
00147     InteractionEvent,
00148     EndInteractionEvent,
00149     EnableEvent,
00150     DisableEvent,
00151     CreateTimerEvent,
00152     DestroyTimerEvent,
00153     PlaceWidgetEvent,
00154     CursorChangedEvent,
00155     ExecuteInformationEvent,
00156     RenderWindowMessageEvent,
00157     UserEvent = 1000
00158   };
00160 //ETX
00161 
00162 protected:
00163   int AbortFlag;
00164   vtkCommand();
00165   virtual ~vtkCommand() {}
00166 
00167   friend class vtkSubjectHelper;
00168 //BTX
00169   vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {}
00170   void operator=(const vtkCommand&) {}
00171 //ETX
00172 };
00173 
00174 #endif /* __vtkCommand_h */
00175