ngscopeclient v0.2.2
Loading...
Searching...
No Matches
TutorialWizard.h
Go to the documentation of this file.
1/***********************************************************************************************************************
2* *
3* ngscopeclient *
4* *
5* Copyright (c) 2012-2026 Andrew D. Zonenberg and contributors *
6* All rights reserved. *
7* *
8* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the *
9* following conditions are met: *
10* *
11* * Redistributions of source code must retain the above copyright notice, this list of conditions, and the *
12* following disclaimer. *
13* *
14* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the *
15* following disclaimer in the documentation and/or other materials provided with the distribution. *
16* *
17* * Neither the name of the author nor the names of any contributors may be used to endorse or promote products *
18* derived from this software without specific prior written permission. *
19* *
20* THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
21* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL *
22* THE AUTHORS BE HELD LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES *
23* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR *
24* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
25* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *
26* POSSIBILITY OF SUCH DAMAGE. *
27* *
28***********************************************************************************************************************/
29
35#ifndef TutorialWizard_h
36#define TutorialWizard_h
37
38#include "Dialog.h"
39
40class TutorialWizard : public Dialog
41{
42public:
44 virtual ~TutorialWizard();
45
46 virtual bool Render() override;
47 virtual bool DoRender() override;
48
49 enum TutorialStep
50 {
51 TUTORIAL_00_INTRO,
52 TUTORIAL_01_ADDINSTRUMENT,
53 TUTORIAL_02_CONNECT,
54 TUTORIAL_03_ACQUIRE,
55 TUTORIAL_04_SCROLLZOOM,
56 TUTORIAL_05_YAXIS,
57 TUTORIAL_06_FILTER_GRAPH,
58
59 TUTORIAL_99_FINAL
60 };
61
62 TutorialStep GetCurrentStep()
63 { return static_cast<TutorialStep>(m_step); }
64
67 {
68 m_step ++;
69 m_continueEnabled = false;
70 }
71
74 { m_continueEnabled = true; }
75
76 void DrawSpeechBubble(
79 std::string str);
80
81protected:
82
83 void MakePathSpeechBubble(
88 float tailLength,
89 float radius,
90 float leftOverhang);
91
93 std::vector<std::string> m_markdownText;
94
96 size_t m_step;
97
100};
101
102#endif
Declaration of Dialog.
Definition AcceleratorBuffer.h:204
Generic dialog box or other popup window.
Definition Dialog.h:46
Top level application window.
Definition MainWindow.h:168
A Session stores all of the instrument configuration and other state the user has open.
Definition Session.h:126
Definition TutorialWizard.h:41
size_t m_step
Current step of the tutorial.
Definition TutorialWizard.h:96
virtual bool DoRender() override
Renders the dialog and handles UI events.
Definition TutorialWizard.cpp:97
void AdvanceToNextStep()
Move the tutorial to the next step.
Definition TutorialWizard.h:66
void EnableNextStep()
Enable the next step but do not advance to it.
Definition TutorialWizard.h:73
std::vector< std::string > m_markdownText
Text for each tutorial page.
Definition TutorialWizard.h:93
virtual bool Render() override
Draw the dialog, making sure it spawns in a sane place.
Definition TutorialWizard.cpp:78
bool m_continueEnabled
True if the "continue" button is active.
Definition TutorialWizard.h:99