<Type Name="TreeSortable" FullName="Gtk.TreeSortable">
  <TypeSignature Language="C#" Value="public abstract interface TreeSortable;" Maintainer="auto" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyCulture>neutral</AssemblyCulture>
    <Attributes />
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Docs>
    <summary>An interface for specifying a tree model that is sortable.</summary>
    <remarks />
  </Docs>
  <Base />
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes />
  <Members>
    <Member MemberName="ChangeSortColumn">
      <MemberSignature Language="C#" Value="public virtual 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 virtual 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 virtual 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">An <see cref="T:IntPtr"/>, pointer to the user data, or <see langword="null"/></param>
        <param name="destroy">A <see cref="Gtk.DestroyNotify"/> to be called when user data is destroyed, or <see langword="null"/>.</param>
        <remarks>This method is meant to be used together with <see cref="T:Gtk.TreeModelSort.ChangeSortColumn"/>.(FIXME: explain the user data parameter.)</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetDefaultSortFunc">
      <MemberSignature Language="C#" Value="public virtual 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">An <see cref="T:IntPtr"/>, pointer to the user data, or <see langword="null"/></param>
        <param name="destroy">A <see cref="Gtk.DestroyNotify"/> to be called when user data is destroyed, or <see langword="null"/>.</param>
        <remarks>This method is meant to be used together with <see cref="T:Gtk.TreeModelSort.ChangeSortColumn"/>.(FIXME: explain the user data parameter.)</remarks>
      </Docs>
    </Member>
    <Member MemberName="SortColumnChanged">
      <MemberSignature Language="C#" Value="public virtual event EventHandler SortColumnChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Fired when the sort column is changed.</summary>
        <remarks/>
      </Docs>
    </Member>
    <Member MemberName="GetSortColumnId">
      <MemberSignature Language="C#" Value="public virtual 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>Returns the index of the column currently being used to sort the model data.</summary>
        <param name="sort_column_id">a <see cref="T:System.Int32&amp;" />, an integer to put the results in</param>
        <param name="order">a <see cref="T:Gtk.SortType&amp;" />, an object to put the type of sort into</param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="HasDefaultSortFunc">
      <MemberSignature Language="C#" Value="public virtual bool HasDefaultSortFunc { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Return whether this TreeModel has a default sort function or not.</summary>
        <returns>a <see cref="T:System.Boolean" />, true if a default sort function exists.</returns>
        <remarks>See <see cref="M:Gtk.TreeModelSort.SetDefaultSortFunc"/> to set a default sort function.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
