X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/222ed1d678dff2f5c3c4164321dd05e8f47de487..5a410e4453e28ee77ee3ad7a407ca71692f9f30f:/src/generic/imaglist.cpp diff --git a/src/generic/imaglist.cpp b/src/generic/imaglist.cpp index 18a0f826ff..8aac4fa72e 100644 --- a/src/generic/imaglist.cpp +++ b/src/generic/imaglist.cpp @@ -7,7 +7,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "imaglist.h" #endif @@ -45,6 +45,7 @@ wxGenericImageList::wxGenericImageList( int width, int height, bool mask, int in wxGenericImageList::~wxGenericImageList() { + (void)RemoveAll(); } int wxGenericImageList::GetImageCount() const @@ -67,6 +68,11 @@ bool wxGenericImageList::Create() int wxGenericImageList::Add( const wxBitmap &bitmap ) { + wxASSERT_MSG( bitmap.GetWidth() == m_width && + bitmap.GetHeight() == m_height, + _T("invalid bitmap size in wxImageList: this might work ") + _T("on this platform but definitely won't under Windows.") ); + if (bitmap.IsKindOf(CLASSINFO(wxIcon))) m_images.Append( new wxIcon( (const wxIcon&) bitmap ) ); else @@ -104,17 +110,15 @@ bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap ) wxCHECK_MSG( node, FALSE, wxT("wrong index in image list") ); - wxBitmap* newBitmap = NULL; - if (bitmap.IsKindOf(CLASSINFO(wxIcon))) -#if defined(__VISAGECPP__) -//just can't do this in VisualAge now, with all this new Bitmap-Icon stuff -//so construct it from a bitmap object until I can figure this nonsense out. (DW) - newBitmap = new wxBitmap(bitmap) ; -#else - newBitmap = new wxBitmap( (const wxIcon&) bitmap ); -#endif - else - newBitmap = new wxBitmap(bitmap) ; + wxBitmap* newBitmap = (bitmap.IsKindOf(CLASSINFO(wxIcon))) ? + #if defined(__VISAGECPP__) + //just can't do this in VisualAge now, with all this new Bitmap-Icon stuff + //so construct it from a bitmap object until I can figure this nonsense out. (DW) + new wxBitmap(bitmap) + #else + new wxBitmap( (const wxIcon&) bitmap ) + #endif + : new wxBitmap(bitmap) ; if (index == (int) m_images.GetCount() - 1) {