public void AddTool(IDock layout, AvaloniaToolDockWrapper toolWrapper, ToolPreferedPosition position) { var toolDock = FindDockable(layout, dockable => dockable is ToolDock) as ToolDock; if (position == ToolPreferedPosition.Left) { toolDock = null; } if (toolDock == null) { toolDock = new ToolDock { Id = "tool", Title = "Tools", Proportion = 0.2f, CanFloat = false }; if (position == ToolPreferedPosition.Left) { InsertDockable(layout, CreateProportionalDockSplitter(), 0); InsertDockable(layout, toolDock, 0); } else { AddDockable(layout, CreateProportionalDockSplitter()); AddDockable(layout, toolDock); } } AddDockable(toolDock, toolWrapper); }
private static string GetPaneName(ToolPreferedPosition location) { switch (location) { case ToolPreferedPosition.Left: return("LeftPane"); case ToolPreferedPosition.Right: return("RightPane"); case ToolPreferedPosition.Bottom: return("BottomPane"); default: throw new ArgumentOutOfRangeException("location"); } }