Add wxColour::Get{Red,Green,Blue,Alpha}() to avoid gcc 12 warnings
These functions return the colour components as unsigned int and so promote to this type in arithmetic expressions, unlike unsigned char returned by the existing accessors without the "Get" prefix, which promotes to (signed) int and results in gcc 12 -Warith-conversion warnings when the result is then converted to unsigned, as it happened in our own wxColour::GetRGB() and GetRGBA() functions and would probably happen in a lot of code outside wx, which could also be updated to use the new functions instead of inserting casts.
This commit is contained in:
@@ -34,6 +34,20 @@ const unsigned char wxALPHA_OPAQUE = 0xff;
|
||||
|
||||
You can retrieve the current system colour settings with wxSystemSettings.
|
||||
|
||||
|
||||
@section colour_accessors Channel Accessor Functions
|
||||
|
||||
Note that this class provides pairs of functions for each of the colour
|
||||
channels, i.e. red, green, blue and alpha values. The one word functions
|
||||
Red(), Green(), Blue() and Alpha() return the values of type @c unsigned @c
|
||||
char, while GetRed(), GetGreen(), GetBlue() and GetAlpha() returns the same
|
||||
value as @c unsigned @c int. According to the C++ integer promotion rules,
|
||||
the result of any arithmetic expression involving the former will be
|
||||
(signed) @c int, while that of the latter will be @c unsigned, which is
|
||||
what would be commonly expected, so the latter family of functions should
|
||||
be typically preferred (but they are only available since wxWidgets 3.1.6).
|
||||
|
||||
|
||||
@library{wxcore}
|
||||
@category{gdi}
|
||||
|
||||
@@ -94,14 +108,47 @@ public:
|
||||
/**
|
||||
Returns the alpha value, on platforms where alpha is not yet supported, this
|
||||
always returns wxALPHA_OPAQUE.
|
||||
|
||||
@see GetAlpha()
|
||||
*/
|
||||
virtual unsigned char Alpha() const;
|
||||
|
||||
/**
|
||||
Returns the blue intensity.
|
||||
|
||||
@see GetBlue()
|
||||
*/
|
||||
virtual unsigned char Blue() const;
|
||||
|
||||
/**
|
||||
Returns the alpha value, on platforms where alpha is not yet supported, this
|
||||
always returns wxALPHA_OPAQUE.
|
||||
|
||||
@since 3.1.6
|
||||
*/
|
||||
unsigned int GetAlpha() const;
|
||||
|
||||
/**
|
||||
Returns the blue intensity as unsigned int.
|
||||
|
||||
@since 3.1.6
|
||||
*/
|
||||
unsigned int GetBlue() const;
|
||||
|
||||
/**
|
||||
Returns the green intensity as unsigned int.
|
||||
|
||||
@since 3.1.6
|
||||
*/
|
||||
unsigned int GetGreen() const;
|
||||
|
||||
/**
|
||||
Returns the red intensity as unsigned int.
|
||||
|
||||
@since 3.1.6
|
||||
*/
|
||||
unsigned int GetRed() const;
|
||||
|
||||
/**
|
||||
Converts this colour to a wxString using the given flags.
|
||||
|
||||
@@ -184,6 +231,8 @@ public:
|
||||
|
||||
/**
|
||||
Returns the green intensity.
|
||||
|
||||
@see GetGreen()
|
||||
*/
|
||||
virtual unsigned char Green() const;
|
||||
|
||||
@@ -195,6 +244,8 @@ public:
|
||||
|
||||
/**
|
||||
Returns the red intensity.
|
||||
|
||||
@see GetRed()
|
||||
*/
|
||||
virtual unsigned char Red() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user