<Type Name="PixbufAnimationIter" FullName="Gdk.PixbufAnimationIter">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class PixbufAnimationIter : 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>
      An iterator used by <see cref="T:Gdk.PixbufAnimation" /> for displaying animations by stepping through frames.
    </summary>
    <remarks />
  </Docs>
  <Base>
    <BaseTypeName>GLib.Object</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="Advance">
      <MemberSignature Language="C#" Value="public bool Advance (IntPtr current_time);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="current_time" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>
	  Possibly advances an animation to a new frame. Chooses the frame based
	  on the start time passed to 
	  <see cref="M:Gdk.PixbufAnimation.GetIter" />.
	</summary>
        <param name="current_time">A <see cref="T:IntPtr" />, pointer to a C time object</param>
        <returns>A <see cref="T:System.Boolean" />, true if the image may need updating.</returns>
        <remarks>
          <p>
            <paramref name="current_time" /> would normally come from g_get_current_time(), and
	    must be greater than or equal to the time passed to
	    <see cref="M:Gdk.PixbufAnimation.GetIter" />, and must increase or remain
	    unchanged each time this method is
	    called. That is, you can't go backward in time; animations only
	    play forward.
	  </p>
          <p>
	    As a shortcut, pass <see langword="null" /> for the current time and g_get_current_time()
	    will be invoked on your behalf. So you only need to explicitly pass
	    <paramref name="current_time" /> if you're doing something odd like playing the animation
	    at double speed.
	  </p>
          <p>
	    If this method returns false, there's no need to update the animation
	    display, assuming the display had been rendered prior to advancing;
	    if true, you need to call 
	    <see cref="P:Gdk.PixbufAnimationIter.Pixbuf" /> and update the
	    display with the new pixbuf.
	  </p>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="OnCurrentlyLoadingFrame">
      <MemberSignature Language="C#" Value="public bool OnCurrentlyLoadingFrame ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
	  Used to determine how to respond to the 
	  <see cref="E:Gdk.PixbufLoader.AreaUpdated" /> signal
	  when loading an animation. 
	  <see cref="E:Gdk.PixbufLoader.AreaUpdated" /> is emitted
	  for an area of the frame currently streaming into the loader. So if
	  you're on the currently loading frame, you need to redraw the 
	  screen for the updated area.
	</summary>
        <returns>A <see cref="T:System.Boolean" />, true if the frame we're on is partially loaded, or the last frame</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public PixbufAnimationIter (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="DelayTime">
      <MemberSignature Language="C#" Value="public int DelayTime { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
	  Gets the number of milliseconds the current pixbuf should be displayed,
	  or -1 if the current pixbuf should be displayed forever. 
	</summary>
        <value>A <see cref="T:System.Int32" />,  delay time in milliseconds (thousandths of a second)</value>
        <remarks>
	  g_timeout_add() (FIXME: this doesn't seem to be bound)
	  conveniently takes a timeout in milliseconds, so you can use a timeout
	  to schedule the next update.
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="Pixbuf">
      <MemberSignature Language="C#" Value="public Gdk.Pixbuf Pixbuf { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixbuf</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>
	  Gets the current pixbuf which should be displayed; the pixbuf will
	  be the same size as the animation itself
	  (<see cref="M:Gdk.PixbufAnimation.GetWidth" />, <see cref="M:Gdk.PixbufAnimation.GetHeight" />). This pixbuf should be displayed
	  for <see cref="P:Gdk.PixbufAnimation.DelayTime" /> milliseconds. The caller
	  of this function does not own a reference to the returned pixbuf;
	  the returned pixbuf will become invalid when the iterator advances
	  to the next frame, which may happen anytime you call
	  <see cref="M:Gdk.PixbufAnimationIter.Advance" />. Copy the pixbuf to keep it
	  (don't just add a reference), as it may get recycled as you advance
	  the iterator.
	</summary>
        <value>A <see cref="T:Gdk.Pixbuf" /></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.PixbufAnimationIter" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected PixbufAnimationIter (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.PixbufAnimationIter" /> 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=".ctor">
      <MemberSignature Language="C#" Value="protected PixbufAnimationIter ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Protected constructor.</summary>
        <remarks />
      </Docs>
    </Member>
  </Members>
</Type>
