]> git.tdb.fi Git - poefilter.git/blobdiff - source/theme.cpp
Add alpha channel support for colors
[poefilter.git] / source / theme.cpp
index b531cb6351222360651075d19b832889b64dc923..6f9f5d95913394e13309eb1ef46f716d4286aac5 100644 (file)
@@ -33,6 +33,12 @@ const Appearance &Theme::get_appearance(const string &name) const
        return get_item(appearances, name);
 }
 
+const Appearance *Theme::find_appearance(const string &name) const
+{
+       AppearanceMap::const_iterator i = appearances.find(name);
+       return (i!=appearances.end() ? &i->second : 0);
+}
+
 
 Theme::Loader::Loader(Theme &t):
        DataFile::ObjectLoader<Theme>(t)
@@ -40,12 +46,14 @@ Theme::Loader::Loader(Theme &t):
        add("appearance", &Loader::appearance);
        add("base_font_size", &Theme::base_font_size);
        add("color", &Loader::color);
+       add("color", &Loader::color_alpha);
 }
 
 void Theme::Loader::appearance(const string &name)
 {
        Appearance app;
-       load_sub(app, obj);
+       Appearance::Loader ldr(app, &obj);
+       load_sub_with(ldr);
        obj.set_appearance(name, app);
 }
 
@@ -53,3 +61,8 @@ void Theme::Loader::color(const string &name, unsigned r, unsigned g, unsigned b
 {
        obj.set_color(name, Color(r, g, b));
 }
+
+void Theme::Loader::color_alpha(const string &name, unsigned r, unsigned g, unsigned b, unsigned a)
+{
+       obj.set_color(name, Color(r, g, b, a));
+}