<Type Name="GlyphString" FullName="Pango.GlyphString">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class GlyphString : 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>Used to store strings of glyphs with geometry and visual attribute information.</summary>
    <remarks />
  </Docs>
  <Base>
    <BaseTypeName>GLib.Opaque</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName="Zero">
      <MemberSignature Language="C#" Value="public static Pango.GlyphString Zero;" />
      <MemberType>Field</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete("Pango.GlyphString is a reference type now, use null")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>Pango.GlyphString</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Obsolete: just use <see langword="null" /> now.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public GlyphString ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <summary>Creates a new <see cref="T:Pango.GlyphString" /> object.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="New">
      <MemberSignature Language="C#" Value="public static Pango.GlyphString New ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Pango.GlyphString</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Obsolete. Replaced by an ordinary constructor</summary>
        <returns>a <see cref="T:Pango.GlyphString" /> object.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public GlyphString (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Internal method</summary>
        <param name="raw">an object of type <see cref="T:System.IntPtr" /></param>
        <remarks>This is an internal method, and should not be used by user code.</remarks>
      </Docs>
    </Member>
    <Member MemberName="New">
      <MemberSignature Language="C#" Value="public static Pango.GlyphString New (IntPtr raw);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Pango.GlyphString</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Obsolete internal constructor</summary>
        <param name="raw">an object of type <see cref="T:System.IntPtr" /></param>
        <returns>a <see cref="T:Pango.GlyphString" /> object.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Copy">
      <MemberSignature Language="C#" Value="public Pango.GlyphString Copy ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Pango.GlyphString</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Copies one <see cref="T:Pango.GlyphString" /> into a new object.</summary>
        <returns>a <see cref="T:Pango.GlyphString" /></returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Extents">
      <MemberSignature Language="C#" Value="public void Extents (Pango.Font font, Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="font" Type="Pango.Font" />
        <Parameter Name="ink_rect" Type="Pango.Rectangle" />
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Computes the logical and ink extents of this glyph string.</summary>
        <param name="font">a <see cref="T:Pango.Font" /> for rendering the string </param>
        <param name="ink_rect">a  <see cref="T:Pango.Rectangle" /> used to store the extents of the glyph as drawn or <see langword="null" /> to indicate that the result is not needed.</param>
        <param name="logical_rect">a <see cref="T:Pango.Rectangle" /> used to store the logical extents of the glyph or <see langword="null" /> to indicate that the result is not needed.</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="ExtentsRange">
      <MemberSignature Language="C#" Value="public void ExtentsRange (int start, int end, Pango.Font font, Pango.Rectangle ink_rect, Pango.Rectangle logical_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start" Type="System.Int32" />
        <Parameter Name="end" Type="System.Int32" />
        <Parameter Name="font" Type="Pango.Font" />
        <Parameter Name="ink_rect" Type="Pango.Rectangle" />
        <Parameter Name="logical_rect" Type="Pango.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Computes the logical and ink extents of a sub-section of this glyph string.</summary>
        <param name="start">an integer for the start index</param>
        <param name="end">an integer for the end index</param>
        <param name="font">a <see cref="T:Pango.Font" /> for rendering the string </param>
        <param name="ink_rect">a  <see cref="T:Pango.Rectangle" /> used to store the extents of the glyph as drawn or <see langword="null" /> to indicate that the result is not needed.</param>
        <param name="logical_rect">a <see cref="T:Pango.Rectangle" /> used to store the logical extents of the glyph or <see langword="null" /> to indicate that the result is not needed.</param>
        <remarks>The extents are relative to the start of the glyph string range, not to the start of the glyph string.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Size">
      <MemberSignature Language="C#" Value="public int Size { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Resizes this GlyphString to the given length.</summary>
        <value>The new length of the string.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="XToIndex">
      <MemberSignature Language="C#" Value="public void XToIndex (string text, Pango.Analysis analysis, int x_pos, out int index_, out int trailing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="text" Type="System.String" />
        <Parameter Name="analysis" Type="Pango.Analysis" />
        <Parameter Name="x_pos" Type="System.Int32" />
        <Parameter Name="index_" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="trailing" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Convert from x offset to character position.</summary>
        <param name="text">a <see cref="T:System.String" />, the text for the run</param>
        <param name="analysis">a <see cref="T:Pango.Analysis" />, the analysis for the run</param>
        <param name="x_pos">the X offset in Pango glyph units.</param>
        <param name="index_">a <see cref="T:System.Int32&amp;" />, for storing the calculated byte index</param>
        <param name="trailing">a <see cref="T:System.Int32&amp;" /> for storing whether the user clicked on the leading 
	  or trailing edge of the character.</param>
        <remarks>
	  Character positions are computed by dividing up each cluster into equal portions.
	  In scripts where positioning within a cluster is not allowed (such as Thai), the returned value may not be a valid cursor
	  position; the caller must combine the result with the logical attributes for the text to compute the valid cursor position.
	</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:Pango.GlyphString" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="NumGlyphs">
      <MemberSignature Language="C#" Value="public int NumGlyphs { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>the number of glyphs in the string.</summary>
        <value>the number of glyphs in the string.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="IndexToX">
      <MemberSignature Language="C#" Value="public int IndexToX (string text, Pango.Analysis analysis, int index_, bool trailing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="text" Type="System.String" />
        <Parameter Name="analysis" Type="Pango.Analysis" />
        <Parameter Name="index_" Type="System.Int32" />
        <Parameter Name="trailing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Convert from character position to X position.</summary>
        <param name="text">a <see cref="T:System.String" />, the text for the run</param>
        <param name="analysis">a <see cref="T:Pango.Analysis" />, the analysis for the run</param>
        <param name="index_">a <see cref="T:System.Int32" />, the byte index within the text.</param>
        <param name="trailing">a <see cref="T:System.Int32" /> whether to compute from trailing edge (true) or leading 
	  edge (false) of the character</param>
        <remarks>
	  Converts from character position to x position. (X position is measured from the left edge of the run). 
	  Character positions are computed by dividing up each cluster into equal portions.
	</remarks>
        <returns>To be added.</returns>
      </Docs>
    </Member>
    <Member MemberName="GetLogicalWidths">
      <MemberSignature Language="C#" Value="public int GetLogicalWidths (string text, int embedding_level);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="text" Type="System.String" />
        <Parameter Name="embedding_level" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Determine the screen width corresponding to each character in a string. When
	  multiple characters compose a single cluster, the width of the entire cluster is divided equally among the characters.
        </summary>
        <param name="text">a <see cref="T:System.String" /> to process</param>
        <param name="embedding_level">a <see cref="T:System.Int32" />, the embedding level of the string</param>
        <returns>a <see cref="T:System.Int32" />, a pointer to an array of logical widths for each character.</returns>
        <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>Width property.</summary>
        <value>The logical width of the glyph string.</value>
        <remarks />
        <since version="Gtk# 2.12" />
      </Docs>
    </Member>
  </Members>
</Type>
