(@note this is not yet really possible as of wxWidgets 2.3.3, the set of wxArtProvider
bitmaps is too small).
- @section wxartprovider_identify Identifying art resources
+ @section artprovider_identify Identifying art resources
Every bitmap and icon bundle are known to wxArtProvider under an unique ID that
is used when requesting a resource from it. The ID is represented by wxArtID type
and can have one of these predefined values (you can see bitmaps represented by these
- constants in the @ref page_samples_artprovider):
+ constants in the @ref page_samples_artprov):
<table>
<tr><td>
The default theme is typically installed in @c /usr/share/icons/hicolor.
- @section wxartprovider_clients Clients
+ @section artprovider_clients Clients
Client is the entity that calls wxArtProvider's GetBitmap or GetIcon function.
It is represented by wxClientID type and can have one of these values:
@library{wxcore}
@category{misc,data}
- @see the @ref page_samples_artprovider for an example of wxArtProvider usage.
+ @see the @ref page_samples_artprov for an example of wxArtProvider usage.
*/
class wxArtProvider : public wxObject
{
const wxSize& size = wxDefaultSize);
/**
- Returns a suitable size hint for the given @e wxArtClient. If
- @a platform_default is @true, return a size based on the current platform,
- otherwise return the size from the topmost wxArtProvider. @e wxDefaultSize may
- be returned if the client doesn't have a specified size, like wxART_OTHER for
- example.
+ Returns native icon size for use specified by @a client hint.
+
+ If the platform has no commonly used default for this use or if
+ @a client is not recognized, returns wxDefaultSize.
+
+ @note In some cases, a platform may have @em several appropriate
+ native sizes (for example, wxART_FRAME_ICON for frame icons).
+ In that case, this method returns only one of them, picked
+ reasonably.
+
+ @since 2.9.0
+ */
+ static wxSize GetNativeSizeHint(const wxArtClient& client);
+
+ /**
+ Returns a suitable size hint for the given @e wxArtClient.
+
+ If @a platform_default is @true, return a size based on the current
+ platform using GetNativeSizeHint(), otherwise return the size from the
+ topmost wxArtProvider. @e wxDefaultSize may be returned if the client
+ doesn't have a specified size, like wxART_OTHER for example.
+
+ @see GetNativeSizeHint()
*/
static wxSize GetSizeHint(const wxArtClient& client,
bool platform_default = false);
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().