Engauge Digitizer 2
Loading...
Searching...
No Matches
TutorialStateContext.h
1/******************************************************************************************************
2 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
7#ifndef TUTORIAL_STATE_CONTEXT_H
8#define TUTORIAL_STATE_CONTEXT_H
9
10#include <QObject>
11#include <QVector>
12#include "TutorialStateAbstractBase.h"
13
14class QTimer;
15class TutorialDlg;
16
20class TutorialStateContext : public QObject
21{
22 Q_OBJECT;
23
24 public:
27
30 void requestDelayedStateTransition (TutorialState tutorialState);
31
35 void requestImmediateStateTransition (TutorialState tutorialState);
36
39
40 private slots:
41 void slotTimeout ();
42
43 private:
44
45 void completeRequestedStateTransitionIfExists ();
46 void createStates ();
47 void createTimer ();
48
49 QVector<TutorialStateAbstractBase*> m_states;
50 TutorialState m_currentState;
51 TutorialState m_requestedState; // Same as m_currentState until requestStateTransition is called
52
53 TutorialDlg &m_tutorialDlg;
54
55 // Timer for delayed state transitions
56 QTimer *m_timer;
57};
58
59#endif // TUTORIAL_STATE_CONTEXT_H
Tutorial using a strategy like a comic strip with decision points deciding which panels appear.
Definition TutorialDlg.h:20
Context class for tutorial state machine.
void requestDelayedStateTransition(TutorialState tutorialState)
Request a transition to the specified state from the current state.
void requestImmediateStateTransition(TutorialState tutorialState)
Request a transition to the specified state from the current state.
TutorialDlg & tutorialDlg()
Access to tutorial dialogs and its scene.