<Type Name="TreeStore" FullName="Gtk.TreeStore">
  <TypeSignature Language="C#" Maintainer="John Luke" Value="public class TreeStore : GLib.Object, Gtk.TreeDragDest, Gtk.TreeDragSource, Gtk.TreeModel, Gtk.TreeSortable" />
  <AssemblyInfo>
    <AssemblyName>gtk-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 tree-like data structure that can be used with the <see cref="T:Gtk.TreeView" /></summary>
    <remarks>The <see cref="T:Gtk.TreeStore" /> object is a list model for use with a <see cref="T:Gtk.TreeView" /> widget. It implements the <see cref="T:Gtk.TreeModel" /> interface, and consequentialy, can use all of the methods available there. It also implements the <see cref="T:Gtk.TreeSortable" /> interface so it can be sorted by the view. Finally, it also implements the tree drag and drop interfaces.</remarks>
  </Docs>
  <Base>
    <BaseTypeName>GLib.Object</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>Gtk.TreeDragDest</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>Gtk.TreeDragSource</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>Gtk.TreeModel</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>Gtk.TreeSortable</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName="IterNChildren">
      <MemberSignature Language="C#" Value="public int IterNChildren ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returns the number of children that the <see cref="T:Gtk.TreeIter" /> has.</summary>
        <returns>an object of type <see cref="T:System.Int32" /></returns>
        <remarks>As a special case, if iter is <see langword="null" />, then the number of toplevel nodes is returned.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IterChildren">
      <MemberSignature Language="C#" Value="public bool IterChildren (out Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Sets the TreeIter object pointed to by the iter param to point to the first child of this tree. </summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Prepend">
      <MemberSignature Language="C#" Value="public void Prepend (out Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Prepends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>It will prepend a row to the top level. <paramref name="iter" /> will be changed to point to this new row. The row will be empty after this method is called. To fill in values, you need to call <see cref="M:Gtk.TreeStore.SetValue()" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Append">
      <MemberSignature Language="C#" Value="public void Append (out Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Appends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>
          <para>
	  It will append a row to the top level. <paramref name="iter" /> will be changed to point to this new row. The row will be empty after this method is called. To fill in values, you need to call <see cref="M:Gtk.TreeStore.SetValue()" />.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ChangeSortColumn">
      <MemberSignature Language="C#" Value="public void ChangeSortColumn ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Fires a <see cref="E:Gtk.TreeSortable.SortColumnChanged" /> event.</summary>
        <remarks>Designed to be called by routines that change the sort of the tree.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetSortColumnId">
      <MemberSignature Language="C#" Value="public void SetSortColumnId (int sort_column_id, Gtk.SortType order);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sort_column_id" Type="System.Int32" />
        <Parameter Name="order" Type="Gtk.SortType" />
      </Parameters>
      <Docs>
        <summary>Sets which column is to be used to sort the data in the tree.</summary>
        <param name="sort_column_id">A <see cref="T:System.Int32" />, the sort column index.</param>
        <param name="order">A <see cref="T:Gtk.SortType" />, the kind of sort to use</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetSortFunc">
      <MemberSignature Language="C#" Value="public void SetSortFunc (int sort_column_id, Gtk.TreeIterCompareFunc sort_func, IntPtr user_data, Gtk.DestroyNotify destroy);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sort_column_id" Type="System.Int32" />
        <Parameter Name="sort_func" Type="Gtk.TreeIterCompareFunc" />
        <Parameter Name="user_data" Type="System.IntPtr" />
        <Parameter Name="destroy" Type="Gtk.DestroyNotify" />
      </Parameters>
      <Docs>
        <summary>Sets a function that should be used to be sort a particular column.</summary>
        <param name="sort_column_id">A <see cref="System.Int32" />, the index of the column to be sorted</param>
        <param name="sort_func">A <see cref="TGtk.TreeIterCompareFunc" />, the function to use for sorting</param>
        <param name="user_data">ignored</param>
        <param name="destroy">ignored</param>
        <remarks>This overload is obsolete.  The two parameter is preferred for new code.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetDefaultSortFunc" Deprecated="true">
      <MemberSignature Language="C#" Value="public void SetDefaultSortFunc (Gtk.TreeIterCompareFunc sort_func, IntPtr user_data, Gtk.DestroyNotify destroy);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sort_func" Type="Gtk.TreeIterCompareFunc" />
        <Parameter Name="user_data" Type="System.IntPtr" />
        <Parameter Name="destroy" Type="Gtk.DestroyNotify" />
      </Parameters>
      <Docs>
        <summary>Sets a function that should be used to be sort columns by default if not otherwise specified by <see cref="T:Gtk.TreeModelSort.SetSortFunc" />.</summary>
        <param name="sort_func">A <see cref="TGtk.TreeIterCompareFunc" />, the function to use for sorting</param>
        <param name="user_data">ignored</param>
        <param name="destroy">ignored</param>
        <remarks>This method is obsolete. The <see cref="M:Gtk.TreeStore.DefaultSortFunc" /> property is preferred for new code.</remarks>
      </Docs>
    </Member>
    <Member MemberName="DefaultSortFunc">
      <MemberSignature Language="C#" Value="public Gtk.TreeIterCompareFunc DefaultSortFunc { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIterCompareFunc</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The function that should be used to be sort columns by default if not otherwise specified by <see cref="T:Gtk.TreeModelSort.SetSortFunc" />.</summary>
        <value>a <see cref="T:Gtk.TreeIterCompareFunc" /></value>
        <remarks>This property is meant to be used together with <see cref="T:Gtk.TreeModelSort.ChangeSortColumn" />.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="RowDropPossible">
      <MemberSignature Language="C#" Value="public bool RowDropPossible (Gtk.TreePath dest_path, Gtk.SelectionData selection_data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dest_path" Type="Gtk.TreePath" />
        <Parameter Name="selection_data" Type="Gtk.SelectionData" />
      </Parameters>
      <Docs>
        <summary>Tests whether <paramref name="selection_data" /> can be dropped on <paramref name="dest_path" />. </summary>
        <param name="dest_path">a <see cref="T:Gtk.TreePath" />, potential drop destination</param>
        <param name="selection_data">a <see cref="T:Gtk.SelectionData" />, potential data to be dropped.</param>
        <returns>a <see cref="T:System.Boolean" />, true if drop is allowed</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DragDataReceived">
      <MemberSignature Language="C#" Value="public bool DragDataReceived (Gtk.TreePath dest, Gtk.SelectionData selection_data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dest" Type="Gtk.TreePath" />
        <Parameter Name="selection_data" Type="Gtk.SelectionData" />
      </Parameters>
      <Docs>
        <summary>Drags data received into this <see cref="T:Gtk.TreeStore" /> object.</summary>
        <param name="dest">A <see cref="T:Gtk.TreePath" />, the destination path of the drag</param>
        <param name="selection_data">A <see cref="T:Gtk.SelectionData" />, the data that was dragged</param>
        <returns>A boolean, true if the data was successfully received.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DragDataGet">
      <MemberSignature Language="C#" Value="public bool DragDataGet (Gtk.TreePath path, Gtk.SelectionData selection_data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="selection_data" Type="Gtk.SelectionData" />
      </Parameters>
      <Docs>
        <summary>Method used when this TreeStore is part of a source widget
	for a drag-and-drop operation; gets the data that was dragged from the
	associated widget.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="selection_data">A <see cref="T:Gtk.SelectionData" /></param>
        <returns>A <see cref="T:System.Boolean" />, true if the operation succeeded.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RowDraggable">
      <MemberSignature Language="C#" Value="public bool RowDraggable (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Returns whether or not a given row can be dragged.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <returns>A boolean, true if the row is draggable.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DragDataDelete">
      <MemberSignature Language="C#" Value="public bool DragDataDelete (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>When this TreeStore is the data source for a drag operation and the drag operation is a move, this method runs to delete the data after the data has been received by the target widget.</summary>
        <param name="path">A <see cref="T:Gtk.TreePath" />, the path of the data to delete.</param>
        <returns>A <see cref="T:System.Boolean" />, true if the operation succeeds.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="EmitRowChanged">
      <MemberSignature Language="C#" Value="public void EmitRowChanged (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Emits the <see cref="E:Gtk.TreeStore.RowChanged" /> event.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Foreach">
      <MemberSignature Language="C#" Value="public void Foreach (Gtk.TreeModelForeachFunc func);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="func" Type="Gtk.TreeModelForeachFunc" />
      </Parameters>
      <Docs>
        <summary>Calls <paramref name="func" /> on each node in model in a depth-first fashion.</summary>
        <param name="func">an object of type <see cref="T:Gtk.TreeModelForeachFunc" /></param>
        <remarks>If func returns <see langword="true" />, then the tree ceases to be walked, and this method returns.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetIterFirst">
      <MemberSignature Language="C#" Value="public bool GetIterFirst (out Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Gets the first iterator in the tree (the one at the path "0") and returns <see langword="true" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>Returns <see langword="false" /> if the tree is empty.</remarks>
      </Docs>
    </Member>
    <Member MemberName="EmitRowHasChildToggled">
      <MemberSignature Language="C#" Value="public void EmitRowHasChildToggled (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Emits the <see cref="E:Gtk.TreeStore.RowHasChildToggled" /> event.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetPath">
      <MemberSignature Language="C#" Value="public Gtk.TreePath GetPath (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreePath</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Gets the <see cref="T:Gtk.TreePath" /> of <paramref name="iter" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:Gtk.TreePath" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="IterHasChild">
      <MemberSignature Language="C#" Value="public bool IterHasChild (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Returns <see langword="true" /> if iter has children, <see langword="false" /> otherwise.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="RefNode">
      <MemberSignature Language="C#" Value="public void RefNode (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Lets the tree ref the node.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>
          <para>This is an optional method for models to implement. To be more specific, models may ignore this call as it exists primarily for performance reasons.</para>
          <para>This function is primarily meant as a way for views to let caching model know when nodes are being displayed (and hence, whether or not to cache that node.) For example, a file-system based model would not want to keep the entire file-hierarchy in memory, just the sections that are currently being displayed by every current view.</para>
          <para>A model should be expected to be able to get an iter independent of its referenced state.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="IterNChildren">
      <MemberSignature Language="C#" Value="public int IterNChildren (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Returns the number of children that <paramref name="iter" /> has.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Int32" /></returns>
        <remarks>As a special case, if <paramref name="iter" /> is <see langword="null" />, then the number of toplevel nodes is returned.</remarks>
      </Docs>
    </Member>
    <Member MemberName="EmitRowInserted">
      <MemberSignature Language="C#" Value="public void EmitRowInserted (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Emits the <see cref="E:Gtk.TreeModel.RowInserted" /> event.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="EmitRowDeleted">
      <MemberSignature Language="C#" Value="public void EmitRowDeleted (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Emits the <see cref="E:Gtk.TreeModel.RowDeleted" /> event.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <remarks>This should be called by models after a row has been removed. The location pointed to by <paramref name="path" /> should be the location that the row previously was at. It may not be a valid location anymore.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetValist">
      <MemberSignature Language="C#" Value="public void GetValist (Gtk.TreeIter iter, IntPtr var_args);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="var_args" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Gets the values of child properties for the row pointed to by <paramref name="iter" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="var_args">a <see cref="T:System.IntPtr" />, pointer to the va_list data structure of arguments (FIXME: clarify what va_lists look like)</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="UnrefNode">
      <MemberSignature Language="C#" Value="public void UnrefNode (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Lets the tree unref the node.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This is an optional method for models to implement. To be more specific, models may ignore this call as it exists primarily for performance reasons.  For more information on what this means, see <see cref="M:Gtk.TreeModel.RefNode()" />. Please note that nodes that are deleted are not unreferenced.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Clear">
      <MemberSignature Language="C#" Value="public void Clear ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Removes all rows from the <see cref="T:Gtk.TreeStore" /></summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValist">
      <MemberSignature Language="C#" Value="public void SetValist (Gtk.TreeIter iter, IntPtr var_args);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="var_args" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Sets the values of child properties for the row pointed to by <paramref name="iter" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="var_args">a <see cref="T:System.IntPtr" />, pointer to the va_list data structure of arguments (FIXME: clarify what va_lists look like)</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="IsAncestor">
      <MemberSignature Language="C#" Value="public bool IsAncestor (Gtk.TreeIter iter, Gtk.TreeIter descendant);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="descendant" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Returns <see langword="true" /> if <paramref name="iter" /> is an ancestor of <paramref name="descendant" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="descendant">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>That is, <paramref name="iter" /> is the parent (or grandparent or great-grandparent) of <paramref name="descendant" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, GLib.Value value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="GLib.Value" />
      </Parameters>
      <Docs>
        <summary>Sets the data in the cell specified by <paramref name="iter" /> and <paramref name="column" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">an object of type <see cref="T:System.Int32" /></param>
        <param name="value">an object of type <see cref="T:GLib.Value" /></param>
        <remarks>The type of value must be convertible to the type of the column.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IterDepth">
      <MemberSignature Language="C#" Value="public int IterDepth (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Returns the depth of <paramref name="iter" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Int32" /></returns>
        <remarks>This will be 0 for anything on the root level, 1 for anything down a level, etc.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeStore (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="NColumns">
      <MemberSignature Language="C#" Value="public int NColumns { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Returns the number of columns supported by the <see cref="T:Gtk.TreeStore" />.</summary>
        <value>an object of type <see cref="T:System.Int32" /></value>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Flags">
      <MemberSignature Language="C#" Value="public Gtk.TreeModelFlags Flags { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeModelFlags</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Returns a set of flags supported by this <see cref="T:Gtk.TreeStore" />.</summary>
        <value>an object of type <see cref="T:Gtk.TreeModelFlags" /></value>
        <remarks>The flags are a bitwise combination of <see cref="T:Gtk.TreeModelFlags" />. The flags supported should not change during the lifecycle of the <see cref="T:Gtk.TreeStore" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SortColumnChanged">
      <MemberSignature Language="C#" Value="public event EventHandler SortColumnChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when the sort column of the <see cref="T:Gtk.TreeStore" /> has changed.</summary>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("sort_column_changed")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowHasChildToggled">
      <MemberSignature Language="C#" Value="public event Gtk.RowHasChildToggledHandler RowHasChildToggled;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowHasChildToggledHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when a child of a row is toggled.</summary>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_has_child_toggled")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowInserted">
      <MemberSignature Language="C#" Value="public event Gtk.RowInsertedHandler RowInserted;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowInsertedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when a row is inserted into the <see cref="T:Gtk.TreeStore" />.</summary>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_inserted")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowDeleted">
      <MemberSignature Language="C#" Value="public event Gtk.RowDeletedHandler RowDeleted;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowDeletedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when a row is deleted from the <see cref="T:Gtk.TreeStore" />.</summary>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_deleted")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowChanged">
      <MemberSignature Language="C#" Value="public event Gtk.RowChangedHandler RowChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowChangedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when a row is in the <see cref="T:Gtk.TreeStore" /> is changed.</summary>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_changed")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowsReordered">
      <MemberSignature Language="C#" Value="public event Gtk.RowsReorderedHandler RowsReordered;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowsReorderedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emitted when the rows of the <see cref="T:Gtk.TreeStore" /> are re-ordered.</summary>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("rows_reordered")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="IterNthChild">
      <MemberSignature Language="C#" Value="public bool IterNthChild (out Gtk.TreeIter iter, int n);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="n" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Sets <paramref name="iter" /> to be the child of the root node, using the given index.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="n">an object of type <see cref="T:System.Int32" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>In this case, the nth root node is set.</remarks>
      </Docs>
    </Member>
    <Member MemberName="InsertAfter">
      <MemberSignature Language="C#" Value="public void InsertAfter (out Gtk.TreeIter iter, Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a new row after <paramref name="sibling" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="sibling">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>
          <para>
            If <paramref name="sibling" /> is <see langword="null" />, then the row will be prepended to the children of its parent. If parent and sibling are <see langword="null" />, then the row will be prepended to the toplevel. If both <paramref name="sibling" /> and parent are set, then parent must be the parent of <paramref name="sibling" />. When <paramref name="sibling" /> is set, parent is optional.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="InsertBefore">
      <MemberSignature Language="C#" Value="public void InsertBefore (out Gtk.TreeIter iter, Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a new row before <paramref name="sibling" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="sibling">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <remarks>If <paramref name="sibling" /> is <see langword="null" />, then the row will be appended to the children of its parent. If parent and sibling are <see langword="null" />, then the row will be appended to the toplevel. If both <paramref name="sibling" /> and parent are set, then parent must be the parent of <paramref name="sibling" />. When <paramref name="sibling" /> is set, parent is optional.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Insert">
      <MemberSignature Language="C#" Value="public void Insert (out Gtk.TreeIter iter, int position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="position" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Creates a new row at <paramref name="position" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="position">an object of type <see cref="T:System.Int32" /></param>
        <remarks>If parent is not <see langword="null" />, then the row will be made a child of parent. Otherwise, the row will be created at the toplevel. If <paramref name="position" /> is larger than the number of rows at that level, then the new row will be inserted to the end of the list. <paramref name="iter" /> will be changed to point to this new row. The row will be empty after this function is called. To fill in values, you need to call <see cref="M:Gtk.TreeStore.SetValue()" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IterNthChild">
      <MemberSignature Language="C#" Value="public bool IterNthChild (out Gtk.TreeIter iter, Gtk.TreeIter parent, int n);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="n" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Sets <paramref name="iter" /> to be the child of <paramref name="parent" />, using the given index.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="parent">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="n">an object of type <see cref="T:System.Int32" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>The first index is 0. If <paramref name="n" /> is too big, or <paramref name="parent" /> has no children, <paramref name="iter" /> is set to an invalid iterator and <see langword="false" /> is returned. <paramref name="parent" /> will remain a valid node after this function has been called.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetIterFromString">
      <MemberSignature Language="C#" Value="public bool GetIterFromString (out Gtk.TreeIter iter, string path_string);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="path_string" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Gets the <see cref="T:Gtk.TreeIter" /> at <paramref name="path_string" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="path_string">an object of type <see cref="T:System.String" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>Otherwise, <paramref name="iter" /> is left invalid and <see langword="false" /> is returned.

<para>
path_string "0" represent the first node, "1" the second, and so on.
path_string "0:0" represent the first child of the first node, "0:1" the second child of the first node, and so on.

</para></remarks>
      </Docs>
    </Member>
    <Member MemberName="IterChildren">
      <MemberSignature Language="C#" Value="public bool IterChildren (out Gtk.TreeIter iter, Gtk.TreeIter parent);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="parent" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Sets <paramref name="iter" /> to point to the first child of <paramref name="parent" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="parent">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If <paramref name="parent" /> has no children, <see langword="false" /> is returned and <paramref name="iter" /> is set to be invalid. <paramref name="parent" /> will remain a valid node after this function has been called.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetIter">
      <MemberSignature Language="C#" Value="public bool GetIter (out Gtk.TreeIter iter, Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Sets <paramref name="iter" /> to a valid iterator pointing to <paramref name="path" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="IterParent">
      <MemberSignature Language="C#" Value="public bool IterParent (out Gtk.TreeIter iter, Gtk.TreeIter child);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
        <Parameter Name="child" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Sets <paramref name="iter" /> to be the parent of <paramref name="child" />.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="child">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If <paramref name="child" /> is at the toplevel, and does not have a parent, then <paramref name="iter" /> is set to an invalid iterator and <see langword="false" /> is returned. <paramref name="child" /> will remain a valid node after this function has been called.</remarks>
      </Docs>
    </Member>
    <Member MemberName="AppendValues">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter AppendValues (object[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="values" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <summary>Appends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="values">a <see cref="T:System.Object[]" /> with the data for the row.</param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AppendValues">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter AppendValues (Array values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="values" Type="System.Array" />
      </Parameters>
      <Docs>
        <summary>Appends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="values">a <see cref="T:System.Array" /> with the data for the row.</param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="AppendValues">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter AppendValues (Gtk.TreeIter parent, object[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="values" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <summary>Appends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="parent">the parent row to attach the new row under.</param>
        <param name="values">a <see cref="T:System.Object[]" /> with the data for the row.</param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks>To append the new row to the toplevel, use the <see cref="M:Gtk.TreeStore.AppendValues(System.Object[])" /></remarks>
      </Docs>
    </Member>
    <Member MemberName="AppendValues">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter AppendValues (Gtk.TreeIter parent, Array values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="values" Type="System.Array" />
      </Parameters>
      <Docs>
        <summary>Appends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="parent">the parent row to attach the new row under.</param>
        <param name="values">a <see cref="T:System.Array" /> with the data for the row.</param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks>To append the new row to the toplevel, use the <see cref="M:Gtk.TreeStore.AppendValues(System.Array)" /></remarks>
      </Docs>
    </Member>
    <Member MemberName="GetStringFromIter">
      <MemberSignature Language="C#" Value="public string GetStringFromIter (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Marshals the given <paramref name="iter" /> into a path string.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:System.String" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="MoveAfter">
      <MemberSignature Language="C#" Value="public void MoveAfter (Gtk.TreeIter iter, Gtk.TreeIter position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="position" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Move the row pointed to by <paramref name="iter" /> to the
	  position after <paramref name="position" />. If 
	  <paramref name="position" /> is <see langword="null" />, 
	  <paramref name="iter" /> will be moved to point to the start
	  of the list.
	</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="position">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This only works in unsorted stores.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Swap">
      <MemberSignature Language="C#" Value="public void Swap (Gtk.TreeIter a, Gtk.TreeIter b);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="a" Type="Gtk.TreeIter" />
        <Parameter Name="b" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Swaps rows a and b in the store.</summary>
        <param name="a">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="b">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This is only works in unsorted stores.</remarks>
      </Docs>
    </Member>
    <Member MemberName="MoveBefore">
      <MemberSignature Language="C#" Value="public void MoveBefore (Gtk.TreeIter iter, Gtk.TreeIter position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="position" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Move the row pointed to by <paramref name="iter" /> to the
	  position before <paramref name="position" />. If 
	  <paramref name="position" /> is <see langword="null" />, 
	  <paramref name="iter" /> will be moved to point to the end
	  of the list.
	</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="position">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This only works in unsorted stores.</remarks>
      </Docs>
    </Member>
    <Member MemberName="IterIsValid">
      <MemberSignature Language="C#" Value="public bool IterIsValid (Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Test whether <paramref name="iter" /> is valid for this TreeStore.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:System.Boolean" />, true if <paramref name="iter" /> is valid.</returns>
        <remarks>WARNING: this method is slow and is only intended for
	debugging/testing purposes.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeStore (Type[] types);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="types" Type="System.Type[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <summary>Creates a new <see cref="T:Gtk.TreeStore" /> instance.</summary>
        <param name="types">a <see cref="T:System.Type[]" /></param>
        <remarks>
        </remarks>
        <example>
          <code language="C#">
Treestore store;
store = new TreeStore (typeof (int), typeof (string));
          </code>
        </example>
      </Docs>
    </Member>
    <Member MemberName="GetSortColumnId">
      <MemberSignature Language="C#" Value="public bool GetSortColumnId (out int sort_column_id, out Gtk.SortType order);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sort_column_id" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="order" Type="Gtk.SortType&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Report on which column is currently being used to sort this TreeStore.</summary>
        <param name="sort_column_id">a <see cref="T:System.Int32&amp;" />, gets filled with the column number that's currently used for sorting</param>
        <param name="order">a <see cref="T:Gtk.SortType&amp;" />, the current type of sort (ascending or descending)</param>
        <returns>a <see cref="T:System.Boolean" />, false if the default sort column for this TreeStore is being used, true if some other sort column is being used.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, bool value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.Boolean" /></param>
        <remarks>The type of specified column must be a <see cref="T:System.Boolean" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, double value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.Double" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.Double" /></param>
        <remarks>The type of specified column must be a <see cref="T:System.Double" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, int value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.Int32" /></param>
        <remarks>The type of specified column must be an <see cref="T:System.Int32" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, string value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.String" /></param>
        <remarks>The type of specified column must be a <see cref="T:System.String" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, float value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.Single" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.Single" /></param>
        <remarks>The type of specified column must be an <see cref="T:System.Single" /></remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, uint value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.UInt32" /></param>
        <remarks>The type of specified column must be an <see cref="T:System.UInt32" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetValue">
      <MemberSignature Language="C#" Value="public void SetValue (Gtk.TreeIter iter, int column, object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <summary>Sets the value of the specified column in the row pointed by iter.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:System.Object" /></param>
        <remarks>The type of specified column must be an <see cref="T:System.Object" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetValue">
      <MemberSignature Language="C#" Value="public object GetValue (Gtk.TreeIter iter, int column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Gets a value at row <paramref name="iter" /> and column <paramref name="column" />.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:System.Object" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="HasDefaultSortFunc">
      <MemberSignature Language="C#" Value="public bool HasDefaultSortFunc { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Find out whether this TreeStore has a default sort function.</summary>
        <value>a <see cref="T:System.Boolean" />, true if there is a default
	sort function.</value>
        <remarks>To set a default sort function, use <see cref="M:Gtk.TreeStore.DefaultSortFunc" />.</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:Gtk.TreeStore" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ColumnTypes">
      <MemberSignature Language="C#" Value="public GLib.GType[] ColumnTypes { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType[]</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added</summary>
        <value>a <see cref="T:GLib.GType[]" /></value>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="SetColumnTypes" Deprecated="true">
      <MemberSignature Language="C#" Value="public void SetColumnTypes (GLib.GType[] types);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="types" Type="GLib.GType[]" />
      </Parameters>
      <Docs>
        <summary>Deprecated method to set what types go in each column of a TreeStore.</summary>
        <param name="types">a <see cref="T:GLib.GType[]" /></param>
        <remarks>See <see cref="M:Gtk.TreeStore.ColumnTypes" /></remarks>
      </Docs>
    </Member>
    <Member MemberName="GetColumnType">
      <MemberSignature Language="C#" Value="public GLib.GType GetColumnType (int index_);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="index_" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Gets the type of data stored in column number <paramref name="index_" />.</summary>
        <param name="index_">a <see cref="T:System.Int32" />, the column to check</param>
        <returns>a <see cref="T:GLib.GType" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="OnRowsReordered">
      <MemberSignature Language="C#" Value="protected virtual void OnRowsReordered (Gtk.TreePath path, Gtk.TreeIter iter, out int new_order);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="new_order" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeStore.RowsReordered" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="new_order">a <see cref="T:System.Int32&amp;" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeStore.RowsReordered" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowChanged">
      <MemberSignature Language="C#" Value="protected virtual void OnRowChanged (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeStore.RowChanged" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeStore.RowChanged" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowDeleted">
      <MemberSignature Language="C#" Value="protected virtual void OnRowDeleted (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeStore.RowDeleted" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeStore.RowDeleted" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowInserted">
      <MemberSignature Language="C#" Value="protected virtual void OnRowInserted (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeStore.RowInserted" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeStore.RowInserted" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowHasChildToggled">
      <MemberSignature Language="C#" Value="protected virtual void OnRowHasChildToggled (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeStore.RowHasChildToggled" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeStore.RowHasChildToggled" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnSortColumnChanged">
      <MemberSignature Language="C#" Value="protected virtual void OnSortColumnChanged ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeStore.SortColumnChanged" /> event.</summary>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeStore.SortColumnChanged" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected TreeStore (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Protected Constructor.</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeStore (GLib.GType[] types);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="types" Type="GLib.GType[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <summary>Protected Constructor.</summary>
        <param name="types">a <see cref="T:GLib.GType" /></param>
        <remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Remove">
      <MemberSignature Language="C#" Value="public bool Remove (ref Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <summary>Removes a row from the store.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>After being removed, <paramref name="iter" /> is set to be the next valid row, or invalidated if it pointed to the last row in the store.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Reorder">
      <MemberSignature Language="C#" Value="public int Reorder (Gtk.TreeIter parent);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <param name="parent">To be added.</param>
        <summary>Reorders the TreeStore.</summary>
        <returns>a <see cref="T:System.Int32" />.</returns>
        <remarks>(FIXME: Does this binding work?)</remarks>
      </Docs>
    </Member>
    <Member MemberName="Insert">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter Insert (Gtk.TreeIter parent, int position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="position" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="parent">To be added.</param>
        <param name="position">a <see cref="T:System.Int32" /></param>
        <summary>Inserts a new row at position <paramref name="position" />.</summary>
        <returns>a <see cref="T:Gtk.TreeIter" /> pointing to the new row.</returns>
        <remarks> If <paramref name="position" /> is larger than the number 
	  of rows on the list, then the new row will be appended to the list. 
	  The row will be empty before this function is called. To set the
	  value of the new row, use <see cref="M:Gtk.TreeStore.SetValue" />. 
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="Prepend">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter Prepend (Gtk.TreeIter parent);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <param name="parent">To be added.</param>
        <summary>Adds a new row to the beginning of the tree.</summary>
        <returns>a <see cref="T:Gtk.TreeIter" /> pointing to the new row.
	</returns>
        <remarks>
	  The row will be empty before this function is called. To set the
	  value of the new row, use <see cref="M:Gtk.TreeStore.SetValue" />. 
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="InsertBefore">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertBefore (Gtk.TreeIter parent, Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a new row before <paramref name="sibling" />.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="sibling">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks>
          <para>
	  If <paramref name="sibling" /> is <see langword="null" />, then the row will be appended to the children of its parent. If parent and sibling are <see langword="null" />, then the row will be appended to the toplevel. If both <paramref name="sibling" /> and parent are set, then parent must be the parent of <paramref name="sibling" />. When <paramref name="sibling" /> is set, parent is optional.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="InsertAfter">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertAfter (Gtk.TreeIter parent, Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a new row after <paramref name="sibling" />.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="sibling">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks>
          <para>
	  If <paramref name="sibling" /> is <see langword="null" />, then the row will be prepended to the children of its parent. If parent and sibling are <see langword="null" />, then the row will be prepended to the toplevel. If both <paramref name="sibling" /> and parent are set, then parent must be the parent of <paramref name="sibling" />. When <paramref name="sibling" /> is set, parent is optional.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Append">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter Append (Gtk.TreeIter parent);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Appends a new row to the <see cref="T:Gtk.TreeStore" />.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks>
          <para>
	  If parent is <see langword="null" />, then the row will be prepended to the toplevel.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="EmitRowsReordered">
      <MemberSignature Language="C#" Value="public int EmitRowsReordered (Gtk.TreePath path, Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Emits the <see cref="E:Gtk.TreeStore.RowsReordered" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:System.Int32" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetValue">
      <MemberSignature Language="C#" Value="public void GetValue (Gtk.TreeIter iter, int column, ref GLib.Value value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="column" Type="System.Int32" />
        <Parameter Name="value" Type="GLib.Value&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <summary>Gets the value of row <paramref name="iter" /> of column 
	  <paramref name="column" /> and puts it in <paramref name="value" />.
	</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">a <see cref="T:GLib.Value" /></param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="IterNext">
      <MemberSignature Language="C#" Value="public bool IterNext (ref Gtk.TreeIter iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="ref" />
      </Parameters>
      <Docs>
        <summary>Sets <paramref name="iter" /> to point to the node following it at the current level.</summary>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>If there is no next iter, <see langword="false" /> is returned and iter is set to be invalid.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected TreeStore ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Protected constructor.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="AppendNode">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter AppendNode ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Appends a root node to the store.</summary>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="AppendNode">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter AppendNode (Gtk.TreeIter parent);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Appends a child to an existing node.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertNode">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertNode (Gtk.TreeIter parent, int position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="position" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Inserts a child of an existing node.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="position">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertNode">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertNode (int position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="position" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Inserts a root node.</summary>
        <param name="position">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="PrependNode">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter PrependNode (Gtk.TreeIter parent);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Prepends a child of an existing node.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="PrependNode">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter PrependNode ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Prepends a root node.</summary>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertNodeBefore">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertNodeBefore (Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a root node before a sibling.</summary>
        <param name="sibling">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertNodeBefore">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertNodeBefore (Gtk.TreeIter parent, Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a child of an existing node before a sibling.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="sibling">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertNodeAfter">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertNodeAfter (Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a root node after a sibling.</summary>
        <param name="sibling">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertNodeAfter">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertNodeAfter (Gtk.TreeIter parent, Gtk.TreeIter sibling);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="sibling" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Inserts a child of an existing node after a sibling.</summary>
        <param name="parent">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="sibling">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="SetSortFunc">
      <MemberSignature Language="C#" Value="public void SetSortFunc (int sort_column_id, Gtk.TreeIterCompareFunc sort_func);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="sort_column_id" Type="System.Int32" />
        <Parameter Name="sort_func" Type="Gtk.TreeIterCompareFunc" />
      </Parameters>
      <Docs>
        <summary>Sets a function that should be used to be sort a particular column.</summary>
        <param name="sort_column_id">A <see cref="System.Int32" />, the index of the column to be sorted</param>
        <param name="sort_func">A <see cref="TGtk.TreeIterCompareFunc" />, the function to use for sorting</param>
        <remarks>This method is meant to be used together with <see cref="T:Gtk.TreeModelSort.ChangeSortColumn" /></remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="OnRowsReordered">
      <MemberSignature Language="C#" Value="protected virtual void OnRowsReordered (Gtk.TreePath path, Gtk.TreeIter iter, int[] new_order);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="new_order" Type="System.Int32[]" />
      </Parameters>
      <Docs>
        <param name="path">Path to the reordered parent node.</param>
        <param name="iter">Iter corresponding to the reordered parent node.</param>
        <param name="new_order">An array of the old indices.</param>
        <summary>Default handler for the RowsReordered event.</summary>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="InsertWithValues">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertWithValues (Gtk.TreeIter parent, int position, object[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parent" Type="Gtk.TreeIter" />
        <Parameter Name="position" Type="System.Int32" />
        <Parameter Name="values" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <param name="parent">Iter of the node to insert into.</param>
        <param name="position">Insert position.</param>
        <param name="values">An array of column values.</param>
        <summary>Inserts a child row into a node with values.</summary>
        <returns>An iter pointing to the added row.</returns>
        <remarks>The column values provided should be in column order.</remarks>
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="InsertWithValues">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter InsertWithValues (int position, object[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="position" Type="System.Int32" />
        <Parameter Name="values" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <param name="position">Insert position.</param>
        <param name="values">An array of column values.</param>
        <summary>Inserts a row into the Root node of the store with values.</summary>
        <returns>An iter pointing to the added row.</returns>
        <remarks>The column values provided should be in column order.</remarks>
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="SetValues">
      <MemberSignature Language="C#" Value="public void SetValues (Gtk.TreeIter iter, object[] values);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="values" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <param name="iter">Update position.</param>
        <param name="values">An array of column values to set.</param>
        <summary>Sets the column values of a given row.</summary>
        <remarks />
        <since version="Gtk# 2.12" />
      </Docs>
    </Member>
  </Members>
</Type>
