X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55ccdb93e4ae4b606a4068cb37492c1ec3ed77a6..d485bda109d5ef0fef36a3f737549e9b9f54baab:/src/common/bmpbase.cpp diff --git a/src/common/bmpbase.cpp b/src/common/bmpbase.cpp index 8c940d21b0..46804febbd 100644 --- a/src/common/bmpbase.cpp +++ b/src/common/bmpbase.cpp @@ -23,6 +23,12 @@ #include "wx/image.h" #endif // WX_PRECOMP +#if wxUSE_IMAGE && wxUSE_LIBPNG && wxUSE_STREAMS + #define wxHAS_PNG_LOAD + + #include "wx/mstream.h" +#endif + // ---------------------------------------------------------------------------- // wxVariant support // ---------------------------------------------------------------------------- @@ -32,6 +38,36 @@ IMPLEMENT_VARIANT_OBJECT_EXPORTED_SHALLOWCMP(wxBitmap,WXDLLEXPORT) IMPLEMENT_VARIANT_OBJECT_EXPORTED_SHALLOWCMP(wxIcon,WXDLLEXPORT) #endif +#if wxUSE_EXTENDED_RTTI +//WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl) +//WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl) +#endif + +// ---------------------------------------------------------------------------- +// wxBitmapHelpers +// ---------------------------------------------------------------------------- + +// wxOSX has a native version and doesn't use this one. + +#ifndef __WXOSX__ + +/* static */ +wxBitmap wxBitmapHelpers::NewFromPNGData(const void* data, size_t size) +{ + wxBitmap bitmap; + +#ifdef wxHAS_PNG_LOAD + wxMemoryInputStream is(data, size); + wxImage image(is, wxBITMAP_TYPE_PNG); + if ( image.IsOk() ) + bitmap = wxBitmap(image); +#endif // wxHAS_PNG_LOAD + + return bitmap; +} + +#endif // !__WXOSX__ + // ---------------------------------------------------------------------------- // wxBitmapBase // ---------------------------------------------------------------------------- @@ -47,16 +83,16 @@ IMPLEMENT_VARIANT_OBJECT_EXPORTED_SHALLOWCMP(wxIcon,WXDLLEXPORT) IMPLEMENT_ABSTRACT_CLASS(wxBitmapBase, wxGDIObject) -IMPLEMENT_ABSTRACT_CLASS(wxBitmapHandlerBase,wxObject) +IMPLEMENT_ABSTRACT_CLASS(wxBitmapHandler, wxObject) wxList wxBitmapBase::sm_handlers; -void wxBitmapBase::AddHandler(wxBitmapHandlerBase *handler) +void wxBitmapBase::AddHandler(wxBitmapHandler *handler) { sm_handlers.Append(handler); } -void wxBitmapBase::InsertHandler(wxBitmapHandlerBase *handler) +void wxBitmapBase::InsertHandler(wxBitmapHandler *handler) { sm_handlers.Insert(handler); } @@ -126,21 +162,6 @@ void wxBitmapBase::CleanUpHandlers() } } -bool wxBitmapHandlerBase::Create(wxBitmap*, const void*, long, int, int, int) -{ - return false; -} - -bool wxBitmapHandlerBase::LoadFile(wxBitmap*, const wxString&, long, int, int) -{ - return false; -} - -bool wxBitmapHandlerBase::SaveFile(const wxBitmap*, const wxString&, int, const wxPalette*) -{ - return false; -} - class wxBitmapBaseModule: public wxModule { DECLARE_DYNAMIC_CLASS(wxBitmapBaseModule) @@ -166,11 +187,11 @@ wxBitmap::wxBitmap(const char* const* bits) #if wxUSE_IMAGE && wxUSE_XPM wxImage image(bits); - wxCHECK2_MSG(image.Ok(), return, wxT("invalid bitmap data")); + wxCHECK2_MSG(image.IsOk(), return, wxT("invalid bitmap data")); *this = wxBitmap(image); #else - wxFAIL_MSG(_T("creating bitmaps from XPMs not supported")); + wxFAIL_MSG(wxT("creating bitmaps from XPMs not supported")); #endif // wxUSE_IMAGE && wxUSE_XPM } #endif // !(defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__))