<Type Name="LayoutIter" FullName="Pango.LayoutIter">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class LayoutIter : GLib.Opaque" />
  <AssemblyInfo>
    <AssemblyName>pango-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 <see cref="T:Pango.LayoutIter" /> can be used to iterate over the visual extents of a <see cref="T:Pango.Layout" />.</summary>
    <remarks />
  </Docs>
  <Base>
    <BaseTypeName>GLib.Opaque</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="GetClusterExtents">
      <MemberSignature Language="C#" Value="public void GetClusterExtents (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ink_rect" Type="Pango.Rectangle" />
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Gets the extents of the current cluster, in layout coordinates (origin is the top left of the entire layout).</summary>
        <param name="ink_rect"> rectangle to fill with ink extents</param>
        <param name="logical_rect">rectangle to fill with logical extents</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetLineExtents">
      <MemberSignature Language="C#" Value="public void GetLineExtents (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ink_rect" Type="Pango.Rectangle" />
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Obtains the extents of the current line.</summary>
        <param name="ink_rect"> rectangle to fill with ink extents</param>
        <param name="logical_rect"> rectangle to fill with logical extents</param>
        <remarks>
          <paramref name="ink_rect" /> or <paramref name="logical_rect" /> can be <see langword="null" /> if you are not interested in them. Extents are in layout coordinates (origin is the top-left corner of the entire <see cref="T:Pango.Layout" />). Thus the extents returned by this function will be the same width/height but not at the same x/y as the extents returned from <see cref="M:Pango.LayoutLineGetExtents()" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="NextRun">
      <MemberSignature Language="C#" Value="public bool NextRun ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Moves iter forward to the next run in visual order.</summary>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If iter was already at the end of the layout, returns <see langword="false" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetLayoutExtents">
      <MemberSignature Language="C#" Value="public void GetLayoutExtents (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ink_rect" Type="Pango.Rectangle" />
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Obtains the extents of the <see cref="T:Pango.Layout" /> being iterated over.</summary>
        <param name="ink_rect"> rectangle to fill with ink extents</param>
        <param name="logical_rect"> rectangle to fill with logical extents</param>
        <remarks>
          <paramref name="ink_rect" /> or <paramref name="logical_rect" /> can be <see langword="null" /> if you are not interested in them.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Free">
      <MemberSignature Language="C#" Value="public void Free ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Frees an iterator that is no longer in use.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetRunExtents">
      <MemberSignature Language="C#" Value="public void GetRunExtents (Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="ink_rect" Type="Pango.Rectangle" />
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Gets the extents of the current run in layout coordinates (origin is the top left of the entire layout).</summary>
        <param name="ink_rect"> rectangle to fill with ink extents</param>
        <param name="logical_rect"> rectangle to fill with logical extents</param>
        <remarks>The coordinate system for each rectangle has its origin at the base line and horizontal origin of the character with increasing coordinates extending to the right and down. The units of the rectangles are in 1 / <see cref="F:Pango.Scale.PangoScale" /> of a device unit.</remarks>
      </Docs>
    </Member>
    <Member MemberName="NextChar">
      <MemberSignature Language="C#" Value="public bool NextChar ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Moves iter forward to the next character in visual order.</summary>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If iter was already at the end of the layout, returns <see langword="false" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="NextLine">
      <MemberSignature Language="C#" Value="public bool NextLine ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Moves iter forward to the start of the next line.</summary>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If iter is already on the last line, returns <see langword="false" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetCharExtents">
      <MemberSignature Language="C#" Value="public void GetCharExtents (Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Gets the extents of the current character, in layout coordinates (origin is the top left of the entire layout).</summary>
        <param name="logical_rect"> rectangle to fill with logical extents</param>
        <remarks>Only logical extents can sensibly be obtained for characters; ink extents make sense only down to the level of clusters.</remarks>
      </Docs>
    </Member>
    <Member MemberName="NextCluster">
      <MemberSignature Language="C#" Value="public bool NextCluster ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Moves iter forward to the next cluster in visual order.</summary>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If iter was already at the end of the layout, returns <see langword="false" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="AtLastLine">
      <MemberSignature Language="C#" Value="public bool AtLastLine ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Determines whether iter is on the last line of the layout.</summary>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public LayoutIter (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="Index">
      <MemberSignature Language="C#" Value="public int Index { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the current byte index.</summary>
        <value> current byte index</value>
        <remarks>Note that iterating forward by char moves in visual order, not logical order, so indexes may not be sequential. Also, the index may be equal to the length of the text in the layout, if on the <see langword="null" /> run (see <see cref="P:Pango.LayoutIter.Run" />).</remarks>
      </Docs>
    </Member>
    <Member MemberName="Run">
      <MemberSignature Language="C#" Value="public Pango.LayoutRun Run { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Pango.LayoutRun</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the current run.</summary>
        <value>an object of type 'Pango.LayoutRun'</value>
        <remarks>When iterating by run, at the end of each line, there is a position with a <see cref="null" /> run, so this function can return <see langword="null" />. The <see langword="null" /> run at the end of each line ensures that all lines have at least one run, even lines consisting of only a newline.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Baseline">
      <MemberSignature Language="C#" Value="public int Baseline { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the y position of the current line's baseline, in layout coordinates (origin at top left of the entire layout).</summary>
        <value> baseline of current line</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Line">
      <MemberSignature Language="C#" Value="public Pango.LayoutLine Line { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Pango.LayoutLine</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the current line.</summary>
        <value>the current <see cref="T:Pango.LayoutLine" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetLineYrange">
      <MemberSignature Language="C#" Value="public void GetLineYrange (out int y0_, out int y1_);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="y0_" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="y1_" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Divides the vertical space in the <see cref="T:Pango.Layout" /> being iterated over between the lines in the layout, and returns the space belonging to the current line.</summary>
        <param name="y0_">a <see cref="T:System.Int32&amp;" /></param>
        <param name="y1_">a <see cref="T:System.Int32&amp;" /></param>
        <remarks>A line's range includes the line's logical extents, plus half of the spacing above and below the line if <see cref="P:Pango.Layout.Spacing" /> has been set. The y positions are in layout coordinates (origin at top left of the entire layout).</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>To be added</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.6" />
      </Docs>
    </Member>
    <Member MemberName="LineReadonly">
      <MemberSignature Language="C#" Value="public Pango.LayoutLine LineReadonly { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Pango.LayoutLine</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version="Gtk# 2.12" />
      </Docs>
    </Member>
    <Member MemberName="RunReadonly">
      <MemberSignature Language="C#" Value="public Pango.LayoutRun RunReadonly { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Pango.LayoutRun</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version="Gtk# 2.12" />
      </Docs>
    </Member>
  </Members>
</Type>
