summaryrefslogtreecommitdiff
path: root/src/gui/gui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/gui.cpp')
-rw-r--r--src/gui/gui.cpp42
1 files changed, 31 insertions, 11 deletions
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index 75f67435..593bed10 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -24,14 +24,13 @@
#include "gui/focushandler.h"
#include "gui/palette.h"
#include "gui/sdlinput.h"
-#include "gui/theme.h"
#include "gui/truetypefont.h"
#include "gui/widgets/window.h"
#include "gui/widgets/windowcontainer.h"
-#include "configlistener.h"
#include "configuration.h"
+#include "eventlistener.h"
#include "graphics.h"
#include "log.h"
@@ -39,6 +38,7 @@
#include "resources/imageset.h"
#include "resources/imageloader.h"
#include "resources/resourcemanager.h"
+#include "resources/theme.h"
#include <guichan/exception.hpp>
#include <guichan/image.hpp>
@@ -50,19 +50,26 @@ SDLInput *guiInput = 0;
// Bolded font
gcn::Font *boldFont = 0;
-class GuiConfigListener : public ConfigListener
+// Mono font
+gcn::Font *monoFont = 0;
+
+class GuiConfigListener : public EventListener
{
public:
GuiConfigListener(Gui *g):
mGui(g)
{}
- void optionChanged(const std::string &name)
+ void event(Event::Channel channel, const Event &event)
{
- if (name == "customcursor")
+ if (channel == Event::ConfigChannel)
{
- bool bCustomCursor = config.getValue("customcursor", 1) == 1;
- mGui->setUseCustomCursor(bCustomCursor);
+ if (event.getType() == Event::ConfigOptionChanged &&
+ event.getString("option") == "customcursor")
+ {
+ bool bCustomCursor = config.getBoolValue("customcursor");
+ mGui->setUseCustomCursor(bCustomCursor);
+ }
}
}
private:
@@ -104,7 +111,7 @@ Gui::Gui(Graphics *graphics):
ResourceManager *resman = ResourceManager::getInstance();
// Set global font
- const int fontSize = (int) config.getValue("fontSize", 11);
+ const int fontSize = config.getValue("fontSize", 11);
std::string fontFile = branding.getValue("font", "fonts/dejavusans.ttf");
std::string path = resman->getPath(fontFile);
@@ -132,17 +139,29 @@ Gui::Gui(Graphics *graphics):
std::string("': ") + e.getMessage());
}
+ // Set mono font
+ fontFile = branding.getValue("monoFont", "fonts/dejavusans-mono.ttf");
+ path = resman->getPath(fontFile);
+ try
+ {
+ monoFont = new TrueTypeFont(path, fontSize);
+ }
+ catch (gcn::Exception e)
+ {
+ logger->error(std::string("Unable to load '") + fontFile +
+ std::string("': ") + e.getMessage());
+ }
+
gcn::Widget::setGlobalFont(mGuiFont);
// Initialize mouse cursor and listen for changes to the option
- setUseCustomCursor(config.getValue("customcursor", 1) == 1);
+ setUseCustomCursor(config.getBoolValue("customcursor"));
mConfigListener = new GuiConfigListener(this);
- config.addListener("customcursor", mConfigListener);
+ mConfigListener->listen(Event::ConfigChannel);
}
Gui::~Gui()
{
- config.removeListener("customcursor", mConfigListener);
delete mConfigListener;
if (mMouseCursors)
@@ -150,6 +169,7 @@ Gui::~Gui()
delete mGuiFont;
delete boldFont;
+ delete monoFont;
delete mInfoParticleFont;
delete getTop();