]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/iconbndl.cpp
Update version to 2.9.4 in version.bkl too and rebake everything.
[wxWidgets.git] / src / common / iconbndl.cpp
index 5d509c0158a9c918d957b19a972e34a8405ccbbc..186d4df0cccc3ac64838e6d3e70e35e74fdee9ae 100644 (file)
@@ -42,7 +42,17 @@ IMPLEMENT_DYNAMIC_CLASS(wxIconBundle, wxGDIObject)
 class WXDLLEXPORT wxIconBundleRefData : public wxGDIRefData
 {
 public:
-    // default and copy ctors and assignment operators are ok
+    wxIconBundleRefData() { }
+
+    // We need the copy ctor for CloneGDIRefData() but notice that we use the
+    // base class default ctor in it and not the copy one which it doesn't have.
+    wxIconBundleRefData(const wxIconBundleRefData& other)
+        : wxGDIRefData(),
+          m_icons(other.m_icons)
+    {
+    }
+
+    // default assignment operator and dtor are ok
 
     virtual bool IsOk() const { return !m_icons.empty(); }
 
@@ -57,19 +67,22 @@ wxIconBundle::wxIconBundle()
 {
 }
 
-#if wxUSE_STREAMS
+#if wxUSE_STREAMS && wxUSE_IMAGE
+
+#if wxUSE_FFILE || wxUSE_FILE
 wxIconBundle::wxIconBundle(const wxString& file, wxBitmapType type)
             : wxGDIObject()
 {
     AddIcon(file, type);
 }
+#endif // wxUSE_FFILE || wxUSE_FILE
 
 wxIconBundle::wxIconBundle(wxInputStream& stream, wxBitmapType type)
             : wxGDIObject()
 {
     AddIcon(stream, type);
 }
-#endif // wxUSE_STREAMS
+#endif // wxUSE_STREAMS && wxUSE_IMAGE
 
 wxIconBundle::wxIconBundle(const wxIcon& icon)
             : wxGDIObject()
@@ -92,7 +105,7 @@ void wxIconBundle::DeleteIcons()
     UnRef();
 }
 
-#if wxUSE_STREAMS
+#if wxUSE_STREAMS && wxUSE_IMAGE
 
 namespace
 {
@@ -141,6 +154,8 @@ void DoAddIcon(wxIconBundle& bundle,
 
 } // anonymous namespace
 
+#if wxUSE_FFILE || wxUSE_FILE
+
 void wxIconBundle::AddIcon(const wxString& file, wxBitmapType type)
 {
 #ifdef __WXMAC__
@@ -148,7 +163,7 @@ void wxIconBundle::AddIcon(const wxString& file, wxBitmapType type)
     if ( type == wxBITMAP_TYPE_ICON_RESOURCE )
     {
         wxIcon tmp(file, type);
-        if (tmp.Ok())
+        if (tmp.IsOk())
         {
             AddIcon(tmp);
             return;
@@ -156,7 +171,11 @@ void wxIconBundle::AddIcon(const wxString& file, wxBitmapType type)
     }
 #endif // __WXMAC__
 
+#if wxUSE_FFILE
     wxFFileInputStream stream(file);
+#elif wxUSE_FILE
+    wxFileInputStream stream(file);
+#endif
     DoAddIcon
     (
         *this,
@@ -165,12 +184,14 @@ void wxIconBundle::AddIcon(const wxString& file, wxBitmapType type)
     );
 }
 
+#endif // wxUSE_FFILE || wxUSE_FILE
+
 void wxIconBundle::AddIcon(wxInputStream& stream, wxBitmapType type)
 {
     DoAddIcon(*this, stream, type, _("Failed to load image %d from stream."));
 }
 
-#endif // wxUSE_STREAMS
+#endif // wxUSE_STREAMS && wxUSE_IMAGE
 
 wxIcon wxIconBundle::GetIcon(const wxSize& size) const
 {
@@ -224,7 +245,7 @@ wxIcon wxIconBundle::GetIcon(const wxSize& size) const
 wxIcon wxIconBundle::GetIconOfExactSize(const wxSize& size) const
 {
     wxIcon icon = GetIcon(size);
-    if ( icon.Ok() &&
+    if ( icon.IsOk() &&
             (icon.GetWidth() != size.x || icon.GetHeight() != size.y) )
     {
         icon = wxNullIcon;
@@ -246,7 +267,7 @@ void wxIconBundle::AddIcon(const wxIcon& icon)
     for ( size_t i = 0; i < count; ++i )
     {
         wxIcon& tmp = iconArray[i];
-        if ( tmp.Ok() &&
+        if ( tmp.IsOk() &&
                 tmp.GetWidth() == icon.GetWidth() &&
                 tmp.GetHeight() == icon.GetHeight() )
         {