//----------------------------------------------------------------------------------------- private void moveNodeMode_update(Point _location) { if (!MoveNodeMode) { return; } m_moveNode_currentPos = _location; if (!m_moveNode_started) { int delta = Math.Abs(_location.X - m_moveNode_startPos.X); delta += Math.Abs(_location.Y - m_moveNode_startPos.Y); if (delta <= 5) { return; } m_moveNode_started = true; } if (OverviewNode == null) { m_moveNode_enabled = false; } else if (OverviewNode == SelectedNode) { m_moveNode_enabled = false; } else if (SelectedNode.ParentNode == OverviewNode) { m_moveNode_enabled = false; } else if (SelectedNode.ContaintRecursive(OverviewNode)) { m_moveNode_enabled = false; } else if (OverviewNode.Children.Count >= OverviewNode.Data.rightCapacity) { m_moveNode_enabled = false; } else { m_moveNode_enabled = true; } Cursor.Current = m_moveNode_enabled ? Cursors.Hand : Cursors.No; Refresh(); }