Added listbox color scheme

This commit is contained in:
cnjinhao
2014-12-30 06:28:23 +08:00
parent 052d34a746
commit aa12254844
22 changed files with 142 additions and 107 deletions

View File

@@ -114,45 +114,49 @@ namespace nana
return *this;
}
color& color::blend(const color& bgcolor, bool ignore_bgcolor_alpha)
color color::blend(const color& bgcolor, bool ignore_bgcolor_alpha) const
{
if (a_ < 1.0)
{
color result;
if (0.0 < a_)
{
if (ignore_bgcolor_alpha || (1.0 == bgcolor.b_))
{
r_ = r_ * a_ + bgcolor.r_ * (1.0 - a_);
g_ = g_ * a_ + bgcolor.g_ * (1.0 - a_);
b_ = b_ * a_ + bgcolor.b_ * (1.0 - a_);
a_ = 1.0;
result.r_ = r_ * a_ + bgcolor.r_ * (1.0 - a_);
result.g_ = g_ * a_ + bgcolor.g_ * (1.0 - a_);
result.b_ = b_ * a_ + bgcolor.b_ * (1.0 - a_);
result.a_ = 1.0;
}
else
{
r_ = r_ * a_ + bgcolor.r_ * bgcolor.a_ * (1.0 - a_);
g_ = g_ * a_ + bgcolor.g_ * bgcolor.a_ * (1.0 - a_);
b_ = b_ * a_ + bgcolor.b_ * bgcolor.a_ * (1.0 - a_);
a_ = a_ + (bgcolor.a_ * (1.0 - a_));
result.r_ = r_ * a_ + bgcolor.r_ * bgcolor.a_ * (1.0 - a_);
result.g_ = g_ * a_ + bgcolor.g_ * bgcolor.a_ * (1.0 - a_);
result.b_ = b_ * a_ + bgcolor.b_ * bgcolor.a_ * (1.0 - a_);
result.a_ = a_ + (bgcolor.a_ * (1.0 - a_));
}
}
else
{
r_ = bgcolor.r_;
g_ = bgcolor.g_;
b_ = bgcolor.b_;
a_ = (ignore_bgcolor_alpha ? 1.0 : bgcolor.a_);
result.r_ = bgcolor.r_;
result.g_ = bgcolor.g_;
result.b_ = bgcolor.b_;
result.a_ = (ignore_bgcolor_alpha ? 1.0 : bgcolor.a_);
}
return result;
}
return *this;
}
color& color::blend(const color& bgcolor, double alpha)
color color::blend(const color& bgcolor, double alpha) const
{
r_ = r_ * alpha + bgcolor.r_ * (1.0 - alpha);
g_ = g_ * alpha + bgcolor.g_ * (1.0 - alpha);
b_ = b_ * alpha + bgcolor.b_ * (1.0 - alpha);
a_ = 1.0;
return *this;
color result;
result.r_ = r_ * alpha + bgcolor.r_ * (1.0 - alpha);
result.g_ = g_ * alpha + bgcolor.g_ * (1.0 - alpha);
result.b_ = b_ * alpha + bgcolor.b_ * (1.0 - alpha);
result.a_ = 1.0;
return result;
}
bool color::invisible() const