]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/anidecod.cpp
Don't use the window position as the x offset when painting the full
[wxWidgets.git] / src / common / anidecod.cpp
index 76d2f9c0ba8261e7b9c2cfd45123a60c05b3399f..7d502ae52a4ed898c83572ad25ed848422421725 100644 (file)
@@ -14,7 +14,9 @@
     #pragma hdrstop
 #endif
 
-#if wxUSE_STREAMS && wxUSE_GIF
+#if wxUSE_STREAMS && wxUSE_ICO_CUR
+
+#include "wx/anidecod.h"
 
 #ifndef WX_PRECOMP
     #include "wx/palette.h"
 
 #include <stdlib.h>
 #include <string.h>
-#include "wx/anidecod.h"
 
 // static
 wxCURHandler wxANIDecoder::sm_handler;
 
-
-
 //---------------------------------------------------------------------------
 // wxANIFrameInfo
 //---------------------------------------------------------------------------
@@ -43,13 +42,11 @@ public:
     int m_imageIndex;
 };
 
-#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
-WX_DEFINE_OBJARRAY(wxImageArray);
-
-#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
-WX_DEFINE_OBJARRAY(wxANIFrameInfoArray);
-
+#include "wx/arrimpl.cpp" // this is a magic incantation which must be done!
+WX_DEFINE_OBJARRAY(wxImageArray)
 
+#include "wx/arrimpl.cpp" // this is a magic incantation which must be done!
+WX_DEFINE_OBJARRAY(wxANIFrameInfoArray)
 
 
 //---------------------------------------------------------------------------
@@ -99,6 +96,18 @@ long wxANIDecoder::GetDelay(size_t frame) const
     return m_info[frame].m_delay;
 }
 
+wxColour wxANIDecoder::GetTransparentColour(size_t frame) const
+{
+    size_t idx = m_info[frame].m_imageIndex;
+
+    if (!m_images[idx].HasMask())
+        return wxNullColour;
+
+    return wxColour(m_images[idx].GetMaskRed(),
+                    m_images[idx].GetMaskGreen(),
+                    m_images[idx].GetMaskBlue());
+}
+
 
 //---------------------------------------------------------------------------
 // ANI reading and decoding
@@ -330,7 +339,7 @@ bool wxANIDecoder::Load( wxInputStream& stream )
         m_szAnimation.GetHeight() == 0)
         m_szAnimation = wxSize(m_images[0].GetWidth(), m_images[0].GetHeight());
 
-    return m_szAnimation!=wxDefaultSize;
+    return m_szAnimation != wxDefaultSize;
 }
 
-#endif // wxUSE_STREAMS && wxUSE_GIF
+#endif // wxUSE_STREAMS && wxUSE_ICO_CUR