X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b0edecea489b62db69eb74ca8f7623132cceab54..e1db4c1290af151b0d85c4dcad7cbb2414e0d474:/interface/wx/colour.h diff --git a/interface/wx/colour.h b/interface/wx/colour.h index d6f3fa5f82..bf051c3ff1 100644 --- a/interface/wx/colour.h +++ b/interface/wx/colour.h @@ -3,7 +3,7 @@ // Purpose: interface of wxColour // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -13,12 +13,16 @@ @{ */ -#define wxC2S_NAME 1 //!< Return colour name, when possible. -#define wxC2S_CSS_SYNTAX 2 //!< Return colour in "rgb(r,g,b)" syntax. -#define wxC2S_HTML_SYNTAX 4 //!< Return colour in "#rrggbb" syntax. +enum { + wxC2S_NAME = 1, // return colour name, when possible + wxC2S_CSS_SYNTAX = 2, // return colour in rgb(r,g,b) syntax + wxC2S_HTML_SYNTAX = 4 // return colour in #rrggbb syntax +}; //@} +const unsigned char wxALPHA_TRANSPARENT = 0; +const unsigned char wxALPHA_OPAQUE = 0xff; /** @class wxColour @@ -37,6 +41,7 @@ @stdobjects - ::wxNullColour - An empty, invalid colour. + - ::wxTransparentColour - Valid but fully transparent colour (new in 2.9.1). - ::wxBLACK - ::wxBLUE - ::wxCYAN @@ -77,6 +82,12 @@ public: */ wxColour(const wxString& colourName); + /** + @param colRGB + A packed RGB value. + */ + wxColour(unsigned long colRGB); + /** Copy constructor. */ @@ -154,7 +165,7 @@ public: On X, an allocated pixel value is returned. If the pixel is invalid (on X, unallocated), @c -1 is returned. */ - int GetPixel() const; + wxIntPtr GetPixel() const; /** Returns the green intensity. @@ -176,13 +187,12 @@ public: /** Sets the RGB intensity values using the given values (first overload), extracting them from the packed long (second overload), using the given - string (third overloard). + string (third overload). When using third form, Set() accepts: colour names (those listed in - wxTheColourDatabase()), the CSS-like @c "rgb(r,g,b)" or - @c "rgba(r,g,b,a)" syntax (case insensitive) and the HTML-like syntax - (i.e. @c "#" followed by 6 hexadecimal digits for red, green, blue - components). + wxColourDatabase), the CSS-like @c "rgb(r,g,b)" or @c "rgba(r,g,b,a)" syntax + (case insensitive) and the HTML-like syntax: @c "#" followed by 6 hexadecimal + digits for red, green, blue components. Returns @true if the conversion was successful, @false otherwise. @@ -213,12 +223,61 @@ public: colours and alpha values. */ bool operator ==(const wxColour& colour) const; + + /** + Assign 0 or 255 to rgb out parameters. + @since 2.9.0 + */ + static void MakeMono(unsigned char* r, unsigned char* g, unsigned char* b, bool on); + + /** + Create a disabled (dimmed) colour from (in/out) rgb parameters. + @since 2.9.0 + */ + static void MakeDisabled(unsigned char* r, unsigned char* g, unsigned char* b, unsigned char brightness = 255); + + /** + Create a grey colour from (in/out) rgb parameters using integer arithmetic. + @since 2.9.0 + */ + static void MakeGrey(unsigned char* r, unsigned char* g, unsigned char* b); + + /** + Create a grey colour from (in/out) rgb parameters using floating point arithmetic. + Defaults to using the standard ITU-T BT.601 when converting to YUV, where every pixel equals + (R * @a weight_r) + (G * @a weight_g) + (B * @a weight_b). + @since 2.9.0 + */ + static void MakeGrey(unsigned char* r, unsigned char* g, unsigned char* b, + double weight_r, double weight_g, double weight_b); + + /** + Blend colour, taking alpha into account. + @since 2.9.0 + */ + static unsigned char AlphaBlend(unsigned char fg, unsigned char bg, double alpha); + + /** + ChangeLightness() is a utility function that simply darkens + or lightens a color, based on the specified percentage + ialpha of 0 would be completely black, 200 completely white + an ialpha of 100 returns the same colour + @since 2.9.0 + */ + static void ChangeLightness(unsigned char* r, unsigned char* g, unsigned char* b, int ialpha); + + /** + wxColour wrapper for ChangeLightness(r,g,b,ialpha). + @since 2.9.0 + */ + wxColour ChangeLightness(int ialpha) const; }; /** @name Predefined colors. */ //@{ wxColour wxNullColour; +wxColour wxTransparentColour; wxColour* wxBLACK; wxColour* wxBLUE; wxColour* wxCYAN;