X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/edf8e8e071eb4ba7313c156ab8e2a2878ffcf7dc..245f35816d761212279e8cf223475efb7a367553:/src/common/image.cpp diff --git a/src/common/image.cpp b/src/common/image.cpp index cccfe9f1bf..10035ce965 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -85,10 +85,10 @@ wxImageRefData::wxImageRefData() m_maskRed = 0; m_maskGreen = 0; m_maskBlue = 0; - m_hasMask = FALSE; + m_hasMask = false; - m_ok = FALSE; - m_static = FALSE; + m_ok = false; + m_static = false; } wxImageRefData::~wxImageRefData() @@ -156,45 +156,44 @@ wxImage::wxImage( const wxImage* image ) if (image) Ref(*image); } -void wxImage::Create( int width, int height, bool clear ) +bool wxImage::Create( int width, int height, bool clear ) { UnRef(); m_refData = new wxImageRefData(); M_IMGDATA->m_data = (unsigned char *) malloc( width*height*3 ); - if (M_IMGDATA->m_data) - { - if (clear) memset(M_IMGDATA->m_data, 0, width*height*3); - - M_IMGDATA->m_width = width; - M_IMGDATA->m_height = height; - M_IMGDATA->m_ok = TRUE; - } - else + if (!M_IMGDATA->m_data) { UnRef(); + return false; } + + if (clear) + memset(M_IMGDATA->m_data, 0, width*height*3); + + M_IMGDATA->m_width = width; + M_IMGDATA->m_height = height; + M_IMGDATA->m_ok = true; + + return true; } -void wxImage::Create( int width, int height, unsigned char* data, bool static_data ) +bool wxImage::Create( int width, int height, unsigned char* data, bool static_data ) { UnRef(); + wxCHECK_MSG( data, false, _T("NULL data in wxImage::Create") ); + m_refData = new wxImageRefData(); M_IMGDATA->m_data = data; - if (M_IMGDATA->m_data) - { - M_IMGDATA->m_width = width; - M_IMGDATA->m_height = height; - M_IMGDATA->m_ok = TRUE; - M_IMGDATA->m_static = static_data; - } - else - { - UnRef(); - } + M_IMGDATA->m_width = width; + M_IMGDATA->m_height = height; + M_IMGDATA->m_ok = true; + M_IMGDATA->m_static = static_data; + + return true; } void wxImage::Destroy() @@ -736,7 +735,7 @@ void wxImage::SetData( unsigned char *data ) newRefData->m_width = M_IMGDATA->m_width; newRefData->m_height = M_IMGDATA->m_height; newRefData->m_data = data; - newRefData->m_ok = TRUE; + newRefData->m_ok = true; newRefData->m_maskRed = M_IMGDATA->m_maskRed; newRefData->m_maskGreen = M_IMGDATA->m_maskGreen; newRefData->m_maskBlue = M_IMGDATA->m_maskBlue; @@ -756,7 +755,7 @@ void wxImage::SetData( unsigned char *data, int new_width, int new_height ) newRefData->m_width = new_width; newRefData->m_height = new_height; newRefData->m_data = data; - newRefData->m_ok = TRUE; + newRefData->m_ok = true; newRefData->m_maskRed = M_IMGDATA->m_maskRed; newRefData->m_maskGreen = M_IMGDATA->m_maskGreen; newRefData->m_maskBlue = M_IMGDATA->m_maskBlue; @@ -767,7 +766,7 @@ void wxImage::SetData( unsigned char *data, int new_width, int new_height ) newRefData->m_width = new_width; newRefData->m_height = new_height; newRefData->m_data = data; - newRefData->m_ok = TRUE; + newRefData->m_ok = true; } UnRef(); @@ -834,7 +833,7 @@ void wxImage::SetMaskColour( unsigned char r, unsigned char g, unsigned char b ) M_IMGDATA->m_maskRed = r; M_IMGDATA->m_maskGreen = g; M_IMGDATA->m_maskBlue = b; - M_IMGDATA->m_hasMask = TRUE; + M_IMGDATA->m_hasMask = true; } unsigned char wxImage::GetMaskRed() const @@ -867,7 +866,7 @@ void wxImage::SetMask( bool mask ) bool wxImage::HasMask() const { - wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") ); + wxCHECK_MSG( Ok(), false, wxT("invalid image") ); return M_IMGDATA->m_hasMask; } @@ -893,7 +892,7 @@ bool wxImage::SetMaskFromImage(const wxImage& mask, if ( (M_IMGDATA->m_height != mask.GetHeight() ) || (M_IMGDATA->m_width != mask.GetWidth () ) ) { wxLogError( _("Image and Mask have different sizes") ); - return FALSE; + return false; } // find unused colour @@ -901,7 +900,7 @@ bool wxImage::SetMaskFromImage(const wxImage& mask, if (!FindFirstUnusedColour(&r, &g, &b)) { wxLogError( _("No Unused Color in image being masked") ); - return FALSE ; + return false ; } unsigned char *imgdata = GetData(); @@ -926,9 +925,9 @@ bool wxImage::SetMaskFromImage(const wxImage& mask, } SetMaskColour(r, g, b); - SetMask(TRUE); + SetMask(true); - return TRUE; + return true; } #if wxUSE_PALETTE @@ -938,7 +937,7 @@ bool wxImage::SetMaskFromImage(const wxImage& mask, bool wxImage::HasPalette() const { if (!Ok()) - return FALSE; + return false; return M_IMGDATA->m_palette.Ok(); } @@ -964,7 +963,7 @@ void wxImage::SetOption(const wxString& name, const wxString& value) { wxCHECK_RET( Ok(), wxT("invalid image") ); - int idx = M_IMGDATA->m_optionNames.Index(name, FALSE); + int idx = M_IMGDATA->m_optionNames.Index(name, false); if (idx == wxNOT_FOUND) { M_IMGDATA->m_optionNames.Add(name); @@ -988,7 +987,7 @@ wxString wxImage::GetOption(const wxString& name) const { wxCHECK_MSG( Ok(), wxEmptyString, wxT("invalid image") ); - int idx = M_IMGDATA->m_optionNames.Index(name, FALSE); + int idx = M_IMGDATA->m_optionNames.Index(name, false); if (idx == wxNOT_FOUND) return wxEmptyString; else @@ -1004,9 +1003,9 @@ int wxImage::GetOptionInt(const wxString& name) const bool wxImage::HasOption(const wxString& name) const { - wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") ); + wxCHECK_MSG( Ok(), false, wxT("invalid image") ); - return (M_IMGDATA->m_optionNames.Index(name, FALSE) != wxNOT_FOUND); + return (M_IMGDATA->m_optionNames.Index(name, false) != wxNOT_FOUND); } bool wxImage::LoadFile( const wxString& filename, long type, int index ) @@ -1022,10 +1021,10 @@ bool wxImage::LoadFile( const wxString& filename, long type, int index ) { wxLogError( _("Can't load image from file '%s': file does not exist."), filename.c_str() ); - return FALSE; + return false; } #else // !wxUSE_STREAMS - return FALSE; + return false; #endif // wxUSE_STREAMS } @@ -1042,10 +1041,10 @@ bool wxImage::LoadFile( const wxString& filename, const wxString& mimetype, int { wxLogError( _("Can't load image from file '%s': file does not exist."), filename.c_str() ); - return FALSE; + return false; } #else // !wxUSE_STREAMS - return FALSE; + return false; #endif // wxUSE_STREAMS } @@ -1059,12 +1058,12 @@ bool wxImage::SaveFile( const wxString& filename ) const if (pHandler) { SaveFile(filename, pHandler->GetType()); - return TRUE; + return true; } wxLogError(_("Can't save image to file '%s': unknown extension."), filename.c_str()); - return FALSE; + return false; } bool wxImage::SaveFile( const wxString& filename, int type ) const @@ -1081,7 +1080,7 @@ bool wxImage::SaveFile( const wxString& filename, int type ) const } #endif // wxUSE_STREAMS - return FALSE; + return false; } bool wxImage::SaveFile( const wxString& filename, const wxString& mimetype ) const @@ -1098,7 +1097,7 @@ bool wxImage::SaveFile( const wxString& filename, const wxString& mimetype ) con } #endif // wxUSE_STREAMS - return FALSE; + return false; } bool wxImage::CanRead( const wxString &name ) @@ -1107,7 +1106,7 @@ bool wxImage::CanRead( const wxString &name ) wxFileInputStream stream(name); return CanRead(stream); #else - return FALSE; + return false; #endif } @@ -1132,10 +1131,10 @@ bool wxImage::CanRead( wxInputStream &stream ) { wxImageHandler *handler=(wxImageHandler*)node->GetData(); if (handler->CanRead( stream )) - return TRUE; + return true; } - return FALSE; + return false; } int wxImage::GetImageCount( wxInputStream &stream, long type ) @@ -1163,7 +1162,7 @@ int wxImage::GetImageCount( wxInputStream &stream, long type ) if ( !handler ) { wxLogWarning(_("No image handler for type %d defined."), type); - return FALSE; + return false; } if ( handler->CanRead(stream) ) @@ -1193,12 +1192,12 @@ bool wxImage::LoadFile( wxInputStream& stream, long type, int index ) { handler=(wxImageHandler*)node->GetData(); if ( handler->CanRead(stream) ) - return handler->LoadFile(this, stream, TRUE/*verbose*/, index); + return handler->LoadFile(this, stream, true/*verbose*/, index); } wxLogWarning( _("No handler found for image type.") ); - return FALSE; + return false; } handler = FindHandler(type); @@ -1207,10 +1206,10 @@ bool wxImage::LoadFile( wxInputStream& stream, long type, int index ) { wxLogWarning( _("No image handler for type %d defined."), type ); - return FALSE; + return false; } - return handler->LoadFile(this, stream, TRUE/*verbose*/, index); + return handler->LoadFile(this, stream, true/*verbose*/, index); } bool wxImage::LoadFile( wxInputStream& stream, const wxString& mimetype, int index ) @@ -1225,15 +1224,15 @@ bool wxImage::LoadFile( wxInputStream& stream, const wxString& mimetype, int ind { wxLogWarning( _("No image handler for type %s defined."), mimetype.GetData() ); - return FALSE; + return false; } - return handler->LoadFile( this, stream, TRUE/*verbose*/, index ); + return handler->LoadFile( this, stream, true/*verbose*/, index ); } bool wxImage::SaveFile( wxOutputStream& stream, int type ) const { - wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") ); + wxCHECK_MSG( Ok(), false, wxT("invalid image") ); wxImageHandler *handler = FindHandler(type); @@ -1241,7 +1240,7 @@ bool wxImage::SaveFile( wxOutputStream& stream, int type ) const { wxLogWarning( _("No image handler for type %d defined."), type ); - return FALSE; + return false; } return handler->SaveFile( (wxImage*)this, stream ); @@ -1249,7 +1248,7 @@ bool wxImage::SaveFile( wxOutputStream& stream, int type ) const bool wxImage::SaveFile( wxOutputStream& stream, const wxString& mimetype ) const { - wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") ); + wxCHECK_MSG( Ok(), false, wxT("invalid image") ); wxImageHandler *handler = FindHandlerMime(mimetype); @@ -1257,7 +1256,7 @@ bool wxImage::SaveFile( wxOutputStream& stream, const wxString& mimetype ) const { wxLogWarning( _("No image handler for type %s defined."), mimetype.GetData() ); - return FALSE; + return false; } return handler->SaveFile( (wxImage*)this, stream ); @@ -1267,7 +1266,7 @@ bool wxImage::SaveFile( wxOutputStream& stream, const wxString& mimetype ) const void wxImage::AddHandler( wxImageHandler *handler ) { // make sure that the memory will be freed at the program end - sm_handlers.DeleteContents(TRUE); + sm_handlers.DeleteContents(true); // Check for an existing handler of the type being added. if (FindHandler( handler->GetType() ) == 0) @@ -1291,7 +1290,7 @@ void wxImage::AddHandler( wxImageHandler *handler ) void wxImage::InsertHandler( wxImageHandler *handler ) { // make sure that the memory will be freed at the program end - sm_handlers.DeleteContents(TRUE); + sm_handlers.DeleteContents(true); // Check for an existing handler of the type being added. if (FindHandler( handler->GetType() ) == 0) @@ -1313,10 +1312,10 @@ bool wxImage::RemoveHandler( const wxString& name ) if (handler) { sm_handlers.DeleteObject(handler); - return TRUE; + return true; } else - return FALSE; + return false; } wxImageHandler *wxImage::FindHandler( const wxString& name ) @@ -1364,7 +1363,7 @@ wxImageHandler *wxImage::FindHandlerMime( const wxString& mimetype ) while (node) { wxImageHandler *handler = (wxImageHandler *)node->GetData(); - if (handler->GetMimeType().IsSameAs(mimetype, FALSE)) return handler; + if (handler->GetMimeType().IsSameAs(mimetype, false)) return handler; node = node->GetNext(); } return 0; @@ -1391,6 +1390,24 @@ void wxImage::CleanUpHandlers() } +wxString wxImage::GetImageExtWildcard() +{ + wxString fmts; + + wxList& Handlers = wxImage::GetHandlers(); + wxNode* Node = Handlers.GetFirst(); + while ( Node ) + { + wxImageHandler* Handler = (wxImageHandler*)Node->GetData(); + fmts += wxT("*.") + Handler->GetExtension(); + Node = Node->GetNext(); + if ( Node ) fmts += wxT(";"); + } + + return wxT("(") + fmts + wxT(")|") + fmts; +} + + //----------------------------------------------------------------------------- // wxImageHandler //----------------------------------------------------------------------------- @@ -1400,12 +1417,12 @@ IMPLEMENT_ABSTRACT_CLASS(wxImageHandler,wxObject) #if wxUSE_STREAMS bool wxImageHandler::LoadFile( wxImage *WXUNUSED(image), wxInputStream& WXUNUSED(stream), bool WXUNUSED(verbose), int WXUNUSED(index) ) { - return FALSE; + return false; } bool wxImageHandler::SaveFile( wxImage *WXUNUSED(image), wxOutputStream& WXUNUSED(stream), bool WXUNUSED(verbose) ) { - return FALSE; + return false; } int wxImageHandler::GetImageCount( wxInputStream& WXUNUSED(stream) ) @@ -1423,7 +1440,7 @@ bool wxImageHandler::CanRead( const wxString& name ) wxLogError( _("Can't check image format of file '%s': file does not exist."), name.c_str() ); - return FALSE; + return false; } bool wxImageHandler::CallDoCanRead(wxInputStream& stream) @@ -1432,7 +1449,7 @@ bool wxImageHandler::CallDoCanRead(wxInputStream& stream) if ( posOld == wxInvalidOffset ) { // can't test unseekable stream - return FALSE; + return false; } bool ok = DoCanRead(stream); @@ -1443,7 +1460,7 @@ bool wxImageHandler::CallDoCanRead(wxInputStream& stream) wxLogDebug(_T("Failed to rewind the stream in wxImageHandler!")); // reading would fail anyhow as we're not at the right position - return FALSE; + return false; } return ok; @@ -1511,7 +1528,7 @@ wxImageHistogram::FindFirstUnusedColour(unsigned char *r, if ( b2 >= 255 ) { wxLogError(_("GetUnusedColour:: No Unused Color in image ") ); - return FALSE; + return false; } } } @@ -1526,7 +1543,7 @@ wxImageHistogram::FindFirstUnusedColour(unsigned char *r, if ( b ) *b = b2; - return TRUE; + return true; } bool @@ -1879,7 +1896,7 @@ class wxImageModule: public wxModule DECLARE_DYNAMIC_CLASS(wxImageModule) public: wxImageModule() {} - bool OnInit() { wxImage::InitStandardHandlers(); return TRUE; }; + bool OnInit() { wxImage::InitStandardHandlers(); return true; }; void OnExit() { wxImage::CleanUpHandlers(); }; };