Engauge Digitizer
2
Tutorial
TutorialStateIntroduction.cpp
Go to the documentation of this file.
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
#include "
Logger.h
"
8
#include <qdebug.h>
9
#include <QGraphicsPixmapItem>
10
#include <QGraphicsScene>
11
#include <QGraphicsView>
12
#include "
TutorialButton.h
"
13
#include "
TutorialDlg.h
"
14
#include "
TutorialStateContext.h
"
15
#include "
TutorialStateIntroduction.h
"
16
17
TutorialStateIntroduction::TutorialStateIntroduction
(
TutorialStateContext
&context) :
18
TutorialStateAbstractBase
(context),
19
m_title (nullptr),
20
m_background (nullptr),
21
m_text0 (nullptr),
22
m_text1 (nullptr),
23
m_text2 (nullptr),
24
m_next (nullptr)
25
{
26
LOG4CPP_INFO_S
((*
mainCat
)) <<
"TutorialStateIntroduction::TutorialStateIntroduction"
;
27
}
28
29
void
TutorialStateIntroduction::begin
()
30
{
31
LOG4CPP_INFO_S
((*
mainCat
)) <<
"TutorialStateIntroduction::begin ()"
;
32
33
context
().
tutorialDlg
().
scene
().clear ();
34
35
m_title =
createTitle
(tr (
"Introduction"
));
36
m_background =
createPixmapItem
(
":/engauge/img/SpreadsheetsForDoc.png"
,
37
QPoint (0, 0));
38
m_text0 =
createTextItem
(tr (
"Engauge Digitizer starts with\n"
39
"images of graphs and maps."
),
40
QPoint (200, 40));
41
m_text1 =
createTextItem
(tr (
"You create (or digitize) points along\n"
42
"the graph and map curves."
),
43
QPoint (240, 180));
44
m_text2 =
createTextItem
(tr (
"The digitized curve points can be\n"
45
"exported, as numbers, to other software tools."
),
46
QPoint (210, 330));
47
48
QSize backgroundSize =
context
().
tutorialDlg
().
backgroundSize
();
49
50
m_next =
new
TutorialButton
(tr (
"Next"
),
51
context
().tutorialDlg().scene());
52
m_next->
setGeometry
(QPoint (backgroundSize.width () -
buttonMargin
() - m_next->
size
().width (),
53
backgroundSize.height () -
buttonMargin
() - m_next->
size
().height ()));
54
connect (m_next, SIGNAL (signalTriggered ()),
this
, SLOT (
slotNext
()));
55
}
56
57
void
TutorialStateIntroduction::end
()
58
{
59
LOG4CPP_INFO_S
((*
mainCat
)) <<
"TutorialStateIntroduction::end ()"
;
60
61
// It is not safe to remove and deallocate items here since an active TutorialButton
62
// may be on the stack. So we clear the scene as the first step in the next begin()
63
}
64
65
void
TutorialStateIntroduction::slotNext
()
66
{
67
LOG4CPP_INFO_S
((*
mainCat
)) <<
"TutorialStateIntroduction::slotNext"
;
68
69
context
().
requestDelayedStateTransition
(
TUTORIAL_STATE_AXIS_POINTS
);
70
}
TutorialStateAbstractBase::context
TutorialStateContext & context()
Context class for the tutorial state machine.
Definition:
TutorialStateAbstractBase.cpp:31
TutorialStateContext
Context class for tutorial state machine.
Definition:
TutorialStateContext.h:19
TutorialButton.h
TutorialStateAbstractBase::createTextItem
QGraphicsTextItem * createTextItem(const QString &text, const QPoint &pos)
Factory method for text items.
Definition:
TutorialStateAbstractBase.cpp:46
TutorialButton::setGeometry
void setGeometry(const QPoint &pos)
Set the position. This is called after creation so screen extent is available for positioning calcula...
Definition:
TutorialButton.cpp:77
TUTORIAL_STATE_AXIS_POINTS
Definition:
TutorialStateAbstractBase.h:15
TutorialButton
Show a button with text for clicking ion. The button is implemented using layering of two graphics it...
Definition:
TutorialButton.h:19
TutorialDlg::scene
QGraphicsScene & scene()
Single scene the covers the entire tutorial dialog.
Definition:
TutorialDlg.cpp:76
TutorialStateAbstractBase
One state manages one panel of the tutorial.
Definition:
TutorialStateAbstractBase.h:29
Logger.h
TutorialStateAbstractBase::buttonMargin
int buttonMargin() const
Buttons are placed up against bottom side, and left or right side, separated by this margin.
Definition:
TutorialStateAbstractBase.cpp:26
TutorialStateIntroduction::end
virtual void end()
Transition out of this state.
Definition:
TutorialStateIntroduction.cpp:56
LOG4CPP_INFO_S
#define LOG4CPP_INFO_S(logger)
Definition:
convenience.h:18
TutorialStateContext::requestDelayedStateTransition
void requestDelayedStateTransition(TutorialState tutorialState)
Request a transition to the specified state from the current state.
Definition:
TutorialStateContext.cpp:86
TutorialStateIntroduction::slotNext
void slotNext()
Slot called when next button is triggered.
Definition:
TutorialStateIntroduction.cpp:64
mainCat
log4cpp::Category * mainCat
Definition:
Logger.cpp:14
TutorialStateIntroduction.h
TutorialStateAbstractBase::createTitle
QGraphicsTextItem * createTitle(const QString &text)
Factory method for title items.
Definition:
TutorialStateAbstractBase.cpp:56
TutorialStateContext.h
TutorialDlg::backgroundSize
QSize backgroundSize() const
Make geometry available for layout.
Definition:
TutorialDlg.cpp:44
TutorialDlg.h
TutorialStateAbstractBase::createPixmapItem
QGraphicsPixmapItem * createPixmapItem(const QString &resource, const QPoint &pos)
Factory method for pixmap items.
Definition:
TutorialStateAbstractBase.cpp:36
TutorialStateIntroduction::TutorialStateIntroduction
TutorialStateIntroduction(TutorialStateContext &context)
Single constructor.
Definition:
TutorialStateIntroduction.cpp:16
TutorialStateIntroduction::begin
virtual void begin()
Transition into this state.
Definition:
TutorialStateIntroduction.cpp:28
TutorialStateContext::tutorialDlg
TutorialDlg & tutorialDlg()
Access to tutorial dialogs and its scene.
Definition:
TutorialStateContext.cpp:109
TutorialButton::size
QSize size() const
Size of this button.
Definition:
TutorialButton.cpp:62
Generated on Sat Jan 4 2020 12:00:00 for Engauge Digitizer by
1.8.16