Game of Ur
0.3.3
This is a computer adaptation of Game of Ur, written in C++ mainly using SDL and OpenGL.
Toggle main menu visibility
Loading...
Searching...
No Matches
ur_ui_tutorials_browser.hpp
Go to the documentation of this file.
1
11
12
#ifndef ZOAPPUITUTORIALSBROWSER_H
13
#define ZOAPPUITUTORIALSBROWSER_H
14
15
#define GLM_ENABLE_EXPERIMENTAL
16
#include <glm/gtx/string_cast.hpp>
17
18
#include <toymaker/engine/sim_system.hpp>
19
20
#include "
ur_records.hpp
"
21
22
28
struct
TutorialContent
{
29
std::string mHeading {};
30
std::string mText {};
31
std::string mImageFilepath {};
32
};
33
39
class
UrUITutorialsBrowser:
public
ToyMaker::SimObjectAspect<UrUITutorialsBrowser> {
40
public
:
41
42
UrUITutorialsBrowser(): ToyMaker::SimObjectAspect<UrUITutorialsBrowser>{0} {}
43
inline
static
std::string getSimObjectAspectTypeName() {
return
"UrUITutorialsBrowser"
; }
44
static
std::shared_ptr<BaseSimObjectAspect> create(
const
nlohmann::json& jsonAspectProperties);
45
std::shared_ptr<BaseSimObjectAspect> clone()
const override
;
46
47
void
loadScene(
const
std::string& sceneResourceName);
48
49
private
:
50
uint32_t mPage {0};
51
std::string mTutorialsFilepath {};
52
std::string mTutorialTextAspect {};
53
std::string mTutorialHeadingAspect {};
54
std::string mTutorialImageAspect {};
55
std::vector<TutorialContent> mTutorials {};
56
57
void
onActivated()
override
;
58
59
void
onButtonClicked(
const
std::string& button);
60
61
bool
hasPage(uint32_t page)
const
;
62
void
openPage(uint32_t page);
63
64
void
loadTutorials();
65
66
public
:
67
ToyMaker::SignalObserver<const std::string&> mObserveButtonClicked {
68
*
this
,
"ButtonClickedObserved"
,
69
[
this
](
const
std::string& button) { this->onButtonClicked(button); }
70
};
71
};
72
74
void
from_json(
const
nlohmann::json& json,
TutorialContent
& tutorialContent);
76
void
to_json(nlohmann::json& json,
const
TutorialContent
& tutorialContent);
77
78
#endif
TutorialContent
The data associated with a single tutorial page.
Definition
ur_ui_tutorials_browser.hpp:28
ur_records.hpp
Contains aspect class definition for the records save system.
src
app
ur_ui_tutorials_browser.hpp
Generated on
for Game of Ur by
1.17.0