<Type Name="PixbufAnimation" FullName="Gdk.PixbufAnimation">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class PixbufAnimation : GLib.Object" />
  <AssemblyInfo>
    <AssemblyName>gdk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.12.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Docs>
    <summary>A base class for animations that are rendered using <see cref="T:Gdk.Pixbuf" /></summary>
    <remarks />
  </Docs>
  <Base>
    <BaseTypeName>GLib.Object</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="GetIter">
      <MemberSignature Language="C#" Value="public Gdk.PixbufAnimationIter GetIter (IntPtr start_time);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.PixbufAnimationIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start_time" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>
	  Get an iterator for displaying an animation. The iterator provides
	  the frames that should be displayed at a given time.
	  It should be freed after use with g_object_unref().
	</summary>
        <param name="start_time">A <see cref="T:IntPtr" /></param>
        <returns>A <see cref="T:Gdk.PixbufAnimationIter" /> to move over the animation</returns>
        <remarks>
          <p>
            <paramref name="start_time" /> would normally come from 
	    g_get_current_time() (FIXME: this function isn't bound into C#; 
	    this needs a look), and
	    marks the beginning of animation playback. After creating an
	  iterator, you should immediately display the pixbuf returned by
	    <see cref="P:Gdk.PixbufAnimationIter.Pixbuf" />. Then, you should install a
	    timeout (with g_timeout_add() (FIXME)) or by some other mechanism ensure
	    that you'll update the image after
	    <see cref="P:Gdk.PixbufAnimation.DelayTime" /> milliseconds. Each time
	    the image is updated, you should reinstall the timeout with the new,
	    possibly-changed delay time.
	  </p>
          <p>
	  As a shortcut, if <paramref name="start_time" /> is <see langword="null" />, the result of
	  g_get_current_time() will be used automatically.
	    </p>
          <p>
	  To update the image (i.e. possibly change the result of
	  gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
	  call gdk_pixbuf_animation_iter_advance().
	    </p>
          <p>

	  If you're using <see cref="T:Gdk.PixbufLoader" />, in addition 
	  to updating the image
	  after the delay time, you should also update it whenever you
	  receive the area_updated signal and
	  <see cref="M:Gdk.PixbufAnimationIter.OnCurrentlyLoadingFrame" /> returns
	  true. In this case, the frame currently being fed into the loader
	  has received new data, so needs to be refreshed. The delay time for
	  a frame may also be modified after an 
	  <see cref="E:Gdk.PixbufLoader.AreaUpdated" /> signal, for
	  example if the delay time for a frame is encoded in the data after
	  the frame itself. So your timeout should be reinstalled after any
	  <see cref="E:Gdk.PixbufLoader.AreaUpdated" /> signal.
	    </p>
          <p>
	    A delay time of -1 is possible, indicating "infinite."
	  </p>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public PixbufAnimation (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="raw">Pointer to the C object.</param>
        <remarks>
          <para>This is an internal constructor, and should not be used by user code.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public PixbufAnimation (string filename);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="filename" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Public constructor; creates a new animation by 
	  loading it from a file.  The file format is
	  detected automatically.  If the file's format does not support 
	  multi-frame images, then an animation with a single frame will 
	  be created. Possible errors are in the 
	  <see cref="T:Gdk.PixbufError" /> and <see cref="T:Gdk.Error" /> domains.
	</summary>
        <param name="filename">A <see cref="T:System.String" />, the filename to load into this object.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Width">
      <MemberSignature Language="C#" Value="public int Width { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The width of the animation.</summary>
        <value>A <see cref="T:System.Int32" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="StaticImage">
      <MemberSignature Language="C#" Value="public Gdk.Pixbuf StaticImage { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixbuf</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the image if this animation is actually a static, 
	  unanimaged file.</summary>
        <value>A <see cref="T:Gdk.Pixbuf" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Height">
      <MemberSignature Language="C#" Value="public int Height { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The height of the animation.</summary>
        <value>A <see cref="T:System.Int32" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="IsStaticImage">
      <MemberSignature Language="C#" Value="public bool IsStaticImage { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
	  If you load a file with <see cref="M:Gdk.PixbufAnimation.ctor" /> 
	  and it turns out to be a plain, unanimated image, then this 
	  function will return
	  TRUE. Use <see cref="P:Gdk.PixbufAnimation.StaticImage" /> to
	  retrieve the image.
	</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static GLib.GType GType { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>GType Property.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gdk.PixbufAnimation" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected PixbufAnimation (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <remarks>This is a constructor used by derivative types of <see cref="T:Gdk.PixbufAnimation" /> that would have their own GLib.GType assigned to it.  This is not typically used by C# code.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Ref">
      <MemberSignature Language="C#" Value="public Gdk.PixbufAnimation Ref ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.PixbufAnimation</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:Gdk.PixbufAnimation" /></returns>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Unref">
      <MemberSignature Language="C#" Value="public void Unref ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="LoadFromResource">
      <MemberSignature Language="C#" Value="public static Gdk.PixbufAnimation LoadFromResource (string resource);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.PixbufAnimation</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="resource" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Loads a pixbuf from a resource file.</summary>
        <param name="resource">the name of the resource</param>
        <returns>a <see cref="T:Gdk.PixbufAnimation" /></returns>
        <remarks>
	    This loads an animation from a resource in the calling assembly. This is equivalent to
	    using the <see cref="C:Gdk.PixbufAnimation(System.Reflection.Assembly, System.String)" />
	    constructor with a <see langword="null" /> assembly.
	</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public PixbufAnimation (System.IO.Stream stream);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
      </Parameters>
      <Docs>
        <summary>Makes a new animation object from a <see cref="T:System.IO.Stream" />.</summary>
        <param name="stream">a <see cref="T:System.IO.Stream" /></param>
        <remarks>Useful for creating an animation from an image file that resides in memory.

<example><code lang="C#">
/* buffer containing an image */
System.Byte[] buffer = new System.Byte[256];

/* create a memory stream to the buffer */
System.IO.MemoryStream memorystream = new System.IO.MemoryStream(buffer);    

/* create an animation from the stream as if it was a file */
Gdk.PixbufAnimation pba = new Gdk.PixbufAnimation(memorystream);
  </code></example></remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public PixbufAnimation (System.Reflection.Assembly assembly, string resource);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="assembly" Type="System.Reflection.Assembly" />
        <Parameter Name="resource" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Constructor for images embedded in an assembly</summary>
        <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> that contains the image.  
<para>
If the value is <see langword="null" />,  the image will be looked up on the calling assembly.</para></param>
        <param name="resource">The name given as the resource in the assembly</param>
        <remarks>
          <para>
   This method is used to construct a <see cref="T:Gdk.PixbufAnimation" /> from an embedded resource in an assembly. 
</para>
          <para>
   Typically this is used when application developers want to distribute images in a single executable.
</para>

If the assembly parameter is <see langword="null" />,  the image will be looked up on the calling assembly.

<para>
For example:
</para><example><code lang="C#">
Gdk.PixbufAnimation p = new PixbufAnimation (null, "anim.gif");
  </code></example><para>Compile with:</para><example><code lang="Compilation">
mcs -resource:anim.gif sample.cs
  </code></example></remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
  </Members>
</Type>
