2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: iconbndl.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxIconBundle
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
2010-07-13 09:29:13 -04:00
|
|
|
// Licence: wxWindows licence
|
2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxIconBundle
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-10-15 11:36:15 -04:00
|
|
|
This class contains multiple copies of an icon in different sizes.
|
|
|
|
It is typically used in wxDialog::SetIcons and wxTopLevelWindow::SetIcons.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxcore}
|
2008-10-15 11:36:15 -04:00
|
|
|
@category{gdi}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@stdobjects
|
2008-04-06 11:28:55 -04:00
|
|
|
::wxNullIconBundle
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxIconBundle : public wxGDIObject
|
|
|
|
{
|
|
|
|
public:
|
2012-01-24 17:17:47 -05:00
|
|
|
/**
|
|
|
|
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
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
2008-10-15 11:36:15 -04:00
|
|
|
Default ctor.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
wxIconBundle();
|
2008-10-15 11:36:15 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
Initializes the bundle with the icon(s) found in the file.
|
|
|
|
*/
|
2009-03-29 17:19:40 -04:00
|
|
|
wxIconBundle(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Initializes the bundle with the icon(s) found in the stream.
|
|
|
|
|
2009-06-06 08:09:30 -04:00
|
|
|
Notice that the @a stream must be seekable, at least if it contains
|
|
|
|
more than one icon. The stream pointer is positioned after the last
|
|
|
|
icon read from the stream when this function returns.
|
|
|
|
|
2009-03-29 17:19:40 -04:00
|
|
|
@since 2.9.0
|
|
|
|
*/
|
|
|
|
wxIconBundle(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
|
2008-10-15 11:36:15 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
Initializes the bundle with a single icon.
|
|
|
|
*/
|
2008-03-08 09:43:31 -05:00
|
|
|
wxIconBundle(const wxIcon& icon);
|
2008-10-15 11:36:15 -04:00
|
|
|
|
2017-05-18 16:51:01 -04:00
|
|
|
/**
|
2017-05-20 11:01:25 -04:00
|
|
|
Initializes the bundle with all sizes of a group icon with @a
|
|
|
|
resourceName stored as an MS Windows resource in @a module.
|
|
|
|
|
|
|
|
When @a module is 0, the current instance is used.
|
|
|
|
|
|
|
|
@see AddIcon(const wxString&, WXHINSTANCE)
|
|
|
|
|
|
|
|
@onlyfor{wxmsw}
|
|
|
|
@since 3.1.1
|
2017-05-18 16:51:01 -04:00
|
|
|
*/
|
|
|
|
wxIconBundle(const wxString& resourceName, WXHINSTANCE module);
|
|
|
|
|
2008-10-15 11:36:15 -04:00
|
|
|
/**
|
|
|
|
Copy constructor.
|
|
|
|
*/
|
2008-03-08 09:43:31 -05:00
|
|
|
wxIconBundle(const wxIconBundle& ic);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Destructor.
|
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
virtual ~wxIconBundle();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
2008-10-15 11:36:15 -04:00
|
|
|
/**
|
2009-03-29 17:19:40 -04:00
|
|
|
Adds all the icons contained in the file to the bundle; if the
|
|
|
|
collection already contains icons with the same width and height, they
|
|
|
|
are replaced by the new ones.
|
|
|
|
*/
|
|
|
|
void AddIcon(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Adds all the icons contained in the stream to the bundle; if the
|
|
|
|
collection already contains icons with the same width and height, they
|
|
|
|
are replaced by the new ones.
|
|
|
|
|
2009-06-06 08:09:30 -04:00
|
|
|
Notice that, as well as in the constructor loading the icon bundle from
|
|
|
|
stream, the @a stream must be seekable, at least if more than one icon
|
|
|
|
is to be loaded from it.
|
|
|
|
|
2009-03-29 17:19:40 -04:00
|
|
|
@since 2.9.0
|
2008-10-15 11:36:15 -04:00
|
|
|
*/
|
2009-03-29 17:19:40 -04:00
|
|
|
void AddIcon(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
|
2008-10-15 11:36:15 -04:00
|
|
|
|
2017-05-18 16:51:01 -04:00
|
|
|
/**
|
2017-05-20 11:01:25 -04:00
|
|
|
Loads all sizes of a group icon with @a resourceName stored as an MS
|
|
|
|
Windows resource in @a module.
|
|
|
|
|
|
|
|
When @a module is 0, the current instance is used.
|
|
|
|
|
|
|
|
@onlyfor{wxmsw}
|
|
|
|
@since 3.1.1
|
2017-05-18 16:51:01 -04:00
|
|
|
*/
|
|
|
|
void AddIcon(const wxString& resourceName, WXHINSTANCE module);
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
|
|
|
Adds the icon to the collection; if the collection already
|
|
|
|
contains an icon with the same width and height, it is
|
|
|
|
replaced by the new one.
|
|
|
|
*/
|
2008-03-08 09:43:31 -05:00
|
|
|
void AddIcon(const wxIcon& icon);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2012-01-24 17:17:47 -05:00
|
|
|
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
|
2013-08-21 11:26:34 -04:00
|
|
|
wxIconBundle::FALLBACK_NONE is given, the function returns an invalid
|
|
|
|
icon. If wxIconBundle::FALLBACK_SYSTEM is given, it tries to find the
|
2019-01-30 11:28:08 -05:00
|
|
|
icon of standard system size, regardless of the size passed as
|
2013-08-21 11:26:34 -04:00
|
|
|
parameter. Otherwise, or if the icon system size is not found neither,
|
|
|
|
but wxIconBundle::FALLBACK_NEAREST_LARGER flag is specified, the
|
2019-01-30 11:28:08 -05:00
|
|
|
function returns the smallest icon of the size larger than the
|
2013-08-21 11:26:34 -04:00
|
|
|
requested one or, if this fails too, just the icon closest to the
|
|
|
|
specified size.
|
2008-10-15 11:36:15 -04:00
|
|
|
|
2012-01-24 17:17:47 -05:00
|
|
|
The @a flags parameter is available only since wxWidgets 2.9.4.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2012-01-24 17:17:47 -05:00
|
|
|
wxIcon GetIcon(const wxSize& size, int flags = FALLBACK_SYSTEM) const;
|
2008-10-15 11:36:15 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
Same as @code GetIcon( wxSize( size, size ) ) @endcode.
|
|
|
|
*/
|
2012-01-24 17:17:47 -05:00
|
|
|
wxIcon GetIcon(wxCoord size = wxDefaultCoord,
|
|
|
|
int flags = FALLBACK_SYSTEM) const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-10-15 11:36:15 -04:00
|
|
|
Returns the icon with exactly the given size or ::wxNullIcon if this
|
2008-03-08 08:52:38 -05:00
|
|
|
size is not available.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxIcon GetIconOfExactSize(const wxSize& size) const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
2011-11-16 22:20:25 -05:00
|
|
|
/**
|
|
|
|
return the number of available icons
|
|
|
|
*/
|
|
|
|
size_t GetIconCount() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
return the icon at index (must be < GetIconCount())
|
|
|
|
*/
|
|
|
|
wxIcon GetIconByIndex(size_t n) const;
|
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
/**
|
2008-10-15 11:36:15 -04:00
|
|
|
Returns @true if the bundle doesn't contain any icons, @false otherwise
|
|
|
|
(in which case a call to GetIcon() with default parameter should return
|
|
|
|
a valid icon).
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
bool IsEmpty() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-10-15 11:36:15 -04:00
|
|
|
Assignment operator, using @ref overview_refcount "reference counting".
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-10-28 11:36:26 -04:00
|
|
|
wxIconBundle& operator=(const wxIconBundle& ic);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
2008-04-06 11:28:55 -04:00
|
|
|
An empty wxIconBundle.
|
2008-03-10 11:24:38 -04:00
|
|
|
*/
|
|
|
|
wxIconBundle wxNullIconBundle;
|
|
|
|
|
|
|
|
|