1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     interface of wxAnimation* classes 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows license 
   7 ///////////////////////////////////////////////////////////////////////////// 
  10     Supported animation types. 
  14     wxANIMATION_TYPE_INVALID
, 
  16     /** represents an animated GIF file. */ 
  19     /** represents an ANI file. */ 
  22     /** autodetect the filetype. */ 
  27     @class wxAnimationCtrl 
  29     This is a static control which displays an animation. 
  30     wxAnimationCtrl API is as simple as possible and won't give you full control 
  31     on the animation; if you need it then use wxMediaCtrl. 
  33     This control is useful to display a (small) animation while doing a long task 
  36     It is only available if @c wxUSE_ANIMATIONCTRL is set to 1 (the default). 
  39     @style{wxAC_DEFAULT_STYLE} 
  40            The default style: wxBORDER_NONE. 
  41     @style{wxAC_NO_AUTORESIZE} 
  42            By default, the control will adjust its size to exactly fit to the 
  43            size of the animation when SetAnimation is called. If this style 
  44            flag is given, the control will not change its size 
  50     @nativeimpl{wxgtk,wxmsw} 
  52     @appearance{animationctrl.png} 
  54     @see wxAnimation, @sample{animate} 
  56 class wxAnimationCtrl 
: public wxControl
 
  60         Initializes the object and calls Create() with 
  63     wxAnimationCtrl(wxWindow
* parent
, wxWindowID id
, 
  64                     const wxAnimation
& anim 
= wxNullAnimation
, 
  65                     const wxPoint
& pos 
= wxDefaultPosition
, 
  66                     const wxSize
& size 
= wxDefaultSize
, 
  67                     long style 
= wxAC_DEFAULT_STYLE
, 
  68                     const wxString
& name 
= wxAnimationCtrlNameStr
); 
  71         Creates the control with the given @a anim animation. 
  73         After control creation you must explicitely call Play() to start to play 
  74         the animation. Until that function won't be called, the first frame 
  75         of the animation is displayed. 
  78             Parent window, must be non-@NULL. 
  80             The identifier for the control. 
  82             The initial animation shown in the control. 
  88             The window style, see wxAC_* flags. 
  92         @return @true if the control was successfully created or @false if 
  95     bool Create(wxWindow
* parent
, wxWindowID id
, 
  96                 const wxAnimation
& anim 
= wxNullAnimation
, 
  97                 const wxPoint
& pos 
= wxDefaultPosition
, 
  98                 const wxSize
& size 
= wxDefaultSize
, 
  99                 long style 
= wxAC_DEFAULT_STYLE
, 
 100                 const wxString
& name 
= wxAnimationCtrlNameStr
); 
 103         Returns the animation associated with this control. 
 105     virtual wxAnimation 
GetAnimation() const; 
 108         Returns the inactive bitmap shown in this control when the; 
 109         see SetInactiveBitmap() for more info. 
 111     wxBitmap 
GetInactiveBitmap() const; 
 114         Returns @true if the animation is being played. 
 116     virtual bool IsPlaying() const; 
 119         Loads the animation from the given file and calls SetAnimation(). 
 120         See wxAnimation::LoadFile for more info. 
 122     virtual bool LoadFile(const wxString
& file
, 
 123                           wxAnimationType animType 
= wxANIMATION_TYPE_ANY
); 
 126         Loads the animation from the given stream and calls SetAnimation(). 
 127         See wxAnimation::Load() for more info. 
 129     virtual bool Load(wxInputStream
& file
, 
 130                       wxAnimationType animType 
= wxANIMATION_TYPE_ANY
); 
 133         Starts playing the animation. 
 135         The animation is always played in loop mode (unless the last frame of the 
 136         animation has an infinite delay time) and always start from the first frame 
 137         even if you @ref Stop "stopped" it while some other frame was displayed. 
 142         Sets the animation to play in this control. 
 144         If the previous animation is being played, it's @ref Stop() stopped. 
 145         Until Play() isn't called, a static image, the first frame of the given 
 146         animation or the background colour will be shown 
 147         (see SetInactiveBitmap() for more info). 
 149     virtual void SetAnimation(const wxAnimation
& anim
); 
 152         Sets the bitmap to show on the control when it's not playing an animation. 
 154         If you set as inactive bitmap ::wxNullBitmap (which is the default), then the 
 155         first frame of the animation is instead shown when the control is inactive; 
 156         in this case, if there's no valid animation associated with the control 
 157         (see SetAnimation()), then the background colour of the window is shown. 
 159         If the control is not playing the animation, the given bitmap will be 
 160         immediately shown, otherwise it will be shown as soon as Stop() is called. 
 162         Note that the inactive bitmap, if smaller than the control's size, will be 
 163         centered in the control; if bigger, it will be stretched to fit it. 
 165     virtual void SetInactiveBitmap(const wxBitmap
& bmp
); 
 168         Stops playing the animation. 
 169         The control will show the first frame of the animation, a custom static image or 
 170         the window's background colour as specified by the last SetInactiveBitmap() call. 
 180     This class encapsulates the concept of a platform-dependent animation. 
 181     An animation is a sequence of frames of the same size. 
 182     Sound is not supported by wxAnimation. 
 190     @see wxAnimationCtrl, @sample{animate} 
 192 class wxAnimation 
: public wxGDIObject
 
 198     wxAnimation(const wxAnimation
& anim
); 
 201         Loads an animation from a file. 
 204             The name of the file to load. 
 206             See LoadFile for more info. 
 208     wxAnimation(const wxString
& name
, 
 209                 wxAnimationType type 
= wxANIMATION_TYPE_ANY
); 
 213         See @ref overview_refcount_destruct for more info. 
 215     virtual ~wxAnimation(); 
 218         Returns the delay for the i-th frame in milliseconds. 
 219         If @c -1 is returned the frame is to be displayed forever. 
 221     virtual int GetDelay(unsigned int i
) const; 
 224         Returns the i-th frame as a wxImage. 
 226     virtual wxImage 
GetFrame(unsigned int i
) const; 
 229         Returns the number of frames for this animation. 
 231     virtual unsigned int GetFrameCount() const; 
 234         Returns the size of the animation. 
 236     virtual wxSize 
GetSize() const; 
 239         Returns @true if animation data is present. 
 241     virtual bool IsOk() const; 
 244         Loads an animation from the given stream. 
 247             The stream to use to load the animation. 
 249             One of the following values: 
 250              @li wxANIMATION_TYPE_GIF: loads an animated GIF file; 
 251              @li wxANIMATION_TYPE_ANI: load an ANI file; 
 252              @li wxANIMATION_TYPE_ANY: tries to autodetect the filetype. 
 254         @return @true if the operation succeeded, @false otherwise. 
 256     virtual bool Load(wxInputStream
& stream
, 
 257                       wxAnimationType type 
= wxANIMATION_TYPE_ANY
); 
 260         Loads an animation from a file. 
 265             One of the wxAnimationType values; wxANIMATION_TYPE_ANY 
 266             means that the function should try to autodetect the filetype. 
 268         @return @true if the operation succeeded, @false otherwise. 
 270     virtual bool LoadFile(const wxString
& name
, 
 271                           wxAnimationType type 
= wxANIMATION_TYPE_ANY
); 
 274         Assignment operator, using @ref overview_refcount "reference counting". 
 276     wxAnimation
& operator =(const wxAnimation
& brush
); 
 280 // ============================================================================ 
 281 // Global functions/macros 
 282 // ============================================================================ 
 285     An empty animation object. 
 287 wxAnimation wxNullAnimation
;