From: Julian Smart Date: Mon, 28 Feb 2005 11:00:07 +0000 (+0000) Subject: Added XPM ctor X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/cad61c3e8f976515852eb65b10587e08e0282445 Added XPM ctor git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32453 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/image.h b/include/wx/image.h index 14555d5800..77a6cb84f3 100644 --- a/include/wx/image.h +++ b/include/wx/image.h @@ -156,6 +156,8 @@ public: wxImage( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ); wxImage( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 ); wxImage( const wxString& name, const wxString& mimetype, int index = -1 ); + wxImage( const char** xpmData ); + wxImage( char** xpmData ); #if wxUSE_STREAMS wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 ); @@ -168,6 +170,7 @@ public: bool Create( int width, int height, bool clear = true ); bool Create( int width, int height, unsigned char* data, bool static_data = false ); bool Create( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ); + bool Create( const char** xpmData ); void Destroy(); // creates an identical copy of the image (the = operator diff --git a/src/common/image.cpp b/src/common/image.cpp index 204c4b6657..2a8b2013ff 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -35,6 +35,10 @@ #include "wx/utils.h" #include "wx/math.h" +#if wxUSE_XPM +#include "wx/xpmdecod.h" +#endif + // For memcpy #include @@ -159,6 +163,29 @@ wxImage::wxImage( const wxImage* image ) if (image) Ref(*image); } +wxImage::wxImage( const char** xpmData ) +{ + Create(xpmData); +} + +wxImage::wxImage( char** xpmData ) +{ + Create((const char**) xpmData); +} + +bool wxImage::Create( const char** xpmData ) +{ +#if wxUSE_XPM + UnRef(); + + wxXPMDecoder decoder; + (*this) = decoder.ReadData(xpmData); + return Ok(); +#else + return false; +#endif +} + bool wxImage::Create( int width, int height, bool clear ) { UnRef();