X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2f12218ce9231e0d21a0d5516fcaa7df3e0a2a0..11e3c6ef36393fb5863ea2f9601d8facd73acb12:/include/wx/gtk/animate.h?ds=sidebyside diff --git a/include/wx/gtk/animate.h b/include/wx/gtk/animate.h index 6e43a643c9..20ff1d4edd 100644 --- a/include/wx/gtk/animate.h +++ b/include/wx/gtk/animate.h @@ -24,34 +24,29 @@ typedef struct _GdkPixbufAnimationIter GdkPixbufAnimationIter; // refcounted so that assignment is very fast // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxAnimation : public wxAnimationBase +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; @@ -68,9 +63,6 @@ public: // used by GTK callbacks protected: GdkPixbufAnimation *m_pixbuf; - // used temporary by Load() - //bool m_bLoadComplete; - private: void UnRef(); @@ -89,7 +81,7 @@ private: class WXDLLIMPEXP_ADV wxAnimationCtrl: public wxAnimationCtrlBase { public: - wxAnimationCtrl(); + wxAnimationCtrl() { Init(); } wxAnimationCtrl(wxWindow *parent, wxWindowID id, const wxAnimation& anim = wxNullAnimation, @@ -98,6 +90,8 @@ public: long style = wxAC_DEFAULT_STYLE, const wxString& name = wxAnimationCtrlNameStr) { + Init(); + Create(parent, id, anim, pos, size, style, name); } @@ -117,6 +111,7 @@ public: // event handler 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 @@ -131,6 +126,7 @@ public: // public API protected: + virtual void DisplayStaticImage(); virtual wxSize DoGetBestSize() const; void FitToAnimation(); void ClearToBackgroundColour(); @@ -148,6 +144,9 @@ protected: // internal vars private: typedef wxAnimationCtrlBase base_type; + + void Init(); + DECLARE_DYNAMIC_CLASS(wxAnimationCtrl) DECLARE_EVENT_TABLE() };