]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/iconbndl.h
Avoid needless second string conversion when adding files to memory FS.
[wxWidgets.git] / interface / wx / iconbndl.h
index 7b2d3265a629e65d15d75a3769ff04532410ae52..28c54ee38cfdb6723ccff11794534c0f834dfdd0 100644 (file)
@@ -3,18 +3,17 @@
 // Purpose:     interface of wxIconBundle
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
     @class wxIconBundle
 
-    This class contains multiple copies of an icon in different sizes,
-    see also wxDialog::SetIcons and
-    wxTopLevelWindow::SetIcons.
+    This class contains multiple copies of an icon in different sizes.
+    It is typically used in wxDialog::SetIcons and wxTopLevelWindow::SetIcons.
 
     @library{wxcore}
-    @category{FIXME}
+    @category{gdi}
 
     @stdobjects
     ::wxNullIconBundle
 class wxIconBundle : public wxGDIObject
 {
 public:
-    //@{
     /**
-        Copy constructor.
+        Default ctor.
     */
     wxIconBundle();
-    wxIconBundle(const wxString& file, wxBitmapType type);
+
+    /**
+        Initializes the bundle with the icon(s) found in the file.
+    */
+    wxIconBundle(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY);
+
+    /**
+        Initializes the bundle with the icon(s) found in the stream.
+
+        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.
+
+        @since 2.9.0
+    */
+    wxIconBundle(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
+
+    /**
+        Initializes the bundle with a single icon.
+    */
     wxIconBundle(const wxIcon& icon);
+
+    /**
+        Copy constructor.
+    */
     wxIconBundle(const wxIconBundle& ic);
-    //@}
 
     /**
         Destructor.
     */
-    ~wxIconBundle();
+    virtual ~wxIconBundle();
+
+    /**
+        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.
+
+        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.
+
+        @since 2.9.0
+    */
+    void AddIcon(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY);
 
-    //@{
     /**
         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.
     */
-    void AddIcon(const wxString& file, wxBitmapType type);
     void AddIcon(const wxIcon& icon);
-    //@}
 
-    //@{
     /**
-        Same as GetIcon( wxSize( size, size ) ).
+        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.
+
+        If size = wxDefaultSize, returns the icon with size @c wxSYS_ICON_X and
+        @c wxSYS_ICON_Y.
     */
     wxIcon GetIcon(const wxSize& size) const;
-    const wxIcon  GetIcon(wxCoord size = -1) const;
-    //@}
 
     /**
-        Returns the icon with exactly the given size or @c wxNullIcon if this
+        Same as @code GetIcon( wxSize( size, size ) ) @endcode.
+    */
+    wxIcon GetIcon(wxCoord size = wxDefaultCoord) const;
+
+    /**
+        Returns the icon with exactly the given size or ::wxNullIcon if this
         size is not available.
     */
     wxIcon GetIconOfExactSize(const wxSize& size) 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 a valid icon).
+       return the number of available icons
     */
-    bool IsEmpty() const;
+    size_t GetIconCount() const;
+
+    /**
+       return the icon at index (must be < GetIconCount())
+    */
+    wxIcon GetIconByIndex(size_t n) const;
 
     /**
-        Assignment operator, using @ref overview_trefcount "reference counting".
+        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).
     */
-    wxIconBundle operator =(const wxIconBundle& ic);
+    bool IsEmpty() const;
 
     /**
-        Equality operator. This returns @true if two icon bundles are equal.
+        Assignment operator, using @ref overview_refcount "reference counting".
     */
-    bool operator ==(const wxIconBundle& ic);
+    wxIconBundle& operator=(const wxIconBundle& ic);
+
 };