diff --git a/ChangeLog b/ChangeLog index e13603a48..d8c75cab8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-08-28 Ben Maurer + + * gtk/NodeSelection.cs: helper api + 2005-08-27 Peter Williams * gnome/Program.custom: Use a GLib.Argv in PersistentData to store diff --git a/doc/ChangeLog b/doc/ChangeLog index a9ed32003..f93d964e5 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2005-08-28 Ben Maurer + + * en/Gtk/NodeSelection.xml: Docs + 2005-08-14 John Luke * en/Gtk/IconView.xml: add iconview example diff --git a/doc/en/Gtk/NodeSelection.xml b/doc/en/Gtk/NodeSelection.xml index 32549ad52..c89aa44f9 100644 --- a/doc/en/Gtk/NodeSelection.xml +++ b/doc/en/Gtk/NodeSelection.xml @@ -234,5 +234,21 @@ + + + Property + + Gtk.ITreeNode + + The Multiple selection mode is in use. + + The selected node + The currently selected node + + This property does not make sense in the Multiple selection mode. Therefore + it will throw an exception when used under this mode. + + + diff --git a/gtk/NodeSelection.cs b/gtk/NodeSelection.cs index a352c779c..a05af1565 100644 --- a/gtk/NodeSelection.cs +++ b/gtk/NodeSelection.cs @@ -130,5 +130,28 @@ namespace Gtk { return results; } } + + public ITreeNode SelectedNode { + get { + if (Mode == SelectionMode.Multiple) + throw new InvalidOperationException ("SelectedNode is not valid with multi-selection mode"); + + ITreeNode [] sn = SelectedNodes; + if (sn.Length == 0) + return null; + return sn [0]; + } + set { + // with multiple mode, the behavior + // here would be unclear. Does it just + // select the `value' node or does it + // make the `value' node the only + // selected node. + if (Mode == SelectionMode.Multiple) + throw new InvalidOperationException ("SelectedNode is not valid with multi-selection mode"); + + SelectNode (value); + } + } } }