]> git.tdb.fi Git - poefilter.git/blobdiff - source/theme.cpp
Revamp appearance definitions
[poefilter.git] / source / theme.cpp
index 3b09dc3f3fddd9540dcef643c25483f12c6c5151..b531cb6351222360651075d19b832889b64dc923 100644 (file)
@@ -4,19 +4,6 @@
 using namespace std;
 using namespace Msp;
 
-Color::Color():
-       r(200),
-       g(200),
-       b(200)
-{ }
-
-Color::Color(unsigned r_, unsigned g_, unsigned b_):
-       r(r_),
-       g(g_),
-       b(b_)
-{ }
-
-
 Theme::Theme():
        base_font_size(32)
 { }
@@ -36,14 +23,32 @@ void Theme::set_base_font_size(unsigned size)
        base_font_size = size;
 }
 
+void Theme::set_appearance(const string &name, const Appearance &app)
+{
+       appearances[name] = app;
+}
+
+const Appearance &Theme::get_appearance(const string &name) const
+{
+       return get_item(appearances, name);
+}
+
 
 Theme::Loader::Loader(Theme &t):
        DataFile::ObjectLoader<Theme>(t)
 {
+       add("appearance", &Loader::appearance);
        add("base_font_size", &Theme::base_font_size);
        add("color", &Loader::color);
 }
 
+void Theme::Loader::appearance(const string &name)
+{
+       Appearance app;
+       load_sub(app, obj);
+       obj.set_appearance(name, app);
+}
+
 void Theme::Loader::color(const string &name, unsigned r, unsigned g, unsigned b)
 {
        obj.set_color(name, Color(r, g, b));