Commit 7e0eb5a8 authored by twanvl's avatar twanvl

Added support for named colors, e.g. "white" and "black";

Added missing keys to locale.
parent 8cb9fd2f
...@@ -91,6 +91,13 @@ menu: ...@@ -91,6 +91,13 @@ menu:
basic shapes: &Basic Shapes F8 basic shapes: &Basic Shapes F8
symmetry: S&ymmetry F9 symmetry: S&ymmetry F9
paint: P&aint F10 paint: P&aint F10
# Updates window
apply changes: Apply changes
cancel changes: Cancel changes
install package: Install package
upgrade package: Upgrade package
remove package: Remove package
############################################################## Menu help texts ############################################################## Menu help texts
help: help:
......
...@@ -38,8 +38,8 @@ init script: ...@@ -38,8 +38,8 @@ init script:
# Use guild mana symbols? # Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols } guild_mana := { styling.use_guild_mana_symbols }
paintbrush_color:= { if card.border_color == "black" or card.border_color == rgb(0,0,0) then "white" paintbrush_color:= {
else "black" if card.border_color < 96 then "white" else "black"
} }
# Loyalty cost arrows # Loyalty cost arrows
...@@ -334,10 +334,7 @@ card style: ...@@ -334,10 +334,7 @@ card style:
name: Matrix name: Matrix
size: 10 size: 10
weight: bold weight: bold
color: color: { paintbrush_color() }
script:
if card.border_color == "black" or card.border_color == rgb(0,0,0) then rgb(255,255,255)
else rgb(0,0,0)
copyright line: copyright line:
left: 43 left: 43
...@@ -349,10 +346,7 @@ card style: ...@@ -349,10 +346,7 @@ card style:
font: font:
name: MPlantin name: MPlantin
size: 7 size: 7
color: color: { paintbrush_color() }
script:
if card.border_color == "black" or card.border_color == rgb(0,0,0) then rgb(255,255,255)
else rgb(0,0,0)
############################################################## Extra card fields ############################################################## Extra card fields
extra card field: extra card field:
......
...@@ -5,6 +5,12 @@ In files and scritps a color can be represented as ...@@ -5,6 +5,12 @@ In files and scritps a color can be represented as
<pre>rgb(<i>red_component</i>, <i>green_component</i>, <i>blue_component</i>)</pre> <pre>rgb(<i>red_component</i>, <i>green_component</i>, <i>blue_component</i>)</pre>
where red_component, green_component and blue_component are numbers between 0 and 255 (inclusive). where red_component, green_component and blue_component are numbers between 0 and 255 (inclusive).
--Named colors--
MSE also supports named colors, for instance @"white"@ is the same as @rgb(255,255,255)@.
For a full list of supported colors, see [[http://www.wxwidgets.org/manuals/stable/wx_wxcolourdatabase.html|the wxWidgets documentation]].
In scripts named colors are represented as [[type:string]]s.
--Examples-- --Examples--
For example: For example:
! Code Represents <<< ! Code Represents <<<
......
...@@ -195,7 +195,12 @@ class ScriptString : public ScriptValue { ...@@ -195,7 +195,12 @@ class ScriptString : public ScriptValue {
if (wxSscanf(value.c_str(),_("rgb(%u,%u,%u)"),&r,&g,&b)) { if (wxSscanf(value.c_str(),_("rgb(%u,%u,%u)"),&r,&g,&b)) {
return Color(r, g, b); return Color(r, g, b);
} else { } else {
throw ScriptError(_ERROR_3_("can't convert value", value, typeName(), _TYPE_("color"))); // color from database?
Color c(value);
if (!c.Ok()) {
throw ScriptError(_ERROR_3_("can't convert value", value, typeName(), _TYPE_("color")));
}
return c;
} }
} }
virtual int itemCount() const { return (int)value.size(); } virtual int itemCount() const { return (int)value.size(); }
...@@ -226,6 +231,7 @@ class ScriptColor : public ScriptValue { ...@@ -226,6 +231,7 @@ class ScriptColor : public ScriptValue {
virtual ScriptType type() const { return SCRIPT_COLOR; } virtual ScriptType type() const { return SCRIPT_COLOR; }
virtual String typeName() const { return _TYPE_("color"); } virtual String typeName() const { return _TYPE_("color"); }
virtual operator Color() const { return value; } virtual operator Color() const { return value; }
virtual operator int() const { return (value.Red() + value.Blue() + value.Green()) / 3; }
virtual operator String() const { virtual operator String() const {
return String::Format(_("rgb(%u,%u,%u)"), value.Red(), value.Green(), value.Blue()); return String::Format(_("rgb(%u,%u,%u)"), value.Red(), value.Green(), value.Blue());
} }
......
...@@ -329,6 +329,9 @@ template <> void Reader::handle(Color& col) { ...@@ -329,6 +329,9 @@ template <> void Reader::handle(Color& col) {
UInt r,g,b; UInt r,g,b;
if (wxSscanf(getValue().c_str(),_("rgb(%u,%u,%u)"),&r,&g,&b)) { if (wxSscanf(getValue().c_str(),_("rgb(%u,%u,%u)"),&r,&g,&b)) {
col.Set(r, g, b); col.Set(r, g, b);
} else {
col = Color(previous_value);
if (!col.Ok()) col = *wxBLACK;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment