// 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); }
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:
// 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)
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;
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
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); }
// 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 ;