X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5b9003ae3213f487fa3be74804b426a8ad0db323..07aaf32633ecf18ec3edfbb41793a112914792d0:/src/generic/imaglist.cpp?ds=sidebyside diff --git a/src/generic/imaglist.cpp b/src/generic/imaglist.cpp index 70e0ee492e..4ca54a6e75 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,30 +14,22 @@ #pragma hdrstop #endif -#if wxUSE_IMAGLIST +#if wxUSE_IMAGLIST && !defined(wxHAS_NATIVE_IMAGELIST) -#ifndef __WXPALMOS__ +#include "wx/imaglist.h" -#include "wx/generic/imaglist.h" - -#include "wx/icon.h" -#include "wx/image.h" -#include "wx/dc.h" +#ifndef WX_PRECOMP + #include "wx/dc.h" + #include "wx/icon.h" + #include "wx/image.h" +#endif //----------------------------------------------------------------------------- // 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 ) { @@ -71,16 +63,18 @@ 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))) + if (bitmap.IsKindOf(wxCLASSINFO(wxIcon))) { m_images.Append( new wxIcon( (const wxIcon&) 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) { @@ -104,13 +98,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); } @@ -124,9 +118,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(); } @@ -157,11 +151,11 @@ 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") ); - wxBitmap* newBitmap = (bitmap.IsKindOf(CLASSINFO(wxIcon))) ? + wxBitmap* newBitmap = (bitmap.IsKindOf(wxCLASSINFO(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) @@ -179,7 +173,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 ); @@ -190,11 +184,11 @@ 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") ); - wxBitmap* newBitmap = (bitmap.IsKindOf(CLASSINFO(wxIcon))) ? + wxBitmap* newBitmap = (bitmap.IsKindOf(wxCLASSINFO(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) @@ -212,13 +206,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; @@ -226,7 +220,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") ); @@ -238,7 +232,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; @@ -249,7 +243,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") ); @@ -263,13 +257,13 @@ 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") ); wxBitmap *bm = (wxBitmap*)node->GetData(); - if (bm->IsKindOf(CLASSINFO(wxIcon))) + if (bm->IsKindOf(wxCLASSINFO(wxIcon))) dc.DrawIcon( * ((wxIcon*) bm), x, y); else dc.DrawBitmap( *bm, x, y, (flags & wxIMAGELIST_DRAW_TRANSPARENT) > 0 ); @@ -278,4 +272,3 @@ bool wxGenericImageList::Draw( int index, wxDC &dc, int x, int y, } #endif // wxUSE_IMAGLIST -#endif // __WXPALMOS__