git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			125 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/animate.h
 | 
						|
// Purpose:     wxAnimation and wxAnimationCtrl
 | 
						|
// Author:      Julian Smart and Guillermo Rodriguez Garcia
 | 
						|
// Modified by: Francesco Montorsi
 | 
						|
// Created:     13/8/99
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) Julian Smart and Guillermo Rodriguez Garcia
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_ANIMATE_H_
 | 
						|
#define _WX_ANIMATE_H_
 | 
						|
 | 
						|
#include "wx/defs.h"
 | 
						|
 | 
						|
#if wxUSE_ANIMATIONCTRL
 | 
						|
 | 
						|
#include "wx/animdecod.h"
 | 
						|
#include "wx/control.h"
 | 
						|
#include "wx/timer.h"
 | 
						|
#include "wx/bitmap.h"
 | 
						|
 | 
						|
class WXDLLIMPEXP_FWD_ADV wxAnimation;
 | 
						|
 | 
						|
extern WXDLLIMPEXP_DATA_ADV(wxAnimation) wxNullAnimation;
 | 
						|
extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxAnimationCtrlNameStr[];
 | 
						|
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxAnimationBase
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
class WXDLLIMPEXP_ADV wxAnimationBase : public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxAnimationBase() {}
 | 
						|
 | 
						|
    virtual bool IsOk() const = 0;
 | 
						|
 | 
						|
    // can be -1
 | 
						|
    virtual int GetDelay(unsigned int frame) const = 0;
 | 
						|
 | 
						|
    virtual unsigned int GetFrameCount() const = 0;
 | 
						|
    virtual wxImage GetFrame(unsigned int frame) const = 0;
 | 
						|
    virtual wxSize GetSize() const = 0;
 | 
						|
 | 
						|
    virtual bool LoadFile(const wxString& name,
 | 
						|
                          wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
 | 
						|
    virtual bool Load(wxInputStream& stream,
 | 
						|
                      wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
 | 
						|
 | 
						|
protected:
 | 
						|
    DECLARE_ABSTRACT_CLASS(wxAnimationBase)
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxAnimationCtrlBase
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
// do not autoresize to the animation's size when SetAnimation() is called
 | 
						|
#define wxAC_NO_AUTORESIZE       (0x0010)
 | 
						|
 | 
						|
// default style does not include wxAC_NO_AUTORESIZE, that is, the control
 | 
						|
// auto-resizes by default to fit the new animation when SetAnimation() is called
 | 
						|
#define wxAC_DEFAULT_STYLE       (wxBORDER_NONE)
 | 
						|
 | 
						|
class WXDLLIMPEXP_ADV wxAnimationCtrlBase : public wxControl
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxAnimationCtrlBase() { }
 | 
						|
 | 
						|
    // public API
 | 
						|
    virtual bool LoadFile(const wxString& filename,
 | 
						|
                          wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
 | 
						|
 | 
						|
    virtual void SetAnimation(const wxAnimation &anim) = 0;
 | 
						|
    virtual wxAnimation GetAnimation() const = 0;
 | 
						|
 | 
						|
    virtual bool Play() = 0;
 | 
						|
    virtual void Stop() = 0;
 | 
						|
 | 
						|
    virtual bool IsPlaying() const = 0;
 | 
						|
 | 
						|
    virtual void SetInactiveBitmap(const wxBitmap &bmp);
 | 
						|
 | 
						|
    // always return the original bitmap set in this control
 | 
						|
    wxBitmap GetInactiveBitmap() const
 | 
						|
        { return m_bmpStatic; }
 | 
						|
 | 
						|
protected:
 | 
						|
    // the inactive bitmap as it was set by the user
 | 
						|
    wxBitmap m_bmpStatic;
 | 
						|
 | 
						|
    // the inactive bitmap currently shown in the control
 | 
						|
    // (may differ in the size from m_bmpStatic)
 | 
						|
    wxBitmap m_bmpStaticReal;
 | 
						|
 | 
						|
    // updates m_bmpStaticReal from m_bmpStatic if needed
 | 
						|
    virtual void UpdateStaticImage();
 | 
						|
 | 
						|
    // called by SetInactiveBitmap
 | 
						|
    virtual void DisplayStaticImage() = 0;
 | 
						|
 | 
						|
private:
 | 
						|
    DECLARE_ABSTRACT_CLASS(wxAnimationCtrlBase)
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// include the platform-specific version of the wxAnimationCtrl class
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
 | 
						|
    #include "wx/gtk/animate.h"
 | 
						|
#else
 | 
						|
    #include "wx/generic/animate.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#endif // wxUSE_ANIMATIONCTRL
 | 
						|
 | 
						|
#endif // _WX_ANIMATE_H_
 |