]> git.saurik.com Git - wxWidgets.git/commitdiff
added alpha support to generic wxColour
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 4 Sep 2006 11:14:29 +0000 (11:14 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 4 Sep 2006 11:14:29 +0000 (11:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/colour.h
src/dfb/dc.cpp
src/generic/colour.cpp

index 04e36452540423b92b0c0853dae9048a03023aa7..a5707e3039b852eba0842dfaac60d9b0b96f61ab 100644 (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)
index d80c8ff60039c790d8114bf77fbae22952b5acd2..44dc6d99cab00eabacf16c2d9cff05e37d61fd69 100644 (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?"
 }
 
index e9bccfc59fba116e5d0cb54b7c600aa17284ae9a..e51a7e3938bd4faebf06aaee5bf97cdb9221b0e0 100644 (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;
 }