X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/da80ae712a30132bf19127db544959db7e1a7b52..abd474ea63667f727940a009cc3e0b23ba9f418f:/src/generic/imaglist.cpp diff --git a/src/generic/imaglist.cpp b/src/generic/imaglist.cpp index 9a658bf285..54203dbb7b 100644 --- a/src/generic/imaglist.cpp +++ b/src/generic/imaglist.cpp @@ -2,7 +2,7 @@ // Name: src/generic/imaglist.cpp // Purpose: // Author: Robert Roebling -// Id: $id$ +// Id: $Id$ // Copyright: (c) 1998 Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -14,33 +14,24 @@ #pragma hdrstop #endif -#if wxUSE_IMAGLIST +#if wxUSE_IMAGLIST && !defined(wxHAS_NATIVE_IMAGELIST) #ifndef __WXPALMOS__ -#include "wx/generic/imaglist.h" +#include "wx/imaglist.h" #ifndef WX_PRECOMP #include "wx/dc.h" + #include "wx/icon.h" + #include "wx/image.h" #endif -#include "wx/icon.h" -#include "wx/image.h" - //----------------------------------------------------------------------------- // wxImageList //----------------------------------------------------------------------------- IMPLEMENT_DYNAMIC_CLASS(wxGenericImageList, wxObject) - -#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__) -/* - * wxImageList has to be a real class or we have problems with - * the run-time information. - */ - IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxGenericImageList) -#endif wxGenericImageList::wxGenericImageList( int width, int height, bool mask, int initialCount ) { @@ -74,8 +65,10 @@ int wxGenericImageList::Add( const wxBitmap &bitmap ) { wxASSERT_MSG( (bitmap.GetWidth() >= m_width && bitmap.GetHeight() == m_height) || (m_width == 0 && m_height == 0), - _T("invalid bitmap size in wxImageList: this might work ") - _T("on this platform but definitely won't under Windows.") ); + wxT("invalid bitmap size in wxImageList: this might work ") + wxT("on this platform but definitely won't under Windows.") ); + + const int index = int(m_images.GetCount()); if (bitmap.IsKindOf(CLASSINFO(wxIcon))) { @@ -83,7 +76,7 @@ int wxGenericImageList::Add( const wxBitmap &bitmap ) } else { - // Mimic behavior of Windows ImageList_Add that automatically breaks up the added + // Mimic behaviour of Windows ImageList_Add that automatically breaks up the added // bitmap into sub-images of the correct size if (m_width > 0 && bitmap.GetWidth() > m_width && bitmap.GetHeight() >= m_height) { @@ -107,13 +100,13 @@ int wxGenericImageList::Add( const wxBitmap &bitmap ) m_height = bitmap.GetHeight(); } - return m_images.GetCount()-1; + return index; } int wxGenericImageList::Add( const wxBitmap& bitmap, const wxBitmap& mask ) { wxBitmap bmp(bitmap); - if (mask.Ok()) + if (mask.IsOk()) bmp.SetMask(new wxMask(mask)); return Add(bmp); } @@ -127,9 +120,9 @@ int wxGenericImageList::Add( const wxBitmap& bitmap, const wxColour& maskColour const wxBitmap *wxGenericImageList::GetBitmapPtr( int index ) const { - wxList::compatibility_iterator node = m_images.Item( index ); + wxObjectList::compatibility_iterator node = m_images.Item( index ); - wxCHECK_MSG( node, (wxBitmap *) NULL, wxT("wrong index in image list") ); + wxCHECK_MSG( node, NULL, wxT("wrong index in image list") ); return (wxBitmap*)node->GetData(); } @@ -160,7 +153,7 @@ wxIcon wxGenericImageList::GetIcon(int index) const bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap ) { - wxList::compatibility_iterator node = m_images.Item( index ); + wxObjectList::compatibility_iterator node = m_images.Item( index ); wxCHECK_MSG( node, false, wxT("wrong index in image list") ); @@ -182,7 +175,7 @@ bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap ) } else { - wxList::compatibility_iterator next = node->GetNext(); + wxObjectList::compatibility_iterator next = node->GetNext(); delete node->GetData(); m_images.Erase( node ); m_images.Insert( next, newBitmap ); @@ -193,7 +186,7 @@ bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap ) bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap, const wxBitmap &mask ) { - wxList::compatibility_iterator node = m_images.Item( index ); + wxObjectList::compatibility_iterator node = m_images.Item( index ); wxCHECK_MSG( node, false, wxT("wrong index in image list") ); @@ -215,13 +208,13 @@ bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap, const wxBit } else { - wxList::compatibility_iterator next = node->GetNext(); + wxObjectList::compatibility_iterator next = node->GetNext(); delete node->GetData(); m_images.Erase( node ); m_images.Insert( next, newBitmap ); } - if (mask.Ok()) + if (mask.IsOk()) newBitmap->SetMask(new wxMask(mask)); return true; @@ -229,7 +222,7 @@ bool wxGenericImageList::Replace( int index, const wxBitmap &bitmap, const wxBit bool wxGenericImageList::Remove( int index ) { - wxList::compatibility_iterator node = m_images.Item( index ); + wxObjectList::compatibility_iterator node = m_images.Item( index ); wxCHECK_MSG( node, false, wxT("wrong index in image list") ); @@ -241,7 +234,7 @@ bool wxGenericImageList::Remove( int index ) bool wxGenericImageList::RemoveAll() { - WX_CLEAR_LIST(wxList, m_images); + WX_CLEAR_LIST(wxObjectList, m_images); m_images.Clear(); return true; @@ -252,7 +245,7 @@ bool wxGenericImageList::GetSize( int index, int &width, int &height ) const width = 0; height = 0; - wxList::compatibility_iterator node = m_images.Item( index ); + wxObjectList::compatibility_iterator node = m_images.Item( index ); wxCHECK_MSG( node, false, wxT("wrong index in image list") ); @@ -266,7 +259,7 @@ bool wxGenericImageList::GetSize( int index, int &width, int &height ) const bool wxGenericImageList::Draw( int index, wxDC &dc, int x, int y, int flags, bool WXUNUSED(solidBackground) ) { - wxList::compatibility_iterator node = m_images.Item( index ); + wxObjectList::compatibility_iterator node = m_images.Item( index ); wxCHECK_MSG( node, false, wxT("wrong index in image list") );