class WXDLLIMPEXP_ADV wxAnimation : public wxAnimationBase
{
public:
- wxAnimation(GdkPixbufAnimation *p = NULL) { m_pixbuf = p; }
+ wxAnimation(const wxString &name, wxAnimationType type = wxANIMATION_TYPE_ANY)
+ : m_pixbuf(NULL) { LoadFile(name, type); }
+ wxAnimation(GdkPixbufAnimation *p = NULL);
wxAnimation(const wxAnimation&);
~wxAnimation() { UnRef(); }
wxAnimation& operator= (const wxAnimation&);
- bool operator == (const wxAnimation& anim) const
- { return m_pixbuf == anim.m_pixbuf; }
- bool operator != (const wxAnimation& anim) const
- { return m_pixbuf != anim.m_pixbuf; }
-
virtual bool IsOk() const
{ return m_pixbuf != NULL; }
// unfortunately GdkPixbufAnimation does not expose these info:
- virtual size_t GetFrameCount() const
- { return 0; }
- virtual wxImage GetFrame(size_t i) const;
+ virtual unsigned int GetFrameCount() const { return 0; }
+ virtual wxImage GetFrame(unsigned int frame) const;
// we can retrieve the delay for a frame only after building
// a GdkPixbufAnimationIter...
- virtual int GetDelay(size_t i) const
- { return 0; }
+ virtual int GetDelay(unsigned int WXUNUSED(frame)) const { return 0; }
virtual wxSize GetSize() const;
protected:
GdkPixbufAnimation *m_pixbuf;
- // used temporary by Load()
- //bool m_bLoadComplete;
-
private:
void UnRef();
class WXDLLIMPEXP_ADV wxAnimationCtrl: public wxAnimationCtrlBase
{
public:
- wxAnimationCtrl();
+ wxAnimationCtrl() { Init(); }
wxAnimationCtrl(wxWindow *parent,
wxWindowID id,
const wxAnimation& anim = wxNullAnimation,
long style = wxAC_DEFAULT_STYLE,
const wxString& name = wxAnimationCtrlNameStr)
{
+ Init();
+
Create(parent, id, anim, pos, size, style, name);
}
public: // public API
virtual bool LoadFile(const wxString& filename, wxAnimationType type = wxANIMATION_TYPE_ANY);
+ virtual bool Load(wxInputStream& stream, wxAnimationType type = wxANIMATION_TYPE_ANY);
virtual void SetAnimation(const wxAnimation &anim);
virtual wxAnimation GetAnimation() const
protected:
+ virtual void DisplayStaticImage();
virtual wxSize DoGetBestSize() const;
void FitToAnimation();
void ClearToBackgroundColour();
private:
typedef wxAnimationCtrlBase base_type;
+
+ void Init();
+
DECLARE_DYNAMIC_CLASS(wxAnimationCtrl)
DECLARE_EVENT_TABLE()
};