Appearance::Appearance():
font_size(0),
sound_type(0),
- sound_volume(100)
+ sound_volume(100),
+ show_icon(false),
+ icon_shape(CIRCLE),
+ icon_color(WHITE),
+ icon_size(1),
+ show_beam(false),
+ beam_color(WHITE)
{ }
void Appearance::merge_from(const Appearance &other)
st.add_line(format("SetFontSize %d", font_size));
if(background_color.defined)
- st.add_line(format("SetBackgroundColor %d %d %d", background_color.r, background_color.g, background_color.b));
+ st.add_line(format("SetBackgroundColor %d %d %d %d", background_color.r, background_color.g, background_color.b, background_color.a));
if(border_color.defined)
- st.add_line(format("SetBorderColor %d %d %d", border_color.r, border_color.g, border_color.b));
+ st.add_line(format("SetBorderColor %d %d %d %d", border_color.r, border_color.g, border_color.b, border_color.a));
if(text_color.defined)
- st.add_line(format("SetTextColor %d %d %d", text_color.r, text_color.g, text_color.b));
+ st.add_line(format("SetTextColor %d %d %d %d", text_color.r, text_color.g, text_color.b, text_color.a));
+
+ if(show_icon)
+ st.add_line(format("MinimapIcon %d %s %s", icon_size, icon_color, icon_shape));
if(sound_type)
+ {
st.add_line(format("PlayAlertSound %d %d", sound_type, sound_volume));
+ st.add_line("DisableDropSound");
+ }
+
+ if(show_beam)
+ st.add_line(format("PlayEffect %s", beam_color));
}
{
add("alert_sound", &Appearance::sound_type, &Appearance::sound_volume);
add("background_color", &Loader::background_color);
+ add("background_color", &Loader::background_color_alpha);
add("background_color", &Loader::background_color_named);
add("border_color", &Loader::border_color);
+ add("border_color", &Loader::border_color_alpha);
add("border_color", &Loader::border_color_named);
add("font_size", &Loader::font_size);
+ add("inherit", &Loader::inherit);
+ add("light_beam", &Loader::light_beam);
+ add("minimap_icon", &Loader::minimap_icon);
+ add("minimap_icon", &Loader::minimap_icon_size);
add("text_color", &Loader::text_color);
+ add("text_color", &Loader::text_color_alpha);
add("text_color", &Loader::text_color_named);
}
obj.background_color = Color(r, g, b);
}
+void Appearance::Loader::background_color_alpha(unsigned r, unsigned g, unsigned b, unsigned a)
+{
+ obj.background_color = Color(r, g, b, a);
+}
+
void Appearance::Loader::background_color_named(const string &name)
{
if(!theme)
obj.border_color = Color(r, g, b);
}
+void Appearance::Loader::border_color_alpha(unsigned r, unsigned g, unsigned b, unsigned a)
+{
+ obj.border_color = Color(r, g, b, a);
+}
+
void Appearance::Loader::border_color_named(const string &name)
{
if(!theme)
obj.font_size = base_size*s+0.5f;
}
+void Appearance::Loader::inherit(const string &name)
+{
+ if(!theme)
+ throw logic_error("No theme");
+ obj = theme->get_appearance(name);
+}
+
+void Appearance::Loader::light_beam(EffectColor color)
+{
+ obj.show_beam = true;
+ obj.beam_color = color;
+}
+
+void Appearance::Loader::minimap_icon(EffectColor color, IconShape shape)
+{
+ minimap_icon_size(color, shape, 1);
+}
+
+void Appearance::Loader::minimap_icon_size(EffectColor color, IconShape shape, unsigned size)
+{
+ obj.show_icon = true;
+ obj.icon_shape = shape;
+ obj.icon_color = color;
+ obj.icon_size = size;
+}
+
void Appearance::Loader::text_color(unsigned r, unsigned g, unsigned b)
{
obj.text_color = Color(r, g, b);
}
+void Appearance::Loader::text_color_alpha(unsigned r, unsigned g, unsigned b, unsigned a)
+{
+ obj.text_color = Color(r, g, b, a);
+}
+
void Appearance::Loader::text_color_named(const string &name)
{
if(!theme)