]> git.saurik.com Git - wxWidgets.git/commitdiff
added alpha support to wxCocoa, also fixed compilation after alpha changes hopefully
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 28 Aug 2006 09:53:33 +0000 (09:53 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 28 Aug 2006 09:53:33 +0000 (09:53 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cocoa/colour.h
src/cocoa/colour.mm

index f0e3829a73ddfc03f8008ae074c191ca13dc756c..f0088f694c6128760d37547ce3897249c3852cd5 100644 (file)
@@ -46,47 +46,54 @@ 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
     {
-        // TODO: Really compare the NSColor
-        return (m_cocoaNSColor == colour.m_cocoaNSColor
-            || (m_red == colour.m_red
-            && m_green == colour.m_green
-            && m_blue == colour.m_blue));
+        return m_cocoaNSColor == colour.m_cocoaNSColor ||
+               (m_red == colour.m_red &&
+                m_green == colour.m_green &&
+                m_blue == colour.m_blue &&
+                m_alpha == colour.m_alpha);
     }
     bool operator != (const wxColour& colour) const
-    {   return !(*this == colour); }
+        { return !(*this == colour); }
 
     // Set() functions
     void Set( WX_NSColor aColor );
-    
+
     // reroute the inherited ones
-    void Set(unsigned char red, unsigned char green, unsigned char blue)
-    { wxColourBase::Set(red,green,blue); }
-    
-    // implemented in colourcmn.cpp
+    void Set(unsigned char red,
+             unsigned char green,
+             unsigned char blue,
+             unsigned char alpha = wxALPHA_OPAQUE)
+        { wxColourBase::Set(red, green, blue, alpha); }
+
     bool Set(const wxChar *str)
-    { return wxColourBase::Set(str); }
-    
+        { return wxColourBase::Set(str); }
+
     bool Set(const wxString &str)
-    { return wxColourBase::Set(str); }
-    
+        { return wxColourBase::Set(str); }
+
     void Set(unsigned long colRGB)
-    { wxColourBase::Set(colRGB); }
-    
+        { wxColourBase::Set(colRGB); }
+
 protected:
     // puts the object in an invalid, uninitialized state
     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,
+                          unsigned char alpha);
 
 private:
     WX_NSColor m_cocoaNSColor;
     unsigned char m_red;
     unsigned char m_green;
     unsigned char m_blue;
+    unsigned char m_alpha;
 
     DECLARE_DYNAMIC_CLASS(wxColour)
 };
index 94c1f4cc860b375c3e02f87823e08c7d58265916..92c5ee515c2b70efe975b3351ff15dc0d737bd3b 100644 (file)
@@ -36,6 +36,7 @@ wxColour::wxColour (const wxColour& col)
 ,   m_red(col.m_red)
 ,   m_green(col.m_green)
 ,   m_blue(col.m_blue)
+,   m_alpha(col.m_alpha)
 {
     [m_cocoaNSColor retain];
 }
@@ -52,6 +53,7 @@ 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_cocoaNSColor retain];
     return *this;
 }
@@ -61,14 +63,18 @@ wxColour::~wxColour ()
     [m_cocoaNSColor release];
 }
 
-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)
 {
     wxAutoNSAutoreleasePool pool;
     [m_cocoaNSColor release];
-    m_cocoaNSColor = [[NSColor colorWithCalibratedRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0] retain];
+    m_cocoaNSColor = [[NSColor colorWithCalibratedRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a/255.0] retain];
     m_red = r;
     m_green = g;
     m_blue = b;
+    m_alpha = a;
 }
 
 void wxColour::Set( WX_NSColor aColor )
@@ -84,4 +90,5 @@ void wxColour::Set( WX_NSColor aColor )
     m_red   = (wxUint8) ([rgbColor redComponent]   * 255.0);
     m_green = (wxUint8) ([rgbColor greenComponent] * 255.0);
     m_blue  = (wxUint8) ([rgbColor blueComponent]  * 255.0);
+    m_alpha  = (wxUint8) ([rgbColor alphaComponent]  * 255.0);
 }