GtkSharp/doc/en/Gtk/TreeSelection.xml
Dan Winship a7d8b64f7a * generator/Parameters.cs (Parameters.Validate): If the parameters
end with "callback, gpointer, GDestroyNotify", then mark the
	callback as having "notified" Scope.
	(Parameters.IsHidden): Hide user_data and GDestroyNotify after a
	callback.
	(Parameter.Scope): make this settable
	(Parameter.IsDestroyNotify): new test

	* generator/MethodBody.cs (Initialize): Handle "notified" callback
	scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler)

	* generator/CallbackGen.cs (GenWrapper): Add a static
	"GetManagedDelegate" method to the wrapper type, to translate a
	native delegate back to its corresponding managed delegate.
	(FromNative): use GetManagedDelegate.

	* generator/ReturnValue.cs (Validate): We handle callback return
	values now

	* generator/SymbolTable.cs: marshal GDestroyNotify as
	GLib.DestroyNotify

	* glib/DestroyNotify.cs: Moved from gtk

	* gtk/Gtk.metadata: globally change GtkDestroyNotify to
	GDestroyNotify, but then change back the ones that are exposed in
	the API. Un-hide lots of methods we can correctly autogenerate
	now.

	* gtk/DestroyHelper.cs: moved to glib

	* gtk/*.custom: remove methods that are autogenerated now, add
	Obsolete wrappers where needed, replace Gtk.DestroyHelper usage
	with GLib.DestroyHelper.

	* gdk/Gdk.metadata: 
	* gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and
	Gnome.IconList.SetIconDataFull's GDestroyNotify args into
	gpointers so the generated API stays the same as it used to be.

	* rsvg/Handle.custom: implement deprecated SetSizeCallback

	* sample/GtkDemo/DemoIconView.cs (CreateSort): update for API
	changes

svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00

556 lines
No EOL
23 KiB
XML

<Type Name="TreeSelection" FullName="Gtk.TreeSelection">
<TypeSignature Language="C#" Value="public class TreeSelection : GLib.Object, IWrapper, IDisposable" Maintainer="Lee Mallabone" />
<AssemblyInfo>
<AssemblyName>gtk-sharp</AssemblyName>
<AssemblyPublicKey>
</AssemblyPublicKey>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyCulture>neutral</AssemblyCulture>
<Attributes />
</AssemblyInfo>
<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<Docs>
<summary>The selection object for <see cref="T:Gtk.TreeView" />.</summary>
<remarks>
<para>TreeSelection provides a single class for managing selection information on the List/Tree widget.</para>
<para>A TreeSelection object is automatically created when a new <see cref="T:Gtk.TreeView" /> widget is created and is inherently tied to it. A TreeSelection cannot exist independently of a <see cref="T:Gtk.TreeView" />. Selection information is retrieved from the <see cref="T:Gtk.TreeView" /> with the <see cref="P:Gtk.TreeView.Selection" /> property.</para>
<para>TreeSelection can check the selection status of the tree, as well as select and deselect individual rows. Selection is done completely on the view. As a result, multiple views of the same model can have completely different selections. Additionally, you cannot change the selection of a row that is not currently displayed by the view without expanding its parents first.</para>
<para>One of the important things to remember when monitoring the selection of a view is that the <see cref="E:Gtk.TreeSelection.Changed" /> event is mostly a hint. For example, it may only fire once when a range of rows is selected. It may also fire when nothing has happened, such as when <see cref="M:Gtk.TreeSelection.SelectPath(Gtk.TreePath)" /> is called on a row that is already selected.</para>
</remarks>
<example>
<code lang="C#">
using System;
using Gtk;
class Selection
{
static void Main ()
{
Application.Init ();
Window win = new Window ("TreeSelection 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.Selection.Changed += OnSelectionChanged;
win.Add (tv);
win.ShowAll ();
Application.Run ();
}
static void OnSelectionChanged (object o, EventArgs args)
{
TreeIter iter;
TreeModel model;
if (((TreeSelection)o).GetSelected (out model, out iter))
{
string val = (string) model.GetValue (iter, 0);
Console.WriteLine ("{0} was selected", val);
}
}
static void OnWinDelete (object o, DeleteEventArgs args)
{
Application.Quit ();
}
}
</code>
</example>
</Docs>
<Base>
<BaseTypeName>GLib.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>GLib.IWrapper</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
</Interfaces>
<Attributes />
<Members>
<Member MemberName="SelectPath">
<MemberSignature Language="C#" Value="public void SelectPath (Gtk.TreePath path);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="path" Type="Gtk.TreePath" />
</Parameters>
<Docs>
<summary>Selects the specified row that <paramref name="path" /> represents.</summary>
<param name="path">A row to be selected.</param>
<remarks />
</Docs>
</Member>
<Member MemberName="PathIsSelected">
<MemberSignature Language="C#" Value="public bool PathIsSelected (Gtk.TreePath path);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="path" Type="Gtk.TreePath" />
</Parameters>
<Docs>
<summary>Determines whether a <see cref="T:Gtk.TreePath" /> has been selected in this <see cref="T:TreeView" />.</summary>
<param name="path">The path to a node whose selected status should be checked.</param>
<returns>
<see langword="true" /> if <paramref name="path" /> is selected, <see langword="false" /> otherwise.</returns>
<remarks />
</Docs>
</Member>
<Member MemberName="UnselectIter">
<MemberSignature Language="C#" Value="public void UnselectIter (Gtk.TreeIter iter);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="iter" Type="Gtk.TreeIter" />
</Parameters>
<Docs>
<summary>Deselects the specified position in the tree.</summary>
<param name="iter">The tree position that should be deselected.</param>
<remarks>
<para>See also, <see cref="M:Gtk.TreeSelection.UnselectPath(Gtk.TreePath)" /> and <see cref="M:Gtk.TreeSelection.UnselectAll()" />.</para>
</remarks>
<example>
<code language="C#">
using System;
using Gtk;
class TreeSelectionSample
{
Label selected;
static void Main ()
{
Application.Init ();
new TreeSelectionSample ();
Application.Run ();
}
TreeSelectionSample ()
{
Window win = new Window ("TreeView selection sample");
win.SetDefaultSize (400, 300);
win.DeleteEvent += new DeleteEventHandler (OnWinDelete);
HBox hbox = new HBox (false, 0);
TreeView tv = new TreeView ();
tv.Selection.Changed += new EventHandler (OnSelectionChanged);
tv.AppendColumn ("items", new CellRendererText (), "text", 0);
TreeStore store = new TreeStore (typeof (string));
for (int i = 0; i &lt; 10; i++)
{
store.AppendValues ("item " + i.ToString ());
}
tv.Model = store;
hbox.PackStart (tv);
selected = new Label ();
hbox.PackStart (selected);
win.Add (hbox);
win.ShowAll ();
}
void OnSelectionChanged (object o, EventArgs args)
{
TreeSelection ts = (TreeSelection) o;
TreeIter iter;
TreeModel model;
ts.GetSelected (out model, out iter);
selected.Text = (string) model.GetValue (iter, 0);
}
void OnWinDelete (object o, DeleteEventArgs args)
{
Application.Quit ();
}
}
</code>
</example>
</Docs>
</Member>
<Member MemberName="IterIsSelected">
<MemberSignature Language="C#" Value="public bool IterIsSelected (Gtk.TreeIter iter);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="iter" Type="Gtk.TreeIter" />
</Parameters>
<Docs>
<summary>Determine if the iter is selected.</summary>
<param name="iter">The tree location to check</param>
<returns>
<see langword="true" /> if the tree node specified by <paramref name="iter" /> is selected, <see langword="false" /> otherwise.</returns>
<remarks>
<para>See also <see cref="M:Gtk.TreeSelection.PathIsSelected(Gtk.TreePath)" />.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="SelectAll">
<MemberSignature Language="C#" Value="public void SelectAll ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Selects every node in this <see cref="T:Gtk.TreeView" />.</summary>
<remarks>
<para>The <see cref="P:Gtk.TreeSelection.Mode" /> must be set to <see cref="P:Gtk.SelectionMode.Multiple" /> for this method to work.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="UnselectPath">
<MemberSignature Language="C#" Value="public void UnselectPath (Gtk.TreePath path);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="path" Type="Gtk.TreePath" />
</Parameters>
<Docs>
<summary>Deselects the tree node that <paramref name="path" /> refers to.</summary>
<param name="path">A node in the tree.</param>
<remarks>
<para>See also <see cref="M:Gtk.TreeSelection.UnselectIter(Gtk.TreeIter)" />.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="SelectRange">
<MemberSignature Language="C#" Value="public void SelectRange (Gtk.TreePath start_path, Gtk.TreePath end_path);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="start_path" Type="Gtk.TreePath" />
<Parameter Name="end_path" Type="Gtk.TreePath" />
</Parameters>
<Docs>
<summary>Selects all the nodes that appear between <paramref name="start_path" /> and <paramref name="end_path" />.</summary>
<param name="start_path">The first node to select on the tree.</param>
<param name="end_path">The last node to select on the tree.</param>
<remarks />
</Docs>
</Member>
<Member MemberName="UnselectAll">
<MemberSignature Language="C#" Value="public void UnselectAll ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Sets all nodes in the <see cref="T:Gtk.TreeView" /> as unselected.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="SelectedForeach">
<MemberSignature Language="C#" Value="public void SelectedForeach (Gtk.TreeSelectionForeachFunc func);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="func" Type="Gtk.TreeSelectionForeachFunc" />
</Parameters>
<Docs>
<summary>Invokes the delegate passed in by <paramref name="func" /> for each selected row in the <see cref="T:Gtk.TreeView" />.</summary>
<param name="func">The delegate that should be called for each selected row.</param>
<remarks>
<para>This method is useful when the <see cref="P:Gtk.TreeSelection.Mode" /> of this TreeSelection is set to <see cref="P:Gtk.Selection.Multiple" />. It is currently the only way to access selection information for multiple rows. See the class overview for an example on how to effectively use this method for selection tracking.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="SetSelectFunction" Deprecated="true">
<MemberSignature Language="C#" Value="public void SetSelectFunction (Gtk.TreeSelectionFunc func, IntPtr data, Gtk.DestroyNotify destroy);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="func" Type="Gtk.TreeSelectionFunc" />
<Parameter Name="data" Type="System.IntPtr" />
<Parameter Name="destroy" Type="Gtk.DestroyNotify" />
</Parameters>
<Docs>
<summary>Add a hook into selection and unselection.</summary>
<param name="func">A delegate to invoke before a node is (un)selected.</param>
<param name="data">ignored</param>
<param name="destroy">ignored</param>
<remarks>This method is obsolete. New code should use the <see cref="M:Gtk.TreeSelection.SelectFunction" /> property.</remarks>
</Docs>
</Member>
<Member MemberName="SelectFunction">
<MemberSignature Language="C#" Value="public Gtk.TreeSelectionFunc SelectFunction { set; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>Gtk.TreeSelectionFunc</ReturnType>
</ReturnValue>
<Docs>
<summary>A hook into selection and unselection</summary>
<returns>a <see cref="T:Gtk.TreeSelectionFunc" /></returns>
<remarks>
<para>If set, <paramref name="func" /> is called before any node is selected or unselected, giving some control over which nodes are selected. The select function should return <see langword="true" /> if the state of the node may be toggled, and <see langword="false" /> if the state of the node should be left unchanged.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="SelectIter">
<MemberSignature Language="C#" Value="public void SelectIter (Gtk.TreeIter iter);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="iter" Type="Gtk.TreeIter" />
</Parameters>
<Docs>
<summary>Selects the specified <see cref="T:Gtk.TreeIter" />.</summary>
<param name="iter">Indicates which row to select.</param>
<remarks>
<para>See also <see cref="M:Gtk.TreeSelection.SelectAll()" /> and <see cref="M:Gtk.TreeSelection.SelectPath(Gtk.TreePath)" />.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="protected override void Finalize ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Disposes the resources associated with the object.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public TreeSelection (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>
<returns>An instance of TreeSelection, wrapping the C object.</returns>
<remarks>
<para>This is an internal constructor, and should not be used by user code.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="Mode">
<MemberSignature Language="C#" Value="public Gtk.SelectionMode Mode { set; get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>Gtk.SelectionMode</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<summary>Manages the way rows can be selected.</summary>
<param name="value">A new mode of selection.</param>
<returns>The current mode dictating selection behaviour.</returns>
<remarks>
<para>Rows may be deselected by changing this property. For example, if <see cref="P:Gtk.SelectionMode.Multiple" /> rows are selected and the mode is changed to <see cref="P:Gtk.SelectionMode.Single" /> or <see cref="P:Gtk.SelectionMode.Browse" />.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="UserData">
<MemberSignature Language="C#" Value="public IntPtr UserData { get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>System.IntPtr</ReturnType>
</ReturnValue>
<Docs>
<summary>Get the data associated with the <see cref="T:Gtk.TreeSelectionFunc" /> that has been setup for this <see cref="T:Gtk.TreeSelection" />.</summary>
<returns>The raw data that was set when <see cref="M:Gtk.TreeSelection.SetSelectFunction(Gtk.TreeSelectionFunc,System.IntPtr,Gtk.DestroyNotify)" /> was called.</returns>
<remarks />
</Docs>
</Member>
<Member MemberName="TreeView">
<MemberSignature Language="C#" Value="public Gtk.TreeView TreeView { get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>Gtk.TreeView</ReturnType>
</ReturnValue>
<Docs>
<summary>Get the <see cref="T:Gtk.TreeView" /> that this <see cref="T:Gtk.TreeSelection" /> is associated with.</summary>
<returns>The <see cref="T:Gtk.TreeView" /> that this <see cref="T:Gtk.TreeSelection" /> is tied to.</returns>
<remarks>
<para>A <see cref="T:Gtk.TreeSelection" /> object can only be retrieved from a <see cref="T:Gtk.TreeView" />. That is done with its <see cref="P:Gtk.TreeView.Selection" /> property.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="Changed">
<MemberSignature Language="C#" Value="public event EventHandler Changed;" />
<MemberType>Event</MemberType>
<ReturnValue>
<ReturnType>System.EventHandler</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Fired when the selection (may have) changed.</summary>
<remarks>
<para>This event is mostly a hint. It may only be fired once when a range of rows are selected, and it may occasionally be fired when nothing has happened.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="UnselectRange">
<MemberSignature Language="C#" Value="public void UnselectRange (Gtk.TreePath start_path, Gtk.TreePath end_path);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="start_path" Type="Gtk.TreePath" />
<Parameter Name="end_path" Type="Gtk.TreePath" />
</Parameters>
<Docs>
<summary>Unselects everything between one path and another.</summary>
<param name="start_path">
<see cref="T:Gtk.TreePath" /> to begin range.</param>
<param name="end_path">
<see cref="T:Gtk.TreePath" /> to end range.</param>
<remarks />
</Docs>
</Member>
<Member MemberName="CountSelectedRows">
<MemberSignature Language="C#" Value="public int CountSelectedRows ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Get the number of selected rows.</summary>
<returns>The number of selected rows</returns>
<remarks />
</Docs>
</Member>
<Member MemberName="GetSelected">
<MemberSignature Language="C#" Value="public bool GetSelected (out Gtk.TreeModel model, out Gtk.TreeIter iter);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="model" Type="Gtk.TreeModel&amp;" RefType="out" />
<Parameter Name="iter" Type="Gtk.TreeIter&amp;" RefType="out" />
</Parameters>
<Docs>
<summary>Get information about the currently selected node.</summary>
<param name="model">A convenient accessor to the <see cref="T:Gtk.TreeModel" /> that this TreeSelection's <see cref="T:Gtk.TreeView" /> is associated with.</param>
<param name="iter">The position that was selected.</param>
<returns>
<see langword="true" /> if a row was selected.</returns>
<remarks>
<para>This method will not work if the TreeSelection <see cref="P:Gtk.TreeSelection.Mode" /> has been set to <see cref="P:Gtk.SelectionMode.Multiple" />. In that case you should use <see cref="M:Gtk.TreeSelection.SelectedForeach(Gtk.TreeSelectionForEach)" />.</para>
</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>
<returns>a <see cref="T:GLib.GType" /></returns>
<remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.TreeSelection" />.</remarks>
</Docs>
</Member>
<Member MemberName="OnChanged">
<MemberSignature Language="C#" Value="protected virtual void OnChanged ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Default handler for the <see cref="M:Gtk.TreeSelection.Changed" /> event.</summary>
<remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.TreeSelection.Changed" /> event.</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected TreeSelection (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>
<returns>a <see cref="T:Gtk.TreeSelection" /></returns>
<remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
</Docs>
</Member>
<Member MemberName="GetSelectedRows">
<MemberSignature Language="C#" Value="public Gtk.TreePath[] GetSelectedRows (out Gtk.TreeModel model);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>Gtk.TreePath[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="model" Type="Gtk.TreeModel&amp;" RefType="out" />
</Parameters>
<Docs>
<summary>Returns an array of <see cref="T:Gtk.TreePath" />s representing the selected rows.</summary>
<param name="model">The model the <see cref="T:Gtk.TreeView" /> is bound to.</param>
<returns>Selected rows in an array of <see cref="T:Gtk.TreePath" />s</returns>
<remarks />
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected TreeSelection ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Protected constructor.</summary>
<returns>a <see cref="T:Gtk.TreeSelection" /></returns>
<remarks />
</Docs>
</Member>
<Member MemberName="GetSelectedRows">
<MemberSignature Language="C#" Value="public Gtk.TreePath[] GetSelectedRows ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>Gtk.TreePath[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns an array of <see cref="T:Gtk.TreePath" />s representing the selected rows.</summary>
<returns>Selected rows in an array of <see cref="T:Gtk.TreePath" />s</returns>
<remarks />
</Docs>
</Member>
</Members>
</Type>