]> git.tdb.fi Git - poefilter.git/blobdiff - source/appearance.h
Add support for the new visual indicators
[poefilter.git] / source / appearance.h
index a522796c663270469e4692a2bed9ecfa405797b0..538ea2e96709c7037d12dafc055f69da1bf121a2 100644 (file)
@@ -1,9 +1,13 @@
 #ifndef APPEARANCE_H_
 #define APPEARANCE_H_
 
+#include <list>
 #include <msp/datafile/objectloader.h>
 #include "color.h"
+#include "effectcolor.h"
+#include "iconshape.h"
 
+class FilterStatement;
 class Theme;
 
 class Appearance
@@ -12,17 +16,24 @@ public:
        class Loader: public Msp::DataFile::ObjectLoader<Appearance>
        {
        private:
-               const Theme &theme;
+               const Theme *theme;
 
        public:
-               Loader(Appearance &, const Theme &);
+               Loader(Appearance &, const Theme * = 0);
 
                void background_color(unsigned, unsigned, unsigned);
+               void background_color_alpha(unsigned, unsigned, unsigned, unsigned);
                void background_color_named(const std::string &);
                void border_color(unsigned, unsigned, unsigned);
+               void border_color_alpha(unsigned, unsigned, unsigned, unsigned);
                void border_color_named(const std::string &);
                void font_size(float);
+               void inherit(const std::string &);
+               void light_beam(EffectColor);
+               void minimap_icon(EffectColor, IconShape);
+               void minimap_icon_size(EffectColor, IconShape, unsigned);
                void text_color(unsigned, unsigned, unsigned);
+               void text_color_alpha(unsigned, unsigned, unsigned, unsigned);
                void text_color_named(const std::string &);
        };
 
@@ -33,16 +44,26 @@ private:
        Color text_color;
        unsigned sound_type;
        unsigned sound_volume;
+       bool show_icon;
+       IconShape icon_shape;
+       EffectColor icon_color;
+       unsigned icon_size;
+       bool show_beam;
+       EffectColor beam_color;
 
 public:
        Appearance();
 
+       void merge_from(const Appearance &);
+
        unsigned get_font_size() const { return font_size; }
        const Color &get_border_color() const { return border_color; }
        const Color &get_background_color() const { return background_color; }
        const Color &get_text_color() const { return text_color; }
        unsigned get_sound_type() const { return sound_type; }
        unsigned get_sound_volume() const { return sound_volume; }
+
+       void add_lines(FilterStatement &) const;
 };
 
 #endif