1. changed wxIconBundle to use m_refData and COW to make copying icon bundles
fast (which was needed for 2) 2. make it possible to return wxIconBundles from wxArtProvider 3. implement Mac-specific wxArtProvider doing (2) (modified patch 1581960) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45309 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include "wx/string.h"
|
||||
#include "wx/bitmap.h"
|
||||
#include "wx/icon.h"
|
||||
#include "wx/iconbndl.h"
|
||||
|
||||
class WXDLLEXPORT wxArtProvidersList;
|
||||
class WXDLLEXPORT wxArtProviderCache;
|
||||
@@ -44,6 +45,7 @@ typedef wxString wxArtID;
|
||||
#define wxART_HELP_BROWSER wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER)
|
||||
#define wxART_MESSAGE_BOX wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX)
|
||||
#define wxART_BUTTON wxART_MAKE_CLIENT_ID(wxART_BUTTON)
|
||||
#define wxART_LIST wxART_MAKE_CLIENT_ID(wxART_LIST)
|
||||
|
||||
#define wxART_OTHER wxART_MAKE_CLIENT_ID(wxART_OTHER)
|
||||
|
||||
@@ -146,6 +148,11 @@ public:
|
||||
const wxArtClient& client = wxART_OTHER,
|
||||
const wxSize& size = wxDefaultSize);
|
||||
|
||||
// Query the providers for iconbundle with given ID and return it. Return
|
||||
// wxNullIconBundle if no provider provides it.
|
||||
static wxIconBundle GetIconBundle(const wxArtID& id,
|
||||
const wxArtClient& client = wxART_OTHER);
|
||||
|
||||
// Get the size hint of an icon from a specific wxArtClient, queries
|
||||
// the topmost provider if platform_dependent = false
|
||||
static wxSize GetSizeHint(const wxArtClient& client, bool platform_dependent = false);
|
||||
@@ -177,12 +184,18 @@ 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.
|
||||
// Derived classes must override CreateBitmap or CreateIconBundle
|
||||
// (or both) to create requested art resource. This method is called
|
||||
// only once per instance's lifetime for each requested wxArtID.
|
||||
virtual wxBitmap CreateBitmap(const wxArtID& WXUNUSED(id),
|
||||
const wxArtClient& WXUNUSED(client),
|
||||
const wxSize& WXUNUSED(size)) = 0;
|
||||
const wxSize& WXUNUSED(size)) { return wxNullBitmap; }
|
||||
|
||||
virtual wxIconBundle CreateIconBundle(const wxArtID& WXUNUSED(id),
|
||||
const wxArtClient& WXUNUSED(client))
|
||||
{
|
||||
return wxNullIconBundle;
|
||||
}
|
||||
|
||||
private:
|
||||
static void CommonAddingProvider();
|
||||
|
Reference in New Issue
Block a user