// 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).
// 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();
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);
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().
sm_providers->Insert(provider);
}
-/*static*/ void wxArtProvider::Insert(wxArtProvider *provider)
+/*static*/ void wxArtProvider::PushBack(wxArtProvider *provider)
{
CommonAddingProvider();
sm_providers->Append(provider);
#endif // GTK+ 2/else
}
+/* static */
+bool wxArtProvider::HasNativeProvider()
+{
+#ifdef __WXGTK20__
+ return true;
+#else
+ return false;
+#endif
+}
+
// ----------------------------------------------------------------------------
// deprecated wxArtProvider methods
// ----------------------------------------------------------------------------
#endif // WXWIN_COMPATIBILITY_2_6
+#if WXWIN_COMPATIBILITY_2_8
+/* static */ void wxArtProvider::Insert(wxArtProvider *provider)
+{
+ PushBack(provider);
+}
+#endif // WXWIN_COMPATIBILITY_2_8
+
// ============================================================================
// wxArtProviderModule
// ============================================================================