openbsd-ports/net/amule/patches/patch-src_MuleGifCtrl_cpp

78 lines
2.3 KiB
Plaintext

$OpenBSD: patch-src_MuleGifCtrl_cpp,v 1.1 2007/10/26 15:00:39 steven Exp $
--- src/MuleGifCtrl.cpp.orig Fri Feb 3 20:14:05 2006
+++ src/MuleGifCtrl.cpp Wed Oct 10 17:53:08 2007
@@ -24,7 +24,6 @@
#include <wx/mstream.h>
#include <wx/gifdecod.h>
-#include <wx/window.h>
#include <wx/dcbuffer.h>
#include "MuleGifCtrl.h"
@@ -35,7 +34,51 @@ BEGIN_EVENT_TABLE(MuleGifCtrl, wxControl)
EVT_ERASE_BACKGROUND(MuleGifCtrl::OnErase)
END_EVENT_TABLE()
+#if wxCHECK_VERSION(2, 7, 1)
+// Wrapper that emulates old wxGIFDecoder API
+class MuleGIFDecoder : public wxGIFDecoder {
+public:
+ MuleGIFDecoder(wxInputStream* stream, bool dummy) {
+ m_stream = stream;
+ dummy = dummy; // Unused.
+ m_nframe = 0;
+ }
+
+ ~MuleGIFDecoder() { /* don't delete the stream! */ }
+
+ wxGIFErrorCode ReadGIF() {
+ return LoadGIF(*m_stream);
+ }
+
+ void GoFirstFrame() { m_nframe = 0; }
+ void GoNextFrame(bool dummy) { m_nframe < GetFrameCount() ? m_nframe++ : m_nframe = 0; }
+ void GoLastFrame() { m_nframe = GetFrameCount(); }
+
+ void ConvertToImage(wxImage* image) { wxGIFDecoder::ConvertToImage(m_nframe, image); }
+
+ size_t GetLogicalScreenWidth() { return GetAnimationSize().GetWidth(); }
+ size_t GetLogicalScreenHeight() { return GetAnimationSize().GetHeight(); }
+
+ size_t GetLeft() { return 0; }
+ size_t GetTop() { return 0; }
+
+ long GetDelay() { return wxGIFDecoder::GetDelay(m_nframe); }
+
+private:
+ uint32_t m_nframe;
+ wxInputStream* m_stream;
+};
+
+#else
+class MuleGIFDecoder : public wxGIFDecoder {
+public:
+ MuleGIFDecoder(wxInputStream* stream, bool flag) : wxGIFDecoder(stream,flag) {};
+};
+#endif
+
+
+
MuleGifCtrl::MuleGifCtrl( wxWindow *parent, wxWindowID id, const wxPoint& pos,
const wxSize& size, long style, const wxValidator& validator,
const wxString& name )
@@ -66,7 +109,7 @@ bool MuleGifCtrl::LoadData(const char* data, int size)
}
wxMemoryInputStream stream(data, size);
- m_decoder = new wxGIFDecoder(&stream, TRUE);
+ m_decoder = new MuleGIFDecoder(&stream, TRUE);
if ( m_decoder->ReadGIF() != wxGIF_OK ) {
delete m_decoder;
m_decoder = NULL;
@@ -137,3 +180,4 @@ void MuleGifCtrl::OnPaint( wxPaintEvent& WXUNUSED(even
dc.DrawBitmap( m_frame, x + m_decoder->GetLeft(), y + m_decoder->GetTop(), true);
}
+// File_checked_for_headers