112 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/animdecod.h
 | 
						|
// Purpose:     wxAnimationDecoder
 | 
						|
// Author:      Francesco Montorsi
 | 
						|
// Copyright:   (c) 2006 Francesco Montorsi
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
enum wxAnimationDisposal
 | 
						|
{
 | 
						|
    /// No disposal specified. The decoder is not required to take any action.
 | 
						|
    wxANIM_UNSPECIFIED = -1,
 | 
						|
 | 
						|
    /// Do not dispose. The graphic is to be left in place.
 | 
						|
    wxANIM_DONOTREMOVE = 0,
 | 
						|
 | 
						|
    /// Restore to background color. The area used by the graphic must be
 | 
						|
    /// restored to the background color.
 | 
						|
    wxANIM_TOBACKGROUND = 1,
 | 
						|
 | 
						|
    /// Restore to previous. The decoder is required to restore the area
 | 
						|
    /// overwritten by the graphic with what was there prior to rendering the graphic.
 | 
						|
    wxANIM_TOPREVIOUS = 2
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
   @class wxAnimationDecoder
 | 
						|
 | 
						|
   wxAnimationDecoder is used by @c wxAnimation for loading frames and other
 | 
						|
   information for the animation from the animation image file.
 | 
						|
 | 
						|
 */
 | 
						|
class wxAnimationDecoder : public wxObjectRefData
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxAnimationDecoder();
 | 
						|
 | 
						|
    /**
 | 
						|
       Load the animation image frames from the given stream.
 | 
						|
    */
 | 
						|
    virtual bool Load( wxInputStream& stream ) = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
       Returns @true if this decoder supports loading from the given stream.
 | 
						|
    */
 | 
						|
    bool CanRead( wxInputStream& stream ) const;
 | 
						|
 | 
						|
    /**
 | 
						|
       Create a copy of this decoder.
 | 
						|
    */
 | 
						|
    virtual wxAnimationDecoder *Clone() const = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
       Return the animation type this decoder implements.
 | 
						|
    */
 | 
						|
    virtual wxAnimationType GetType() const = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
       Convert given frame to @c wxImage.
 | 
						|
    */
 | 
						|
    virtual bool ConvertToImage(unsigned int frame, wxImage *image) const = 0;
 | 
						|
 | 
						|
 | 
						|
    /*
 | 
						|
      Get the size of the given animation frame.
 | 
						|
 | 
						|
      It's possible that not all frames are of the same size; e.g. GIF allows
 | 
						|
      to specify that between two frames only a smaller portion of the entire
 | 
						|
      animation has changed.
 | 
						|
    */
 | 
						|
    virtual wxSize GetFrameSize(unsigned int frame) const = 0;
 | 
						|
 | 
						|
    /*
 | 
						|
      Returns the position of the frame, in case it's not as big as the animation size,
 | 
						|
      or @c wxPoint(0,0) otherwise.
 | 
						|
    */
 | 
						|
    virtual wxPoint GetFramePosition(unsigned int frame) const = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
      What should be done after displaying this frame.
 | 
						|
    */
 | 
						|
    virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
       Return the number of milliseconds this frame should be displayed.
 | 
						|
       If -1 is returned then the frame must be displayed forever.
 | 
						|
    */
 | 
						|
    virtual long GetDelay(unsigned int frame) const = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
       The transparent colour for this frame, if any, or @c wxNullColour.
 | 
						|
    */
 | 
						|
    virtual wxColour GetTransparentColour(unsigned int frame) const = 0;
 | 
						|
 | 
						|
    wxSize GetAnimationSize() const;
 | 
						|
    wxColour GetBackgroundColour() const;
 | 
						|
    unsigned int GetFrameCount() const;
 | 
						|
 | 
						|
protected:
 | 
						|
    /**
 | 
						|
       Checks the signature of the data in the given stream and returns true if it
 | 
						|
       appears to be a valid animation format recognized by the animation decoder;
 | 
						|
       this function should modify the stream current position without taking care
 | 
						|
       of restoring it since @c CanRead() will do it.
 | 
						|
    */
 | 
						|
    virtual bool DoCanRead(wxInputStream& stream) const = 0;
 | 
						|
};
 | 
						|
 | 
						|
 |