00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00033 #ifndef __vtkKWWizardStep_h
00034 #define __vtkKWWizardStep_h
00035
00036 #include "vtkKWObject.h"
00037
00038 class vtkKWStateMachineState;
00039 class vtkKWStateMachineInput;
00040 class vtkKWStateMachineTransition;
00041
00042
00043 class KWWidgets_EXPORT vtkKWWizardStepCleanup
00044 {
00045
00046 public:
00047 vtkKWWizardStepCleanup() {};
00048 ~vtkKWWizardStepCleanup();
00049 };
00050
00051
00052 class KWWidgets_EXPORT vtkKWWizardStep : public vtkKWObject
00053 {
00054
00055
00056 public:
00057 static vtkKWWizardStep* New();
00058 vtkTypeRevisionMacro(vtkKWWizardStep, vtkKWObject);
00059 void PrintSelf(ostream& os, vtkIndent indent);
00060
00062
00063 vtkGetMacro(Id, vtkIdType);
00065
00067
00068 vtkGetStringMacro(Name);
00069 vtkSetStringMacro(Name);
00071
00073
00074 vtkGetStringMacro(Description);
00075 vtkSetStringMacro(Description);
00077
00079
00090 virtual void ShowUserInterface();
00091 virtual void SetShowUserInterfaceCommand(
00092 vtkObject *object, const char *method);
00093 virtual void InvokeShowUserInterfaceCommand();
00094 virtual int HasShowUserInterfaceCommand();
00096
00098
00099 enum
00100 {
00101 ShowUserInterfaceEvent = 10000,
00102 HideUserInterfaceEvent,
00103 ValidateEvent
00104 };
00105
00107
00108
00110
00129 virtual void HideUserInterface();
00130 virtual void SetHideUserInterfaceCommand(
00131 vtkObject *object, const char *method);
00132 virtual void InvokeHideUserInterfaceCommand();
00133 virtual int HasHideUserInterfaceCommand();
00135
00137
00159 virtual void Validate();
00160 virtual void SetValidateCommand(vtkObject *object, const char *method);
00161 virtual void InvokeValidateCommand();
00162 virtual int HasValidateCommand();
00164
00166
00181 virtual int CanGoToSelf();
00182 virtual void SetCanGoToSelfCommand(vtkObject *object, const char *method);
00183 virtual int InvokeCanGoToSelfCommand();
00184 virtual int HasCanGoToSelfCommand();
00186
00197 virtual vtkKWStateMachineState* GetInteractionState();
00198
00212 virtual vtkKWStateMachineState* GetValidationState();
00213
00245 virtual vtkKWStateMachineTransition* GetValidationTransition();
00246
00258 static vtkKWStateMachineInput* GetValidationInput();
00259
00271 static vtkKWStateMachineInput* GetValidationSucceededInput();
00272
00280 static vtkKWStateMachineInput* GetValidationFailedInput();
00281
00298 virtual vtkKWStateMachineTransition* GetValidationFailedTransition();
00299
00310 virtual vtkKWStateMachineInput* GetGoToSelfInput();
00311
00320 virtual vtkKWStateMachineInput* GetGoBackToSelfInput();
00321
00326 virtual void RemoveCallbackCommandObservers();
00327
00328
00329
00330 protected:
00331 vtkKWWizardStep();
00332 ~vtkKWWizardStep();
00333
00334 vtkIdType Id;
00335 char *Name;
00336 char *Description;
00337
00338 char *ShowUserInterfaceCommand;
00339 char *HideUserInterfaceCommand;
00340 char *ValidateCommand;
00341 char *CanGoToSelfCommand;
00342
00344
00347 virtual void ProcessCallbackCommandEvents(
00348 vtkObject *caller, unsigned long event, void *calldata);
00350
00351
00352
00353 private:
00354
00355 vtkKWStateMachineState *InteractionState;
00356 vtkKWStateMachineState *ValidationState;
00357
00358 vtkKWStateMachineTransition *ValidationTransition;
00359 vtkKWStateMachineTransition *ValidationFailedTransition;
00360
00361 vtkKWStateMachineInput *GoToSelfInput;
00362 vtkKWStateMachineInput *GoBackToSelfInput;
00363
00364 static vtkIdType IdCounter;
00365
00366 static vtkKWStateMachineInput *ValidationInput;
00367 static vtkKWStateMachineInput *ValidationSucceededInput;
00368 static vtkKWStateMachineInput *ValidationFailedInput;
00369
00370
00371
00372 static vtkKWWizardStepCleanup Cleanup;
00373 friend class vtkKWWizardStepCleanup;
00374
00375
00376 static void SetValidationInput(vtkKWStateMachineInput*);
00377 static void SetValidationSucceededInput(vtkKWStateMachineInput*);
00378 static void SetValidationFailedInput(vtkKWStateMachineInput*);
00379
00380 vtkKWWizardStep(const vtkKWWizardStep&);
00381 void operator=(const vtkKWWizardStep&);
00382 };
00383
00384 #endif
00385