-
Notifications
You must be signed in to change notification settings - Fork 1
/
GUILobbyState.cpp
90 lines (72 loc) · 2.74 KB
/
GUILobbyState.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// ========================================================================= //
// Fighting game framework (2D) with online multiplayer.
// Copyright(C) 2014 Jordan Sparks <[email protected]>
//
// This program is free software; you can redistribute it and / or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 3
// of the License, or(at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// ========================================================================= //
// File: GUILobbyState.cpp
// Author: Jordan Sparks <[email protected]>
// ================================================ //
// Implements GUILobbyState class, the GUI object for the menu state.
// ================================================ //
#include "GUILobbyState.hpp"
#include "WidgetStatic.hpp"
#include "WidgetButton.hpp"
#include "WidgetTextbox.hpp"
#include "WidgetListbox.hpp"
#include "Config.hpp"
#include "Engine.hpp"
// ================================================ //
GUILobbyState::GUILobbyState(const std::string& file) :
GUI()
{
Config c(file);
if (!c.isLoaded()){
throw std::exception("Failed to load GUI config file for LobbyState");
}
StringList names;
// Add each layer to the GUI.
std::shared_ptr<GUILayer> layer(new GUILobbyStateLayer::Root());
names = StringList{ "ready", "start", "send", "exit" };
layer->parse<WidgetButton>(c, Widget::Type::BUTTON, names);
names = StringList{ "send" };
layer->parse<WidgetTextbox>(c, Widget::Type::TEXTBOX, names);
names = StringList{ "players", "chat" };
layer->parse<WidgetListbox>(c, Widget::Type::LISTBOX, names);
this->addLayer(layer);
this->pushLayer(GUILobbyState::Layer::ROOT);
}
// ================================================ //
GUILobbyState::~GUILobbyState(void)
{
}
// ================================================ //
void GUILobbyState::update(double dt)
{
GUI::update(dt);
}
// ================================================ //
// ================================================ //
namespace GUILobbyStateLayer{
// ================================================ //
// Root
// ================================================ //
Root::Root(void)
{
this->setID(GUILobbyState::Layer::ROOT);
this->setLayerName("root");
}
// ================================================ //
}
// ================================================ //