diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index 9fb78c55c8..d2ccb325aa 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -74,73 +74,84 @@
title = "${res:MainWindow.Windows.ProjectScoutLabel}"
icon = "PadIcons.ProjectBrowser"
shortcut = "Control|Alt|L"
- class = "ICSharpCode.SharpDevelop.Project.ProjectBrowserPad"/>
+ class = "ICSharpCode.SharpDevelop.Project.ProjectBrowserPad"
+ defaultPosition = "Left" />
+ class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserPad"
+ defaultPosition = "Right" />
+ class = "ICSharpCode.SharpDevelop.Gui.ToolsPad"
+ defaultPosition = "Left" />
+ class = "ICSharpCode.SharpDevelop.Gui.ErrorListPad"
+ defaultPosition = "Bottom" />
+ class = "ICSharpCode.SharpDevelop.Gui.TaskListPad"
+ defaultPosition = "Bottom" />
+ class = "ICSharpCode.SharpDevelop.Gui.CompilerMessageView"
+ defaultPosition = "Bottom" />
+ class = "ICSharpCode.SharpDevelop.Gui.PropertyPad"
+ defaultPosition = "Right" />
+ class = "ICSharpCode.SharpDevelop.Gui.FileScout"
+ defaultPosition = "Left, Hidden" />
+ class = "SearchAndReplace.SearchResultPanel"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Bookmarks.BookmarkPad"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Gui.DefinitionViewPad"
+ defaultPosition = "Bottom, Hidden" />
@@ -933,7 +944,7 @@
-
+
@@ -1473,7 +1484,7 @@
class = "ICSharpCode.SharpDevelop.Project.Commands.StopDebuggingCommand"/>
-
+
-
+
diff --git a/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.addin b/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.addin
index b048039a79..38222765cc 100644
--- a/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.addin
+++ b/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.addin
@@ -161,7 +161,8 @@
category = "Setup"
title = "${res:ICSharpCode.WixBinding.SetupDialogListPad.Title}"
icon = "Setup.Icons.16x16.SetupDialogsPad"
- class = "ICSharpCode.WixBinding.SetupDialogListPad"/>
+ class = "ICSharpCode.WixBinding.SetupDialogListPad"
+ defaultPosition = "Bottom, Hidden" />
diff --git a/src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/ClassDiagramAddin.addin b/src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/ClassDiagramAddin.addin
index 3751ebc5d9..0586b957b0 100644
--- a/src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/ClassDiagramAddin.addin
+++ b/src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/ClassDiagramAddin.addin
@@ -144,7 +144,8 @@
category = "Tools"
title = "Class Editor"
class = "ClassDiagramAddin.ClassEditorPad"
- icon = "ClassDiagram.ClassEditor" />
+ icon = "ClassDiagram.ClassEditor"
+ defaultPosition = "Right, Hidden" />
diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin
index d6f6eeb254..4876f58d68 100644
--- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin
+++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin
@@ -169,7 +169,8 @@
icon = "PadIcons.XPathQuery"
title = "${res:ICSharpCode.XmlEditor.XPathQueryPad.Title}"
insertafter = "UnitTestingPad"
- class = "ICSharpCode.XmlEditor.XPathQueryPad"/>
+ class = "ICSharpCode.XmlEditor.XPathQueryPad"
+ defaultPosition = "Bottom, Hidden" />
diff --git a/src/AddIns/Misc/CodeCoverage/Project/CodeCoverage.addin b/src/AddIns/Misc/CodeCoverage/Project/CodeCoverage.addin
index e0562c7211..b06aa6452b 100644
--- a/src/AddIns/Misc/CodeCoverage/Project/CodeCoverage.addin
+++ b/src/AddIns/Misc/CodeCoverage/Project/CodeCoverage.addin
@@ -20,7 +20,8 @@
insertbefore = "DefinitionView"
icon = "CodeCoverage.Icons.16x16.Pad"
shortcut = "Control|Alt|G"
- class = "ICSharpCode.CodeCoverage.CodeCoveragePad"/>
+ class = "ICSharpCode.CodeCoverage.CodeCoveragePad"
+ defaultPosition = "Bottom, Hidden" />
diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin
index ef965b2aa0..0a335bb2de 100644
--- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin
+++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin
@@ -43,42 +43,48 @@
title = "${res:MainWindow.Windows.Debug.Breakpoints}"
icon = "PadIcons.BreakPoints"
shortcut = "Control|Alt|P"
- class = "ICSharpCode.SharpDevelop.Gui.Pads.BreakPointsPad"/>
+ class = "ICSharpCode.SharpDevelop.Gui.Pads.BreakPointsPad"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Gui.Pads.CallStackPad"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Gui.Pads.LoadedModulesPad"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Gui.Pads.RunningThreadsPad"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Gui.Pads.LocalVarPad"
+ defaultPosition = "Bottom, Hidden" />
+ class = "ICSharpCode.SharpDevelop.Gui.Pads.ConsolePad"
+ defaultPosition = "Bottom, Hidden" />
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.DynamicHelp.addin b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.DynamicHelp.addin
index 5f8f665470..88b4919146 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.DynamicHelp.addin
+++ b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.DynamicHelp.addin
@@ -15,7 +15,8 @@
category = "Help2"
title = "${res:AddIns.HtmlHelp2.DynamicHelp}"
icon = "HtmlHelp2.16x16.DynamicHelp"
- class = "HtmlHelp2.HtmlHelp2DynamicHelpPad"/>
+ class = "HtmlHelp2.HtmlHelp2DynamicHelpPad"
+ defaultPosition = "Right, Hidden" />
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin
index cb63b2fea0..1c4145ff0d 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin
+++ b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin
@@ -24,22 +24,26 @@
category = "Help2"
title = "${res:AddIns.HtmlHelp2.Contents}"
icon = "HtmlHelp2.16x16.Toc"
- class = "HtmlHelp2.HtmlHelp2TocPad"/>
+ class = "HtmlHelp2.HtmlHelp2TocPad"
+ defaultPosition = "Right, Hidden" />
+ class = "HtmlHelp2.HtmlHelp2IndexPad"
+ defaultPosition = "Right, Hidden" />
+ class = "HtmlHelp2.HtmlHelp2SearchPad"
+ defaultPosition = "Right, Hidden" />
+ class = "HtmlHelp2.HtmlHelp2IndexResultsPad"
+ defaultPosition = "Bottom, Hidden" />
diff --git a/src/AddIns/Misc/UnitTesting/UnitTesting.addin b/src/AddIns/Misc/UnitTesting/UnitTesting.addin
index 799e70a629..c3ce1ce4cf 100644
--- a/src/AddIns/Misc/UnitTesting/UnitTesting.addin
+++ b/src/AddIns/Misc/UnitTesting/UnitTesting.addin
@@ -20,7 +20,8 @@
title = "${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
icon = "PadIcons.NUnitTest"
shortcut = "Control|Alt|T"
- class = "ICSharpCode.UnitTesting.UnitTestsPad"/>
+ class = "ICSharpCode.UnitTesting.UnitTestsPad"
+ defaultPosition = "Right, Hidden" />
diff --git a/src/Main/Base/Project/Src/Gui/IWorkbenchLayout.cs b/src/Main/Base/Project/Src/Gui/IWorkbenchLayout.cs
index be42f1bbb1..1f8106a676 100644
--- a/src/Main/Base/Project/Src/Gui/IWorkbenchLayout.cs
+++ b/src/Main/Base/Project/Src/Gui/IWorkbenchLayout.cs
@@ -62,7 +62,6 @@ namespace ICSharpCode.SharpDevelop.Gui
/// bring it to foreground)
///
void ActivatePad(PadDescriptor content);
- void ActivatePad(string fullyQualifiedTypeName);
///
/// Hides a .
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
index 729cd0b835..3a0bb93b57 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
@@ -131,7 +131,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void ProjectServiceEndBuild(object sender, EventArgs e)
{
if (TaskService.TaskCount > 0 && ShowAfterBuild) {
- WorkbenchSingleton.Workbench.WorkbenchLayout.ActivatePad(this.GetType().FullName);
+ WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront();
}
UpdateToolstripStatus();
}
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs
index 1b5d32cd43..6101989d6b 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs
@@ -92,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Project
public virtual void ShowProperties()
{
- WorkbenchSingleton.Workbench.WorkbenchLayout.ActivatePad(typeof(PropertyPad).FullName);
+ WorkbenchSingleton.Workbench.GetPad(typeof(PropertyPad)).BringPadToFront();
}
public static bool IsSomewhereBelow(string path, ProjectItem item)
diff --git a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs
index 6739fdfcd1..2c446ebc8c 100644
--- a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs
+++ b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs
@@ -117,8 +117,19 @@ namespace ICSharpCode.SharpDevelop.Gui
pad = new AvalonPadContent(this, content);
pads.Add(content, pad);
padsByClass.Add(content.Class, pad);
- dockingManager.Show(pad, DockableContentState.Docked, AnchorStyle.Right);
+ AnchorStyle style;
+ if ((content.DefaultPosition & DefaultPadPositions.Top) != 0)
+ style = AnchorStyle.Top;
+ else if ((content.DefaultPosition & DefaultPadPositions.Left) != 0)
+ style = AnchorStyle.Left;
+ else if ((content.DefaultPosition & DefaultPadPositions.Bottom) != 0)
+ style = AnchorStyle.Bottom;
+ else
+ style = AnchorStyle.Right;
+ dockingManager.Show(pad, DockableContentState.Docked, style);
SetPaneSizeWorkaround(pad.ContainerPane);
+ if ((content.DefaultPosition & DefaultPadPositions.Hidden) != 0)
+ dockingManager.Hide(pad);
}
}
@@ -127,26 +138,27 @@ namespace ICSharpCode.SharpDevelop.Gui
ResizingPanel panel = pane.Parent as ResizingPanel;
if (panel.Orientation == Orientation.Horizontal) {
if (ResizingPanel.GetResizeWidth(pane) == 0)
- ResizingPanel.SetResizeWidth(pane, 150);
+ ResizingPanel.SetResizeWidth(pane, 200);
} else if (panel.Orientation == Orientation.Vertical) {
if (ResizingPanel.GetResizeHeight(pane) == 0)
- ResizingPanel.SetResizeHeight(pane, 100);
+ ResizingPanel.SetResizeHeight(pane, 150);
}
}
public void ActivatePad(PadDescriptor content)
{
- pads[content].BringIntoView();
- }
-
- public void ActivatePad(string fullyQualifiedTypeName)
- {
- padsByClass[fullyQualifiedTypeName].BringIntoView();
+ AvalonPadContent p;
+ if (pads.TryGetValue(content, out p))
+ p.BringIntoView();
+ else
+ ShowPad(content);
}
public void HidePad(PadDescriptor content)
{
- dockingManager.Hide(pads[content]);
+ AvalonPadContent p;
+ if (pads.TryGetValue(content, out p))
+ dockingManager.Hide(p);
}
public void UnloadPad(PadDescriptor content)
@@ -161,8 +173,11 @@ namespace ICSharpCode.SharpDevelop.Gui
public bool IsVisible(PadDescriptor padContent)
{
- AvalonPadContent pad = pads[padContent];
- return pad.IsVisible;
+ AvalonPadContent p;
+ if (pads.TryGetValue(padContent, out p))
+ return p.IsVisible;
+ else
+ return false;
}
public IWorkbenchWindow ShowView(IViewContent content)
diff --git a/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs b/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs
index 792ca4596e..dfc0da25de 100644
--- a/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs
+++ b/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs
@@ -11,6 +11,21 @@ using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop
{
+ ///
+ /// Indicates the default position for a pad.
+ /// This is a bit-flag enum, Hidden can be combined with the directions.
+ ///
+ [Flags]
+ public enum DefaultPadPositions
+ {
+ None = 0,
+ Right = 1,
+ Left = 2,
+ Bottom = 4,
+ Top = 8,
+ Hidden = 16
+ }
+
///
/// Describes a pad.
///
@@ -39,6 +54,9 @@ namespace ICSharpCode.SharpDevelop
icon = codon.Properties["icon"];
title = codon.Properties["title"];
@class = codon.Properties["class"];
+ if (!string.IsNullOrEmpty(codon.Properties["defaultPosition"])) {
+ DefaultPosition = (DefaultPadPositions)Enum.Parse(typeof(DefaultPadPositions), codon.Properties["defaultPosition"]);
+ }
}
///
@@ -111,6 +129,11 @@ namespace ICSharpCode.SharpDevelop
}
}
+ ///
+ /// Gets/sets the default position of the pad.
+ ///
+ public DefaultPadPositions DefaultPosition { get; set; }
+
public IPadContent PadContent {
get {
CreatePad();