]> git.saurik.com Git - wxWidgets.git/blob - interface/wx/iconbndl.h
Complete wxEVT_MENU_{OPEN,CLOSE} implementation in wxMSW and wxOSX.
[wxWidgets.git] / interface / wx / iconbndl.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: iconbndl.h
3 // Purpose: interface of wxIconBundle
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
8
9 /**
10 @class wxIconBundle
11
12 This class contains multiple copies of an icon in different sizes.
13 It is typically used in wxDialog::SetIcons and wxTopLevelWindow::SetIcons.
14
15 @library{wxcore}
16 @category{gdi}
17
18 @stdobjects
19 ::wxNullIconBundle
20 */
21 class wxIconBundle : public wxGDIObject
22 {
23 public:
24 /**
25 Default ctor.
26 */
27 wxIconBundle();
28
29 /**
30 Initializes the bundle with the icon(s) found in the file.
31 */
32 wxIconBundle(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
33
34 /**
35 Initializes the bundle with the icon(s) found in the stream.
36
37 Notice that the @a stream must be seekable, at least if it contains
38 more than one icon. The stream pointer is positioned after the last
39 icon read from the stream when this function returns.
40
41 @since 2.9.0
42 */
43 wxIconBundle(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
44
45 /**
46 Initializes the bundle with a single icon.
47 */
48 wxIconBundle(const wxIcon& icon);
49
50 /**
51 Copy constructor.
52 */
53 wxIconBundle(const wxIconBundle& ic);
54
55 /**
56 Destructor.
57 */
58 virtual ~wxIconBundle();
59
60 /**
61 Adds all the icons contained in the file to the bundle; if the
62 collection already contains icons with the same width and height, they
63 are replaced by the new ones.
64 */
65 void AddIcon(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
66
67 /**
68 Adds all the icons contained in the stream to the bundle; if the
69 collection already contains icons with the same width and height, they
70 are replaced by the new ones.
71
72 Notice that, as well as in the constructor loading the icon bundle from
73 stream, the @a stream must be seekable, at least if more than one icon
74 is to be loaded from it.
75
76 @since 2.9.0
77 */
78 void AddIcon(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
79
80 /**
81 Adds the icon to the collection; if the collection already
82 contains an icon with the same width and height, it is
83 replaced by the new one.
84 */
85 void AddIcon(const wxIcon& icon);
86
87 /**
88 Returns the icon with the given size; if no such icon exists, returns
89 the icon with size @c wxSYS_ICON_X and @c wxSYS_ICON_Y; if no such icon
90 exists, returns the first icon in the bundle.
91
92 If size = wxDefaultSize, returns the icon with size @c wxSYS_ICON_X and
93 @c wxSYS_ICON_Y.
94 */
95 wxIcon GetIcon(const wxSize& size) const;
96
97 /**
98 Same as @code GetIcon( wxSize( size, size ) ) @endcode.
99 */
100 wxIcon GetIcon(wxCoord size = wxDefaultCoord) const;
101
102 /**
103 Returns the icon with exactly the given size or ::wxNullIcon if this
104 size is not available.
105 */
106 wxIcon GetIconOfExactSize(const wxSize& size) const;
107
108 /**
109 return the number of available icons
110 */
111 size_t GetIconCount() const;
112
113 /**
114 return the icon at index (must be < GetIconCount())
115 */
116 wxIcon GetIconByIndex(size_t n) const;
117
118 /**
119 Returns @true if the bundle doesn't contain any icons, @false otherwise
120 (in which case a call to GetIcon() with default parameter should return
121 a valid icon).
122 */
123 bool IsEmpty() const;
124
125 /**
126 Assignment operator, using @ref overview_refcount "reference counting".
127 */
128 wxIconBundle& operator=(const wxIconBundle& ic);
129
130 };
131
132
133 /**
134 An empty wxIconBundle.
135 */
136 wxIconBundle wxNullIconBundle;
137
138