]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/animate.h
wxVector<T> is header-based, use @nolibrary
[wxWidgets.git] / interface / animate.h
index 83584781336751964f85e4aeafc1806b6c83eda5..83f5731c74e241e4d8aa887f18f269224c99a7f3 100644 (file)
@@ -1,18 +1,35 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        animate.h
-// Purpose:     documentation for wxAnimationCtrl class
+// Purpose:     interface of wxAnimation* classes
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+/**
+    Supported animation types.
+*/
+enum wxAnimationType
+{
+    wxANIMATION_TYPE_INVALID,
+
+    /** represents an animated GIF file. */
+    wxANIMATION_TYPE_GIF,
+
+    /** represents an ANI file. */
+    wxANIMATION_TYPE_ANI,
+
+    /** autodetect the filetype. */
+    wxANIMATION_TYPE_ANY
+};
+
 /**
     @class wxAnimationCtrl
     @wxheader{animate.h}
 
     This is a static control which displays an animation.
-    wxAnimationCtrl API is simple as possible and won't give you full control on the
-    animation; if you need it then use wxMediaCtrl.
+    wxAnimationCtrl API is as simple as possible and won't give you full control
+    on the animation; if you need it then use wxMediaCtrl.
 
     This control is useful to display a (small) animation while doing a long task
     (e.g. a "throbber").
 
     @library{wxadv}
     @category{ctrl}
+
+    @nativeimpl{wxgtk,wxmsw}
+
     @appearance{animationctrl.png}
 
-    @seealso
-    wxAnimation
+    @see wxAnimation
 */
 class wxAnimationCtrl : public wxControl
 {
@@ -42,45 +61,40 @@ public:
         Initializes the object and calls Create() with
         all the parameters.
     */
-    wxAnimationCtrl(wxWindow * parent, wxWindowID id,
-                    const wxAnimation& anim,
+    wxAnimationCtrl(wxWindow* parent, wxWindowID id,
+                    const wxAnimation& anim = wxNullAnimation,
                     const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxDefaultSize,
                     long style = wxAC_DEFAULT_STYLE,
                     const wxString& name = "animationctrl");
 
     /**
-        After control creation you must explicitely call Play()
-        to start to play the animation. Until that function won't be called, the first
-        frame
+        Creates the control with the given @a anim animation.
+
+        After control creation you must explicitely call Play() to start to play
+        the animation. Until that function won't be called, the first frame
         of the animation is displayed.
-        
+
         @param parent
-        Parent window, must be non-@NULL.
-        
+            Parent window, must be non-@NULL.
         @param id
-        The identifier for the control.
-        
+            The identifier for the control.
         @param anim
-        The initial animation shown in the control.
-        
+            The initial animation shown in the control.
         @param pos
-        Initial position.
-        
+            Initial position.
         @param size
-        Initial size.
-        
+            Initial size.
         @param style
-        The window style, see wxAC_* flags.
-        
+            The window style, see wxAC_* flags.
         @param name
-        Control name.
-        
+            Control name.
+
         @returns @true if the control was successfully created or @false if
-                   creation failed.
+                 creation failed.
     */
-    bool Create(wxWindow * parent, wxWindowID id,
-                const wxAnimation& anim,
+    bool Create(wxWindow* parent, wxWindowID id,
+                const wxAnimation& anim = wxNullAnimation,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxAC_DEFAULT_STYLE,
@@ -89,76 +103,71 @@ public:
     /**
         Returns the animation associated with this control.
     */
-    wxAnimation GetAnimation();
+    wxAnimation GetAnimation() const;
 
     /**
         Returns the inactive bitmap shown in this control when the;
         see SetInactiveBitmap() for more info.
     */
-    wxBitmap GetInactiveBitmap();
+    wxBitmap GetInactiveBitmap() const;
 
     /**
         Returns @true if the animation is being played.
     */
-    bool IsPlaying();
+    bool IsPlaying() const;
 
     /**
         Loads the animation from the given file and calls SetAnimation().
         See wxAnimation::LoadFile for more info.
     */
-    bool LoadFile(const wxString & file,
+    bool LoadFile(const wxString& file,
                   wxAnimationType animType = wxANIMATION_TYPE_ANY);
 
     /**
         Starts playing the animation.
+
         The animation is always played in loop mode (unless the last frame of the
-        animation
-        has an infinite delay time) and always start from the first frame
-        (even if you @ref stop() stopped it while some other frame was
-        displayed).
+        animation has an infinite delay time) and always start from the first frame
+        even if you @ref Stop "stopped" it while some other frame was displayed.
     */
     bool Play();
 
     /**
         Sets the animation to play in this control.
-        If the previous animation is being played, it's @ref stop() Stopped.
-        
-        Until Play() isn't called, a static image, the first
-        frame of the given animation or the background colour will be shown
+
+        If the previous animation is being played, it's @ref Stop() stopped.
+        Until Play() isn't called, a static image, the first frame of the given
+        animation or the background colour will be shown
         (see SetInactiveBitmap() for more info).
     */
-    void SetAnimation(const wxAnimation & anim);
+    void SetAnimation(const wxAnimation& anim);
 
     /**
         Sets the bitmap to show on the control when it's not playing an animation.
-        If you set as inactive bitmap @c wxNullBitmap (which is the default), then the
-        first frame of the animation is instead shown when the control is inactive; in
-        this case,
-        if there's no valid animation associated with the control (see
-        wxAnimationCtrl::SetAnimation),
-        then the background colour of the window is shown.
-        
+
+        If you set as inactive bitmap ::wxNullBitmap (which is the default), then the
+        first frame of the animation is instead shown when the control is inactive;
+        in this case, if there's no valid animation associated with the control
+        (see SetAnimation()), then the background colour of the window is shown.
+
         If the control is not playing the animation, the given bitmap will be
-        immediately
-        shown, otherwise it will be shown as soon as Stop()
-        is called.
-        
+        immediately shown, otherwise it will be shown as soon as Stop() is called.
+
         Note that the inactive bitmap, if smaller than the control's size, will be
-        centered in
-        the control; if bigger, it will be stretched to fit it.
+        centered in the control; if bigger, it will be stretched to fit it.
     */
     void SetInactiveBitmap(const wxBitmap& bmp);
 
     /**
         Stops playing the animation.
         The control will show the first frame of the animation, a custom static image or
-        the window's background colour as specified by the
-        last SetInactiveBitmap() call.
+        the window's background colour as specified by the last SetInactiveBitmap() call.
     */
     void Stop();
 };
 
 
+
 /**
     @class wxAnimation
     @wxheader{animate.h}
@@ -168,38 +177,35 @@ public:
     Sound is not supported by wxAnimation.
 
     @library{wxadv}
-    @category{FIXME}
+    @category{gdi}
 
     @stdobjects
-    Objects:
-    wxNullAnimation
+    ::wxNullAnimation
 
-    @seealso
-    wxAnimationCtrl
+    @see wxAnimationCtrl
 */
 class wxAnimation : public wxGDIObject
 {
 public:
-    //@{
+    /**
+        Copy ctor.
+    */
+    wxAnimation(const wxAnimation& anim);
+
     /**
         Loads an animation from a file.
-        
+
         @param name
-        The name of the file to load.
-        
+            The name of the file to load.
         @param type
-        See LoadFile for more info.
+            See LoadFile for more info.
     */
-    wxAnimation();
-    wxAnimation(const wxAnimation& anim);
     wxAnimation(const wxString& name,
                 wxAnimationType type = wxANIMATION_TYPE_ANY);
-    //@}
 
     /**
         Destructor.
-        See @ref overview_refcountdestruct "reference-counted object destruction" for
-        more info.
+        See @ref overview_refcount_destruct for more info.
     */
     ~wxAnimation();
 
@@ -207,53 +213,39 @@ public:
         Returns the delay for the i-th frame in milliseconds.
         If @c -1 is returned the frame is to be displayed forever.
     */
-    int GetDelay(unsigned int i);
+    int GetDelay(unsigned int i) const;
 
     /**
         Returns the i-th frame as a wxImage.
     */
-    wxImage GetFrame(unsigned int i);
+    wxImage GetFrame(unsigned int i) const;
 
     /**
         Returns the number of frames for this animation.
     */
-    unsigned int GetFrameCount();
+    unsigned int GetFrameCount() const;
 
     /**
         Returns the size of the animation.
     */
-    wxSize GetSize();
+    wxSize GetSize() const;
 
     /**
         Returns @true if animation data is present.
     */
-#define bool IsOk()     /* implementation is private */
+    bool IsOk() const;
 
     /**
         Loads an animation from the given stream.
-        
+
         @param stream
-        The stream to use to load the animation.
-        
+            The stream to use to load the animation.
         @param type
-        One of the following values:
-        
-        
-        wxANIMATION_TYPE_GIF
-        
-        
-        Load an animated GIF file.
-        
-        wxANIMATION_TYPE_ANI
-        
-        
-        Load an ANI file.
-        
-        wxANIMATION_TYPE_ANY
-        
-        
-        Try to autodetect the filetype.
-        
+            One of the following values:
+             @li wxANIMATION_TYPE_GIF: loads an animated GIF file;
+             @li wxANIMATION_TYPE_ANI: load an ANI file;
+             @li wxANIMATION_TYPE_ANY: tries to autodetect the filetype.
+
         @returns @true if the operation succeeded, @false otherwise.
     */
     bool Load(wxInputStream& stream,
@@ -261,36 +253,31 @@ public:
 
     /**
         Loads an animation from a file.
-        
+
         @param name
-        A filename.
-        
+            A filename.
         @param type
-        One of the following values:
-        
-        
-        wxANIMATION_TYPE_GIF
-        
-        
-        Load an animated GIF file.
-        
-        wxANIMATION_TYPE_ANI
-        
-        
-        Load an ANI file.
-        
-        wxANIMATION_TYPE_ANY
-        
-        
-        Try to autodetect the filetype.
-        
+            One of the wxAnimationType values; wxANIMATION_TYPE_ANY
+            means that the function should try to autodetect the filetype.
+
         @returns @true if the operation succeeded, @false otherwise.
     */
     bool LoadFile(const wxString& name,
                   wxAnimationType type = wxANIMATION_TYPE_ANY);
 
     /**
-        Assignment operator, using @ref overview_trefcount "reference counting".
+        Assignment operator, using @ref overview_refcount "reference counting".
     */
-    wxAnimation operator =(const wxAnimation& brush);
+    wxAnimation& operator =(const wxAnimation& brush);
 };
+
+
+// ============================================================================
+// Global functions/macros
+// ============================================================================
+
+/**
+    An empty animation object.
+*/
+wxAnimation wxNullAnimation;
+