00001
00002
00003
00004
00005
00006
00007 #ifndef TUTORIAL_STATE_CONTEXT_H
00008 #define TUTORIAL_STATE_CONTEXT_H
00009
00010 #include <QObject>
00011 #include <QVector>
00012 #include "TutorialStateAbstractBase.h"
00013
00014 class QTimer;
00015 class TutorialDlg;
00016
00020 class TutorialStateContext : public QObject
00021 {
00022 Q_OBJECT;
00023
00024 public:
00026 TutorialStateContext(TutorialDlg &tutorialDlg);
00027
00030 void requestDelayedStateTransition (TutorialState tutorialState);
00031
00035 void requestImmediateStateTransition (TutorialState tutorialState);
00036
00038 TutorialDlg &tutorialDlg();
00039
00040 private slots:
00041 void slotTimeout ();
00042
00043 private:
00044
00045 void completeRequestedStateTransitionIfExists ();
00046 void createStates ();
00047 void createTimer ();
00048
00049 QVector<TutorialStateAbstractBase*> m_states;
00050 TutorialState m_currentState;
00051 TutorialState m_requestedState;
00052
00053 TutorialDlg &m_tutorialDlg;
00054
00055
00056 QTimer *m_timer;
00057 };
00058
00059 #endif // TUTORIAL_STATE_CONTEXT_H