<Type Name="TreeModelFilter" FullName="Gtk.TreeModelFilter">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class TreeModelFilter : GLib.Object, Gtk.TreeDragSource, Gtk.TreeModel" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 71 EB 6C 55 75 52 9C BF 72 44 F7 A6 EA 05 62 84 F9 EA E0 3B CF F2 CC 13 2C 9C 49 0A B3 09 EA B0 B5 6B CE 44 9D F5 03 D9 C0 A8 1E 52 05 85 CD BE 70 E2 FB 90 43 4B AC 04 FA 62 22 A8 00 98 B7 A1 A7 B3 AF 99 1A 41 23 24 BB 43 25 F6 B8 65 BB 64 EB F6 D1 C2 06 D5 73 2D DF BC 70 A7 38 9E E5 3E 0C 24 6E 32 79 74 1A D0 05 03 E4 98 42 E1 9B F3 7B 19 8B 40 21 26 CB 36 89 C2 EA 64 96 A4 7C B4]</AssemblyPublicKey>
    <AssemblyVersion>2.12.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Docs>
    <summary>An object designed to filter the contents of a column or columns
in a <see cref="T:Gtk.TreeModel" /> for display.</summary>
    <remarks />
    <example>
      <code lang="C#">
using System;
using Gtk;

public class MyWindow : Window
{
        TreeView view;
        TreeModelFilter filter;
        Entry search;

        static void Main ()
        {
                Application.Init ();
                new MyWindow ();
                Application.Run ();
        }

        public MyWindow () : base ("MyWindow")
        {
                this.SetDefaultSize (400, 300);
                this.DeleteEvent += new DeleteEventHandler (OnMyWindowDelete);

                view = new TreeView ();
                view.AppendColumn ("test", new CellRendererText (), "text", 0);

                TreeStore store = new TreeStore (typeof (string));
                string[] names = new string[] {"bob", "joe", "joseph", "frank"};
                foreach (string name in names)
                        store.AppendValues (name);
                view.Model = store;

                filter = new TreeModelFilter (store, null);
                filter.VisibleFunc = SearchFilterFunc;

                VBox vbox = new VBox (false, 6);
                search = new Entry ();
                search.Activated += OnSearch;
                Label l = new Label ("Search:");
                l.Xalign = 0.0f;
                vbox.PackStart (l, false, true, 0);
                vbox.PackStart (search, false, true, 0);
                vbox.PackStart (view, true, true, 0);
                this.Add (vbox);

                this.ShowAll ();
        }

        bool SearchFilterFunc (TreeModel model, TreeIter iter)
        {
                // no search term, show all
                if (search.Text.Trim ().Length &lt; 1)
                        return true;

                string t = (string) model.GetValue (iter, 0);
                return t.StartsWith (search.Text.Trim ());
        }

        void OnSearch (object sender, EventArgs a)
        {
                view.Model = filter;
                filter.Refilter ();
        }

        void OnMyWindowDelete (object sender, DeleteEventArgs a)
        {
                Application.Quit ();
                a.RetVal = true;
        }
}
	  </code>
    </example>
    <since version="Gtk# 2.4" />
  </Docs>
  <Base>
    <BaseTypeName>GLib.Object</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>Gtk.TreeDragSource</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>Gtk.TreeModel</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName="ConvertChildIterToIter">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter ConvertChildIterToIter (Gtk.TreeIter child_iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child_iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Sets the filter's iterator to point to the row that corresponds to <paramref name="child_iter" />.</summary>
        <param name="child_iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Refilter">
      <MemberSignature Language="C#" Value="public void Refilter ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Emits <see cref="E:Gtk.TreeModelFilter.RowChanged" /> for each row in the child model, which causes the filter to re-evaluate whether a row is visible or not.</summary>
        <remarks>Added in GTK 2.4.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ConvertChildPathToPath">
      <MemberSignature Language="C#" Value="public Gtk.TreePath ConvertChildPathToPath (Gtk.TreePath child_path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreePath</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child_path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Converts <paramref name="child_path" /> to a path relative to this filter.</summary>
        <param name="child_path">a <see cref="T:Gtk.TreePath" /></param>
        <returns>a <see cref="T:Gtk.TreePath" /> or <see langword="null" />.</returns>
        <remarks>
          <paramref name="child_path" /> points to a path in the child model. The returned path will point to the
	  same row in the filtered model. If <paramref name="child_path" /> isn't a valid path on the
	  child model, then <see langword="null" /> is returned.
	</remarks>
      </Docs>
    </Member>
    <Member MemberName="ConvertIterToChildIter">
      <MemberSignature Language="C#" Value="public Gtk.TreeIter ConvertIterToChildIter (Gtk.TreeIter filter_iter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeIter</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filter_iter" Type="Gtk.TreeIter" />
      </Parameters>
      <Docs>
        <summary>Returns a new iterator that points to the row pointed to 
	  by <paramref name="filter_iter" />.</summary>
        <param name="filter_iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:Gtk.TreeIter" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="ClearCache">
      <MemberSignature Language="C#" Value="public void ClearCache ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>This function should almost never be called.</summary>
        <remarks>
          <para>This function clears the filter of any cached iterators that haven't been reffed with
	  <see cref="M:Gtk.TreeModel.RefNode" />. This might be useful if the child model
	  being filtered is static (and doesn't change often) and there has been
	  a lot of unreffed access to nodes. As a side effect of this function,
	  all unreffed iterators will be invalid.</para>
          <para>Added in GTK 2.4.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ConvertPathToChildPath">
      <MemberSignature Language="C#" Value="public Gtk.TreePath ConvertPathToChildPath (Gtk.TreePath filter_path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreePath</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filter_path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Converts <paramref name="filter_path" /> to a path on the child model of this filter.</summary>
        <param name="filter_path">a <see cref="T:Gtk.TreePath" /></param>
        <returns>a <see cref="T:Gtk.TreePath" /></returns>
        <remarks>
          <paramref name="filter_path" /> points to a location in this 
	  filter. The returned path will point to the same location in the 
	  model not being filtered. If <paramref name="filter_path" /> 
	  does not point to a location in the child model, 
	  <see langword="null" /> is returned.
	</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>Decrements the reference count for the node at <paramref name="iter" />.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <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 data type stored in the column at <paramref name="index_" />.</summary>
        <param name="index_">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:GLib.GType" /></returns>
        <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">a <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="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>Gets the next row to be filtered.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <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>Generates a string representation of the path of <paramref name="iter" />.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <returns>a <see cref="T:System.String" /></returns>
        <remarks>This string is a ':' separated list of numbers. For example, "4:10:0:3" would be an acceptable return value for this string.</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="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 an <see cref="E:Gtk.TreeModelFilter.RowDeleted" /> event
	  for <paramref name="path" />.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <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 an <see cref="E:Gtk.TreeModelFilter.RowInserted" /> event
	  for <paramref name="path" />.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" />, points to the inserted row.</param>
        <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 />
      </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 />
      </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>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="parent">To be added.</param>
        <summary>Sets the TreeIter object pointed to by <paramref name="iter" /> to point to the first child of this tree. </summary>
        <returns>an object of type <see cref="T:System.Boolean" />, true if the iter has been set to the first child.</returns>
        <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="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 models 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="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.</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 <paramref name="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 />
      </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 an <see cref="E:Gtk.TreeModelFilter.RowsReordered" /> event
	  for <paramref name="path" />.</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="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>
        <param name="iter">an object of type <see cref="T:Gtk.TreeIter" /></param>
        <param name="parent">To be added.</param>
        <param name="n">an object of type <see cref="T:System.Int32" /></param>
        <summary>Sets <paramref name="iter" /> to be the child of the root node, using the given index.</summary>
        <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="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="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>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="column">a <see cref="T:System.Int32" /></param>
        <param name="value">To be added.</param>
        <summary>Gets the value stored in column <paramref name="column" /> of the row pointed to by <paramref name="iter" />.</summary>
        <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 an <see cref="E:Gtk.TreeModelFilter.RowHasChildToggled" /> event
	  for <paramref name="path" />.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" />, points to the changed row</param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" />, points to the changed row</param>
        <remarks>This should be called by models after the child state of 
	  a node changes.</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 a function on each row of a tree.</summary>
        <param name="func">a <see cref="T:Gtk.TreeModelForeachFunc" /></param>
        <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 an <see cref="E:Gtk.TreeModelFilter.RowChanged" /> event
	  for <paramref name="path" />.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" />, points to the changed row</param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" />, points to the changed row</param>
        <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>Emits the "rows_reordered" signal for this tree model. 
	</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /> pointing to the tree node whose children have been reordered</param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /> pointing to the tree node whose children have been reordered</param>
        <param name="new_order">a <see cref="T:System.Int32" />, an array of integers containing the new indices of the children, i.e. the former child n is now at position new_order[n]. </param>
        <remarks>This should be called by models when their rows have been reordered.</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>Emits the "row_changed" signal for this model.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This should be called by models when their rows have been reordered.</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>Emits the <see cref="E:Gtk.TreeModelFilter.RowDeleted" /> signal for this model.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <remarks>This should be called by models when their rows have been reordered.</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>Emits the <see cref="E:Gtk.TreeModelFilter.RowInserted" /> signal for this model.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This should be called by models when a row has been inserted.</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>Emits the <see cref="E:Gtk.TreeModelFilter.RowHasChildToggled" /> signal for this model.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <remarks>This should be called by models when a row's child has been toggled on or off.</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>This method asks the source row for the dragged data to delete itself, because that data has been moved elsewhere.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" />, the path of the row that was dragged</param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>This method returns FALSE if the deletion fails because path no longer exists, or for some other model-specific reason.</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>Checks to see whether a given row can be used as a source for a drag-and-drop operation.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" />, the row being checked</param>
        <returns>a <see cref="T:System.Boolean" />, TRUE if the row is draggable.</returns>
        <remarks>If the object does not implement this method, the row is assumed to be draggable.</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>Asks the <see cref="M:Gtk.TreeDragSource" /> to fill in <paramref name="selection_data" /> with a representation of the row at <paramref name="path" />.  Should robustly handle a path no longer found in the model.</summary>
        <param name="path">a <see cref="M:Gtk.TreePath" /></param>
        <param name="selection_data">a <see cref="M:Gtk.SelectionData" /> object to fill with data</param>
        <returns>A see cref="T:System.Boolean" /&gt;; true if data of the required type was provided.</returns>
        <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 <paramref name="iter" /> 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" />, true if the iter has been set to the first child.</returns>
        <remarks />
      </Docs>
    </Member>
    <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 <paramref name="iter" /> has.</summary>
        <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="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="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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a boolean.</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 />
      </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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.Double" />.</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 />
      </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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.Int32" />.</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 />
      </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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.String" />.</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 />
      </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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.Single" />.</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 />
      </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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.UInt32" />.</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 />
      </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 column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.UInt32" />.</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 />
      </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>Sets the value of column <paramref name="column" /> in the row pointed to by <paramref name="iter" /> to <paramref name="value" /> if the value is a <see cref="T:System.Object" />.</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=".ctor">
      <MemberSignature Language="C#" Value="protected TreeModelFilter (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Basic constructor.</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeModelFilter (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Constructor. For internal use.</summary>
        <param name="raw">a <see cref="T:System.IntPtr" />, pointer to the underlying C object.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeModelFilter (Gtk.TreeModel child_model, Gtk.TreePath root);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="child_model" Type="Gtk.TreeModel" />
        <Parameter Name="root" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Constructor</summary>
        <param name="child_model">a <see cref="T:Gtk.TreeModel" />, the model this object is to filter</param>
        <param name="root">a <see cref="T:Gtk.TreePath" />, the node to use as the model's root node, pass null to use the entire child tree model.</param>
        <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>The <see cref="T:GLib.GType" /> of this object.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="VirtualRoot">
      <MemberSignature Language="C#" Value="public Gtk.TreePath VirtualRoot { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreePath</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The virtual root (relative to the child model) for this object.</summary>
        <value>a <see cref="T:Gtk.TreePath" /></value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("virtual-root")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="VisibleColumn">
      <MemberSignature Language="C#" Value="public int VisibleColumn { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The column of the model where this filter should look for visibility information.</summary>
        <value>a <see cref="T:System.Int32" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Model">
      <MemberSignature Language="C#" Value="public Gtk.TreeModel Model { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeModel</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Gets the <see cref="T:Gtk.TreeModel" /> this filter is being applied to.</summary>
        <value>a <see cref="T:Gtk.TreeModel" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Flags">
      <MemberSignature Language="C#" Value="public Gtk.TreeModelFlags Flags { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeModelFlags</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Flag values for this tree model; see <see cref="T:Gtk.TreeModelFlags" /> for possible values.</summary>
        <value>a <see cref="T:Gtk.TreeModelFlags" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="NColumns">
      <MemberSignature Language="C#" Value="public int NColumns { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The number of columns in the model.</summary>
        <value>a <see cref="T:System.Int32" /></value>
        <remarks />
      </Docs>
    </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>Event that happens when rows in the model change order.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("rows_reordered")</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>Event that happens when a row in the model is changed.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_changed")</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>Event that happens when a row is deleted.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_deleted")</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>Event that happens when a row is inserted.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_inserted")</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>Event that happens when a row's child visibility is turned on or off.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_has_child_toggled")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ChildModel">
      <MemberSignature Language="C#" Value="public Gtk.TreeModel ChildModel { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeModel</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Child tree data model.</summary>
        <value>a <see cref="T:Gtk.TreeModel" /></value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("child-model")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="VisibleFunc">
      <MemberSignature Language="C#" Value="public Gtk.TreeModelFilterVisibleFunc VisibleFunc { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeModelFilterVisibleFunc</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The function used to determine whether or not a row should be visible</summary>
        <value>a <see cref="T:Gtk.TreeModelFilterVisibleFunc" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetModifyFunc">
      <MemberSignature Language="C#" Value="public void SetModifyFunc (int n_columns, GLib.GType[] types, Gtk.TreeModelFilterModifyFunc func);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="n_columns" Type="System.Int32" />
        <Parameter Name="types" Type="GLib.GType[]" />
        <Parameter Name="func" Type="Gtk.TreeModelFilterModifyFunc" />
      </Parameters>
      <Docs>
        <summary>Sets a function to modify the display of the model.</summary>
        <param name="n_columns">a <see cref="T:System.Int32" /></param>
        <param name="types">an array of <see cref="T:GLib.GType" /></param>
        <param name="func">a <see cref="T:Gtk.TreeModelFilterModifyFunc" /></param>
        <remarks>
	  With the <paramref name="n_columns" /> and  <paramref name="types" /> parameters, you give an array of column
	  types for this model (which will be exposed to the parent model/view).
	  The modify function, <paramref name="func" />, will get called for each
	  data access; the goal of the modify function is to return the data which 
	  should be displayed at the location specified using the parameters of the 
	  modify function.
	</remarks>
      </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>
  </Members>
</Type>
