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
wxColour(const wxColour& col);
wxColour& operator = (const wxColour& col);
wxColour& operator=(const wxColour& col);
// dtor
~wxColour();
@@ -38,30 +38,38 @@ public:
unsigned char Red() const { return m_red; }
unsigned char Green() const { return m_green; }
unsigned char Blue() const { return m_blue; }
unsigned char Alpha() const { return m_alpha; }
// comparison
bool operator == (const wxColour& colour) const
bool operator==(const wxColour& colour) const
{
return (m_red == colour.m_red &&
m_green == colour.m_green &&
m_blue == colour.m_blue &&
m_alpha == colour.m_alpha &&
m_isInit == colour.m_isInit);
}
bool operator != (const wxColour& colour) const { return !(*this == colour); }
bool operator!=(const wxColour& colour) const { return !(*this == colour); }
protected:
// Helper function
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:
bool m_isInit;
unsigned char m_red;
unsigned char m_blue;
unsigned char m_green;
unsigned char m_alpha;
private:
DECLARE_DYNAMIC_CLASS(wxColour)

View File

@@ -141,7 +141,7 @@ void wxDC::Clear()
wxColour clr = m_backgroundBrush.GetColour();
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,
@@ -339,7 +339,7 @@ void wxDC::SetBrush(const wxBrush& brush)
void wxDC::SelectColour(const wxColour& clr)
{
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?"
}

View File

@@ -31,6 +31,7 @@ void wxColour::Init()
m_red =
m_blue =
m_green = 0;
m_alpha = wxALPHA_OPAQUE;
m_isInit = false;
}
@@ -44,11 +45,12 @@ wxColour::wxColour(const wxColour& col)
*this = col;
}
wxColour& wxColour::operator =(const wxColour& col)
wxColour& wxColour::operator=(const wxColour& col)
{
m_red = col.m_red;
m_green = col.m_green;
m_blue = col.m_blue;
m_alpha = col.m_alpha;
m_isInit = col.m_isInit;
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_green = g;
m_blue = b;
m_alpha = a;
m_isInit = true;
}