]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/iconbndl.h
Try native method first in LoadFile() and SaveFile()
[wxWidgets.git] / interface / wx / iconbndl.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: iconbndl.h
e54c96f1 3// Purpose: interface of wxIconBundle
23324ae1 4// Author: wxWidgets team
526954c5 5// Licence: wxWindows licence
23324ae1
FM
6/////////////////////////////////////////////////////////////////////////////
7
8/**
9 @class wxIconBundle
7c913512 10
427c415b
FM
11 This class contains multiple copies of an icon in different sizes.
12 It is typically used in wxDialog::SetIcons and wxTopLevelWindow::SetIcons.
7c913512 13
23324ae1 14 @library{wxcore}
427c415b 15 @category{gdi}
7c913512 16
23324ae1 17 @stdobjects
65874118 18 ::wxNullIconBundle
23324ae1
FM
19*/
20class wxIconBundle : public wxGDIObject
21{
22public:
d928f019
VZ
23 /**
24 The elements of this enum determine what happens if GetIcon() doesn't
25 find the icon of exactly the requested size.
26
27 @since 2.9.4
28 */
29 enum
30 {
31 /// Return invalid icon if exact size is not found.
32 FALLBACK_NONE = 0,
33
34 /// Return the icon of the system icon size if exact size is not found.
35 /// May be combined with other non-NONE enum elements to determine what
36 /// happens if the system icon size is not found neither.
37 FALLBACK_SYSTEM = 1,
38
39 /// Return the icon of closest larger size or, if there is no icon of
40 /// larger size in the bundle, the closest icon of smaller size.
41 FALLBACK_NEAREST_LARGER = 2
42 };
43
44
23324ae1 45 /**
427c415b 46 Default ctor.
23324ae1
FM
47 */
48 wxIconBundle();
427c415b
FM
49
50 /**
51 Initializes the bundle with the icon(s) found in the file.
52 */
cee875e3
VS
53 wxIconBundle(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
54
55 /**
56 Initializes the bundle with the icon(s) found in the stream.
57
50b1e15e
VZ
58 Notice that the @a stream must be seekable, at least if it contains
59 more than one icon. The stream pointer is positioned after the last
60 icon read from the stream when this function returns.
61
cee875e3
VS
62 @since 2.9.0
63 */
64 wxIconBundle(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
427c415b
FM
65
66 /**
67 Initializes the bundle with a single icon.
68 */
7c913512 69 wxIconBundle(const wxIcon& icon);
427c415b
FM
70
71 /**
72 Copy constructor.
73 */
7c913512 74 wxIconBundle(const wxIconBundle& ic);
23324ae1
FM
75
76 /**
77 Destructor.
78 */
adaaa686 79 virtual ~wxIconBundle();
23324ae1 80
427c415b 81 /**
cee875e3
VS
82 Adds all the icons contained in the file to the bundle; if the
83 collection already contains icons with the same width and height, they
84 are replaced by the new ones.
85 */
86 void AddIcon(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
87
88 /**
89 Adds all the icons contained in the stream to the bundle; if the
90 collection already contains icons with the same width and height, they
91 are replaced by the new ones.
92
50b1e15e
VZ
93 Notice that, as well as in the constructor loading the icon bundle from
94 stream, the @a stream must be seekable, at least if more than one icon
95 is to be loaded from it.
96
cee875e3 97 @since 2.9.0
427c415b 98 */
cee875e3 99 void AddIcon(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
427c415b 100
23324ae1
FM
101 /**
102 Adds the icon to the collection; if the collection already
103 contains an icon with the same width and height, it is
104 replaced by the new one.
105 */
7c913512 106 void AddIcon(const wxIcon& icon);
23324ae1 107
23324ae1 108 /**
d928f019
VZ
109 Returns the icon with the given size.
110
111 If @a size is ::wxDefaultSize, it is interpreted as the standard system
112 icon size, i.e. the size returned by wxSystemSettings::GetMetric() for
113 @c wxSYS_ICON_X and @c wxSYS_ICON_Y.
114
115 If the bundle contains an icon with exactly the requested size, it's
116 always returned. Otherwise, the behaviour depends on the flags. If only
117 ::FALLBACK_NONE is given, the function returns an invalid icon. If
118 ::FALLBACK_SYSTEM is given, it tries to find the icon of standard
119 system size, regardless of the size passed as parameter. Otherwise, or
120 if the icon system size is not found neither, but
121 ::FALLBACK_NEAREST_LARGER flag is specified, the function returns the
122 smallest icon of the size larger than the requested one or, if this
123 fails too, just the icon closest to the specified size.
427c415b 124
d928f019 125 The @a flags parameter is available only since wxWidgets 2.9.4.
23324ae1 126 */
d928f019 127 wxIcon GetIcon(const wxSize& size, int flags = FALLBACK_SYSTEM) const;
427c415b
FM
128
129 /**
130 Same as @code GetIcon( wxSize( size, size ) ) @endcode.
131 */
d928f019
VZ
132 wxIcon GetIcon(wxCoord size = wxDefaultCoord,
133 int flags = FALLBACK_SYSTEM) const;
23324ae1
FM
134
135 /**
427c415b 136 Returns the icon with exactly the given size or ::wxNullIcon if this
23324ae1
FM
137 size is not available.
138 */
328f5751 139 wxIcon GetIconOfExactSize(const wxSize& size) const;
23324ae1 140
6f9921e1
RD
141 /**
142 return the number of available icons
143 */
144 size_t GetIconCount() const;
145
146 /**
147 return the icon at index (must be < GetIconCount())
148 */
149 wxIcon GetIconByIndex(size_t n) const;
150
23324ae1 151 /**
427c415b
FM
152 Returns @true if the bundle doesn't contain any icons, @false otherwise
153 (in which case a call to GetIcon() with default parameter should return
154 a valid icon).
23324ae1 155 */
328f5751 156 bool IsEmpty() const;
23324ae1
FM
157
158 /**
427c415b 159 Assignment operator, using @ref overview_refcount "reference counting".
23324ae1 160 */
43c48e1e 161 wxIconBundle& operator=(const wxIconBundle& ic);
23324ae1 162
23324ae1 163};
e54c96f1
FM
164
165
166/**
65874118 167 An empty wxIconBundle.
e54c96f1
FM
168*/
169wxIconBundle wxNullIconBundle;
170
171