From fa8bc37bc20613e53136f26882aee31e11bef131 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sat, 26 Aug 2006 13:33:09 +0000 Subject: [PATCH 1/1] adding alpha to wxColour git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/colour.h | 23 ++++++++++++++++------- include/wx/mac/carbon/colour.h | 12 ++++++++++-- src/mac/carbon/colour.cpp | 3 ++- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/include/wx/colour.h b/include/wx/colour.h index 11a729d702..98a8c29891 100644 --- a/include/wx/colour.h +++ b/include/wx/colour.h @@ -20,11 +20,11 @@ // 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; diff --git a/include/wx/mac/carbon/colour.h b/include/wx/mac/carbon/colour.h index 3abeee88ea..24bdf83813 100644 --- a/include/wx/mac/carbon/colour.h +++ b/include/wx/mac/carbon/colour.h @@ -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 ; diff --git a/src/mac/carbon/colour.cpp b/src/mac/carbon/colour.cpp index 9d656b0261..9fa04b0464 100644 --- a/src/mac/carbon/colour.cpp +++ b/src/mac/carbon/colour.cpp @@ -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 ); -- 2.45.2