]> git.tdb.fi Git - poefilter.git/blob - source/appearance.h
Add support for the new visual indicators
[poefilter.git] / source / appearance.h
1 #ifndef APPEARANCE_H_
2 #define APPEARANCE_H_
3
4 #include <list>
5 #include <msp/datafile/objectloader.h>
6 #include "color.h"
7 #include "effectcolor.h"
8 #include "iconshape.h"
9
10 class FilterStatement;
11 class Theme;
12
13 class Appearance
14 {
15 public:
16         class Loader: public Msp::DataFile::ObjectLoader<Appearance>
17         {
18         private:
19                 const Theme *theme;
20
21         public:
22                 Loader(Appearance &, const Theme * = 0);
23
24                 void background_color(unsigned, unsigned, unsigned);
25                 void background_color_alpha(unsigned, unsigned, unsigned, unsigned);
26                 void background_color_named(const std::string &);
27                 void border_color(unsigned, unsigned, unsigned);
28                 void border_color_alpha(unsigned, unsigned, unsigned, unsigned);
29                 void border_color_named(const std::string &);
30                 void font_size(float);
31                 void inherit(const std::string &);
32                 void light_beam(EffectColor);
33                 void minimap_icon(EffectColor, IconShape);
34                 void minimap_icon_size(EffectColor, IconShape, unsigned);
35                 void text_color(unsigned, unsigned, unsigned);
36                 void text_color_alpha(unsigned, unsigned, unsigned, unsigned);
37                 void text_color_named(const std::string &);
38         };
39
40 private:
41         unsigned font_size;
42         Color border_color;
43         Color background_color;
44         Color text_color;
45         unsigned sound_type;
46         unsigned sound_volume;
47         bool show_icon;
48         IconShape icon_shape;
49         EffectColor icon_color;
50         unsigned icon_size;
51         bool show_beam;
52         EffectColor beam_color;
53
54 public:
55         Appearance();
56
57         void merge_from(const Appearance &);
58
59         unsigned get_font_size() const { return font_size; }
60         const Color &get_border_color() const { return border_color; }
61         const Color &get_background_color() const { return background_color; }
62         const Color &get_text_color() const { return text_color; }
63         unsigned get_sound_type() const { return sound_type; }
64         unsigned get_sound_volume() const { return sound_volume; }
65
66         void add_lines(FilterStatement &) const;
67 };
68
69 #endif