X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec585c30ecbfa114b5392c2982c43eb11bdda636..07aaf32633ecf18ec3edfbb41793a112914792d0:/src/xrc/xmladv.cpp diff --git a/src/xrc/xmladv.cpp b/src/xrc/xmladv.cpp index ad3c96aa93..729c5b2892 100644 --- a/src/xrc/xmladv.cpp +++ b/src/xrc/xmladv.cpp @@ -33,39 +33,45 @@ #include "wx/log.h" #endif // WX_PRECOMP +#include "wx/animate.h" +#include "wx/scopedptr.h" + // ============================================================================ // implementation // ============================================================================ #if wxUSE_ANIMATIONCTRL -wxAnimation wxXmlResourceHandler::GetAnimation(const wxString& param) +wxAnimation* wxXmlResourceHandlerImpl::GetAnimation(const wxString& param) { const wxString name = GetParamValue(param); if ( name.empty() ) - return wxNullAnimation; + return NULL; // load the animation from file - wxAnimation ani; + wxScopedPtr ani(new wxAnimation); #if wxUSE_FILESYSTEM wxFSFile * const fsfile = GetCurFileSystem().OpenFile(name, wxFS_READ | wxFS_SEEKABLE); if ( fsfile ) { - ani.Load(*fsfile->GetStream()); + ani->Load(*fsfile->GetStream()); delete fsfile; } #else - ani.LoadFile(name); + ani->LoadFile(name); #endif - if ( !ani.IsOk() ) + if ( !ani->IsOk() ) { - wxLogError(_("XRC resource: Cannot create animation from '%s'."), - name.c_str()); - return wxNullAnimation; + ReportParamError + ( + param, + wxString::Format("cannot create animation from \"%s\"", name) + ); + return NULL; } - return ani; + return ani.release(); } #endif // wxUSE_ANIMATIONCTRL