Example #1
0
        private void OnNodeDeleted(TreeNodeChildEventArgs e)
        {
            var handler = NodeDeleted;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Example #2
0
        public void Remove(TreePosition pos)
        {
            version++;
            IterPos tpos = GetIterPos(pos);

            Gtk.TreeIter it        = tpos.Iter;
            var          delPath   = Tree.GetPath(it);
            var          eventArgs = new TreeNodeChildEventArgs(GetParent(tpos), delPath.Indices[delPath.Indices.Length - 1], pos);

            Tree.Remove(ref it);
            if (NodeDeleted != null)
            {
                NodeDeleted(this, eventArgs);
            }
        }
Example #3
0
 void HandleNodeDeleted(object sender, TreeNodeChildEventArgs e)
 {
     if (e.Node == null)
     {
         adapter.EmitRowDeleted(new Gtk.TreePath(new int[] { e.ChildIndex }));
     }
     else
     {
         Gtk.TreeIter it  = IterFromNode(e.Node);
         var          p   = GetPath(it);
         int[]        idx = new int [p.Indices.Length + 1];
         p.Indices.CopyTo(idx, 0);
         idx [idx.Length - 1] = e.ChildIndex;
         adapter.EmitRowDeleted(new Gtk.TreePath(idx));
     }
 }
Example #4
0
        void HandleNodeDeleted(object sender, TreeNodeChildEventArgs e)
        {
            if (e.Node != null && !handleHash.ContainsKey(e.Node))
            {
                return;
            }

            NodeData data;

            if (e.Child != null && handleHash.TryGetValue(e.Child, out data))
            {
                // Increase the model stamp since the node is gone and there may
                // be iters referencing that node. Increasing the stamp will
                // invalidate all those nodes
                stamp++;
                data.Handle.Free();
                handleHash.Remove(e.Child);

                // Update the indexes of the node following the deleted one
                var count = source.GetChildrenCount(e.Node);
                for (int n = e.ChildIndex; n < count; n++)
                {
                    var child = source.GetChild(e.Node, n);
                    if (child != null)
                    {
                        CacheIndex(child, n);
                    }
                }
            }

            if (e.Node == null)
            {
                adapter.EmitRowDeleted(new Gtk.TreePath(new int[] { e.ChildIndex }));
            }
            else
            {
                var   p   = GetPath(e.Node);
                int[] idx = new int [p.Indices.Length + 1];
                p.Indices.CopyTo(idx, 0);
                idx [idx.Length - 1] = e.ChildIndex;
                adapter.EmitRowDeleted(new Gtk.TreePath(idx));
            }
        }
Example #5
0
 public void Remove(TreePosition pos)
 {
     version++;
     IterPos tpos = GetIterPos (pos);
     Gtk.TreeIter it = tpos.Iter;
     var delPath = Tree.GetPath (it);
     var eventArgs = new TreeNodeChildEventArgs (GetParent (tpos), delPath.Indices[delPath.Indices.Length - 1]);
     Tree.Remove (ref it);
     if (NodeDeleted != null)
         NodeDeleted (this, eventArgs);
 }
Example #6
0
		void HandleNodeDeleted (object sender, TreeNodeChildEventArgs e)
		{
			if (e.Node == null) {
				adapter.EmitRowDeleted (new Gtk.TreePath (new int[] { e.ChildIndex }));
			} else {
				Gtk.TreeIter it = IterFromNode (e.Node);
				var p = GetPath (it);
				int[] idx = new int [p.Indices.Length + 1];
				p.Indices.CopyTo (idx, 0);
				idx [idx.Length - 1] = e.ChildIndex;
				adapter.EmitRowDeleted (new Gtk.TreePath (idx));
			}
		}
Example #7
0
		private void OnNodeDeleted (TreeNodeChildEventArgs e)
		{
			var handler = NodeDeleted;
			if (handler != null)
				handler (this, e);
		}