2003-11-18 Peter Williams <peter@newton.cx>
* gtk/NodeStore.cs (GetNode): New public function. Patch refactored a bit to eliminate code duplication with get_node_cb. svn path=/trunk/gtk-sharp/; revision=20188
This commit is contained in:
parent
e71f1cda17
commit
4c24cd0747
4 changed files with 57 additions and 12 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2003-11-18 Peter Williams <peter@newton.cx>
|
||||||
|
|
||||||
|
* gtk/NodeStore.cs (GetNode): New public function. Patch refactored
|
||||||
|
a bit to eliminate code duplication with get_node_cb.
|
||||||
|
|
||||||
2003-11-18 John Luke <jluke@cfl.rr.com>
|
2003-11-18 John Luke <jluke@cfl.rr.com>
|
||||||
|
|
||||||
* configure.in: test for gtkhtml3
|
* configure.in: test for gtkhtml3
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2003-11-18 Peter Williams <peter@newton.cx>
|
||||||
|
|
||||||
|
* en/Gtk/NodeStore.xml: Document new GetNode functions.
|
||||||
|
|
||||||
2003-11-17 John Luke <jluke@cfl.rr.com>
|
2003-11-17 John Luke <jluke@cfl.rr.com>
|
||||||
|
|
||||||
* en/Gtk/Socket.xml: documented
|
* en/Gtk/Socket.xml: documented
|
||||||
|
|
|
@ -42,6 +42,24 @@
|
||||||
</remarks>
|
</remarks>
|
||||||
</Docs>
|
</Docs>
|
||||||
</Member>
|
</Member>
|
||||||
|
<Member MemberName="GetNode">
|
||||||
|
<MemberSignature Language="C#" Value="public Gtk.ITreeNode GetNode (Gtk.TreePath path);" />
|
||||||
|
<MemberType>Method</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gtk.ITreeNode</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters>
|
||||||
|
<Parameter Name="path" Type="Gtk.TreePath" />
|
||||||
|
</Parameters>
|
||||||
|
<Docs>
|
||||||
|
<summary>Returns a node given a <see cref="T:Gtk.TreePath" />.</summary>
|
||||||
|
<param name="path">The path to look up.</param>
|
||||||
|
<remarks>
|
||||||
|
Looks up the node corresponding to <paramref name="path" /> and returns it,
|
||||||
|
or null if the node cannot be found.
|
||||||
|
</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
<Member MemberName="RemoveNode">
|
<Member MemberName="RemoveNode">
|
||||||
<MemberSignature Language="C#" Value="public void RemoveNode (Gtk.ITreeNode node);" />
|
<MemberSignature Language="C#" Value="public void RemoveNode (Gtk.ITreeNode node);" />
|
||||||
<MemberType>Method</MemberType>
|
<MemberType>Method</MemberType>
|
||||||
|
|
|
@ -89,23 +89,15 @@ namespace Gtk {
|
||||||
bool get_node_cb (out int node_idx, IntPtr path)
|
bool get_node_cb (out int node_idx, IntPtr path)
|
||||||
{
|
{
|
||||||
if (path == IntPtr.Zero)
|
if (path == IntPtr.Zero)
|
||||||
Console.WriteLine ("Got a null path in get_node");
|
throw new ArgumentNullException ("path");
|
||||||
|
|
||||||
TreePath treepath = new TreePath (path);
|
TreePath treepath = new TreePath (path);
|
||||||
node_idx = -1;
|
node_idx = -1;
|
||||||
int[] indices = treepath.Indices;
|
|
||||||
|
|
||||||
if (indices[0] >= Nodes.Count)
|
ITreeNode node = GetNodeAtPath (treepath);
|
||||||
|
if (node == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
ITreeNode node = Nodes [indices [0]] as ITreeNode;
|
|
||||||
int i;
|
|
||||||
for (i = 1; i < treepath.Depth; i++) {
|
|
||||||
if (indices [i] >= node.ChildCount)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
node = node [indices [i]];
|
|
||||||
}
|
|
||||||
|
|
||||||
node_idx = node.ID;
|
node_idx = node.ID;
|
||||||
node_hash [node.ID] = node;
|
node_hash [node.ID] = node;
|
||||||
return true;
|
return true;
|
||||||
|
@ -410,5 +402,31 @@ namespace Gtk {
|
||||||
|
|
||||||
gtksharp_node_store_emit_row_deleted (Handle, path.Handle);
|
gtksharp_node_store_emit_row_deleted (Handle, path.Handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ITreeNode GetNodeAtPath (TreePath path)
|
||||||
|
{
|
||||||
|
int[] indices = path.Indices;
|
||||||
|
|
||||||
|
if (indices[0] >= Nodes.Count)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
ITreeNode node = Nodes [indices [0]] as ITreeNode;
|
||||||
|
int i;
|
||||||
|
for (i = 1; i < path.Depth; i++) {
|
||||||
|
if (indices [i] >= node.ChildCount)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
node = node [indices [i]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ITreeNode GetNode (TreePath path) {
|
||||||
|
if (path == null)
|
||||||
|
throw new ArgumentNullException ();
|
||||||
|
|
||||||
|
return GetNodeAtPath (path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue