]> git.tdb.fi Git - poefilter.git/blob - source/appearance.cpp
bdb25bc97f6b2a5123eb30c04b6027c51aac7778
[poefilter.git] / source / appearance.cpp
1 #include "appearance.h"
2 #include "theme.h"
3
4 using namespace std;
5 using namespace Msp;
6
7 Appearance::Appearance():
8         font_size(32),
9         sound_type(0),
10         sound_volume(100)
11 { }
12
13 Appearance::Loader::Loader(Appearance &a, const Theme &t):
14         DataFile::ObjectLoader<Appearance>(a),
15         theme(t)
16 {
17         add("alert_sound", &Appearance::sound_type, &Appearance::sound_volume);
18         add("background_color", &Loader::background_color);
19         add("background_color", &Loader::background_color_named);
20         add("border_color", &Loader::border_color);
21         add("border_color", &Loader::border_color_named);
22         add("font_size", &Loader::font_size);
23         add("text_color", &Loader::text_color);
24         add("text_color", &Loader::text_color_named);
25 }
26
27 void Appearance::Loader::background_color(unsigned r, unsigned g, unsigned b)
28 {
29         obj.background_color = Color(r, g, b);
30 }
31
32 void Appearance::Loader::background_color_named(const string &name)
33 {
34         obj.background_color = theme.get_color(name);
35 }
36
37 void Appearance::Loader::border_color(unsigned r, unsigned g, unsigned b)
38 {
39         obj.border_color = Color(r, g, b);
40 }
41
42 void Appearance::Loader::border_color_named(const string &name)
43 {
44         obj.border_color = theme.get_color(name);
45 }
46
47 void Appearance::Loader::font_size(float s)
48 {
49         obj.font_size = theme.get_base_font_size()*s+0.5f;
50 }
51
52 void Appearance::Loader::text_color(unsigned r, unsigned g, unsigned b)
53 {
54         obj.text_color = Color(r, g, b);
55 }
56
57 void Appearance::Loader::text_color_named(const string &name)
58 {
59         obj.text_color = theme.get_color(name);
60 }