Engauge Digitizer  2
TutorialStateContext.h
1 #ifndef TUTORIAL_STATE_CONTEXT_H
2 #define TUTORIAL_STATE_CONTEXT_H
3 
4 #include <QObject>
5 #include <QVector>
6 #include "TutorialStateAbstractBase.h"
7 
8 class QTimer;
9 class TutorialDlg;
10 
14 class TutorialStateContext : public QObject
15 {
16  Q_OBJECT;
17 
18  public:
21 
24  void requestDelayedStateTransition (TutorialState tutorialState);
25 
29  void requestImmediateStateTransition (TutorialState tutorialState);
30 
33 
34  private slots:
35  void slotTimeout ();
36 
37  private:
38 
39  void completeRequestedStateTransitionIfExists ();
40  void createStates ();
41  void createTimer ();
42 
43  QVector<TutorialStateAbstractBase*> m_states;
44  TutorialState m_currentState;
45  TutorialState m_requestedState; // Same as m_currentState until requestStateTransition is called
46 
47  TutorialDlg &m_tutorialDlg;
48 
49  // Timer for delayed state transitions
50  QTimer *m_timer;
51 };
52 
53 #endif // TUTORIAL_STATE_CONTEXT_H
void requestImmediateStateTransition(TutorialState tutorialState)
Request a transition to the specified state from the current state.
Tutorial using a strategy like a comic strip with decision points deciding which panels appear...
Definition: TutorialDlg.h:13
TutorialStateContext(TutorialDlg &tutorialDlg)
Single constructor.
Context class for tutorial state machine.
void requestDelayedStateTransition(TutorialState tutorialState)
Request a transition to the specified state from the current state.
TutorialDlg & tutorialDlg()
Access to tutorial dialogs and its scene.