]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxArtProvider::InsertProvider to accompany PushProvider
authorVáclav Slavík <vslavik@fastmail.fm>
Thu, 31 Aug 2006 17:00:13 +0000 (17:00 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Thu, 31 Aug 2006 17:00:13 +0000 (17:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/artprov.tex
include/wx/artprov.h
src/common/artprov.cpp

index 16a804837e4e5a7850a31f2ceb9569ab34dfd51a..690fd24b3936972aedd38178c8e0bf57343b2039 100644 (file)
@@ -183,6 +183,17 @@ Returns a suitable size hint for the given {\it wxArtClient}. If
 otherwise return the size from the topmost wxArtProvider. {\it wxDefaultSize} may be 
 returned if the client doesn't have a specified size, like wxART\_OTHER for example.
 
+\membersection{wxArtProvider::InsertProvider}\label{wxartproviderinsertprovider}
+
+\func{static void}{InsertProvider}{\param{wxArtProvider* }{provider}}
+
+Register new art provider and add it to the bottom of providers stack (i.e.
+it will be queried as the last one).
+
+\wxheading{See also}
+
+\helpref{PushProvider}{wxartproviderpushprovider}
+
 \membersection{wxArtProvider::PopProvider}\label{wxartproviderctor}
 
 \func{static bool}{PopProvider}{\void}
@@ -193,7 +204,12 @@ Remove latest added provider and delete it.
 
 \func{static void}{PushProvider}{\param{wxArtProvider* }{provider}}
 
-Register new art provider (add it to the top of providers stack).
+Register new art provider and add it to the top of providers stack (i.e. it
+will be queried as the first provider).
+
+\wxheading{See also}
+
+\helpref{InsertProvider}{wxartproviderinsertprovider}
 
 \membersection{wxArtProvider::RemoveProvider}\label{wxartproviderremoveprovider}
 
index c2b9d98bdd8c83dcdd47a228926a24d1b8a32107..91e5a270bc5a5b9758a12d4e3fd7b89e6b4dceab 100644 (file)
@@ -112,9 +112,14 @@ typedef wxString wxArtID;
 class WXDLLEXPORT wxArtProvider : public wxObject
 {
 public:
-    // Add new provider to the top of providers stack.
+    // Add new provider to the top of providers stack (i.e. the provider will
+    // be querier first of all).
     static void PushProvider(wxArtProvider *provider);
 
+    // Add new provider to the bottom of providers stack (i.e. the provider
+    // will be queried as the last one).
+    static void InsertProvider(wxArtProvider *provider);
+
     // Remove latest added provider and delete it.
     static bool PopProvider();
 
@@ -152,7 +157,7 @@ protected:
     {
         return GetSizeHint(client, true);
     }
-                             
+
     // Derived classes must override this method to create requested
     // art resource. This method is called only once per instance's
     // lifetime for each requested wxArtID.
@@ -160,6 +165,9 @@ protected:
                                   const wxArtClient& WXUNUSED(client),
                                   const wxSize& WXUNUSED(size)) = 0;
 
+private:
+    static void InitProvidersList();
+
 private:
     // list of providers:
     static wxArtProvidersList *sm_providers;
index 04873a0698cc262f0575e7c55adff64e88a81ce2..918dc3307a1d53375bd074cccb02a2d0d1831515 100644 (file)
@@ -99,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 )
     {
@@ -107,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") );