]> git.tdb.fi Git - poefilter.git/blob - source/theme.cpp
b531cb6351222360651075d19b832889b64dc923
[poefilter.git] / source / theme.cpp
1 #include <msp/core/maputils.h>
2 #include "theme.h"
3
4 using namespace std;
5 using namespace Msp;
6
7 Theme::Theme():
8         base_font_size(32)
9 { }
10
11 void Theme::set_color(const string &name, const Color &color)
12 {
13         colors[name] = color;
14 }
15
16 const Color &Theme::get_color(const string &name) const
17 {
18         return get_item(colors, name);
19 }
20
21 void Theme::set_base_font_size(unsigned size)
22 {
23         base_font_size = size;
24 }
25
26 void Theme::set_appearance(const string &name, const Appearance &app)
27 {
28         appearances[name] = app;
29 }
30
31 const Appearance &Theme::get_appearance(const string &name) const
32 {
33         return get_item(appearances, name);
34 }
35
36
37 Theme::Loader::Loader(Theme &t):
38         DataFile::ObjectLoader<Theme>(t)
39 {
40         add("appearance", &Loader::appearance);
41         add("base_font_size", &Theme::base_font_size);
42         add("color", &Loader::color);
43 }
44
45 void Theme::Loader::appearance(const string &name)
46 {
47         Appearance app;
48         load_sub(app, obj);
49         obj.set_appearance(name, app);
50 }
51
52 void Theme::Loader::color(const string &name, unsigned r, unsigned g, unsigned b)
53 {
54         obj.set_color(name, Color(r, g, b));
55 }