added alpha support to generic wxColour

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2006-09-04 11:14:29 +00:00
parent 3d4424f702
commit 7f5426f09c
3 changed files with 20 additions and 8 deletions

View File

@@ -27,7 +27,7 @@ public:
// copy ctors and assignment operators // copy ctors and assignment operators
wxColour(const wxColour& col); wxColour(const wxColour& col);
wxColour& operator = (const wxColour& col); wxColour& operator=(const wxColour& col);
// dtor // dtor
~wxColour(); ~wxColour();
@@ -38,30 +38,38 @@ public:
unsigned char Red() const { return m_red; } unsigned char Red() const { return m_red; }
unsigned char Green() const { return m_green; } unsigned char Green() const { return m_green; }
unsigned char Blue() const { return m_blue; } unsigned char Blue() const { return m_blue; }
unsigned char Alpha() const { return m_alpha; }
// comparison // comparison
bool operator == (const wxColour& colour) const bool operator==(const wxColour& colour) const
{ {
return (m_red == colour.m_red && return (m_red == colour.m_red &&
m_green == colour.m_green && m_green == colour.m_green &&
m_blue == colour.m_blue && m_blue == colour.m_blue &&
m_alpha == colour.m_alpha &&
m_isInit == colour.m_isInit); m_isInit == colour.m_isInit);
} }
bool operator != (const wxColour& colour) const { return !(*this == colour); }
bool operator!=(const wxColour& colour) const { return !(*this == colour); }
protected: protected:
// Helper function // Helper function
void Init(); void Init();
virtual void InitWith(unsigned char red, unsigned char green, unsigned char blue); virtual void InitWith(unsigned char red, unsigned char green, unsigned char blue)
{
InitWith(red, green, blue, wxALPHA_OPAQUE);
}
virtual void InitWith(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha);
private: private:
bool m_isInit; bool m_isInit;
unsigned char m_red; unsigned char m_red;
unsigned char m_blue; unsigned char m_blue;
unsigned char m_green; unsigned char m_green;
unsigned char m_alpha;
private: private:
DECLARE_DYNAMIC_CLASS(wxColour) DECLARE_DYNAMIC_CLASS(wxColour)

View File

@@ -141,7 +141,7 @@ void wxDC::Clear()
wxColour clr = m_backgroundBrush.GetColour(); wxColour clr = m_backgroundBrush.GetColour();
DFB_CALL( m_surface->Clear(m_surface, DFB_CALL( m_surface->Clear(m_surface,
clr.Red(), clr.Green(), clr.Blue(), 255) ); clr.Red(), clr.Green(), clr.Blue(), clr.Alpha()) );
} }
extern bool wxDoFloodFill(wxDC *dc, wxCoord x, wxCoord y, extern bool wxDoFloodFill(wxDC *dc, wxCoord x, wxCoord y,
@@ -339,7 +339,7 @@ void wxDC::SetBrush(const wxBrush& brush)
void wxDC::SelectColour(const wxColour& clr) void wxDC::SelectColour(const wxColour& clr)
{ {
DFB_CALL( m_surface->SetColor(m_surface, DFB_CALL( m_surface->SetColor(m_surface,
clr.Red(), clr.Green(), clr.Blue(), 255) ); clr.Red(), clr.Green(), clr.Blue(), clr.Alpha()) );
#warning "use SetColorIndex?" #warning "use SetColorIndex?"
} }

View File

@@ -31,6 +31,7 @@ void wxColour::Init()
m_red = m_red =
m_blue = m_blue =
m_green = 0; m_green = 0;
m_alpha = wxALPHA_OPAQUE;
m_isInit = false; m_isInit = false;
} }
@@ -44,11 +45,12 @@ wxColour::wxColour(const wxColour& col)
*this = col; *this = col;
} }
wxColour& wxColour::operator =(const wxColour& col) wxColour& wxColour::operator=(const wxColour& col)
{ {
m_red = col.m_red; m_red = col.m_red;
m_green = col.m_green; m_green = col.m_green;
m_blue = col.m_blue; m_blue = col.m_blue;
m_alpha = col.m_alpha;
m_isInit = col.m_isInit; m_isInit = col.m_isInit;
return *this; return *this;
} }
@@ -57,10 +59,12 @@ wxColour::~wxColour()
{ {
} }
void wxColour::InitWith(unsigned char r, unsigned char g, unsigned char b) void wxColour::InitWith(unsigned char r, unsigned char g, unsigned char b,
unsigned char a)
{ {
m_red = r; m_red = r;
m_green = g; m_green = g;
m_blue = b; m_blue = b;
m_alpha = a;
m_isInit = true; m_isInit = true;
} }