X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e53a95bcb122a06a74e116aba717b0d7a5bdc1b8..4322f94f29dd668540ba31a26d08402b7e849b23:/src/common/artprov.cpp diff --git a/src/common/artprov.cpp b/src/common/artprov.cpp index 4657066f99..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: @@ -13,10 +13,6 @@ // headers // --------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "artprov.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -24,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 // =========================================================================== @@ -42,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 @@ -105,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 ) { @@ -113,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") ); @@ -169,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) ) { @@ -204,7 +209,7 @@ wxArtProviderCache *wxArtProvider::sm_cache = NULL; } #if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include + #include "wx/gtk/private.h" extern GtkIconSize wxArtClientToIconSize(const wxArtClient& client); #endif // defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) @@ -244,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 }