72 lines
2.4 KiB
C++
72 lines
2.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/private/animate.h
|
|
// Purpose: Animation classes
|
|
// Author: Julian Smart and Guillermo Rodriguez Garcia
|
|
// Modified by: Francesco Montorsi
|
|
// Created: 13/8/99
|
|
// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_PRIVATE_ANIMATEH__
|
|
#define _WX_GTK_PRIVATE_ANIMATEH__
|
|
|
|
typedef struct _GdkPixbufAnimation GdkPixbufAnimation;
|
|
typedef struct _GdkPixbufAnimationIter GdkPixbufAnimationIter;
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxAnimationGTKImpl
|
|
// Unlike the generic wxAnimation object we won't use directly
|
|
// wxAnimationDecoders as gdk-pixbuf already provides the concept of decoder and
|
|
// will automatically use the available handlers.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_ADV wxAnimationGTKImpl : public wxAnimationImpl
|
|
{
|
|
public:
|
|
wxAnimationGTKImpl()
|
|
: m_pixbuf(NULL) {}
|
|
~wxAnimationGTKImpl() { UnRef(); }
|
|
|
|
|
|
virtual wxAnimationImplType GetImplType() wxOVERRIDE
|
|
{ return wxANIMATION_IMPL_TYPE_NATIVE; }
|
|
|
|
virtual bool IsOk() const wxOVERRIDE
|
|
{ return m_pixbuf != NULL; }
|
|
|
|
|
|
// unfortunately GdkPixbufAnimation does not expose these info:
|
|
|
|
virtual unsigned int GetFrameCount() const wxOVERRIDE { return 0; }
|
|
virtual wxImage GetFrame(unsigned int frame) const wxOVERRIDE;
|
|
|
|
// we can retrieve the delay for a frame only after building
|
|
// a GdkPixbufAnimationIter...
|
|
virtual int GetDelay(unsigned int WXUNUSED(frame)) const wxOVERRIDE { return 0; }
|
|
virtual wxSize GetSize() const wxOVERRIDE;
|
|
|
|
virtual bool LoadFile(const wxString &name, wxAnimationType type = wxANIMATION_TYPE_ANY) wxOVERRIDE;
|
|
virtual bool Load(wxInputStream &stream, wxAnimationType type = wxANIMATION_TYPE_ANY) wxOVERRIDE;
|
|
|
|
// Implementation
|
|
public: // used by GTK callbacks
|
|
|
|
GdkPixbufAnimation *GetPixbuf() const
|
|
{ return m_pixbuf; }
|
|
void SetPixbuf(GdkPixbufAnimation* p);
|
|
|
|
protected:
|
|
GdkPixbufAnimation *m_pixbuf;
|
|
|
|
private:
|
|
void UnRef();
|
|
|
|
typedef wxAnimationImpl base_type;
|
|
wxDECLARE_NO_COPY_CLASS(wxAnimationGTKImpl);
|
|
wxDECLARE_DYNAMIC_CLASS(wxAnimationGTKImpl);
|
|
};
|
|
|
|
|
|
#endif // _WX_GTK_PRIVATE_ANIMATEH__
|