X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/50b1e15e0cc8d18d0e0cc1d0973ae0ea27a070b8..92c0fc34c104c8d7c12d6a3b78ea232690fc23f4:/interface/wx/iconbndl.h?ds=sidebyside diff --git a/interface/wx/iconbndl.h b/interface/wx/iconbndl.h index 49609c12f7..217adb464a 100644 --- a/interface/wx/iconbndl.h +++ b/interface/wx/iconbndl.h @@ -2,8 +2,7 @@ // Name: iconbndl.h // Purpose: interface of wxIconBundle // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -21,6 +20,28 @@ class wxIconBundle : public wxGDIObject { public: + /** + The elements of this enum determine what happens if GetIcon() doesn't + find the icon of exactly the requested size. + + @since 2.9.4 + */ + enum + { + /// Return invalid icon if exact size is not found. + FALLBACK_NONE = 0, + + /// Return the icon of the system icon size if exact size is not found. + /// May be combined with other non-NONE enum elements to determine what + /// happens if the system icon size is not found neither. + FALLBACK_SYSTEM = 1, + + /// Return the icon of closest larger size or, if there is no icon of + /// larger size in the bundle, the closest icon of smaller size. + FALLBACK_NEAREST_LARGER = 2 + }; + + /** Default ctor. */ @@ -85,19 +106,32 @@ public: void AddIcon(const wxIcon& icon); /** - Returns the icon with the given size; if no such icon exists, returns - the icon with size @c wxSYS_ICON_X and @c wxSYS_ICON_Y; if no such icon - exists, returns the first icon in the bundle. + Returns the icon with the given size. + + If @a size is ::wxDefaultSize, it is interpreted as the standard system + icon size, i.e. the size returned by wxSystemSettings::GetMetric() for + @c wxSYS_ICON_X and @c wxSYS_ICON_Y. + + If the bundle contains an icon with exactly the requested size, it's + always returned. Otherwise, the behaviour depends on the flags. If only + wxIconBundle::FALLBACK_NONE is given, the function returns an invalid + icon. If wxIconBundle::FALLBACK_SYSTEM is given, it tries to find the + icon of standard system size, regardless of the size passed as + parameter. Otherwise, or if the icon system size is not found neither, + but wxIconBundle::FALLBACK_NEAREST_LARGER flag is specified, the + function returns the smallest icon of the size larger than the + requested one or, if this fails too, just the icon closest to the + specified size. - If size = wxDefaultSize, returns the icon with size @c wxSYS_ICON_X and - @c wxSYS_ICON_Y. + The @a flags parameter is available only since wxWidgets 2.9.4. */ - wxIcon GetIcon(const wxSize& size) const; + wxIcon GetIcon(const wxSize& size, int flags = FALLBACK_SYSTEM) const; /** Same as @code GetIcon( wxSize( size, size ) ) @endcode. */ - wxIcon GetIcon(wxCoord size = wxDefaultCoord) const; + wxIcon GetIcon(wxCoord size = wxDefaultCoord, + int flags = FALLBACK_SYSTEM) const; /** Returns the icon with exactly the given size or ::wxNullIcon if this @@ -105,6 +139,16 @@ public: */ wxIcon GetIconOfExactSize(const wxSize& size) const; + /** + return the number of available icons + */ + size_t GetIconCount() const; + + /** + return the icon at index (must be < GetIconCount()) + */ + wxIcon GetIconByIndex(size_t n) const; + /** Returns @true if the bundle doesn't contain any icons, @false otherwise (in which case a call to GetIcon() with default parameter should return @@ -117,15 +161,6 @@ public: */ wxIconBundle& operator=(const wxIconBundle& ic); - /** - Equality operator. This returns @true if two icon bundles are equal. - */ - bool operator ==(const wxIconBundle& ic); - - /** - Inequality operator. This returns true if two icon bundles are not equal. - */ - bool operator !=(const wxIconBundle& ic); };