]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/anidecod.h
Richtext interface fixes and additions for Phoenix
[wxWidgets.git] / include / wx / anidecod.h
index bc048d3c8513da43885ee9e06bef03d637d490f4..15b3adfe11fe535c25f85e6a2955e30ee50f7a2a 100644 (file)
 
 #include "wx/defs.h"
 
 
 #include "wx/defs.h"
 
-#if wxUSE_STREAMS && wxUSE_ICO_CUR
+#if wxUSE_STREAMS && (wxUSE_ICO_CUR || wxUSE_GIF)
 
 #include "wx/stream.h"
 #include "wx/image.h"
 #include "wx/animdecod.h"
 
 #include "wx/stream.h"
 #include "wx/image.h"
 #include "wx/animdecod.h"
+#include "wx/dynarray.h"
 
 
 
 
-class /*WXDLLEXPORT*/ wxANIFrameInfo;
+class /*WXDLLIMPEXP_CORE*/ wxANIFrameInfo;      // private implementation detail
 
 WX_DECLARE_EXPORTED_OBJARRAY(wxANIFrameInfo, wxANIFrameInfoArray);
 WX_DECLARE_EXPORTED_OBJARRAY(wxImage, wxImageArray);
 
 WX_DECLARE_EXPORTED_OBJARRAY(wxANIFrameInfo, wxANIFrameInfoArray);
 WX_DECLARE_EXPORTED_OBJARRAY(wxImage, wxImageArray);
@@ -28,7 +29,7 @@ WX_DECLARE_EXPORTED_OBJARRAY(wxImage, wxImageArray);
 // wxANIDecoder class
 // --------------------------------------------------------------------------
 
 // wxANIDecoder class
 // --------------------------------------------------------------------------
 
-class WXDLLEXPORT wxANIDecoder : public wxAnimationDecoder
+class WXDLLIMPEXP_CORE wxANIDecoder : public wxAnimationDecoder
 {
 public:
     // constructor, destructor, etc.
 {
 public:
     // constructor, destructor, etc.
@@ -43,7 +44,7 @@ public:
     virtual wxColour GetTransparentColour(unsigned int frame) const;
 
     // implementation of wxAnimationDecoder's pure virtuals
     virtual wxColour GetTransparentColour(unsigned int frame) const;
 
     // implementation of wxAnimationDecoder's pure virtuals
-    virtual bool CanRead( wxInputStream& stream ) const;
+
     virtual bool Load( wxInputStream& stream );
 
     bool ConvertToImage(unsigned int frame, wxImage *image) const;
     virtual bool Load( wxInputStream& stream );
 
     bool ConvertToImage(unsigned int frame, wxImage *image) const;
@@ -54,6 +55,10 @@ public:
         { return wxANIMATION_TYPE_ANI; }
 
 private:
         { return wxANIMATION_TYPE_ANI; }
 
 private:
+    // wxAnimationDecoder pure virtual:
+    virtual bool DoCanRead( wxInputStream& stream ) const;
+            // modifies current stream position (see wxAnimationDecoder::CanRead)
+
     // frames stored as wxImage(s): ANI files are meant to be used mostly for animated
     // cursors and thus they do not use any optimization to encode differences between
     // two frames: they are just a list of images to display sequentially.
     // frames stored as wxImage(s): ANI files are meant to be used mostly for animated
     // cursors and thus they do not use any optimization to encode differences between
     // two frames: they are just a list of images to display sequentially.
@@ -67,10 +72,10 @@ private:
     static wxCURHandler sm_handler;
 
 
     static wxCURHandler sm_handler;
 
 
-    DECLARE_NO_COPY_CLASS(wxANIDecoder)
+    wxDECLARE_NO_COPY_CLASS(wxANIDecoder);
 };
 
 
 };
 
 
-#endif  // wxUSE_STREAM && wxUSE_ICO_CUR
+#endif  // wxUSE_STREAMS && (wxUSE_ICO_CUR || wxUSE_GIF)
 
 #endif  // _WX_ANIDECOD_H
 
 #endif  // _WX_ANIDECOD_H