1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: interface of wxAnimation* classes
4 // Author: wxWidgets team
6 // Licence: wxWindows licence
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 explicitly 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.
184 Note that on wxGTK wxAnimation is capable of loading the formats supported
185 by the internally-used @c gdk-pixbuf library (typically this means only
186 @c wxANIMATION_TYPE_GIF).
187 On other platforms wxAnimation is always capable of loading both GIF and ANI
188 formats (i.e. both @c wxANIMATION_TYPE_GIF and @c wxANIMATION_TYPE_ANI).
196 @see wxAnimationCtrl, @sample{animate}
198 class wxAnimation
: public wxGDIObject
204 wxAnimation(const wxAnimation
& anim
);
207 Loads an animation from a file.
210 The name of the file to load.
212 See LoadFile() for more info.
214 wxAnimation(const wxString
& name
,
215 wxAnimationType type
= wxANIMATION_TYPE_ANY
);
219 See @ref overview_refcount_destruct for more info.
221 virtual ~wxAnimation();
224 Returns the delay for the i-th frame in milliseconds.
225 If @c -1 is returned the frame is to be displayed forever.
227 virtual int GetDelay(unsigned int i
) const;
230 Returns the i-th frame as a wxImage.
232 This method is not implemented in the native wxGTK implementation of
233 this class and always returns an invalid image there.
235 virtual wxImage
GetFrame(unsigned int i
) const;
238 Returns the number of frames for this animation.
240 This method is not implemented in the native wxGTK implementation of
241 this class and always returns 0 there.
243 virtual unsigned int GetFrameCount() const;
246 Returns the size of the animation.
248 virtual wxSize
GetSize() const;
251 Returns @true if animation data is present.
253 virtual bool IsOk() const;
256 Loads an animation from the given stream.
259 The stream to use to load the animation.
260 Under wxGTK may be any kind of stream; under other platforms
261 this must be a seekable stream.
263 One of the ::wxAnimationType enumeration values.
265 @return @true if the operation succeeded, @false otherwise.
267 virtual bool Load(wxInputStream
& stream
,
268 wxAnimationType type
= wxANIMATION_TYPE_ANY
);
271 Loads an animation from a file.
276 One of the ::wxAnimationType values; wxANIMATION_TYPE_ANY
277 means that the function should try to autodetect the filetype.
279 @return @true if the operation succeeded, @false otherwise.
281 virtual bool LoadFile(const wxString
& name
,
282 wxAnimationType type
= wxANIMATION_TYPE_ANY
);
285 Assignment operator, using @ref overview_refcount "reference counting".
287 wxAnimation
& operator =(const wxAnimation
& brush
);
291 // ============================================================================
292 // Global functions/macros
293 // ============================================================================
296 An empty animation object.
298 wxAnimation wxNullAnimation
;