]> git.saurik.com Git - wxWidgets.git/commitdiff
adding alpha to wxColour
authorStefan Csomor <csomor@advancedconcepts.ch>
Sat, 26 Aug 2006 13:33:09 +0000 (13:33 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sat, 26 Aug 2006 13:33:09 +0000 (13:33 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/colour.h
include/wx/mac/carbon/colour.h
src/mac/carbon/colour.cpp

index 11a729d702b8dd2de71a8c706f648c60100d1bb8..98a8c298917a7675d86e920878984577453abbcf 100644 (file)
 // this macro avoids to repeat these lines across all colour.h files, since
 // Set() is a virtual function and thus cannot be called by wxColourBase
 // constructors
-#define DEFINE_STD_WXCOLOUR_CONSTRUCTORS                                    \
-    wxColour( unsigned char red, unsigned char green, unsigned char blue )  \
-        { Set(red, green, blue); }                                          \
-    wxColour( unsigned long colRGB ) { Set(colRGB); }                       \
-    wxColour(const wxString &colourName) { Set(colourName); }               \
+#define DEFINE_STD_WXCOLOUR_CONSTRUCTORS                                                              \
+    wxColour( unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = 255 ) \
+        { Set(red, green, blue, alpha); }                                                             \
+    wxColour( unsigned long colRGB ) { Set(colRGB); }                                                 \
+    wxColour(const wxString &colourName) { Set(colourName); }                                         \
     wxColour(const wxChar *colourName) { Set(colourName); }
 
 
@@ -47,6 +47,13 @@ class WXDLLEXPORT wxColourBase : public wxGDIObject
 protected:
 
     virtual void InitWith(unsigned char red, unsigned char green, unsigned char blue) = 0;
+
+    // this will be overridden in alpha supporting classes
+    virtual void InitWith(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha) 
+    {
+        InitWith( red, green, blue ) ;
+    }
+
     virtual bool FromString(const wxChar *);
 
 public:
@@ -57,8 +64,8 @@ public:
     // Set() functions
     // ---------------
 
-    void Set(unsigned char red, unsigned char green, unsigned char blue)
-        { InitWith(red,green,blue); }
+    void Set(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = 255)
+        { InitWith(red,green,blue, alpha); }
 
     // implemented in colourcmn.cpp
     bool Set(const wxChar *str)
@@ -86,6 +93,8 @@ public:
     virtual unsigned char Red() const = 0;
     virtual unsigned char Green() const = 0;
     virtual unsigned char Blue() const = 0;
+    virtual unsigned char Alpha() const
+        { return 255 ; }
 
     // implemented in colourcmn.cpp
     virtual wxString GetAsString(long flags = wxC2S_NAME | wxC2S_CSS_SYNTAX) const;
index 3abeee88ea8657a1c0b2bae291136184b8e7b4c1..24bdf8381359f5640d11e0f9d67abaae25a6c710 100644 (file)
@@ -35,6 +35,7 @@ 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
@@ -42,7 +43,8 @@ public:
         return (m_isInit == colour.m_isInit
                 && m_red == colour.m_red
                 && m_green == colour.m_green
-                && m_blue == colour.m_blue);
+                && m_blue == colour.m_blue
+                && m_alpha == colour.m_alpha);
     }
     bool operator != (const wxColour& colour) const { return !(*this == colour); }
 
@@ -53,13 +55,19 @@ protected :
     // Helper function
     void Init();
 
-    void InitWith( unsigned char red, unsigned char green, unsigned char blue );
+    void InitWith( unsigned char red, unsigned char green, unsigned char blue ) 
+    {
+        InitWith( red, green, blue , 255) ;
+    }
+
+    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;
 
 public:
     WXCOLORREF m_pixel ;
index 9d656b02614cea2b4d92bca6d84baac109af3403..9fa04b0464024270b06ade79e0d9890011f49130 100644 (file)
@@ -44,11 +44,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;
 
     wxComposeRGBColor( &m_pixel , m_red , m_blue , m_green );