Browse Source

Update to AvalonDock 1.2.2648

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4992 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
0b1ed6d700
  1. 8
      SharpDevelop.Tests.sln
  2. 3
      src/Libraries/AvalonDock/DockableContent.cs
  3. 8
      src/Libraries/AvalonDock/DockableFloatingWindow.cs
  4. 21
      src/Libraries/AvalonDock/DockablePane.cs
  5. 14
      src/Libraries/AvalonDock/DockingManager.cs
  6. 26
      src/Libraries/AvalonDock/DocumentContent.cs
  7. 6
      src/Libraries/AvalonDock/DocumentFloatingWindow.cs
  8. 2
      src/Libraries/AvalonDock/DocumentPane.cs
  9. 15
      src/Libraries/AvalonDock/FloatingWindow.cs
  10. 10
      src/Libraries/AvalonDock/FlyoutDockablePane.cs
  11. 15
      src/Libraries/AvalonDock/Pane.cs
  12. 2
      src/Libraries/AvalonDock/Properties/AssemblyInfo.cs

8
SharpDevelop.Tests.sln

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 11.00 Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10 # Visual Studio 10
# SharpDevelop 4.0.0.4966 # SharpDevelop 4.0.0.4979
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject ProjectSection(SolutionItems) = postProject
EndProjectSection EndProjectSection
@ -556,6 +556,8 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@ -950,6 +952,10 @@ Global
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|Any CPU.Build.0 = Release|Any CPU {D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|Any CPU.Build.0 = Release|Any CPU
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68D5EE3B-0C35-4DF1-BD29-6606851A02C1}.Debug|Win32.Build.0 = Debug|Win32
{68D5EE3B-0C35-4DF1-BD29-6606851A02C1}.Debug|Win32.ActiveCfg = Debug|Win32
{68D5EE3B-0C35-4DF1-BD29-6606851A02C1}.Release|Win32.Build.0 = Release|Win32
{68D5EE3B-0C35-4DF1-BD29-6606851A02C1}.Release|Win32.ActiveCfg = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

3
src/Libraries/AvalonDock/DockableContent.cs

@ -415,7 +415,8 @@ namespace AvalonDock
} }
else if (!e.Handled && e.Command == DockableContent.HideCommand) else if (!e.Handled && e.Command == DockableContent.HideCommand)
{ {
Manager.Hide(this); //Manager.Hide(this);
e.Handled = true; e.Handled = true;
} }
else if (!e.Handled && e.Command == DockableContent.FloatingCommand) else if (!e.Handled && e.Command == DockableContent.FloatingCommand)

8
src/Libraries/AvalonDock/DockableFloatingWindow.cs

@ -178,7 +178,8 @@ namespace AvalonDock
while (HostedPane.Items.Count > 0) while (HostedPane.Items.Count > 0)
{ {
Manager.Hide(HostedPane.Items[0] as DockableContent); //Manager.Hide(HostedPane.Items[0] as DockableContent);
HostedPane.CloseOrHide(HostedPane.Items[0] as DockableContent);
} }
Manager.UnregisterFloatingWindow(this); Manager.UnregisterFloatingWindow(this);
@ -228,8 +229,9 @@ namespace AvalonDock
} }
else if (e.Command == CloseCommand) else if (e.Command == CloseCommand)
{ {
DockableContent currentContent = HostedPane.SelectedItem as DockableContent; //DockableContent currentContent = HostedPane.SelectedItem as DockableContent;
Manager.Hide(currentContent); //Manager.Hide(currentContent);
HostedPane.CloseOrHide();
if (HostedPane.Items.Count == 0) if (HostedPane.Items.Count == 0)
this.Close(); this.Close();
e.Handled = true; e.Handled = true;

21
src/Libraries/AvalonDock/DockablePane.cs

@ -386,7 +386,7 @@ namespace AvalonDock
} }
else if (e.Command == CloseCommand) else if (e.Command == CloseCommand)
{ {
Close(); CloseOrHide();
e.Handled = true; e.Handled = true;
} }
else if (e.Command == ShowOptionsCommand) else if (e.Command == ShowOptionsCommand)
@ -481,21 +481,18 @@ namespace AvalonDock
GetManager().ToggleAutoHide(this); GetManager().ToggleAutoHide(this);
} }
/// <summary> /// <summary>
/// Close current content /// Closes or hides current content depending on HideOnClose property
/// </summary> /// </summary>
internal virtual void Close() internal void CloseOrHide()
{
//GetManager().Hide(SelectedItem as DockableContent);
if (SelectedItem is DockableContent)
{ {
DockableContent item = SelectedItem as DockableContent; CloseOrHide(SelectedItem as DockableContent);
if (item.HideOnClose)
GetManager().Hide(SelectedItem as DockableContent);
else
this.Items.Remove(SelectedItem as DockableContent);
}
} }
#endregion #endregion
} }

14
src/Libraries/AvalonDock/DockingManager.cs

@ -265,6 +265,9 @@ namespace AvalonDock
_activeDocument = value; _activeDocument = value;
NotifyPropertyChanged("ActiveDocument"); NotifyPropertyChanged("ActiveDocument");
if (ActiveContent == null)
ActiveContent = value;
} }
} }
} }
@ -340,11 +343,12 @@ namespace AvalonDock
{ {
List<DockableContent> contents = FindContents<DockableContent>(); List<DockableContent> contents = FindContents<DockableContent>();
foreach (FloatingWindow flWindow in _floatingWindows) //FindContents already returns contents from FloatingWindows (sg #68987)
{ //foreach (FloatingWindow flWindow in _floatingWindows)
foreach (DockableContent content in flWindow.HostedPane.Items) //{
contents.Add(content); // foreach (DockableContent content in flWindow.HostedPane.Items)
} // contents.Add(content);
//}
foreach (DockableContent content in _hiddenContents) foreach (DockableContent content in _hiddenContents)
contents.Add(content); contents.Add(content);

26
src/Libraries/AvalonDock/DocumentContent.cs

@ -204,9 +204,20 @@ namespace AvalonDock
/// </summary> /// </summary>
internal void InternalClose() internal void InternalClose()
{ {
DocumentPane parentPane = ContainerPane as DocumentPane; DocumentPane parentPane = ContainerPane as DocumentPane;
DockingManager manager = Manager; DockingManager manager = Manager;
if (manager != null)
{
if (manager.ActiveContent == this)
manager.ActiveContent = null;
if (manager.ActiveDocument == this)
manager.ActiveDocument = null;
}
if (parentPane != null) if (parentPane != null)
{ {
parentPane.Items.Remove(this); parentPane.Items.Remove(this);
@ -219,20 +230,15 @@ namespace AvalonDock
if (floatingParentPane != null) if (floatingParentPane != null)
{ {
floatingParentPane.RemoveContent(0); floatingParentPane.RemoveContent(0);
if (floatingParentPane.FloatingWindow != null &&
!floatingParentPane.FloatingWindow.IsClosing)
floatingParentPane.FloatingWindow.Close(); floatingParentPane.FloatingWindow.Close();
} }
} }
if (manager != null)
{
if (manager.ActiveDocument == this)
manager.ActiveDocument = null;
if (manager.ActiveContent == this)
manager.ActiveContent = null;
}
} }
/// <summary> /// <summary>
@ -277,9 +283,9 @@ namespace AvalonDock
oldManager.FireDocumentClosedEvent(); oldManager.FireDocumentClosedEvent();
if (Parent != null) //if (Parent != null)
throw new InvalidOperationException("Parent MUST bu null after Doc is closed"); // throw new InvalidOperationException();
Debug.Assert(Parent == null, "Parent MUST bu null after Doc is closed");
return true; return true;
} }

6
src/Libraries/AvalonDock/DocumentFloatingWindow.cs

@ -343,6 +343,11 @@ namespace AvalonDock
protected override void OnClosing(CancelEventArgs e) protected override void OnClosing(CancelEventArgs e)
{ {
base.OnClosing(e);
if (e.Cancel)
return;
if (this.HostedPane.Items.Count > 0) if (this.HostedPane.Items.Count > 0)
{ {
DocumentContent docContent = this.HostedPane.Items[0] as DocumentContent; DocumentContent docContent = this.HostedPane.Items[0] as DocumentContent;
@ -352,7 +357,6 @@ namespace AvalonDock
this.HostedPane.Items.Remove(docContent); this.HostedPane.Items.Remove(docContent);
} }
base.OnClosing(e);
} }
} }
} }

2
src/Libraries/AvalonDock/DocumentPane.cs

@ -144,7 +144,7 @@ namespace AvalonDock
DockableContent dockableContent = contentToClose as DockableContent; DockableContent dockableContent = contentToClose as DockableContent;
if (dockableContent != null) if (dockableContent != null)
GetManager().Hide(dockableContent); CloseOrHide(dockableContent);
else else
{ {
DocumentContent documentContent = contentToClose as DocumentContent; DocumentContent documentContent = contentToClose as DocumentContent;

15
src/Libraries/AvalonDock/FloatingWindow.cs

@ -141,6 +141,21 @@ namespace AvalonDock
} }
#endregion #endregion
#region IsClosing Flag Management
internal bool IsClosing { get; private set; }
protected override void OnClosing(CancelEventArgs e)
{
IsClosing = true;
base.OnClosing(e);
}
protected override void OnClosed(EventArgs e)
{
IsClosing = false;
base.OnClosed(e);
}
#endregion
public abstract Pane ClonePane(); public abstract Pane ClonePane();

10
src/Libraries/AvalonDock/FlyoutDockablePane.cs

@ -101,9 +101,11 @@ namespace AvalonDock
{ {
GetManager().ToggleAutoHide(_referencedPane); GetManager().ToggleAutoHide(_referencedPane);
} }
internal override void Close() //internal override void Close()
{ //{
GetManager().Hide(SelectedItem as DockableContent); // DockingManager manager = GetManager();
} // if (manager != null)
// Manager.Hide(SelectedItem as DockableContent);
//}
} }
} }

15
src/Libraries/AvalonDock/Pane.cs

@ -260,6 +260,21 @@ namespace AvalonDock
return LogicalTreeHelper.GetParent(this) as ResizingPanel; return LogicalTreeHelper.GetParent(this) as ResizingPanel;
} }
/// <summary>
/// Closes or hides provided content depending on HideOnClose property
/// </summary>
internal virtual void CloseOrHide(DockableContent cntToCloseOrHide)
{
Debug.Assert(cntToCloseOrHide != null);
DockingManager manager = GetManager();
if (cntToCloseOrHide.HideOnClose && manager != null)
manager.Hide(cntToCloseOrHide);
else
RemoveContent(Items.IndexOf(cntToCloseOrHide));
}
#region INotifyPropertyChanged Members #region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;

2
src/Libraries/AvalonDock/Properties/AssemblyInfo.cs

@ -59,4 +59,4 @@ using System.Runtime.InteropServices;
// //
// You can specify all the values or you can default the Revision and Build Numbers // You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
[assembly: AssemblyVersion("1.2.2641")] [assembly: AssemblyVersion("1.2.2648")]

Loading…
Cancel
Save