changed wxAuiBlendColour() to work with unsigned chars instead of doubles as it's always used with them [forward port of rr55210 from 2.8]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-08-25 00:30:23 +00:00
parent 93dcd337cd
commit eecf97a5ee
2 changed files with 253 additions and 250 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -56,14 +56,14 @@
// wxAuiBlendColour is used by wxAuiStepColour // wxAuiBlendColour is used by wxAuiStepColour
double wxAuiBlendColour(double fg, double bg, double alpha) unsigned char wxAuiBlendColour(unsigned char fg, unsigned char bg, double alpha)
{ {
double result = bg + (alpha * (fg - bg)); double result = bg + (alpha * (fg - bg));
if (result < 0.0) if (result < 0.0)
result = 0.0; result = 0.0;
if (result > 255) if (result > 255)
result = 255; result = 255;
return result; return (unsigned char)result;
} }
// wxAuiStepColour() it a utility function that simply darkens // wxAuiStepColour() it a utility function that simply darkens
@@ -75,8 +75,10 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha)
if (ialpha == 100) if (ialpha == 100)
return c; return c;
double r = c.Red(), g = c.Green(), b = c.Blue(); unsigned char r = c.Red(),
double bg; g = c.Green(),
b = c.Blue();
unsigned char bg;
// ialpha is 0..200 where 0 is completely black // ialpha is 0..200 where 0 is completely black
// and 200 is completely white and 100 is the same // and 200 is completely white and 100 is the same
@@ -88,13 +90,13 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha)
if (ialpha > 100) if (ialpha > 100)
{ {
// blend with white // blend with white
bg = 255.0; bg = 255;
alpha = 1.0 - alpha; // 0 = transparent fg; 1 = opaque fg alpha = 1.0 - alpha; // 0 = transparent fg; 1 = opaque fg
} }
else else
{ {
// blend with black // blend with black
bg = 0.0; bg = 0;
alpha = 1.0 + alpha; // 0 = transparent fg; 1 = opaque fg alpha = 1.0 + alpha; // 0 = transparent fg; 1 = opaque fg
} }
@@ -102,7 +104,7 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha)
g = wxAuiBlendColour(g, bg, alpha); g = wxAuiBlendColour(g, bg, alpha);
b = wxAuiBlendColour(b, bg, alpha); b = wxAuiBlendColour(b, bg, alpha);
return wxColour((unsigned char)r, (unsigned char)g, (unsigned char)b); return wxColour(r, g, b);
} }