<Type Name="TreeView" FullName="Gtk.TreeView">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class TreeView : Gtk.Container" />
  <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 widget for displaying both trees and lists.</summary>
    <remarks>
      <para>
	Widget that displays any object that implements the
	<see cref="T:Gtk.TreeModel" /> interface.
      </para>
      <para>
	To create a tree or list in GTK#, you need to use the <see cref="T:Gtk.TreeModel" /> interface, in conjunction with the
	<see cref="T:Gtk.TreeView" /> widget.  This widget is designed around a
	Model/View/Controller design and consists of four major parts:
	<list type="bullet"><item><term><see cref="T:Gtk.TreeView" />, the tree view widget
			</term></item><item><term><see cref="T:Gtk.TreeViewColumn" />, the view column.
			</term></item><item><term>The cell renderers (<see cref="T:Gtk.CellRenderer" /> and others).</term></item><item><term><see cref="T:Gtk.TreeModel" />, the model interface.</term></item></list></para>
      <para>
	The View is composed of the first three, while the last is the
	Model. One of the prime benefits of the MVC design is that
	multiple views can be created of a single model.  For example,
	a model mapping the file system could be created for a file
	manager. Many views could be created to display various parts
	of the file system, but only one copy need be kept in memory.
      </para>
      <para>
	The purpose of the cell renderers is to provide extensibility
	to the widget and to allow multiple ways of rendering the same
	type of data. For example, consider how to render a boolean
	variable. Should you render it as a string of "True" or
	"False", "On" or "Off", or should you render it as a checkbox?
      </para>
      <para>A simple list:
      <example><code lang="C#">
using System;
using Gtk;

public class TreeViewSample {
                
	public static void Main (string [] args)
	{              
		Application.Init ();

		TreeStore store = new TreeStore (typeof (string), typeof (string));

		for (int i=0; i &lt; 5; i++)
		{
			TreeIter iter = store.AppendValues ("Demo " + i, "Data " + i);
		}
                        
		Window win = new Window ("TreeView List Demo");
		win.DeleteEvent += new DeleteEventHandler (delete_cb);
		win.SetDefaultSize (400,250);

		ScrolledWindow sw = new ScrolledWindow ();
		win.Add (sw);

		TreeView tv = new TreeView ();
		tv.Model = store;
		tv.HeadersVisible = true;

		tv.AppendColumn ("Demo", new CellRendererText (), "text", 0);
		tv.AppendColumn ("Data", new CellRendererText (), "text", 1);
                        
		sw.Add (tv);
		sw.Show ();
		win.ShowAll ();
		Application.Run ();
	}

	private static void delete_cb (System.Object o, DeleteEventArgs args)
	{
		Application.Quit ();
		args.RetVal = true;
	}
}
	</code></example></para>
      <para>A more advanced example:
      <example><code lang="C#">
using System;
using System.Reflection;
using Gtk;

public class TreeViewDemo {
	private static TreeStore store = null;
	private static Dialog dialog = null;
	private static Label dialog_label = null;
		
	public TreeViewDemo ()
	{
		Application.Init ();
		PopulateStore ();

		Window win = new Window ("TreeView demo");
		win.DeleteEvent += new DeleteEventHandler (DeleteCB);
		win.SetDefaultSize (640,480);

		ScrolledWindow sw = new ScrolledWindow ();
		win.Add (sw);

		TreeView tv = new TreeView (store);
		tv.HeadersVisible = true;

		tv.AppendColumn ("Name", new CellRendererText (), "text", 0);
		tv.AppendColumn ("Type", new CellRendererText (), "text", 1);

		sw.Add (tv);
			
		dialog.Destroy ();
		dialog = null;

		win.ShowAll ();
			
		Application.Run ();
	}

	private static void ProcessType (TreeIter parent, System.Type t)
	{
		foreach (MemberInfo mi in t.GetMembers ()) {
			store.AppendValues (parent, mi.Name, mi.ToString ());
		}
	}

	private static void ProcessAssembly (TreeIter parent, Assembly asm)
	{
		string asm_name = asm.GetName ().Name;

		foreach (System.Type t in asm.GetTypes ()) {
			UpdateDialog ("Loading from {0}:\n{1}", asm_name, t.ToString ());
			TreeIter iter = store.AppendValues (parent, t.Name, t.ToString ());
			ProcessType (iter, t);
		}
	}

	private static void PopulateStore ()
	{
		if (store != null)
			return;

		store = new TreeStore (typeof (string), typeof (string));

		foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies ()) {

			UpdateDialog ("Loading {0}", asm.GetName ().Name);

			TreeIter iter = store.AppendValues (asm.GetName ().Name, "Assembly");
			ProcessAssembly (iter, asm);
		}
	}

	public static void Main (string[] args)
	{
		new TreeViewDemo ();	
	}

	private static void DeleteCB (System.Object o, DeleteEventArgs args)
	{
		Application.Quit ();
	}

	private static void UpdateDialog (string format, params object[] args)
	{
		string text = String.Format (format, args);

		if (dialog == null)
		{
			dialog = new Dialog ();
			dialog.Title = "Loading data from assemblies...";
			dialog.AddButton (Stock.Cancel, 1);
			dialog.Response += new ResponseHandler (ResponseCB);
			dialog.SetDefaultSize (480, 100);
					
			VBox vbox = dialog.VBox;
			HBox hbox = new HBox (false, 4);
			vbox.PackStart (hbox, true, true, 0);
				
			Gtk.Image icon = new Gtk.Image (Stock.DialogInfo, IconSize.Dialog);
			hbox.PackStart (icon, false, false, 0);
			dialog_label = new Label (text);
			hbox.PackStart (dialog_label, false, false, 0);
			dialog.ShowAll ();
		} else {
			dialog_label.Text = text;
			while (Application.EventsPending ())
				Application.RunIteration ();
 		}
	}

	private static void ResponseCB (object obj, ResponseArgs args)
	{
		Application.Quit ();
		System.Environment.Exit (0);
	}
}
        </code></example></para>
      <para>For a example how to handle selection events, or to determine the currently selected row, see <see cref="T:Gtk.TreeSelection" />.</para>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Container</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName="RemoveColumn">
      <MemberSignature Language="C#" Value="public int RemoveColumn (Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Removes <paramref name="column" /> from <see cref="T:Gtk.TreeView" />.</summary>
        <param name="column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <returns>an object of type <see cref="T:System.Int32" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SetColumnDragFunction" Deprecated="true">
      <MemberSignature Language="C#" Value="public void SetColumnDragFunction (Gtk.TreeViewColumnDropFunc func, IntPtr user_data, Gtk.DestroyNotify destroy);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="func" Type="Gtk.TreeViewColumnDropFunc" />
        <Parameter Name="user_data" Type="System.IntPtr" />
        <Parameter Name="destroy" Type="Gtk.DestroyNotify" />
      </Parameters>
      <Docs>
        <summary>Sets a user function for determining where a column may be dropped when dragged.</summary>
        <param name="func">an object of type <see cref="T:Gtk.TreeViewColumnDropFunc" /></param>
        <param name="user_data">ignored</param>
        <param name="destroy">ignored</param>
        <remarks>This method is obsolete.  New code should use the <see cref="M:Gtk.TreeView.ColumnDragFunction" /> property.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ColumnDragFunction">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumnDropFunc ColumnDragFunction { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumnDropFunc</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The function for determining where a column may be dropped when dragged.</summary>
        <value>a <see cref="T:Gtk.TreeViewColumnDropFunc" /></value>
        <remarks>This function is called on every column pair in turn at the beginning of a column drag to determine where a drop can take place. If the property is set to be <see langword="null" />, then <see cref="Gtk.TreeView" /> reverts to the default behavior of allowing all columns to be dropped everywhere.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="ScrollToCell">
      <MemberSignature Language="C#" Value="public void ScrollToCell (Gtk.TreePath path, Gtk.TreeViewColumn column, bool use_align, float row_align, float col_align);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
        <Parameter Name="use_align" Type="System.Boolean" />
        <Parameter Name="row_align" Type="System.Single" />
        <Parameter Name="col_align" Type="System.Single" />
      </Parameters>
      <Docs>
        <summary>Moves the alignments of the <see cref="T:Gtk.TreeView" /> to the position specified by <paramref name="column" /> and <paramref name="path" />.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <param name="use_align">an object of type <see cref="T:System.Boolean" /></param>
        <param name="row_align">an object of type <see cref="T:System.Single" /></param>
        <param name="col_align">an object of type <see cref="T:System.Single" /></param>
        <remarks>
          <para>
            If <paramref name="column" /> is <see langword="null" />, then no horizontal scrolling occurs. Likewise, if <paramref name="path" /> is <see langword="null" /> no vertical scrolling occurs. At a minimum, one of <paramref name="column" /> or <paramref name="path" /> need to be non-<see langword="null" />. <paramref name="row_align" /> determines where the row is placed, and <paramref name="col_align" /> determines where the column is placed. Both are expected to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means center.
          </para>
          <para>
            If <paramref name="use_align" /> is <see langword="false" />, then the alignment arguments are ignored, and the tree does the minimum amount of work to scroll the cell onto the screen. This means that the cell will be scrolled to the edge closest to its current position. If the cell is currently visible on the screen, nothing is done.
          </para>
          <para>
            This function only works if the model is set, and <paramref name="path" /> is a valid row on the model. If the model changes before the <see cref="Gtk.TreeView" /> is realized, the centered path will be modified to reflect this change.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="CreateRowDragIcon">
      <MemberSignature Language="C#" Value="public Gdk.Pixmap CreateRowDragIcon (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixmap</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>This image is used for a drag icon.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <returns>an object of type <see cref="T:Gdk.Pixmap" /></returns>
        <remarks>Creates a <see cref="T:Gdk.Pixmap" /> representation of the row at <paramref name="path" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="CollapseAll">
      <MemberSignature Language="C#" Value="public void CollapseAll ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Recursively collapses all visible and expanded nodes.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="MoveColumnAfter">
      <MemberSignature Language="C#" Value="public void MoveColumnAfter (Gtk.TreeViewColumn column, Gtk.TreeViewColumn base_column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
        <Parameter Name="base_column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Moves <paramref name="column" /> to be after to <paramref name="base_column" />.</summary>
        <param name="column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <param name="base_column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <remarks>If <paramref name="base_column" /> is <see langword="null" />, then <paramref name="column" /> is placed in the first position.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SetCursor">
      <MemberSignature Language="C#" Value="public void SetCursor (Gtk.TreePath path, Gtk.TreeViewColumn focus_column, bool start_editing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="focus_column" Type="Gtk.TreeViewColumn" />
        <Parameter Name="start_editing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Sets the current keyboard focus to be at <paramref name="path" />, and selects it.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="focus_column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <param name="start_editing">an object of type <see cref="T:System.Boolean" /></param>
        <remarks>This is useful when you want to focus the attention of the user on a particular row. If <paramref name="focus_column" /> is not <see langword="null" />, then focus is given to the column specified by it. Additionally, if <paramref name="focus_column" /> is specified, and <paramref name="start_editing" /> is <see langword="true" />, then editing should be started in the specified cell. This function is often followed by <see cref="M:Gtk.Widget.GrabFocus()" /> in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.</remarks>
      </Docs>
    </Member>
    <Member MemberName="VisibleRect">
      <MemberSignature Language="C#" Value="public Gdk.Rectangle VisibleRect { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Rectangle</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returns the currently-visible region of the tree view, in tree view coordinates.</summary>
        <value>a <see cref="T:Gdk.Rectangle" /></value>
        <remarks>Convert to widget coordinates with <see cref="M:Gtk.TreeView.TreeToWidgetCoords(System.Int32,System.Int32,System.Int32,System.Int32)" />. Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire scrollable area of the tree.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetVisibleRect">
      <MemberSignature Language="C#" Value="public void GetVisibleRect (Gdk.Rectangle visible_rect);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="visible_rect" Type="Gdk.Rectangle" />
      </Parameters>
      <Docs>
        <summary>Obsolete (and non-functional). Replaced by <see cref="M:Gtk.TreeView.VisibleRect" />.</summary>
        <param name="visible_rect">an object of type <see cref="T:Gdk.Rectangle" /></param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="InsertColumn">
      <MemberSignature Language="C#" Value="public int InsertColumn (Gtk.TreeViewColumn column, int position);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
        <Parameter Name="position" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>This inserts the <paramref name="column" /> into the <see cref="T:Gtk.TreeView" /> at <paramref name="position" />.</summary>
        <param name="column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <param name="position">an object of type <see cref="T:System.Int32" /></param>
        <returns>an object of type <see cref="T:System.Int32" /></returns>
        <remarks>If <paramref name="position" /> is -1, then the <paramref name="column" /> is inserted at the end.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ActivateRow">
      <MemberSignature Language="C#" Value="public void ActivateRow (Gtk.TreePath path, Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Activates the cell determined by <paramref name="path" /> and <paramref name="column" />.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetRowExpanded">
      <MemberSignature Language="C#" Value="public bool GetRowExpanded (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Returns <see langword="true" /> if the node pointed to by <paramref name="path" /> is expanded.</summary>
        <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="SetDestroyCountFunc" Deprecated="true">
      <MemberSignature Language="C#" Value="public void SetDestroyCountFunc (Gtk.TreeDestroyCountFunc func, IntPtr data, Gtk.DestroyNotify destroy);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="func" Type="Gtk.TreeDestroyCountFunc" />
        <Parameter Name="data" Type="System.IntPtr" />
        <Parameter Name="destroy" Type="Gtk.DestroyNotify" />
      </Parameters>
      <Docs>
        <summary>This function should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.</summary>
        <param name="func">an object of type <see cref="T:Gtk.TreeDestroyCountFunc" /></param>
        <param name="data">ignored</param>
        <param name="destroy">ignored</param>
        <remarks>It is meant for private use by Atk for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.</remarks>
      </Docs>
    </Member>
    <Member MemberName="DestroyCountFunc">
      <MemberSignature Language="C#" Value="public Gtk.TreeDestroyCountFunc DestroyCountFunc { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeDestroyCountFunc</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>This property should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.</summary>
        <value>a <see cref="T:Gtk.TreeDestroyCountFunc" /></value>
        <remarks>It is meant for private use by Atk for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="SetSearchEqualFunc" Deprecated="true">
      <MemberSignature Language="C#" Value="public void SetSearchEqualFunc (Gtk.TreeViewSearchEqualFunc search_equal_func, IntPtr search_user_data, Gtk.DestroyNotify search_destroy);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="search_equal_func" Type="Gtk.TreeViewSearchEqualFunc" />
        <Parameter Name="search_user_data" Type="System.IntPtr" />
        <Parameter Name="search_destroy" Type="Gtk.DestroyNotify" />
      </Parameters>
      <Docs>
        <summary>Sets the compare function for the interactive search capabilities.</summary>
        <param name="search_equal_func">The <see cref="T:Gtk.TreeViewSearchEqualFunc" /> to invoke.</param>
        <param name="search_user_data">ignored</param>
        <param name="search_destroy">ignored</param>
        <remarks>This method is obsolete.  New code should use the <see cref="M:Gtk.TreeView.SearchEqualFunc" /> property.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SearchEqualFunc">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewSearchEqualFunc SearchEqualFunc { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewSearchEqualFunc</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The compare function for the interactive search capabilities.</summary>
        <value>a <see cref="T:Gtk.TreeViewSearchEqualFunc" /></value>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="UnsetRowsDragDest">
      <MemberSignature Language="C#" Value="public void UnsetRowsDragDest ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Disables the TreeView as a drag-and-drop destination.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="AppendColumn">
      <MemberSignature Language="C#" Value="public int AppendColumn (Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Appends <paramref name="column" /> to the list of columns.</summary>
        <param name="column">an object of type <see cref="T:Gtk.TreeViewColumn" /></param>
        <returns>an object of type <see cref="T:System.Int32" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SetDragDestRow">
      <MemberSignature Language="C#" Value="public void SetDragDestRow (Gtk.TreePath path, Gtk.TreeViewDropPosition pos);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="pos" Type="Gtk.TreeViewDropPosition" />
      </Parameters>
      <Docs>
        <summary>Sets the row that is highlighted for drag-and-drop feedback.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" />, the path of the row to highlight, or null.</param>
        <param name="pos">an object of type <see cref="T:Gtk.TreeViewDropPosition" />, specifying whether to drop before, after, or into the row.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="UnsetRowsDragSource">
      <MemberSignature Language="C#" Value="public void UnsetRowsDragSource ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Disables the TreeView as a drag source for automatic drag and drop actions.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="CollapseRow">
      <MemberSignature Language="C#" Value="public bool CollapseRow (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Collapses a row (hides its child rows, if they exist).</summary>
        <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="ExpandAll">
      <MemberSignature Language="C#" Value="public void ExpandAll ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Recursively expands all nodes.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="MapExpandedRows">
      <MemberSignature Language="C#" Value="public void MapExpandedRows (Gtk.TreeViewMappingFunc func);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="func" Type="Gtk.TreeViewMappingFunc" />
      </Parameters>
      <Docs>
        <summary>Calls the given function on all expanded rows.</summary>
        <param name="func">a <see cref="T:Gtk.TreeViewMappingFunc" /> to execute on every expanded row.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="ScrollToPoint">
      <MemberSignature Language="C#" Value="public void ScrollToPoint (int tree_x, int tree_y);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tree_x" Type="System.Int32" />
        <Parameter Name="tree_y" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Scrolls the <see cref="T:Gtk.TreeView" /> such that the top-left corner of the visible area is <paramref name="tree_x" />, <paramref name="tree_y" />, where <paramref name="tree_x" /> and <paramref name="tree_y" /> are specified in tree window coordinates.</summary>
        <param name="tree_x">an object of type <see cref="T:System.Int32" /></param>
        <param name="tree_y">an object of type <see cref="T:System.Int32" /></param>
        <remarks>The <see cref="T:Gtk.TreeView" /> must be realized before this function is called. If it is not, you probably want to be using <see cref="M:Gtk.TreeView.ScrollToCell(Gtk.TreePath,Gtk.TreeViewColumn,System.Boolean,System.Single,System.Single)" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetColumn">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumn GetColumn (int n);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumn</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="n" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Gets the <see cref="T:Gtk.TreeViewColumn" /> at the given position in the <see cref="T:Gtk.TreeView" />.</summary>
        <param name="n">an object of type <see cref="T:System.Int32" /></param>
        <returns>an object of type <see cref="T:Gtk.TreeViewColumn" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ExpandRow">
      <MemberSignature Language="C#" Value="public bool ExpandRow (Gtk.TreePath path, bool open_all);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="open_all" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Opens the row so its children are visible.</summary>
        <param name="path">an object of type <see cref="T:Gtk.TreePath" /></param>
        <param name="open_all">an object of type <see cref="T:System.Boolean" /></param>
        <returns>an object of type <see cref="T:System.Boolean" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ColumnsAutosize">
      <MemberSignature Language="C#" Value="public void ColumnsAutosize ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Resizes all columns to their optimal width.</summary>
        <remarks>Only works after the <see cref="T:Gtk.TreeView" /> has been realized.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeView (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=".ctor">
      <MemberSignature Language="C#" Value="public TreeView ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Creates a new <see cref="T:Gtk.TreeView" /> object.</summary>
        <remarks>This is the default constructor for <see cref="T:Gtk.TreeView" /></remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeView (Gtk.TreeModel model);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="model" Type="Gtk.TreeModel" />
      </Parameters>
      <Docs>
        <summary>Creates a new <see cref="T:Gtk.TreeView" /> object.</summary>
        <param name="model">an object of type <see cref="T:Gtk.TreeModel" /></param>
        <remarks>In this constructor the <see cref="P:Gtk.TreeView.Model" /> is set from <paramref name="model" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Model">
      <MemberSignature Language="C#" Value="public Gtk.TreeModel Model { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeModel</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The model for the TreeView.</summary>
        <value>an object of type <see cref="T:Gtk.TreeModel" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("model")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Selection">
      <MemberSignature Language="C#" Value="public Gtk.TreeSelection Selection { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeSelection</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the <see cref="T:Gtk.TreeSelection" /> associated with the TreeView.</summary>
        <value>an object of type <see cref="T:Gtk.TreeSelection" /></value>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="BinWindow">
      <MemberSignature Language="C#" Value="public Gdk.Window BinWindow { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Window</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The window that this TreeView renders to.</summary>
        <value>an object of type <see cref="T:Gdk.Window" /></value>
        <remarks>This property is primarily used to confirm that events on the TreeView are executed within the correct window.</remarks>
      </Docs>
    </Member>
    <Member MemberName="RulesHint">
      <MemberSignature Language="C#" Value="public bool RulesHint { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Whether to display alternating, shaded rows in the <see cref="Gtk.TreeView" />.</summary>
        <value>an object of type <see cref="T:System.Boolean" /></value>
        <remarks>
          <para>Setting <see cref="P:Gtk.TreeView.RulesHint" /> to <see langword="true" /> sets a hint to the theme engine to draw rows in alternating colors.</para>
          <para>
This property tells GTK# that the user interface for your application requires users to read across tree rows and associate cells with one another. By default, GTK# will then render the tree with alternating row colors. Do not use it just because you prefer the appearance of the ruled tree; that's a question for the theme. Some themes will draw tree rows in alternating colors even when rules are turned off, and users who prefer that appearance all the time can choose those themes. You should set this property only as a semantic hint to the theme engine that your tree makes alternating colors useful from a functional standpoint (since it has lots of columns, generally).
</para>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("rules-hint")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="EnableSearch">
      <MemberSignature Language="C#" Value="public bool EnableSearch { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>View allows user to search through columns interactively.</summary>
        <value>an object of type <see cref="T:System.Boolean" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("enable-search")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="HeadersVisible">
      <MemberSignature Language="C#" Value="public bool HeadersVisible { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Show the column header buttons.</summary>
        <value>an object of type <see cref="T:System.Boolean" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("headers-visible")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ExpanderColumn">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumn ExpanderColumn { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumn</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Set the column for the expander column.</summary>
        <value>an object of type <see cref="T:Gtk.TreeViewColumn" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("expander-column")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Reorderable">
      <MemberSignature Language="C#" Value="public bool Reorderable { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Allows to reorder rows in the view (this enables the internal drag and drop of TreeView rows).</summary>
        <value>an object of type <see cref="T:System.Boolean" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("reorderable")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Hadjustment">
      <MemberSignature Language="C#" Value="public Gtk.Adjustment Hadjustment { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Adjustment</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Horizontal Adjustment for the widget.</summary>
        <value>an object of type <see cref="T:Gtk.Adjustment" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("hadjustment")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="HeadersClickable">
      <MemberSignature Language="C#" Value="public bool HeadersClickable { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Column headers respond to click events.</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks />
        <since version="Gtk# 2.6" />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("headers-clickable")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Vadjustment">
      <MemberSignature Language="C#" Value="public Gtk.Adjustment Vadjustment { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Adjustment</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Vertical Adjustment for the widget.</summary>
        <value>an object of type <see cref="T:Gtk.Adjustment" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("vadjustment")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="SearchColumn">
      <MemberSignature Language="C#" Value="public int SearchColumn { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Model column to search through when searching through code.</summary>
        <value>an object of type <see cref="T:System.Int32" /></value>
        <remarks>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("search-column")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ScrollAdjustmentsSet">
      <MemberSignature Language="C#" Value="public event Gtk.ScrollAdjustmentsSetHandler ScrollAdjustmentsSet;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ScrollAdjustmentsSetHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised whenever the scrollbar adjustment units are set.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("set_scroll_adjustments")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowExpanded">
      <MemberSignature Language="C#" Value="public event Gtk.RowExpandedHandler RowExpanded;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowExpandedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised whenever a row of the TreeView is expanded.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row-expanded")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="MoveCursor">
      <MemberSignature Language="C#" Value="public event Gtk.MoveCursorHandler MoveCursor;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.MoveCursorHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised whenever the cursor is moved on this TreeView.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("move_cursor")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="TestExpandRow">
      <MemberSignature Language="C#" Value="public event Gtk.TestExpandRowHandler TestExpandRow;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TestExpandRowHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the widget wants to find out whether a row can be expanded or not.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("test-expand-row")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="SelectCursorRow">
      <MemberSignature Language="C#" Value="public event Gtk.SelectCursorRowHandler SelectCursorRow;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.SelectCursorRowHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the row the cursor is on is selected.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("select_cursor_row")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowCollapsed">
      <MemberSignature Language="C#" Value="public event Gtk.RowCollapsedHandler RowCollapsed;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowCollapsedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised whenever a row is collapsed.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row-collapsed")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ColumnsChanged">
      <MemberSignature Language="C#" Value="public event EventHandler ColumnsChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the columns of this tree change.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("columns-changed")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ExpandCollapseCursorRow">
      <MemberSignature Language="C#" Value="public event Gtk.ExpandCollapseCursorRowHandler ExpandCollapseCursorRow;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ExpandCollapseCursorRowHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the row where the cursor is is expanded or collapsed.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("expand_collapse_cursor_row")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowActivated">
      <MemberSignature Language="C#" Value="public event Gtk.RowActivatedHandler RowActivated;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.RowActivatedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when a row is activated; see <see cref="M:Gtk.TreeView.ActivateRow" />.</summary>
        <remarks>
          <block subset="none" type="note">
            <para>
	This event is usually raised when the user doubleclicks a row.
  </para>
          </block>
          <example>
            <code lang="C#">
using System;
using Gtk;
 
class Selection
{
	static void Main ()
	{
		Application.Init ();
		Window win = new Window ("Row activated sample");
		win.DeleteEvent += OnWinDelete;

		TreeView tv = new TreeView ();
		tv.AppendColumn ("Items", new CellRendererText (), "text", 0);

		ListStore store = new ListStore (typeof (string));
		store.AppendValues ("item 1");
		store.AppendValues ("item 2");
		
		tv.Model = store;
		tv.RowActivated += OnRowActivate;

		win.Add (tv);
		win.ShowAll ();
		Application.Run ();
	}
   
	static void OnRowActivate (object o, RowActivatedArgs args)
	{
		Console.WriteLine("row {0} was doubleclicked", args.Path);
	}
   
	static void OnWinDelete (object o, DeleteEventArgs args)
	{
		Application.Quit ();
	}
}

  </code>
          </example>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("row_activated")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="TestCollapseRow">
      <MemberSignature Language="C#" Value="public event Gtk.TestCollapseRowHandler TestCollapseRow;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TestCollapseRowHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the system wants to know whether a particular row can be collapsed.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("test-collapse-row")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="CursorChanged">
      <MemberSignature Language="C#" Value="public event EventHandler CursorChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the cursor changes (rows).</summary>
        <remarks>
          <example>
            <code lang="C#">
using Gtk;
using System;

class MainClass
{
     public static int Main (string[] args)
     {
          Application.Init ();
          
          Window win = new Window("TreeView Cursor Changed Example");
          win.DeleteEvent += OnWindowDelete;
          
          TreeStore store = new TreeStore(typeof(string), typeof(string));
          for (int i = 0; i &lt; 5; i++)
               store.AppendValues("demo " + i, "data " + i);
          
          TreeView tv = new TreeView();
          tv.HeadersVisible = true;
          tv.Selection.Mode = SelectionMode.Single;
          
          tv.AppendColumn("Demo", new CellRendererText(), "text", 0);
          tv.AppendColumn("Data", new CellRendererText(), "text", 1);
          tv.CursorChanged += OnCursorChanged;
          
          tv.Model = store;
          
          win.Add(tv);
               
          win.ShowAll();
          Application.Run ();
          
          return 0;
     }
     
     static void OnWindowDelete(object obj, DeleteEventArgs args)
     {
          Application.Quit();
     }
     
     static void OnCursorChanged(object obj, EventArgs e)
     {
          TreeSelection selection = (obj as TreeView).Selection;
          
          TreeModel model;
          TreeIter iter;
          
          // The iter will point to the selected row
          if(selection.GetSelected(out model, out iter))
          	Console.WriteLine("Path of selected row = {0}", model.GetPath(iter));               
     }     
}
  </code>
          </example>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("cursor-changed")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="GetPathAtPos">
      <MemberSignature Language="C#" Value="public bool GetPathAtPos (int x, int y, out Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="path" Type="Gtk.TreePath&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Finds the path at the point (x, y), relative to widget coordinates.</summary>
        <param name="x">an object of type <see cref="T:System.Int32" /></param>
        <param name="y">an object of type <see cref="T:System.Int32" /></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>It is primarily for things like popup menus. If <paramref name="path" /> is non-<see langword="null" />, then it will be filled with the <see cref="T:Gtk.TreePath" /> at that point. If <paramref name="column" /> is non-<see langword="null" />, then it will be filled with the <paramref name="column" /> at that point. This function is only meaningful if TreeView is realized.</remarks>
      </Docs>
    </Member>
    <Member MemberName="WidgetToTreeCoords">
      <MemberSignature Language="C#" Value="public void WidgetToTreeCoords (int wx, int wy, out int tx, out int ty);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="wx" Type="System.Int32" />
        <Parameter Name="wy" Type="System.Int32" />
        <Parameter Name="tx" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="ty" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Converts widget coordinates to coordinates for the tree window (the full scrollable area of the tree).</summary>
        <param name="wx">an object of type <see cref="T:System.Int32" /></param>
        <param name="wy">an object of type <see cref="T:System.Int32" /></param>
        <param name="tx">an object of type <see cref="T:System.Int32" /></param>
        <param name="ty">an object of type <see cref="T:System.Int32" /></param>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ToggleCursorRow">
      <MemberSignature Language="C#" Value="public event Gtk.ToggleCursorRowHandler ToggleCursorRow;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ToggleCursorRowHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the cursor toggles a row.</summary>
        <remarks>(FIXME: explain in more detail.)</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("toggle_cursor_row")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="StartInteractiveSearch">
      <MemberSignature Language="C#" Value="public event Gtk.StartInteractiveSearchHandler StartInteractiveSearch;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.StartInteractiveSearchHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the user begins a search of the tree.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("start_interactive_search")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="SelectAll">
      <MemberSignature Language="C#" Value="public event Gtk.SelectAllHandler SelectAll;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.SelectAllHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised whenever all rows of the TreeView are selected.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("select_all")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="SelectCursorParent">
      <MemberSignature Language="C#" Value="public event Gtk.SelectCursorParentHandler SelectCursorParent;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.SelectCursorParentHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised when the parent row of the current row is selected.</summary>
        <remarks>(FIXME: explain in more detail.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("select_cursor_parent")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="UnselectAll">
      <MemberSignature Language="C#" Value="public event Gtk.UnselectAllHandler UnselectAll;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.UnselectAllHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Raised whenever all rows of the TreeView are specifically deselected.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("unselect_all")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="AppendColumn">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumn AppendColumn (string title, Gtk.CellRenderer cell, object[] attrs);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumn</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="title" Type="System.String" />
        <Parameter Name="cell" Type="Gtk.CellRenderer" />
        <Parameter Name="attrs" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <summary>Adds a <see cref="T:Gtk.CellRenderer" /> with a specific column title and attributes.</summary>
        <param name="title">column title</param>
        <param name="cell">cell renderer</param>
        <param name="attrs">attributes</param>
        <returns>The appended <see cref="T:Gtk.TreeViewColumn" /></returns>
        <remarks>
          <para>This function is used to append a new <see cref="T:Gtk.CellRenderer" /> subclass with specific attributes to the <see cref="T:Gtk.TreeView" />.</para>
          <para>
The following code sample will append a new <see cref="T:Gtk.CellRendererText" /> to an existing <see cref="T:Gtk.TreeView" /> and use column 0 from the <see cref="T:Gtk.TreeStore" /> as the text to render.
</para>
          <example>
            <code lang="C#">
CellRendererText text = new CellRendererText ();
tree_view.AppendColumn ("title", text, "text", 0);
  </code>
          </example>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="AppendColumn">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumn AppendColumn (string title, Gtk.CellRenderer cell, Gtk.CellLayoutDataFunc cell_data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumn</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="title" Type="System.String" />
        <Parameter Name="cell" Type="Gtk.CellRenderer" />
        <Parameter Name="cell_data" Type="Gtk.CellLayoutDataFunc" />
      </Parameters>
      <Docs>
        <summary>Adds a new  <see cref="T:Gtk.TreeViewColumn" /> to the TreeView and returns it.</summary>
        <param name="title">a <see cref="T:System.String" /></param>
        <param name="cell">a <see cref="T:Gtk.CellRenderer" /></param>
        <param name="cell_data">a <see cref="T:Gtk.CellLayoutDataFunc" /></param>
        <returns>a <see cref="T:Gtk.TreeViewColumn" /></returns>
        <remarks>This method actually creates the column, rather than relying on a column object to be passed in. There's an alternate invokation form if you'd like to pass in an existing column object.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="SetCursorOnCell">
      <MemberSignature Language="C#" Value="public void SetCursorOnCell (Gtk.TreePath path, Gtk.TreeViewColumn focus_column, Gtk.CellRenderer focus_cell, bool start_editing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="focus_column" Type="Gtk.TreeViewColumn" />
        <Parameter Name="focus_cell" Type="Gtk.CellRenderer" />
        <Parameter Name="start_editing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Sets the current keyboard focus to be on the given <see cref="T:Gtk.TreePath" />. This is useful for getting the user's attention to a particular row.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="focus_column">a <see cref="T:Gtk.TreeViewColumn" /></param>
        <param name="focus_cell">a <see cref="T:Gtk.CellRenderer" /></param>
        <param name="start_editing">a <see cref="T:System.Boolean" /></param>
        <remarks>
          <para>If focus_column is not null, then focus is given to the column specified by it. If focus_column and focus_cell are not null, and focus_column contains 2 or more editable or activatable cells, then focus is given to the cell specified by focus_cell. Additionally, if focus_column is specified, and start_editing is null, then editing should be started in the specified cell.</para>
          <para>This function is often followed by<see cref="T:Gtk.Widget.GrabFocus" />(tree_view_obj) in order to give keyboard focus to the widget. Please note that editing can only happen when the widget is realized.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="ExpandToPath">
      <MemberSignature Language="C#" Value="public void ExpandToPath (Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Expands the treeview so the Path specified is visible.</summary>
        <param name="path">
          <see cref="T:Gtk.TreePath" /> to expand to.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetDragDestRow">
      <MemberSignature Language="C#" Value="public void GetDragDestRow (out Gtk.TreePath path, out Gtk.TreeViewDropPosition pos);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath&amp;" RefType="out" />
        <Parameter Name="pos" Type="Gtk.TreeViewDropPosition&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Gets information about the row that is highlighted for feedback.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /> to put the highlighted path into.</param>
        <param name="pos">a <see cref="T:Gtk.TreeViewDropPosition" /> to put the drop position into.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetDestRowAtPos">
      <MemberSignature Language="C#" Value="public bool GetDestRowAtPos (int drag_x, int drag_y, out Gtk.TreePath path, out Gtk.TreeViewDropPosition pos);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="drag_x" Type="System.Int32" />
        <Parameter Name="drag_y" Type="System.Int32" />
        <Parameter Name="path" Type="Gtk.TreePath&amp;" RefType="out" />
        <Parameter Name="pos" Type="Gtk.TreeViewDropPosition&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Determines the destination row for a given XY position. This is used by drag-and-drop operations to determine the target rows for the action.</summary>
        <param name="drag_x">a <see cref="T:System.Int32" />, the X coordinate</param>
        <param name="drag_y">a <see cref="T:System.Int32" />, the Y coordinate</param>
        <param name="path">a <see cref="T:Gtk.TreePath" /> to put the resulting destination row into.</param>
        <param name="pos">a <see cref="T:Gtk.TreeViewDropPosition&amp;" /> to indicate where to put the dragged object, relative to the <see cref="T:Gtk.TreePath" /> returned by this method.</param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="TreeToWidgetCoords">
      <MemberSignature Language="C#" Value="public void TreeToWidgetCoords (int tx, int ty, out int wx, out int wy);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="tx" Type="System.Int32" />
        <Parameter Name="ty" Type="System.Int32" />
        <Parameter Name="wx" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="wy" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Converts tree coordinates to widget coordinates. Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire scrollable area of the tree.</summary>
        <param name="tx">a <see cref="T:System.Int32" />, the X coordinate of the tree location</param>
        <param name="ty">a <see cref="T:System.Int32" />, the Y coordinate of the tree location</param>
        <param name="wx">a <see cref="T:System.Int32&amp;" />, the X coordinate for the widget</param>
        <param name="wy">a <see cref="T:System.Int32&amp;" />, the Y coordinate for the widget</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public TreeView (Gtk.NodeStore store);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="store" Type="Gtk.NodeStore" />
      </Parameters>
      <Docs>
        <summary>TreeView constructor</summary>
        <param name="store">a <see cref="T:Gtk.NodeStore" /></param>
        <remarks>Creates a <see cref="T:Gtk.TreeView" /> with <paramref name="store" /> as
          its <see cref="P:Gtk.TreeView.Model" />.
	</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete("Use NodeView with NodeStores")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="EnableModelDragSource">
      <MemberSignature Language="C#" Value="public void EnableModelDragSource (Gdk.ModifierType start_button_mask, Gtk.TargetEntry[] targets, Gdk.DragAction actions);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start_button_mask" Type="Gdk.ModifierType" />
        <Parameter Name="targets" Type="Gtk.TargetEntry[]" />
        <Parameter Name="actions" Type="Gdk.DragAction" />
      </Parameters>
      <Docs>
        <summary>Allows the TreeView to be used as a source for drag-and-drop actions.</summary>
        <param name="start_button_mask">a <see cref="T:Gdk.ModifierType" />, the mask of the allowed buttons for starting a drag</param>
        <param name="targets">a <see cref="T:Gtk.TargetEntry" />[], a table of supported targets for dragging to</param>
        <param name="actions">a <see cref="T:Gdk.DragAction" />, what should be done with the dragged data.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="EnableModelDragDest">
      <MemberSignature Language="C#" Value="public void EnableModelDragDest (Gtk.TargetEntry[] targets, Gdk.DragAction actions);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="targets" Type="Gtk.TargetEntry[]" />
        <Parameter Name="actions" Type="Gdk.DragAction" />
      </Parameters>
      <Docs>
        <summary>Turns this TreeView object into a destination for automatic drag-and-drop.</summary>
        <param name="targets">a <see cref="T:Gtk.TargetEntry" />[], a table of targets this TreeView will support.</param>
        <param name="actions">a <see cref="T:Gdk.DragAction" />, a bitmap of possible actions for a drag to this target</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>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.TreeView" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ModeGetType">
      <MemberSignature Language="C#" Value="public static GLib.GType ModeGetType ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Return the type of view mode being used for this TreeView.</summary>
        <returns>a <see cref="T:GLib.GType" /></returns>
        <remarks>FIXME: needs clarification.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnCursorChanged">
      <MemberSignature Language="C#" Value="protected virtual void OnCursorChanged ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.CursorChanged" /> event.</summary>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.CursorChanged" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnTestCollapseRow">
      <MemberSignature Language="C#" Value="protected virtual bool OnTestCollapseRow (Gtk.TreeIter iter, Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.TestCollapseRow" /> event.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.TestCollapseRow" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowActivated">
      <MemberSignature Language="C#" Value="protected virtual void OnRowActivated (Gtk.TreePath path, Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.RowActivated" /> event.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="column">a <see cref="T:Gtk.TreeViewColumn" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.RowActivated" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnExpandCollapseCursorRow">
      <MemberSignature Language="C#" Value="protected virtual bool OnExpandCollapseCursorRow (bool logical, bool expand, bool open_all);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="logical" Type="System.Boolean" />
        <Parameter Name="expand" Type="System.Boolean" />
        <Parameter Name="open_all" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.ExpandCollapseCursorRow" /> event.</summary>
        <param name="logical">a <see cref="T:System.Boolean" /></param>
        <param name="expand">a <see cref="T:System.Boolean" /></param>
        <param name="open_all">a <see cref="T:System.Boolean" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.ExpandCollapseCursorRow" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnColumnsChanged">
      <MemberSignature Language="C#" Value="protected virtual void OnColumnsChanged ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.ColumnsChanged" /> event.</summary>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.ColumnsChanged" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnUnselectAll">
      <MemberSignature Language="C#" Value="protected virtual bool OnUnselectAll ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.UnselectAll" /> event.</summary>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.UnselectAll" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnSelectCursorParent">
      <MemberSignature Language="C#" Value="protected virtual bool OnSelectCursorParent ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.SelectCursorParent" /> event.</summary>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.SelectCursorParent" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowCollapsed">
      <MemberSignature Language="C#" Value="protected virtual void OnRowCollapsed (Gtk.TreeIter iter, Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.RowCollapsed" /> event.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <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.TreeView.RowCollapsed" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnSelectAll">
      <MemberSignature Language="C#" Value="protected virtual bool OnSelectAll ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.SelectAll" /> event.</summary>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.SelectAll" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnSelectCursorRow">
      <MemberSignature Language="C#" Value="protected virtual bool OnSelectCursorRow (bool start_editing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start_editing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.SelectCursorRow" /> event.</summary>
        <param name="start_editing">a <see cref="T:System.Boolean" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.SelectCursorRow" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnTestExpandRow">
      <MemberSignature Language="C#" Value="protected virtual bool OnTestExpandRow (Gtk.TreeIter iter, Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.TestExpandRow" /> event.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.TestExpandRow" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnStartInteractiveSearch">
      <MemberSignature Language="C#" Value="protected virtual bool OnStartInteractiveSearch ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.StartInteractiveSearch" /> event.</summary>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.StartInteractiveSearch" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnMoveCursor">
      <MemberSignature Language="C#" Value="protected virtual bool OnMoveCursor (Gtk.MovementStep step, int count);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="step" Type="Gtk.MovementStep" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.MoveCursor" /> event.</summary>
        <param name="step">a <see cref="T:Gtk.MovementStep" /></param>
        <param name="count">a <see cref="T:System.Int32" /></param>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.MoveCursor" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnRowExpanded">
      <MemberSignature Language="C#" Value="protected virtual void OnRowExpanded (Gtk.TreeIter iter, Gtk.TreePath path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="iter" Type="Gtk.TreeIter" />
        <Parameter Name="path" Type="Gtk.TreePath" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.RowExpanded" /> event.</summary>
        <param name="iter">a <see cref="T:Gtk.TreeIter" /></param>
        <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.TreeView.RowExpanded" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnToggleCursorRow">
      <MemberSignature Language="C#" Value="protected virtual bool OnToggleCursorRow ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.ToggleCursorRow" /> event.</summary>
        <returns>a <see cref="T:System.Boolean" /></returns>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.ToggleCursorRow" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnScrollAdjustmentsSet">
      <MemberSignature Language="C#" Value="protected virtual void OnScrollAdjustmentsSet (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="hadjustment" Type="Gtk.Adjustment" />
        <Parameter Name="vadjustment" Type="Gtk.Adjustment" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.TreeView.ScrollAdjustmentsSet" /> event.</summary>
        <param name="hadjustment">a <see cref="T:Gtk.Adjustment" /></param>
        <param name="vadjustment">a <see cref="T:Gtk.Adjustment" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeView.ScrollAdjustmentsSet" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected TreeView (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="Columns">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumn[] Columns { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumn[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>A list of all the columns currently in this TreeView.</summary>
        <value>a <see cref="T:Gtk.TreeViewColumn[]" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetCellArea">
      <MemberSignature Language="C#" Value="public Gdk.Rectangle GetCellArea (Gtk.TreePath path, Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Rectangle</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Fills the bounding rectangle in tree window coordinates for the cell at the row specified by <paramref name="path" /> and the column specified by <paramref name="column" />.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="column">a <see cref="T:Gtk.TreeViewColumn" /></param>
        <returns>a <see cref="T:Gdk.Rectangle" /></returns>
        <remarks>
          <para>
	  If <paramref name="path" /> is <see langword="null" />, or points to a path not currently displayed, the y and height fields of the rectangle will be filled with 0. If <paramref name="column" /> is <see langword="null" />, the x and width fields will be filled with 0. The sum of all cell rects does not cover the entire tree; there are extra pixels in between rows, for example. This function is only valid if <see cref="T:Gtk.TreeView" /> is realized.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetBackgroundArea">
      <MemberSignature Language="C#" Value="public Gdk.Rectangle GetBackgroundArea (Gtk.TreePath path, Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Rectangle</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn" />
      </Parameters>
      <Docs>
        <summary>Fills the bounding rectangle in tree window coordinates for the cell at the row specified by <paramref name="path" /> and the column specified by <paramref name="column" />.</summary>
        <param name="path">a <see cref="T:Gtk.TreePath" /></param>
        <param name="column">a <see cref="T:Gtk.TreeViewColumn" /></param>
        <returns>a <see cref="T:Gdk.Rectangle" /></returns>
        <remarks>
          <para>
	  If <paramref name="path" /> is <see langword="null" />, or points to a node not found in the tree, the y and height fields of the rectangle will be filled with 0. If <paramref name="column" /> is <see langword="null" />, the x and width fields will be filled with 0. The returned rectangle is equivalent to the <paramref name="background_area" /> passed to <see cref="M:Gtk.CellRenderer.Render()" />. These background areas tile to cover the entire tree window (except for the area used for header buttons). Contrast with the <paramref name="cell_area" />, returned by <see cref="M:Gtk.TreeView.GetCellArea()" />, which returns only the cell itself, excluding surrounding borders and the tree expander area.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetPathAtPos">
      <MemberSignature Language="C#" Value="public bool GetPathAtPos (int x, int y, out Gtk.TreePath path, out Gtk.TreeViewColumn column, out int cell_x, out int cell_y);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="path" Type="Gtk.TreePath&amp;" RefType="out" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn&amp;" RefType="out" />
        <Parameter Name="cell_x" Type="System.Int32&amp;" RefType="out" />
        <Parameter Name="cell_y" Type="System.Int32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Finds the path at the point (x, y), relative to widget coordinates.</summary>
        <param name="x">a <see cref="T:System.Int32" />, an x coordinate</param>
        <param name="y">a <see cref="T:System.Int32" />, a y coordinate</param>
        <param name="path">a <see cref="T:Gtk.TreePath" /> to fill with the path at the (x,y) coordinate.</param>
        <param name="column">a <see cref="T:Gtk.TreeViewColumn" /> to fill with the column at the (x,y) coordinate.</param>
        <param name="cell_x">a <see cref="T:System.Int32" /> to fill with the x coordinate relative to the cell background.</param>
        <param name="cell_y">a <see cref="T:System.Int32" /> to fill with the y coordinate relative to the cell background.</param>
        <returns>a <see cref="T:System.Boolean" />, true if a row exists at (x,y).</returns>
        <remarks>
          <para>x and y must come from an event on the tree_view only where the event's window is the same as the window this TreeView renders to. It is primarily for things like popup menus. If path is non-null, then it will be filled with the GtkTreePath at that point. This path should be freed with <see cref="T:Gtk.TreePath.Free" />. If column is non-NULL, then it will be filled with the column at that point.</para>
          <para>cell_x and cell_y return the coordinates relative to the cell background (i.e. the background_area passed to <see cref="T:Gtk.CellRenderer.Render" />). This function is only meaningful if the TreeView object is realized.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetPathAtPos">
      <MemberSignature Language="C#" Value="public bool GetPathAtPos (int x, int y, out Gtk.TreePath path, out Gtk.TreeViewColumn column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="x" Type="System.Int32" />
        <Parameter Name="y" Type="System.Int32" />
        <Parameter Name="path" Type="Gtk.TreePath&amp;" RefType="out" />
        <Parameter Name="column" Type="Gtk.TreeViewColumn&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Finds the path at the point (x, y), relative to widget coordinates.</summary>
        <param name="x">a <see cref="T:System.Int32" />, an x coordinate</param>
        <param name="y">a <see cref="T:System.Int32" />, a y coordinate</param>
        <param name="path">a <see cref="T:Gtk.TreePath" /> to fill with the path at the (x,y) coordinate.</param>
        <param name="column">a <see cref="T:Gtk.TreeViewColumn" /> to fill with the column at the (x,y) coordinate.</param>
        <returns>a <see cref="T:System.Boolean" />, true if a row exists at (x,y)</returns>
        <remarks>This is an alternate invocation form which doesn't return coordinates for the position relative to a cell's background.</remarks>
      </Docs>
    </Member>
    <Member MemberName="FixedHeightMode">
      <MemberSignature Language="C#" Value="public bool FixedHeightMode { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Whether or not to assume all rows are the same height.</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks>This is an optimization; set to <see langword="true" /> for fastest performance.</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("fixed-height-mode")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="InsertColumn">
      <MemberSignature Language="C#" Value="public int InsertColumn (int pos, string title, Gtk.CellRenderer cell, Gtk.CellLayoutDataFunc cell_data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pos" Type="System.Int32" />
        <Parameter Name="title" Type="System.String" />
        <Parameter Name="cell" Type="Gtk.CellRenderer" />
        <Parameter Name="cell_data" Type="Gtk.CellLayoutDataFunc" />
      </Parameters>
      <Docs>
        <summary>Convenience function that inserts a new column into the tree view
	  with the given cell renderer and a <see cref="T:Gtk.CellLayoutDataFunc" /> to set cell renderer
	  attributes (normally using data from the model). </summary>
        <param name="pos">a <see cref="T:System.Int32" />, the position of the new column (-1 to append, positive numbers to insert)</param>
        <param name="title">a <see cref="T:System.String" />, the column title</param>
        <param name="cell">a <see cref="T:Gtk.CellRenderer" />, the renderer object</param>
        <param name="cell_data">a <see cref="T:Gtk.CellLayoutDataFunc" />, a function for presenting the data</param>
        <returns>The number of columns in the tree view after the insertion.</returns>
        <remarks>
	  See also <see cref="M:Gtk.TreeViewColumn.SetCellDataFunc" />, <see cref="M:Gtk.TreeViewColumn.PackStart" />.
	  If the tree view has <see cref="P:Gtk.TreeViewColumn.FixedHeightMode" /> enabled, then <paramref name="column" /> must have its
	  <see cref="P:Gtk.TreeViewColumn.Sizing" /> property set to be <see cref="P:Gtk.TreeViewColumnSizing.Fixed" />.
	</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="InsertColumn">
      <MemberSignature Language="C#" Value="public int InsertColumn (int pos, string title, Gtk.CellRenderer cell, object[] attrs);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pos" Type="System.Int32" />
        <Parameter Name="title" Type="System.String" />
        <Parameter Name="cell" Type="Gtk.CellRenderer" />
        <Parameter Name="attrs" Type="System.Object[]">
          <Attributes>
            <Attribute>
              <AttributeName>System.ParamArray</AttributeName>
            </Attribute>
          </Attributes>
        </Parameter>
      </Parameters>
      <Docs>
        <summary>Convenience function that inserts a new column into the tree view
	  with the given cell renderer and attribute bindings for the cell renderer.
	</summary>
        <param name="pos">a <see cref="T:System.Int32" />, the position of the new column (-1 to append, positive numbers to insert)</param>
        <param name="title">a <see cref="T:System.String" />, the column title</param>
        <param name="cell">a <see cref="T:Gtk.CellRenderer" />, the renderer object</param>
        <param name="attrs">an array of attribute bindings</param>
        <returns>The number of columns in the tree view after the insertion.</returns>
        <remarks />
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="AppendColumn">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewColumn AppendColumn (string title, Gtk.CellRenderer cell, Gtk.TreeCellDataFunc cell_data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewColumn</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="title" Type="System.String" />
        <Parameter Name="cell" Type="Gtk.CellRenderer" />
        <Parameter Name="cell_data" Type="Gtk.TreeCellDataFunc" />
      </Parameters>
      <Docs>
        <summary>Adds a new  <see cref="T:Gtk.TreeViewColumn" /> to the TreeView and returns it.</summary>
        <param name="title">a <see cref="T:System.String" /></param>
        <param name="cell">a <see cref="T:Gtk.CellRenderer" /></param>
        <param name="cell_data">a <see cref="T:Gtk.TreeCellDataFunc" /></param>
        <returns>a <see cref="T:Gtk.TreeViewColumn" /></returns>
        <remarks>This method actually creates the column, rather than relying on a column object to be passed in. There's an alternate invokation form if you'd like to pass in an existing column object.</remarks>
      </Docs>
    </Member>
    <Member MemberName="HoverExpand">
      <MemberSignature Language="C#" Value="public bool HoverExpand { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.6" />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("hover-expand")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="HoverSelection">
      <MemberSignature Language="C#" Value="public bool HoverSelection { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Whether a row should be highlighted when the cursor is over it.</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks>To be added</remarks>
        <since version="Gtk# 2.6" />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("hover-selection")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="RowSeparatorFunc">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewRowSeparatorFunc RowSeparatorFunc { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewRowSeparatorFunc</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Callback function to indicate whether or not a given row of the tree view should be rendered as a separator.</summary>
        <value>a <see cref="T:Gtk.TreeViewRowSeparatorFunc" /></value>
        <remarks />
        <since version="Gtk# 2.6" />
      </Docs>
    </Member>
    <Member MemberName="GetCursor">
      <MemberSignature Language="C#" Value="public void GetCursor (out Gtk.TreePath path, out Gtk.TreeViewColumn focus_column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="Gtk.TreePath&amp;" RefType="out" />
        <Parameter Name="focus_column" Type="Gtk.TreeViewColumn&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="path">returns a <see cref="Gtk.TreePath" /> to the selected row, or <see langword="null" /> if there is no current selection.</param>
        <param name="focus_column">returns the focused <see cref="Gtk.TreeViewColumn" />, or <see langword="null" />.</param>
        <summary>Gets the currently selected row and focused column.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetVisibleRange">
      <MemberSignature Language="C#" Value="public bool GetVisibleRange (out Gtk.TreePath start_path, out Gtk.TreePath end_path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="start_path" Type="Gtk.TreePath&amp;" RefType="out" />
        <Parameter Name="end_path" Type="Gtk.TreePath&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="start_path">returns a <see cref="Gtk.TreePath" /> to the first visible row.</param>
        <param name="end_path">returns a <see cref="Gtk.TreePath" /> to the last visible row.</param>
        <summary>Gets the visible rows of the view.</summary>
        <returns>
          <see langword="true" /> if the start and end paths were set.</returns>
        <remarks>Note: there may be invisible paths between the start and end paths returned.</remarks>
        <since version="Gtk# 2.8" />
      </Docs>
    </Member>
    <Member MemberName="ShowExpanders">
      <MemberSignature Language="C#" Value="public bool ShowExpanders { set; get; };" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("show-expanders")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Indicates if expanders are shown.</summary>
        <value>defaults to <see langword="true" />.</value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="LevelIndentation">
      <MemberSignature Language="C#" Value="public int LevelIndentation { set; get; };" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("level-indentation")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Extra indentation amount for each level of the hierarchy.</summary>
        <value>defaults to 0.</value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="EnableGridLines">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewGridLines EnableGridLines { set; get; };" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("enable-grid-lines")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewGridLines</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Indicates which grid lines are drawn.</summary>
        <value>a set of <see cref="T:Gtk.TreeViewGridLines" /> flags.</value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="RubberBanding">
      <MemberSignature Language="C#" Value="public bool RubberBanding { set; get; };" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("rubber-banding")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Indicates if Rubberbanding multi-selection is supported.</summary>
        <value>if <see langword="true" />, rubberbanding is active.</value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="EnableTreeLines">
      <MemberSignature Language="C#" Value="public bool EnableTreeLines { set; get; };" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("enable-tree-lines")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Indicates if connecting lines are drawn for expanders.</summary>
        <value>if <see langword="true" />, connecting lines are drawn.</value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="SearchEntry">
      <MemberSignature Language="C#" Value="public Gtk.Entry SearchEntry { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Entry</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Identifies a custom search entry widget for the view.</summary>
        <value>if <see langword="null" />, the default popup entry is used.</value>
        <remarks>This is useful for providing a fixed position search entry to the interface.</remarks>
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="SearchPositionFunc">
      <MemberSignature Language="C#" Value="public Gtk.TreeViewSearchPositionFunc SearchPositionFunc { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.TreeViewSearchPositionFunc</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Delegate to use when positioning the search dialog for the view.</summary>
        <value>a search position delegate.</value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="OddRowColor">
      <MemberSignature Language="C#" Value="public Gdk.Color OddRowColor { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Color</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>This property contains the background color that is used for all even rows.</summary>
        <value>a <see cref="T:Gdk.Color" /></value>
        <remarks />
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
    <Member MemberName="EvenRowColor">
      <MemberSignature Language="C#" Value="public Gdk.Color EvenRowColor { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Color</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>This property contains the background color that is used for all odd rows.</summary>
        <value>a <see cref="T:Gdk.Color" /></value>
        <remarks>The odd row color is only used when the <see cref="M:Gtk.TreeView.RulesHint" /> property is set to true.</remarks>
        <since version="Gtk# 2.10" />
      </Docs>
    </Member>
  </Members>
</Type>
