added wxArtProvider::InsertProvider to accompany PushProvider
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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}
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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") );
|
||||
|
Reference in New Issue
Block a user