X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..4f0eda0e6ee3c289a932ef5fd224ea1d67bb086a:/src/common/artprov.cpp diff --git a/src/common/artprov.cpp b/src/common/artprov.cpp index 16f593e9c8..7661612429 100644 --- a/src/common/artprov.cpp +++ b/src/common/artprov.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: artprov.cpp +// Name: src/common/artprov.cpp // Purpose: wxArtProvider class // Author: Vaclav Slavik // Modified by: @@ -20,16 +20,14 @@ #pragma hdrstop #endif +#include "wx/artprov.h" + #ifndef WX_PRECOMP - #include "wx/log.h" #include "wx/list.h" -#endif - -#include "wx/artprov.h" -#include "wx/hashmap.h" -#include "wx/module.h" -#if wxUSE_IMAGE -#include "wx/image.h" + #include "wx/log.h" + #include "wx/hashmap.h" + #include "wx/image.h" + #include "wx/module.h" #endif // =========================================================================== @@ -38,7 +36,7 @@ #include "wx/listimpl.cpp" WX_DECLARE_LIST(wxArtProvider, wxArtProvidersList); -WX_DEFINE_LIST(wxArtProvidersList); +WX_DEFINE_LIST(wxArtProvidersList) // ---------------------------------------------------------------------------- // Cache class - stores already requested bitmaps @@ -101,7 +99,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxArtProvider, wxObject) wxArtProvidersList *wxArtProvider::sm_providers = NULL; wxArtProviderCache *wxArtProvider::sm_cache = NULL; -/*static*/ void wxArtProvider::PushProvider(wxArtProvider *provider) +/*static*/ void wxArtProvider::CommonAddingProvider() { if ( !sm_providers ) { @@ -109,10 +107,21 @@ wxArtProviderCache *wxArtProvider::sm_cache = NULL; sm_cache = new wxArtProviderCache; } - sm_providers->Insert(provider); sm_cache->Clear(); } +/*static*/ void wxArtProvider::PushProvider(wxArtProvider *provider) +{ + CommonAddingProvider(); + sm_providers->Insert(provider); +} + +/*static*/ void wxArtProvider::InsertProvider(wxArtProvider *provider) +{ + CommonAddingProvider(); + sm_providers->Append(provider); +} + /*static*/ bool wxArtProvider::PopProvider() { wxCHECK_MSG( sm_providers, false, _T("no wxArtProvider exists") ); @@ -165,7 +174,7 @@ wxArtProviderCache *wxArtProvider::sm_cache = NULL; bmp = node->GetData()->CreateBitmap(id, client, size); if ( bmp.Ok() ) { -#if wxUSE_IMAGE +#if wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB) if ( size != wxDefaultSize && (bmp.GetWidth() != size.x || bmp.GetHeight() != size.y) ) { @@ -240,7 +249,7 @@ wxArtProviderCache *wxArtProvider::sm_cache = NULL; else if (client == wxART_BUTTON) return wxSize(16, 15); else // wxART_OTHER or perhaps a user's client, no specified size - return wxDefaultSize; + return wxDefaultSize; #endif // GTK+ 2/else }