From: Václav Slavík Date: Thu, 7 Aug 2008 11:46:59 +0000 (+0000) Subject: small wxArtProvider API improvements: added HasNativeProvider() and renamed confusing... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/14440cc658a50df30181d6698cae0a803a2040ba small wxArtProvider API improvements: added HasNativeProvider() and renamed confusingly-named Insert() to PushBack() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/artprov.h b/include/wx/artprov.h index 34f365a8e9..9b9ffa7ca6 100644 --- a/include/wx/artprov.h +++ b/include/wx/artprov.h @@ -117,6 +117,8 @@ public: // Dtor removes the provider from providers stack if it's still on it virtual ~wxArtProvider(); + // Does this platform implement native icons theme? + static bool HasNativeProvider(); // Add new provider to the top of providers stack (i.e. the provider will // be queried first of all). @@ -124,7 +126,12 @@ public: // Add new provider to the bottom of providers stack (i.e. the provider // will be queried as the last one). - static void Insert(wxArtProvider *provider); + static void PushBack(wxArtProvider *provider); + +#if WXWIN_COMPATIBILITY_2_8 + // use PushBack(), it's the same thing + wxDEPRECATED( static void Insert(wxArtProvider *provider) ); +#endif // Remove latest added provider and delete it. static bool Pop(); diff --git a/interface/wx/artprov.h b/interface/wx/artprov.h index 6ce90114e1..a37cbdea9e 100644 --- a/interface/wx/artprov.h +++ b/interface/wx/artprov.h @@ -218,10 +218,21 @@ public: const wxArtClient& client = wxART_OTHER); /** - Register new art provider and add it to the bottom of providers stack - (i.e. it will be queried as the last one). + Returns true if the platform uses native icons provider that should + take precedence over any customizations. - @see Push() + This is true for any platform that has user-customizable icon themes, + currently only wxGTK. + + A typical use for this method is to decide whether a custom art provider + should be plugged in using Push() or PushBack(). + + @since 2.9.0 + */ + static bool HasNativeProvider(); + + /** + @deprecated Use PushBack() instead. */ static void Insert(wxArtProvider* provider); @@ -234,10 +245,21 @@ public: Register new art provider and add it to the top of providers stack (i.e. it will be queried as the first provider). - @see Insert() + @see PushBack() */ static void Push(wxArtProvider* provider); + /** + Register new art provider and add it to the bottom of providers stack. + In other words, it will be queried as the last one, after all others, + including the default provider. + + @see Push() + + @since 2.9.0 + */ + static void PushBack(wxArtProvider* provider); + /** Remove a provider from the stack if it is on it. The provider is not deleted, unlike when using Delete(). diff --git a/src/common/artprov.cpp b/src/common/artprov.cpp index 793718faab..267b1c2c3b 100644 --- a/src/common/artprov.cpp +++ b/src/common/artprov.cpp @@ -160,7 +160,7 @@ wxArtProvider::~wxArtProvider() sm_providers->Insert(provider); } -/*static*/ void wxArtProvider::Insert(wxArtProvider *provider) +/*static*/ void wxArtProvider::PushBack(wxArtProvider *provider) { CommonAddingProvider(); sm_providers->Append(provider); @@ -378,6 +378,16 @@ wxIcon wxArtProvider::GetMessageBoxIcon(int flags) #endif // GTK+ 2/else } +/* static */ +bool wxArtProvider::HasNativeProvider() +{ +#ifdef __WXGTK20__ + return true; +#else + return false; +#endif +} + // ---------------------------------------------------------------------------- // deprecated wxArtProvider methods // ---------------------------------------------------------------------------- @@ -408,6 +418,13 @@ wxIcon wxArtProvider::GetMessageBoxIcon(int flags) #endif // WXWIN_COMPATIBILITY_2_6 +#if WXWIN_COMPATIBILITY_2_8 +/* static */ void wxArtProvider::Insert(wxArtProvider *provider) +{ + PushBack(provider); +} +#endif // WXWIN_COMPATIBILITY_2_8 + // ============================================================================ // wxArtProviderModule // ============================================================================