From 327a28442ed40468d086a940a200433a996e113d Mon Sep 17 00:00:00 2001 From: Ben Maurer Date: Sun, 28 Aug 2005 21:18:39 +0000 Subject: [PATCH] In doc: 2005-08-28 Ben Maurer * en/Gtk/NodeSelection.xml: Docs In .: 2005-08-28 Ben Maurer * gtk/NodeSelection.cs: helper api svn path=/trunk/gtk-sharp/; revision=49040 --- ChangeLog | 4 ++++ doc/ChangeLog | 4 ++++ doc/en/Gtk/NodeSelection.xml | 16 ++++++++++++++++ gtk/NodeSelection.cs | 23 +++++++++++++++++++++++ 4 files changed, 47 insertions(+) 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); + } + } } }