Browse Source

Pads

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0wpf@3311 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
663937bbf1
  1. 8
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs
  2. 17
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonPadContent.cs
  3. 2
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonWorkbenchWindow.cs
  4. 12
      src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs

8
src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs

@ -55,12 +55,19 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -55,12 +55,19 @@ namespace ICSharpCode.SharpDevelop.Gui
public void Attach(IWorkbench workbench)
{
if (this.workbench != null)
throw new InvalidOperationException("Can attach only once!");
this.workbench = (WpfWorkbench)workbench;
this.workbench.mainContent.Content = dockingManager;
foreach (PadDescriptor pd in workbench.PadContentCollection) {
ShowPad(pd);
}
LoadConfiguration();
}
public void Detach()
{
StoreConfiguration();
this.workbench.mainContent.Content = null;
}
@ -161,7 +168,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -161,7 +168,6 @@ namespace ICSharpCode.SharpDevelop.Gui
public void LoadConfiguration()
{
return;
try {
if (File.Exists(LayoutConfiguration.CurrentLayoutFileName)) {
dockingManager.RestoreLayout(LayoutConfiguration.CurrentLayoutFileName);

17
src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonPadContent.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
using System;
using AvalonDock;
using ICSharpCode.Core;
using System.Windows;
namespace ICSharpCode.SharpDevelop.Gui
{
@ -17,13 +18,27 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -17,13 +18,27 @@ namespace ICSharpCode.SharpDevelop.Gui
sealed class AvalonPadContent : DockableContent
{
PadDescriptor descriptor;
IPadContent content;
public AvalonPadContent(PadDescriptor descriptor)
{
this.descriptor = descriptor;
this.Name = descriptor.Class.Replace('.', '_');
this.Title = StringParser.Parse(descriptor.Title);
this.Content = descriptor.Class;
this.Content = "Placeholder for " + descriptor.Class;
this.Loaded += AvalonPadContent_Loaded;
}
void AvalonPadContent_Loaded(object sender, RoutedEventArgs e)
{
this.Loaded -= AvalonPadContent_Loaded;
// the first time the pad is "loaded"
content = descriptor.PadContent;
if (content != null) {
this.Content = AvalonWorkbenchWindow.WrapContent(content.Content);
}
}
}
}

2
src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonWorkbenchWindow.cs

@ -177,7 +177,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -177,7 +177,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
static object WrapContent(object content)
internal static object WrapContent(object content)
{
if (content is System.Windows.Forms.Control) {
return new System.Windows.Forms.Integration.WindowsFormsHost {

12
src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs

@ -126,7 +126,9 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -126,7 +126,9 @@ namespace ICSharpCode.SharpDevelop.Gui
//workbenchLayout.ActiveWorkbenchWindowChanged -= OnActiveWindowChanged;
workbenchLayout.Detach();
}
value.Attach(this);
if (value != null) {
value.Attach(this);
}
workbenchLayout = value;
//workbenchLayout.ActiveWorkbenchWindowChanged += OnActiveWindowChanged;
//OnActiveWindowChanged(null, null);
@ -209,5 +211,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -209,5 +211,13 @@ namespace ICSharpCode.SharpDevelop.Gui
this.Height = memento.Get("Height", 400.0);
this.WindowState = memento.Get("WindowState", System.Windows.WindowState.Maximized);
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (!e.Cancel) {
this.WorkbenchLayout = null;
}
}
}
}

Loading…
Cancel
Save