]> git.tdb.fi Git - poefilter.git/blob - source/appearance.h
6806ed238d1d88085b5e714fa1056b927882f7ee
[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
8 class FilterStatement;
9 class Theme;
10
11 class Appearance
12 {
13 public:
14         class Loader: public Msp::DataFile::ObjectLoader<Appearance>
15         {
16         private:
17                 const Theme *theme;
18
19         public:
20                 Loader(Appearance &, const Theme * = 0);
21
22                 void background_color(unsigned, unsigned, unsigned);
23                 void background_color_alpha(unsigned, unsigned, unsigned, unsigned);
24                 void background_color_named(const std::string &);
25                 void border_color(unsigned, unsigned, unsigned);
26                 void border_color_alpha(unsigned, unsigned, unsigned, unsigned);
27                 void border_color_named(const std::string &);
28                 void font_size(float);
29                 void text_color(unsigned, unsigned, unsigned);
30                 void text_color_alpha(unsigned, unsigned, unsigned, unsigned);
31                 void text_color_named(const std::string &);
32         };
33
34 private:
35         unsigned font_size;
36         Color border_color;
37         Color background_color;
38         Color text_color;
39         unsigned sound_type;
40         unsigned sound_volume;
41
42 public:
43         Appearance();
44
45         void merge_from(const Appearance &);
46
47         unsigned get_font_size() const { return font_size; }
48         const Color &get_border_color() const { return border_color; }
49         const Color &get_background_color() const { return background_color; }
50         const Color &get_text_color() const { return text_color; }
51         unsigned get_sound_type() const { return sound_type; }
52         unsigned get_sound_volume() const { return sound_volume; }
53
54         void add_lines(FilterStatement &) const;
55 };
56
57 #endif