Brewmaster.Layout.LayoutHandler.CheckDockLocation C# (CSharp) Method

CheckDockLocation() private method

private CheckDockLocation ( Brewmaster.Layout.MultiSplitContainer container ) : bool
container Brewmaster.Layout.MultiSplitContainer
return bool
		private bool CheckDockLocation(MultiSplitContainer container)
		{
			var horizontal = container.Horizontal;
			var absoluteBounds = container.Parent.RectangleToScreen(container.Bounds);
			if (!absoluteBounds.Contains(Cursor.Position)) return false;

			foreach (var panel in container.Panels)
			{
				if (CheckGroupDock(panel.ControlContainer.Controls[0] as IdePanel)) return true;
			}

			var splits = new List<LayoutSplit>();
			var splitIndex = 0;
			var closestSplit = new LayoutSplit
			{
				Location = horizontal ? absoluteBounds.Left : absoluteBounds.Top,
				Index = splitIndex,
				Parent = container,
				Horizontal = horizontal
			};
			foreach (var split in container.Splits)
				splits.Add(new LayoutSplit
				{
					Location = closestSplit.Location + split,
					Index = ++splitIndex,
					Parent = container,
					Horizontal = horizontal
				});
			SuggestClosestSplit(closestSplit, splits, absoluteBounds, horizontal);
			return true;
		}