Browse Source

V4.6.0 Released

pull/1788/head 4.6.0
Simon Boucher 2 years ago
parent
commit
03d4331dc6
  1. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroColors.cs
  2. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroTheme.cs
  3. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Brushes.xaml
  4. 30
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Controls/SplineBorder.cs
  5. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs
  6. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml
  7. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Brushes.xaml
  8. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/MetroTheme.cs
  9. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs
  10. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml
  11. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Brushes.xaml
  12. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs
  13. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml
  14. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/VS2010Theme.cs
  15. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Commands/RelayCommand.cs
  16. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneControlOverlayArea.cs
  17. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneDropTarget.cs
  18. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTabPanel.cs
  19. 24
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTitle.cs
  20. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AutoHideWindowManager.cs
  21. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/BindingHelper.cs
  22. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ContextMenuEx.cs
  23. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerDropTarget.cs
  24. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerOverlayArea.cs
  25. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneControlOverlayArea.cs
  26. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropAsAnchorableTarget.cs
  27. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs
  28. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneGroupDropTarget.cs
  29. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneTabPanel.cs
  30. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DragService.cs
  31. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropArea.cs
  32. 22
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownButton.cs
  33. 16
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownControlArea.cs
  34. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTarget.cs
  35. 13
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetBase.cs
  36. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetType.cs
  37. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Extentions.cs
  38. 16
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FocusElementManager.cs
  39. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FullWeakDictionary.cs
  40. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IDropTarget.cs
  41. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindow.cs
  42. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowArea.cs
  43. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowDropTarget.cs
  44. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowHost.cs
  45. 14
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorControl.cs
  46. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorGroupControl.cs
  47. 50
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorSideControl.cs
  48. 27
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableControl.cs
  49. 15
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs
  50. 65
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableItem.cs
  51. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs
  52. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneGroupControl.cs
  53. 27
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableTabItem.cs
  54. 16
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAutoHideWindowControl.cs
  55. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs
  56. 27
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs
  57. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs
  58. 15
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentItem.cs
  59. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs
  60. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneGroupControl.cs
  61. 27
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentTabItem.cs
  62. 46
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs
  63. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs
  64. 16
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridResizerControl.cs
  65. 243
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs
  66. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutPanelControl.cs
  67. 28
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/MenuItemEx.cs
  68. 52
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/NavigatorWindow.cs
  69. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayArea.cs
  70. 15
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindow.cs
  71. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTarget.cs
  72. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTargetType.cs
  73. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ReentrantFlag.cs
  74. 38
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ComGuids.cs
  75. 114
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Debug.cs
  76. 75
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DoubleUtil.cs
  77. 12
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DpiHelper.cs
  78. 104
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ErrorCodes.cs
  79. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/MessageWindow.cs
  80. 226
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/NativeMethods.cs
  81. 182
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ShellProvider.cs
  82. 162
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/StreamHelper.cs
  83. 56
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Utilities.cs
  84. 57
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Verify.cs
  85. 4
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemCommands.cs
  86. 5
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemParameters2.cs
  87. 7
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChrome.cs
  88. 28
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChromeWorker.cs
  89. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/TransformExtentions.cs
  90. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WeakDictionary.cs
  91. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowActivateEventArgs.cs
  92. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowHookHandler.cs
  93. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/ActivateCommandLayoutItemFromLayoutModelConverter.cs
  94. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToAngleConverter.cs
  95. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToOrientationConverter.cs
  96. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorableContextMenuAutoHideHeaderConverter.cs
  97. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorableContextMenuHideVisibilityConverter.cs
  98. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AutoHideCommandLayoutItemFromLayoutModelConverter.cs
  99. 23
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/BoolToVisibilityConverter.cs
  100. 2
      ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/HideCommandLayoutItemFromLayoutModelConverter.cs

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroColors.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/AeroTheme.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Brushes.xaml

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

30
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Controls/SplineBorder.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -32,17 +32,10 @@ namespace Xceed.Wpf.AvalonDock.Themes.Controls
#region Thickness #region Thickness
/// <summary>
/// Thickness Dependency Property
/// </summary>
public static readonly DependencyProperty ThicknessProperty = public static readonly DependencyProperty ThicknessProperty =
DependencyProperty.Register( "Thickness", typeof( double ), typeof( SplineBorder ), DependencyProperty.Register( "Thickness", typeof( double ), typeof( SplineBorder ),
new FrameworkPropertyMetadata( ( double )1.0, FrameworkPropertyMetadataOptions.AffectsRender ) ); new FrameworkPropertyMetadata( ( double )1.0, FrameworkPropertyMetadataOptions.AffectsRender ) );
/// <summary>
/// Gets or sets the Thickness property. This dependency property
/// indicates the border thickness.
/// </summary>
public double Thickness public double Thickness
{ {
get get
@ -59,17 +52,10 @@ namespace Xceed.Wpf.AvalonDock.Themes.Controls
#region Fill #region Fill
/// <summary>
/// Fill Dependency Property
/// </summary>
public static readonly DependencyProperty FillProperty = public static readonly DependencyProperty FillProperty =
DependencyProperty.Register( "Fill", typeof( Brush ), typeof( SplineBorder ), DependencyProperty.Register( "Fill", typeof( Brush ), typeof( SplineBorder ),
new FrameworkPropertyMetadata( ( Brush )null, FrameworkPropertyMetadataOptions.AffectsRender ) ); new FrameworkPropertyMetadata( ( Brush )null, FrameworkPropertyMetadataOptions.AffectsRender ) );
/// <summary>
/// Gets or sets the Fill property. This dependency property
/// indicates the fill color.
/// </summary>
public Brush Fill public Brush Fill
{ {
get get
@ -86,17 +72,10 @@ namespace Xceed.Wpf.AvalonDock.Themes.Controls
#region Stroke #region Stroke
/// <summary>
/// Stroke Dependency Property
/// </summary>
public static readonly DependencyProperty StrokeProperty = public static readonly DependencyProperty StrokeProperty =
DependencyProperty.Register( "Stroke", typeof( Brush ), typeof( SplineBorder ), DependencyProperty.Register( "Stroke", typeof( Brush ), typeof( SplineBorder ),
new FrameworkPropertyMetadata( Brushes.Black, FrameworkPropertyMetadataOptions.AffectsRender ) ); new FrameworkPropertyMetadata( Brushes.Black, FrameworkPropertyMetadataOptions.AffectsRender ) );
/// <summary>
/// Gets or sets the Stroke property. This dependency property
/// indicates the stroke brush.
/// </summary>
public Brush Stroke public Brush Stroke
{ {
get get
@ -113,17 +92,10 @@ namespace Xceed.Wpf.AvalonDock.Themes.Controls
#region BottomBorderMargin #region BottomBorderMargin
/// <summary>
/// BottomBorderMargin Dependency Property
/// </summary>
public static readonly DependencyProperty BottomBorderMarginProperty = public static readonly DependencyProperty BottomBorderMarginProperty =
DependencyProperty.Register( "BottomBorderMargin", typeof( double ), typeof( SplineBorder ), DependencyProperty.Register( "BottomBorderMargin", typeof( double ), typeof( SplineBorder ),
new FrameworkPropertyMetadata( ( double )0.0, FrameworkPropertyMetadataOptions.AffectsRender ) ); new FrameworkPropertyMetadata( ( double )0.0, FrameworkPropertyMetadataOptions.AffectsRender ) );
/// <summary>
/// Gets or sets the BottomBorderMargin property. This dependency property
/// indicates the adjustment for the bottom margin.
/// </summary>
public double BottomBorderMargin public double BottomBorderMargin
{ {
get get

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Brushes.xaml

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/MetroTheme.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Properties/AssemblyInfo.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Brushes.xaml

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Properties/AssemblyInfo.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/Theme.xaml

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.VS2010/VS2010Theme.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Commands/RelayCommand.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneControlOverlayArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTabPanel.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

24
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AnchorablePaneTitle.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -50,16 +50,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Model #region Model
/// <summary>
/// Model Dependency Property
/// </summary>
public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutAnchorable ), typeof( AnchorablePaneTitle ), public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutAnchorable ), typeof( AnchorablePaneTitle ),
new FrameworkPropertyMetadata( ( LayoutAnchorable )null, new PropertyChangedCallback( _OnModelChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutAnchorable )null, new PropertyChangedCallback( _OnModelChanged ) ) );
/// <summary>
/// Gets or sets the Model property. This dependency property
/// indicates model attached to this view.
/// </summary>
public LayoutAnchorable Model public LayoutAnchorable Model
{ {
get get
@ -77,9 +70,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
( ( AnchorablePaneTitle )sender ).OnModelChanged( e ); ( ( AnchorablePaneTitle )sender ).OnModelChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Model property.
/// </summary>
protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e )
{ {
if( Model != null ) if( Model != null )
@ -96,18 +86,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region LayoutItem #region LayoutItem
/// <summary>
/// LayoutItem Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( AnchorablePaneTitle ), private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( AnchorablePaneTitle ),
new FrameworkPropertyMetadata( ( LayoutItem )null ) ); new FrameworkPropertyMetadata( ( LayoutItem )null ) );
public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty; public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty;
/// <summary>
/// Gets the LayoutItem property. This dependency property
/// indicates the LayoutItem attached to this tag item.
/// </summary>
public LayoutItem LayoutItem public LayoutItem LayoutItem
{ {
get get
@ -116,11 +99,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the LayoutItem property.
/// This dependency property indicates the LayoutItem attached to this tag item.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetLayoutItem( LayoutItem value ) protected void SetLayoutItem( LayoutItem value )
{ {
this.SetValue( LayoutItemPropertyKey, value ); this.SetValue( LayoutItemPropertyKey, value );

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/AutoHideWindowManager.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/BindingHelper.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ContextMenuEx.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DockingManagerOverlayArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneControlOverlayArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropAsAnchorableTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneGroupDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DocumentPaneTabPanel.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DragService.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

22
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownButton.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -36,16 +36,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropDownContextMenu #region DropDownContextMenu
/// <summary>
/// DropDownContextMenu Dependency Property
/// </summary>
public static readonly DependencyProperty DropDownContextMenuProperty = DependencyProperty.Register( "DropDownContextMenu", typeof( ContextMenu ), typeof( DropDownButton ), public static readonly DependencyProperty DropDownContextMenuProperty = DependencyProperty.Register( "DropDownContextMenu", typeof( ContextMenu ), typeof( DropDownButton ),
new FrameworkPropertyMetadata( ( ContextMenu )null, new PropertyChangedCallback( OnDropDownContextMenuChanged ) ) ); new FrameworkPropertyMetadata( ( ContextMenu )null, new PropertyChangedCallback( OnDropDownContextMenuChanged ) ) );
/// <summary>
/// Gets or sets the DropDownContextMenu property. This dependency property
/// indicates drop down menu to show up when user click on an anchorable menu pin.
/// </summary>
public ContextMenu DropDownContextMenu public ContextMenu DropDownContextMenu
{ {
get get
@ -58,17 +51,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the DropDownContextMenu property.
/// </summary>
private static void OnDropDownContextMenuChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnDropDownContextMenuChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( DropDownButton )d ).OnDropDownContextMenuChanged( e ); ( ( DropDownButton )d ).OnDropDownContextMenuChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the DropDownContextMenu property.
/// </summary>
protected virtual void OnDropDownContextMenuChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnDropDownContextMenuChanged( DependencyPropertyChangedEventArgs e )
{ {
var oldContextMenu = e.OldValue as ContextMenu; var oldContextMenu = e.OldValue as ContextMenu;
@ -80,16 +67,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropDownContextMenuDataContext #region DropDownContextMenuDataContext
/// <summary>
/// DropDownContextMenuDataContext Dependency Property
/// </summary>
public static readonly DependencyProperty DropDownContextMenuDataContextProperty = DependencyProperty.Register( "DropDownContextMenuDataContext", typeof( object ), typeof( DropDownButton ), public static readonly DependencyProperty DropDownContextMenuDataContextProperty = DependencyProperty.Register( "DropDownContextMenuDataContext", typeof( object ), typeof( DropDownButton ),
new FrameworkPropertyMetadata( ( object )null ) ); new FrameworkPropertyMetadata( ( object )null ) );
/// <summary>
/// Gets or sets the DropDownContextMenuDataContext property. This dependency property
/// indicates data context to set for drop down context menu.
/// </summary>
public object DropDownContextMenuDataContext public object DropDownContextMenuDataContext
{ {
get get

16
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropDownControlArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -40,16 +40,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropDownContextMenu #region DropDownContextMenu
/// <summary>
/// DropDownContextMenu Dependency Property
/// </summary>
public static readonly DependencyProperty DropDownContextMenuProperty = DependencyProperty.Register( "DropDownContextMenu", typeof( ContextMenu ), typeof( DropDownControlArea ), public static readonly DependencyProperty DropDownContextMenuProperty = DependencyProperty.Register( "DropDownContextMenu", typeof( ContextMenu ), typeof( DropDownControlArea ),
new FrameworkPropertyMetadata( ( ContextMenu )null ) ); new FrameworkPropertyMetadata( ( ContextMenu )null ) );
/// <summary>
/// Gets or sets the DropDownContextMenu property. This dependency property
/// indicates context menu to show when a right click is detected over the area occpied by the control.
/// </summary>
public ContextMenu DropDownContextMenu public ContextMenu DropDownContextMenu
{ {
get get
@ -66,16 +59,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DropDownContextMenuDataContext #region DropDownContextMenuDataContext
/// <summary>
/// DropDownContextMenuDataContext Dependency Property
/// </summary>
public static readonly DependencyProperty DropDownContextMenuDataContextProperty = DependencyProperty.Register( "DropDownContextMenuDataContext", typeof( object ), typeof( DropDownControlArea ), public static readonly DependencyProperty DropDownContextMenuDataContextProperty = DependencyProperty.Register( "DropDownContextMenuDataContext", typeof( object ), typeof( DropDownControlArea ),
new FrameworkPropertyMetadata( ( object )null ) ); new FrameworkPropertyMetadata( ( object )null ) );
/// <summary>
/// Gets or sets the DropDownContextMenuDataContext property. This dependency property
/// indicates data context to attach when context menu is shown.
/// </summary>
public object DropDownContextMenuDataContext public object DropDownContextMenuDataContext
{ {
get get

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

13
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetBase.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -25,25 +25,14 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsDraggingOver #region IsDraggingOver
/// <summary>
/// IsDraggingOver Attached Dependency Property
/// </summary>
public static readonly DependencyProperty IsDraggingOverProperty = DependencyProperty.RegisterAttached( "IsDraggingOver", typeof( bool ), typeof( DropTargetBase ), public static readonly DependencyProperty IsDraggingOverProperty = DependencyProperty.RegisterAttached( "IsDraggingOver", typeof( bool ), typeof( DropTargetBase ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
/// <summary>
/// Gets the IsDraggingOver property. This dependency property
/// indicates if user is dragging a window over the target element.
/// </summary>
public static bool GetIsDraggingOver( DependencyObject d ) public static bool GetIsDraggingOver( DependencyObject d )
{ {
return ( bool )d.GetValue( IsDraggingOverProperty ); return ( bool )d.GetValue( IsDraggingOverProperty );
} }
/// <summary>
/// Sets the IsDraggingOver property. This dependency property
/// indicates if user is dragging away a window from the target element.
/// </summary>
public static void SetIsDraggingOver( DependencyObject d, bool value ) public static void SetIsDraggingOver( DependencyObject d, bool value )
{ {
d.SetValue( IsDraggingOverProperty, value ); d.SetValue( IsDraggingOverProperty, value );

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/DropTargetType.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Extentions.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

16
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FocusElementManager.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -117,11 +117,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
/// <summary>
/// Get the input element that was focused before user left the layout element
/// </summary>
/// <param name="model">Element to look for</param>
/// <returns>Input element </returns>
internal static IInputElement GetLastFocusedElement( ILayoutElement model ) internal static IInputElement GetLastFocusedElement( ILayoutElement model )
{ {
IInputElement objectWithFocus; IInputElement objectWithFocus;
@ -132,11 +127,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
/// <summary>
/// Get the last window handle focused before user left the element passed as argument
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
internal static IntPtr GetLastWindowHandle( ILayoutElement model ) internal static IntPtr GetLastWindowHandle( ILayoutElement model )
{ {
IntPtr handleWithFocus; IntPtr handleWithFocus;
@ -146,10 +136,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
return IntPtr.Zero; return IntPtr.Zero;
} }
/// <summary>
/// Given a layout element tries to set the focus of the keyword where it was before user moved to another element
/// </summary>
/// <param name="model"></param>
internal static void SetFocusOnLastElement( ILayoutElement model ) internal static void SetFocusOnLastElement( ILayoutElement model )
{ {
bool focused = false; bool focused = false;

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/FullWeakDictionary.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindow.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/IOverlayWindowHost.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

14
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -67,18 +67,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Side #region Side
/// <summary>
/// Side Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey SidePropertyKey = DependencyProperty.RegisterReadOnly( "Side", typeof( AnchorSide ), typeof( LayoutAnchorControl ), private static readonly DependencyPropertyKey SidePropertyKey = DependencyProperty.RegisterReadOnly( "Side", typeof( AnchorSide ), typeof( LayoutAnchorControl ),
new FrameworkPropertyMetadata( ( AnchorSide )AnchorSide.Left ) ); new FrameworkPropertyMetadata( ( AnchorSide )AnchorSide.Left ) );
public static readonly DependencyProperty SideProperty = SidePropertyKey.DependencyProperty; public static readonly DependencyProperty SideProperty = SidePropertyKey.DependencyProperty;
/// <summary>
/// Gets the Side property. This dependency property
/// indicates the anchor side of the control.
/// </summary>
public AnchorSide Side public AnchorSide Side
{ {
get get
@ -87,11 +80,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the Side property.
/// This dependency property indicates the anchor side of the control.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetSide( AnchorSide value ) protected void SetSide( AnchorSide value )
{ {
SetValue( SidePropertyKey, value ); SetValue( SidePropertyKey, value );

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorGroupControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

50
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorSideControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -86,18 +86,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsLeftSide #region IsLeftSide
/// <summary>
/// IsLeftSide Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey IsLeftSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsLeftSide", typeof( bool ), typeof( LayoutAnchorSideControl ), private static readonly DependencyPropertyKey IsLeftSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsLeftSide", typeof( bool ), typeof( LayoutAnchorSideControl ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
public static readonly DependencyProperty IsLeftSideProperty = IsLeftSidePropertyKey.DependencyProperty; public static readonly DependencyProperty IsLeftSideProperty = IsLeftSidePropertyKey.DependencyProperty;
/// <summary>
/// Gets the IsLeftSide property. This dependency property
/// indicates this control is anchored to left side.
/// </summary>
public bool IsLeftSide public bool IsLeftSide
{ {
get get
@ -106,11 +99,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the IsLeftSide property.
/// This dependency property indicates this control is anchored to left side.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetIsLeftSide( bool value ) protected void SetIsLeftSide( bool value )
{ {
SetValue( IsLeftSidePropertyKey, value ); SetValue( IsLeftSidePropertyKey, value );
@ -120,18 +108,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsTopSide #region IsTopSide
/// <summary>
/// IsTopSide Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey IsTopSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsTopSide", typeof( bool ), typeof( LayoutAnchorSideControl ), private static readonly DependencyPropertyKey IsTopSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsTopSide", typeof( bool ), typeof( LayoutAnchorSideControl ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
public static readonly DependencyProperty IsTopSideProperty = IsTopSidePropertyKey.DependencyProperty; public static readonly DependencyProperty IsTopSideProperty = IsTopSidePropertyKey.DependencyProperty;
/// <summary>
/// Gets the IsTopSide property. This dependency property
/// indicates this control is anchored to top side.
/// </summary>
public bool IsTopSide public bool IsTopSide
{ {
get get
@ -140,11 +121,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the IsTopSide property.
/// This dependency property indicates this control is anchored to top side.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetIsTopSide( bool value ) protected void SetIsTopSide( bool value )
{ {
SetValue( IsTopSidePropertyKey, value ); SetValue( IsTopSidePropertyKey, value );
@ -154,18 +130,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsRightSide #region IsRightSide
/// <summary>
/// IsRightSide Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey IsRightSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsRightSide", typeof( bool ), typeof( LayoutAnchorSideControl ), private static readonly DependencyPropertyKey IsRightSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsRightSide", typeof( bool ), typeof( LayoutAnchorSideControl ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
public static readonly DependencyProperty IsRightSideProperty = IsRightSidePropertyKey.DependencyProperty; public static readonly DependencyProperty IsRightSideProperty = IsRightSidePropertyKey.DependencyProperty;
/// <summary>
/// Gets the IsRightSide property. This dependency property
/// indicates this control is anchored to right side.
/// </summary>
public bool IsRightSide public bool IsRightSide
{ {
get get
@ -174,11 +143,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the IsRightSide property.
/// This dependency property indicates this control is anchored to right side.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetIsRightSide( bool value ) protected void SetIsRightSide( bool value )
{ {
SetValue( IsRightSidePropertyKey, value ); SetValue( IsRightSidePropertyKey, value );
@ -188,18 +152,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsBottomSide #region IsBottomSide
/// <summary>
/// IsBottomSide Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey IsBottomSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsBottomSide", typeof( bool ), typeof( LayoutAnchorSideControl ), private static readonly DependencyPropertyKey IsBottomSidePropertyKey = DependencyProperty.RegisterReadOnly( "IsBottomSide", typeof( bool ), typeof( LayoutAnchorSideControl ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
public static readonly DependencyProperty IsBottomSideProperty = IsBottomSidePropertyKey.DependencyProperty; public static readonly DependencyProperty IsBottomSideProperty = IsBottomSidePropertyKey.DependencyProperty;
/// <summary>
/// Gets the IsBottomSide property. This dependency property
/// indicates if this panel is anchored to bottom side.
/// </summary>
public bool IsBottomSide public bool IsBottomSide
{ {
get get
@ -208,11 +165,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the IsBottomSide property.
/// This dependency property indicates if this panel is anchored to bottom side.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetIsBottomSide( bool value ) protected void SetIsBottomSide( bool value )
{ {
SetValue( IsBottomSidePropertyKey, value ); SetValue( IsBottomSidePropertyKey, value );

27
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -42,16 +42,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Model #region Model
/// <summary>
/// Model Dependency Property
/// </summary>
public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutAnchorable ), typeof( LayoutAnchorableControl ), public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutAnchorable ), typeof( LayoutAnchorableControl ),
new FrameworkPropertyMetadata( ( LayoutAnchorable )null, new PropertyChangedCallback( OnModelChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutAnchorable )null, new PropertyChangedCallback( OnModelChanged ) ) );
/// <summary>
/// Gets or sets the Model property. This dependency property
/// indicates the model attached to this view.
/// </summary>
public LayoutAnchorable Model public LayoutAnchorable Model
{ {
get get
@ -64,17 +57,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the Model property.
/// </summary>
private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableControl )d ).OnModelChanged( e ); ( ( LayoutAnchorableControl )d ).OnModelChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Model property.
/// </summary>
protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e )
{ {
if( e.OldValue != null ) if( e.OldValue != null )
@ -115,18 +102,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region LayoutItem #region LayoutItem
/// <summary>
/// LayoutItem Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutAnchorableControl ), private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutAnchorableControl ),
new FrameworkPropertyMetadata( ( LayoutItem )null ) ); new FrameworkPropertyMetadata( ( LayoutItem )null ) );
public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty; public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty;
/// <summary>
/// Gets the LayoutItem property. This dependency property
/// indicates the LayoutItem attached to this tag item.
/// </summary>
public LayoutItem LayoutItem public LayoutItem LayoutItem
{ {
get get
@ -135,11 +115,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the LayoutItem property.
/// This dependency property indicates the LayoutItem attached to this tag item.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetLayoutItem( LayoutItem value ) protected void SetLayoutItem( LayoutItem value )
{ {
this.SetValue( LayoutItemPropertyKey, value ); this.SetValue( LayoutItemPropertyKey, value );

15
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableFloatingWindowControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -66,16 +66,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region SingleContentLayoutItem #region SingleContentLayoutItem
/// <summary>
/// SingleContentLayoutItem Dependency Property
/// </summary>
public static readonly DependencyProperty SingleContentLayoutItemProperty = DependencyProperty.Register( "SingleContentLayoutItem", typeof( LayoutItem ), typeof( LayoutAnchorableFloatingWindowControl ), public static readonly DependencyProperty SingleContentLayoutItemProperty = DependencyProperty.Register( "SingleContentLayoutItem", typeof( LayoutItem ), typeof( LayoutAnchorableFloatingWindowControl ),
new FrameworkPropertyMetadata( ( LayoutItem )null, new PropertyChangedCallback( OnSingleContentLayoutItemChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutItem )null, new PropertyChangedCallback( OnSingleContentLayoutItemChanged ) ) );
/// <summary>
/// Gets or sets the SingleContentLayoutItem property. This dependency property
/// indicates the layout item of the selected content when is shown a single anchorable pane.
/// </summary>
public LayoutItem SingleContentLayoutItem public LayoutItem SingleContentLayoutItem
{ {
get get
@ -88,17 +81,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the SingleContentLayoutItem property.
/// </summary>
private static void OnSingleContentLayoutItemChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnSingleContentLayoutItemChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableFloatingWindowControl )d ).OnSingleContentLayoutItemChanged( e ); ( ( LayoutAnchorableFloatingWindowControl )d ).OnSingleContentLayoutItemChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the SingleContentLayoutItem property.
/// </summary>
protected virtual void OnSingleContentLayoutItemChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnSingleContentLayoutItemChanged( DependencyPropertyChangedEventArgs e )
{ {
} }

65
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableItem.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -48,16 +48,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region HideCommand #region HideCommand
/// <summary>
/// HideCommand Dependency Property
/// </summary>
public static readonly DependencyProperty HideCommandProperty = DependencyProperty.Register( "HideCommand", typeof( ICommand ), typeof( LayoutAnchorableItem ), public static readonly DependencyProperty HideCommandProperty = DependencyProperty.Register( "HideCommand", typeof( ICommand ), typeof( LayoutAnchorableItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnHideCommandChanged ), new CoerceValueCallback( CoerceHideCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnHideCommandChanged ), new CoerceValueCallback( CoerceHideCommandValue ) ) );
/// <summary>
/// Gets or sets the HideCommand property. This dependency property
/// indicates the command to execute when an anchorable is hidden.
/// </summary>
public ICommand HideCommand public ICommand HideCommand
{ {
get get
@ -70,24 +63,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the HideCommand property.
/// </summary>
private static void OnHideCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnHideCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableItem )d ).OnHideCommandChanged( e ); ( ( LayoutAnchorableItem )d ).OnHideCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the HideCommand property.
/// </summary>
protected virtual void OnHideCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnHideCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the HideCommand value.
/// </summary>
private static object CoerceHideCommandValue( DependencyObject d, object value ) private static object CoerceHideCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -110,17 +94,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region AutoHideCommand #region AutoHideCommand
/// <summary>
/// AutoHideCommand Dependency Property
/// </summary>
public static readonly DependencyProperty AutoHideCommandProperty = DependencyProperty.Register( "AutoHideCommand", typeof( ICommand ), typeof( LayoutAnchorableItem ), public static readonly DependencyProperty AutoHideCommandProperty = DependencyProperty.Register( "AutoHideCommand", typeof( ICommand ), typeof( LayoutAnchorableItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnAutoHideCommandChanged ), new CoerceValueCallback( CoerceAutoHideCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnAutoHideCommandChanged ), new CoerceValueCallback( CoerceAutoHideCommandValue ) ) );
/// <summary>
/// Gets or sets the AutoHideCommand property. This dependency property
/// indicates the command to execute when user click the auto hide button.
/// </summary>
/// <remarks>By default this command toggles auto hide state for an anchorable.</remarks>
public ICommand AutoHideCommand public ICommand AutoHideCommand
{ {
get get
@ -133,24 +109,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the AutoHideCommand property.
/// </summary>
private static void OnAutoHideCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnAutoHideCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableItem )d ).OnAutoHideCommandChanged( e ); ( ( LayoutAnchorableItem )d ).OnAutoHideCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the AutoHideCommand property.
/// </summary>
protected virtual void OnAutoHideCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnAutoHideCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the AutoHideCommand value.
/// </summary>
private static object CoerceAutoHideCommandValue( DependencyObject d, object value ) private static object CoerceAutoHideCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -177,17 +144,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DockCommand #region DockCommand
/// <summary>
/// DockCommand Dependency Property
/// </summary>
public static readonly DependencyProperty DockCommandProperty = DependencyProperty.Register( "DockCommand", typeof( ICommand ), typeof( LayoutAnchorableItem ), public static readonly DependencyProperty DockCommandProperty = DependencyProperty.Register( "DockCommand", typeof( ICommand ), typeof( LayoutAnchorableItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnDockCommandChanged ), new CoerceValueCallback( CoerceDockCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnDockCommandChanged ), new CoerceValueCallback( CoerceDockCommandValue ) ) );
/// <summary>
/// Gets or sets the DockCommand property. This dependency property
/// indicates the command to execute when user click the Dock button.
/// </summary>
/// <remarks>By default this command moves the anchorable inside the container pane which previously hosted the object.</remarks>
public ICommand DockCommand public ICommand DockCommand
{ {
get get
@ -200,24 +159,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the DockCommand property.
/// </summary>
private static void OnDockCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnDockCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableItem )d ).OnDockCommandChanged( e ); ( ( LayoutAnchorableItem )d ).OnDockCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the DockCommand property.
/// </summary>
protected virtual void OnDockCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnDockCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the DockCommand value.
/// </summary>
private static object CoerceDockCommandValue( DependencyObject d, object value ) private static object CoerceDockCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -239,16 +189,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CanHide #region CanHide
/// <summary>
/// CanHide Dependency Property
/// </summary>
public static readonly DependencyProperty CanHideProperty = DependencyProperty.Register( "CanHide", typeof( bool ), typeof( LayoutAnchorableItem ), new FrameworkPropertyMetadata( ( bool )true, public static readonly DependencyProperty CanHideProperty = DependencyProperty.Register( "CanHide", typeof( bool ), typeof( LayoutAnchorableItem ), new FrameworkPropertyMetadata( ( bool )true,
new PropertyChangedCallback( OnCanHideChanged ) ) ); new PropertyChangedCallback( OnCanHideChanged ) ) );
/// <summary>
/// Gets or sets the CanHide property. This dependency property
/// indicates if user can hide the anchorable item.
/// </summary>
public bool CanHide public bool CanHide
{ {
get get
@ -261,17 +204,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the CanHide property.
/// </summary>
private static void OnCanHideChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnCanHideChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableItem )d ).OnCanHideChanged( e ); ( ( LayoutAnchorableItem )d ).OnCanHideChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the CanHide property.
/// </summary>
protected virtual void OnCanHideChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnCanHideChanged( DependencyPropertyChangedEventArgs e )
{ {
if( _anchorable != null ) if( _anchorable != null )

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorablePaneGroupControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

27
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAnchorableTabItem.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -60,16 +60,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Model #region Model
/// <summary>
/// Model Dependency Property
/// </summary>
public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutContent ), typeof( LayoutAnchorableTabItem ), public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutContent ), typeof( LayoutAnchorableTabItem ),
new FrameworkPropertyMetadata( ( LayoutContent )null, new PropertyChangedCallback( OnModelChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutContent )null, new PropertyChangedCallback( OnModelChanged ) ) );
/// <summary>
/// Gets or sets the Model property. This dependency property
/// indicates model attached to the anchorable tab item.
/// </summary>
public LayoutContent Model public LayoutContent Model
{ {
get get
@ -82,17 +75,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the Model property.
/// </summary>
private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutAnchorableTabItem )d ).OnModelChanged( e ); ( ( LayoutAnchorableTabItem )d ).OnModelChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Model property.
/// </summary>
protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e )
{ {
if( Model != null ) if( Model != null )
@ -106,18 +93,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region LayoutItem #region LayoutItem
/// <summary>
/// LayoutItem Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutAnchorableTabItem ), private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutAnchorableTabItem ),
new FrameworkPropertyMetadata( ( LayoutItem )null ) ); new FrameworkPropertyMetadata( ( LayoutItem )null ) );
public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty; public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty;
/// <summary>
/// Gets the LayoutItem property. This dependency property
/// indicates the LayoutItem attached to this tag item.
/// </summary>
public LayoutItem LayoutItem public LayoutItem LayoutItem
{ {
get get
@ -126,11 +106,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the LayoutItem property.
/// This dependency property indicates the LayoutItem attached to this tag item.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetLayoutItem( LayoutItem value ) protected void SetLayoutItem( LayoutItem value )
{ {
SetValue( LayoutItemPropertyKey, value ); SetValue( LayoutItemPropertyKey, value );

16
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutAutoHideWindowControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -69,16 +69,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region AnchorableStyle #region AnchorableStyle
/// <summary>
/// AnchorableStyle Dependency Property
/// </summary>
public static readonly DependencyProperty AnchorableStyleProperty = DependencyProperty.Register( "AnchorableStyle", typeof( Style ), typeof( LayoutAutoHideWindowControl ), public static readonly DependencyProperty AnchorableStyleProperty = DependencyProperty.Register( "AnchorableStyle", typeof( Style ), typeof( LayoutAutoHideWindowControl ),
new FrameworkPropertyMetadata( ( Style )null ) ); new FrameworkPropertyMetadata( ( Style )null ) );
/// <summary>
/// Gets or sets the AnchorableStyle property. This dependency property
/// indicates the style to apply to the LayoutAnchorableControl hosted in this auto hide window.
/// </summary>
public Style AnchorableStyle public Style AnchorableStyle
{ {
get get
@ -95,16 +88,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Background #region Background
/// <summary>
/// Background Dependency Property
/// </summary>
public static readonly DependencyProperty BackgroundProperty = DependencyProperty.Register( "Background", typeof( Brush ), typeof( LayoutAutoHideWindowControl ), public static readonly DependencyProperty BackgroundProperty = DependencyProperty.Register( "Background", typeof( Brush ), typeof( LayoutAutoHideWindowControl ),
new FrameworkPropertyMetadata( ( Brush )null ) ); new FrameworkPropertyMetadata( ( Brush )null ) );
/// <summary>
/// Gets or sets the Background property. This dependency property
/// indicates background of the autohide childwindow.
/// </summary>
public Brush Background public Brush Background
{ {
get get

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutCachePaneControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

27
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -42,16 +42,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Model #region Model
/// <summary>
/// Model Dependency Property
/// </summary>
public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutContent ), typeof( LayoutDocumentControl ), public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutContent ), typeof( LayoutDocumentControl ),
new FrameworkPropertyMetadata( null, OnModelChanged ) ); new FrameworkPropertyMetadata( null, OnModelChanged ) );
/// <summary>
/// Gets or sets the Model property. This dependency property
/// indicates the model attached to this view.
/// </summary>
public LayoutContent Model public LayoutContent Model
{ {
get get
@ -64,17 +57,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the Model property.
/// </summary>
private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutDocumentControl )d ).OnModelChanged( e ); ( ( LayoutDocumentControl )d ).OnModelChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Model property.
/// </summary>
protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e )
{ {
if( e.OldValue != null ) if( e.OldValue != null )
@ -115,18 +102,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region LayoutItem #region LayoutItem
/// <summary>
/// LayoutItem Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutDocumentControl ), private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutDocumentControl ),
new FrameworkPropertyMetadata( ( LayoutItem )null ) ); new FrameworkPropertyMetadata( ( LayoutItem )null ) );
public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty; public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty;
/// <summary>
/// Gets the LayoutItem property. This dependency property
/// indicates the LayoutItem attached to this tag item.
/// </summary>
public LayoutItem LayoutItem public LayoutItem LayoutItem
{ {
get get
@ -135,11 +115,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the LayoutItem property.
/// This dependency property indicates the LayoutItem attached to this tag item.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetLayoutItem( LayoutItem value ) protected void SetLayoutItem( LayoutItem value )
{ {
SetValue( LayoutItemPropertyKey, value ); SetValue( LayoutItemPropertyKey, value );

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentFloatingWindowControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

15
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentItem.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -43,16 +43,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Description #region Description
/// <summary>
/// Description Dependency Property
/// </summary>
public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register( "Description", typeof( string ), typeof( LayoutDocumentItem ), public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register( "Description", typeof( string ), typeof( LayoutDocumentItem ),
new FrameworkPropertyMetadata( ( string )null, new PropertyChangedCallback( OnDescriptionChanged ) ) ); new FrameworkPropertyMetadata( ( string )null, new PropertyChangedCallback( OnDescriptionChanged ) ) );
/// <summary>
/// Gets or sets the Description property. This dependency property
/// indicates the description to display for the document item.
/// </summary>
public string Description public string Description
{ {
get get
@ -65,17 +58,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the Description property.
/// </summary>
private static void OnDescriptionChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnDescriptionChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutDocumentItem )d ).OnDescriptionChanged( e ); ( ( LayoutDocumentItem )d ).OnDescriptionChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Description property.
/// </summary>
protected virtual void OnDescriptionChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnDescriptionChanged( DependencyPropertyChangedEventArgs e )
{ {
_document.Description = ( string )e.NewValue; _document.Description = ( string )e.NewValue;

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentPaneGroupControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

27
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutDocumentTabItem.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -61,16 +61,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Model #region Model
/// <summary>
/// Model Dependency Property
/// </summary>
public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutContent ), typeof( LayoutDocumentTabItem ), public static readonly DependencyProperty ModelProperty = DependencyProperty.Register( "Model", typeof( LayoutContent ), typeof( LayoutDocumentTabItem ),
new FrameworkPropertyMetadata( ( LayoutContent )null, new PropertyChangedCallback( OnModelChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutContent )null, new PropertyChangedCallback( OnModelChanged ) ) );
/// <summary>
/// Gets or sets the Model property. This dependency property
/// indicates the layout content model attached to the tab item.
/// </summary>
public LayoutContent Model public LayoutContent Model
{ {
get get
@ -83,18 +76,12 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the Model property.
/// </summary>
private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnModelChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutDocumentTabItem )d ).OnModelChanged( e ); ( ( LayoutDocumentTabItem )d ).OnModelChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Model property.
/// </summary>
protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnModelChanged( DependencyPropertyChangedEventArgs e )
{ {
if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null ) ) if( ( this.Model != null ) && ( this.Model.Root != null ) && ( this.Model.Root.Manager != null ) )
@ -107,18 +94,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region LayoutItem #region LayoutItem
/// <summary>
/// LayoutItem Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutDocumentTabItem ), private static readonly DependencyPropertyKey LayoutItemPropertyKey = DependencyProperty.RegisterReadOnly( "LayoutItem", typeof( LayoutItem ), typeof( LayoutDocumentTabItem ),
new FrameworkPropertyMetadata( ( LayoutItem )null ) ); new FrameworkPropertyMetadata( ( LayoutItem )null ) );
public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty; public static readonly DependencyProperty LayoutItemProperty = LayoutItemPropertyKey.DependencyProperty;
/// <summary>
/// Gets the LayoutItem property. This dependency property
/// indicates the LayoutItem attached to this tag item.
/// </summary>
public LayoutItem LayoutItem public LayoutItem LayoutItem
{ {
get get
@ -127,11 +107,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the LayoutItem property.
/// This dependency property indicates the LayoutItem attached to this tag item.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetLayoutItem( LayoutItem value ) protected void SetLayoutItem( LayoutItem value )
{ {
SetValue( LayoutItemPropertyKey, value ); SetValue( LayoutItemPropertyKey, value );

46
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutFloatingWindowControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -82,16 +82,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsContentImmutable #region IsContentImmutable
/// <summary>
/// IsContentImmutable Dependency Property
/// </summary>
public static readonly DependencyProperty IsContentImmutableProperty = DependencyProperty.Register( "IsContentImmutable", typeof( bool ), typeof( LayoutFloatingWindowControl ), public static readonly DependencyProperty IsContentImmutableProperty = DependencyProperty.Register( "IsContentImmutable", typeof( bool ), typeof( LayoutFloatingWindowControl ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
/// <summary>
/// Gets/sets the IsContentImmutable property. This dependency property
/// indicates if the content can be modified.
/// </summary>
public bool IsContentImmutable public bool IsContentImmutable
{ {
get get
@ -108,18 +101,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsDragging #region IsDragging
/// <summary>
/// IsDragging Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey IsDraggingPropertyKey = DependencyProperty.RegisterReadOnly( "IsDragging", typeof( bool ), typeof( LayoutFloatingWindowControl ), private static readonly DependencyPropertyKey IsDraggingPropertyKey = DependencyProperty.RegisterReadOnly( "IsDragging", typeof( bool ), typeof( LayoutFloatingWindowControl ),
new FrameworkPropertyMetadata( ( bool )false, new PropertyChangedCallback( OnIsDraggingChanged ) ) ); new FrameworkPropertyMetadata( ( bool )false, new PropertyChangedCallback( OnIsDraggingChanged ) ) );
public static readonly DependencyProperty IsDraggingProperty = IsDraggingPropertyKey.DependencyProperty; public static readonly DependencyProperty IsDraggingProperty = IsDraggingPropertyKey.DependencyProperty;
/// <summary>
/// Gets the IsDragging property. This dependency property
/// indicates that this floating window is being dragged.
/// </summary>
public bool IsDragging public bool IsDragging
{ {
get get
@ -128,27 +114,16 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the IsDragging property.
/// This dependency property indicates that this floating window is being dragged.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetIsDragging( bool value ) protected void SetIsDragging( bool value )
{ {
SetValue( IsDraggingPropertyKey, value ); SetValue( IsDraggingPropertyKey, value );
} }
/// <summary>
/// Handles changes to the IsDragging property.
/// </summary>
private static void OnIsDraggingChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnIsDraggingChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutFloatingWindowControl )d ).OnIsDraggingChanged( e ); ( ( LayoutFloatingWindowControl )d ).OnIsDraggingChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the IsDragging property.
/// </summary>
protected virtual void OnIsDraggingChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnIsDraggingChanged( DependencyPropertyChangedEventArgs e )
{ {
if( ( bool )e.NewValue ) if( ( bool )e.NewValue )
@ -187,16 +162,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsMaximized #region IsMaximized
/// <summary>
/// IsMaximized Dependency Property
/// </summary>
public static readonly DependencyProperty IsMaximizedProperty = DependencyProperty.Register( "IsMaximized", typeof( bool ), typeof( LayoutFloatingWindowControl ), public static readonly DependencyProperty IsMaximizedProperty = DependencyProperty.Register( "IsMaximized", typeof( bool ), typeof( LayoutFloatingWindowControl ),
new FrameworkPropertyMetadata( ( bool )false ) ); new FrameworkPropertyMetadata( ( bool )false ) );
/// <summary>
/// Gets/sets the IsMaximized property. This dependency property
/// indicates if the window is maximized.
/// </summary>
public bool IsMaximized public bool IsMaximized
{ {
get get
@ -210,11 +178,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Provides a secure method for setting the IsMaximized property.
/// This dependency property indicates if the window is maximized.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected override void OnStateChanged( EventArgs e ) protected override void OnStateChanged( EventArgs e )
{ {
@ -245,19 +208,12 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region ResizeBorderThickness #region ResizeBorderThickness
/// <summary>
/// ResizeBorderThickness Dependency Property
/// </summary>
public static readonly DependencyProperty ResizeBorderThicknessProperty = DependencyProperty.Register( public static readonly DependencyProperty ResizeBorderThicknessProperty = DependencyProperty.Register(
"ResizeBorderThickness", "ResizeBorderThickness",
typeof( Thickness ), typeof( Thickness ),
typeof( LayoutFloatingWindowControl ), typeof( LayoutFloatingWindowControl ),
new FrameworkPropertyMetadata( new Thickness( 10 ) ) ); new FrameworkPropertyMetadata( new Thickness( 10 ) ) );
/// <summary>
/// Gets or sets the LayoutDocumentFloatingWindowControl/LayoutAnchorableFloatingWindowControl resize icon Border Thickness property.
/// This dependency property makes it possible to increase the resize icon border of floating windows.
/// </summary>
public Thickness ResizeBorderThickness public Thickness ResizeBorderThickness
{ {
get get

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

16
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutGridResizerControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -42,16 +42,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region BackgroundWhileDragging #region BackgroundWhileDragging
/// <summary>
/// BackgroundWhileDragging Dependency Property
/// </summary>
public static readonly DependencyProperty BackgroundWhileDraggingProperty = DependencyProperty.Register( "BackgroundWhileDragging", typeof( Brush ), typeof( LayoutGridResizerControl ), public static readonly DependencyProperty BackgroundWhileDraggingProperty = DependencyProperty.Register( "BackgroundWhileDragging", typeof( Brush ), typeof( LayoutGridResizerControl ),
new FrameworkPropertyMetadata( ( Brush )Brushes.Black ) ); new FrameworkPropertyMetadata( ( Brush )Brushes.Black ) );
/// <summary>
/// Gets or sets the BackgroundWhileDragging property. This dependency property
/// indicates ....
/// </summary>
public Brush BackgroundWhileDragging public Brush BackgroundWhileDragging
{ {
get get
@ -68,16 +61,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region OpacityWhileDragging #region OpacityWhileDragging
/// <summary>
/// OpacityWhileDragging Dependency Property
/// </summary>
public static readonly DependencyProperty OpacityWhileDraggingProperty = DependencyProperty.Register( "OpacityWhileDragging", typeof( double ), typeof( LayoutGridResizerControl ), public static readonly DependencyProperty OpacityWhileDraggingProperty = DependencyProperty.Register( "OpacityWhileDragging", typeof( double ), typeof( LayoutGridResizerControl ),
new FrameworkPropertyMetadata( ( double )0.5 ) ); new FrameworkPropertyMetadata( ( double )0.5 ) );
/// <summary>
/// Gets or sets the OpacityWhileDragging property. This dependency property
/// indicates ....
/// </summary>
public double OpacityWhileDragging public double OpacityWhileDragging
{ {
get get

243
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutItem.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -114,16 +114,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Title #region Title
/// <summary>
/// Title Dependency Property
/// </summary>
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register( "Title", typeof( string ), typeof( LayoutItem ), public static readonly DependencyProperty TitleProperty = DependencyProperty.Register( "Title", typeof( string ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( string )null, new PropertyChangedCallback( OnTitleChanged ) ) ); new FrameworkPropertyMetadata( ( string )null, new PropertyChangedCallback( OnTitleChanged ) ) );
/// <summary>
/// Gets or sets the Title property. This dependency property
/// indicates the title of the element.
/// </summary>
public string Title public string Title
{ {
get get
@ -136,17 +129,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the Title property.
/// </summary>
private static void OnTitleChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnTitleChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnTitleChanged( e ); ( ( LayoutItem )d ).OnTitleChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the Title property.
/// </summary>
protected virtual void OnTitleChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnTitleChanged( DependencyPropertyChangedEventArgs e )
{ {
if( LayoutElement != null ) if( LayoutElement != null )
@ -157,16 +144,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IconSource #region IconSource
/// <summary>
/// IconSource Dependency Property
/// </summary>
public static readonly DependencyProperty IconSourceProperty = DependencyProperty.Register( "IconSource", typeof( ImageSource ), typeof( LayoutItem ), public static readonly DependencyProperty IconSourceProperty = DependencyProperty.Register( "IconSource", typeof( ImageSource ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( ImageSource )null, new PropertyChangedCallback( OnIconSourceChanged ) ) ); new FrameworkPropertyMetadata( ( ImageSource )null, new PropertyChangedCallback( OnIconSourceChanged ) ) );
/// <summary>
/// Gets or sets the IconSource property. This dependency property
/// indicates icon associated with the item.
/// </summary>
public ImageSource IconSource public ImageSource IconSource
{ {
get get
@ -179,17 +159,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the IconSource property.
/// </summary>
private static void OnIconSourceChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnIconSourceChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnIconSourceChanged( e ); ( ( LayoutItem )d ).OnIconSourceChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the IconSource property.
/// </summary>
protected virtual void OnIconSourceChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnIconSourceChanged( DependencyPropertyChangedEventArgs e )
{ {
if( LayoutElement != null ) if( LayoutElement != null )
@ -200,16 +174,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region ContentId #region ContentId
/// <summary>
/// ContentId Dependency Property
/// </summary>
public static readonly DependencyProperty ContentIdProperty = DependencyProperty.Register( "ContentId", typeof( string ), typeof( LayoutItem ), public static readonly DependencyProperty ContentIdProperty = DependencyProperty.Register( "ContentId", typeof( string ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( string )null, new PropertyChangedCallback( OnContentIdChanged ) ) ); new FrameworkPropertyMetadata( ( string )null, new PropertyChangedCallback( OnContentIdChanged ) ) );
/// <summary>
/// Gets or sets the ContentId property. This dependency property
/// indicates the content id used to retrive content when deserializing layouts.
/// </summary>
public string ContentId public string ContentId
{ {
get get
@ -222,17 +189,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the ContentId property.
/// </summary>
private static void OnContentIdChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnContentIdChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnContentIdChanged( e ); ( ( LayoutItem )d ).OnContentIdChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the ContentId property.
/// </summary>
protected virtual void OnContentIdChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnContentIdChanged( DependencyPropertyChangedEventArgs e )
{ {
if( LayoutElement != null ) if( LayoutElement != null )
@ -243,16 +204,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsSelected #region IsSelected
/// <summary>
/// IsSelected Dependency Property
/// </summary>
public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register( "IsSelected", typeof( bool ), typeof( LayoutItem ), public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register( "IsSelected", typeof( bool ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( bool )false, new PropertyChangedCallback( OnIsSelectedChanged ) ) ); new FrameworkPropertyMetadata( ( bool )false, new PropertyChangedCallback( OnIsSelectedChanged ) ) );
/// <summary>
/// Gets or sets the IsSelected property. This dependency property
/// indicates if the item is selected inside its container.
/// </summary>
public bool IsSelected public bool IsSelected
{ {
get get
@ -265,17 +219,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the IsSelected property.
/// </summary>
private static void OnIsSelectedChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnIsSelectedChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnIsSelectedChanged( e ); ( ( LayoutItem )d ).OnIsSelectedChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the IsSelected property.
/// </summary>
protected virtual void OnIsSelectedChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnIsSelectedChanged( DependencyPropertyChangedEventArgs e )
{ {
if( _isSelectedReentrantFlag.CanEnter ) if( _isSelectedReentrantFlag.CanEnter )
@ -292,16 +240,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IsActive #region IsActive
/// <summary>
/// IsActive Dependency Property
/// </summary>
public static readonly DependencyProperty IsActiveProperty = DependencyProperty.Register( "IsActive", typeof( bool ), typeof( LayoutItem ), public static readonly DependencyProperty IsActiveProperty = DependencyProperty.Register( "IsActive", typeof( bool ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( bool )false, new PropertyChangedCallback( OnIsActiveChanged ) ) ); new FrameworkPropertyMetadata( ( bool )false, new PropertyChangedCallback( OnIsActiveChanged ) ) );
/// <summary>
/// Gets or sets the IsActive property. This dependency property
/// indicates if the item is active in the UI.
/// </summary>
public bool IsActive public bool IsActive
{ {
get get
@ -314,17 +255,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the IsActive property.
/// </summary>
private static void OnIsActiveChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnIsActiveChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnIsActiveChanged( e ); ( ( LayoutItem )d ).OnIsActiveChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the IsActive property.
/// </summary>
protected virtual void OnIsActiveChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnIsActiveChanged( DependencyPropertyChangedEventArgs e )
{ {
if( _isActiveReentrantFlag.CanEnter ) if( _isActiveReentrantFlag.CanEnter )
@ -355,16 +290,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CanClose #region CanClose
/// <summary>
/// CanClose Dependency Property
/// </summary>
public static readonly DependencyProperty CanCloseProperty = DependencyProperty.Register( "CanClose", typeof( bool ), typeof( LayoutItem ), public static readonly DependencyProperty CanCloseProperty = DependencyProperty.Register( "CanClose", typeof( bool ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( bool )true, new PropertyChangedCallback( OnCanCloseChanged ) ) ); new FrameworkPropertyMetadata( ( bool )true, new PropertyChangedCallback( OnCanCloseChanged ) ) );
/// <summary>
/// Gets or sets the CanClose property. This dependency property
/// indicates if the item can be closed.
/// </summary>
public bool CanClose public bool CanClose
{ {
get get
@ -377,17 +305,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the CanClose property.
/// </summary>
private static void OnCanCloseChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnCanCloseChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnCanCloseChanged( e ); ( ( LayoutItem )d ).OnCanCloseChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the CanClose property.
/// </summary>
protected virtual void OnCanCloseChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnCanCloseChanged( DependencyPropertyChangedEventArgs e )
{ {
if( LayoutElement != null ) if( LayoutElement != null )
@ -398,16 +320,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CanFloat #region CanFloat
/// <summary>
/// CanFloat Dependency Property
/// </summary>
public static readonly DependencyProperty CanFloatProperty = DependencyProperty.Register( "CanFloat", typeof( bool ), typeof( LayoutItem ), public static readonly DependencyProperty CanFloatProperty = DependencyProperty.Register( "CanFloat", typeof( bool ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( bool )true, new PropertyChangedCallback( OnCanFloatChanged ) ) ); new FrameworkPropertyMetadata( ( bool )true, new PropertyChangedCallback( OnCanFloatChanged ) ) );
/// <summary>
/// Gets or sets the CanFloat property. This dependency property
/// indicates if user can move the layout element dragging it to another position.
/// </summary>
public bool CanFloat public bool CanFloat
{ {
get get
@ -420,17 +335,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the CanFloat property.
/// </summary>
private static void OnCanFloatChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnCanFloatChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnCanFloatChanged( e ); ( ( LayoutItem )d ).OnCanFloatChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the CanFloat property.
/// </summary>
protected virtual void OnCanFloatChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnCanFloatChanged( DependencyPropertyChangedEventArgs e )
{ {
if( LayoutElement != null ) if( LayoutElement != null )
@ -441,16 +350,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CloseCommand #region CloseCommand
/// <summary>
/// CloseCommand Dependency Property
/// </summary>
public static readonly DependencyProperty CloseCommandProperty = DependencyProperty.Register( "CloseCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty CloseCommandProperty = DependencyProperty.Register( "CloseCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnCloseCommandChanged ), new CoerceValueCallback( CoerceCloseCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnCloseCommandChanged ), new CoerceValueCallback( CoerceCloseCommandValue ) ) );
/// <summary>
/// Gets or sets the CloseCommand property. This dependency property
/// indicates the command to execute when user click the document close button.
/// </summary>
public ICommand CloseCommand public ICommand CloseCommand
{ {
get get
@ -463,24 +365,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the CloseCommand property.
/// </summary>
private static void OnCloseCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnCloseCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnCloseCommandChanged( e ); ( ( LayoutItem )d ).OnCloseCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the CloseCommand property.
/// </summary>
protected virtual void OnCloseCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnCloseCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the CloseCommand value.
/// </summary>
private static object CoerceCloseCommandValue( DependencyObject d, object value ) private static object CoerceCloseCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -502,17 +395,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#endregion #endregion
#region FloatCommand #region FloatCommand
/// <summary>
/// FloatCommand Dependency Property
/// </summary>
public static readonly DependencyProperty FloatCommandProperty = DependencyProperty.Register( "FloatCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty FloatCommandProperty = DependencyProperty.Register( "FloatCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnFloatCommandChanged ), new CoerceValueCallback( CoerceFloatCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnFloatCommandChanged ), new CoerceValueCallback( CoerceFloatCommandValue ) ) );
/// <summary>
/// Gets or sets the FloatCommand property. This dependency property
/// indicates the command to execute when user click the float button.
/// </summary>
/// <remarks>By default this command move the anchorable inside new floating window.</remarks>
public ICommand FloatCommand public ICommand FloatCommand
{ {
get get
@ -525,24 +410,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the FloatCommand property.
/// </summary>
private static void OnFloatCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnFloatCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnFloatCommandChanged( e ); ( ( LayoutItem )d ).OnFloatCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the FloatCommand property.
/// </summary>
protected virtual void OnFloatCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnFloatCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the FloatCommand value.
/// </summary>
private static object CoerceFloatCommandValue( DependencyObject d, object value ) private static object CoerceFloatCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -574,17 +450,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region DockAsDocumentCommand #region DockAsDocumentCommand
/// <summary>
/// DockAsDocumentCommand Dependency Property
/// </summary>
public static readonly DependencyProperty DockAsDocumentCommandProperty = DependencyProperty.Register( "DockAsDocumentCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty DockAsDocumentCommandProperty = DependencyProperty.Register( "DockAsDocumentCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnDockAsDocumentCommandChanged ), new CoerceValueCallback( CoerceDockAsDocumentCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnDockAsDocumentCommandChanged ), new CoerceValueCallback( CoerceDockAsDocumentCommandValue ) ) );
/// <summary>
/// Gets or sets the DockAsDocumentCommand property. This dependency property
/// indicates the command to execute when user click the DockAsDocument button.
/// </summary>
/// <remarks>By default this command move the anchorable inside the last focused document pane.</remarks>
public ICommand DockAsDocumentCommand public ICommand DockAsDocumentCommand
{ {
get get
@ -597,24 +465,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the DockAsDocumentCommand property.
/// </summary>
private static void OnDockAsDocumentCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnDockAsDocumentCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnDockAsDocumentCommandChanged( e ); ( ( LayoutItem )d ).OnDockAsDocumentCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the DockAsDocumentCommand property.
/// </summary>
protected virtual void OnDockAsDocumentCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnDockAsDocumentCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the DockAsDocumentCommand value.
/// </summary>
private static object CoerceDockAsDocumentCommandValue( DependencyObject d, object value ) private static object CoerceDockAsDocumentCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -639,16 +498,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CloseAllButThisCommand #region CloseAllButThisCommand
/// <summary>
/// CloseAllButThisCommand Dependency Property
/// </summary>
public static readonly DependencyProperty CloseAllButThisCommandProperty = DependencyProperty.Register( "CloseAllButThisCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty CloseAllButThisCommandProperty = DependencyProperty.Register( "CloseAllButThisCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnCloseAllButThisCommandChanged ), new CoerceValueCallback( CoerceCloseAllButThisCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnCloseAllButThisCommandChanged ), new CoerceValueCallback( CoerceCloseAllButThisCommandValue ) ) );
/// <summary>
/// Gets or sets the CloseAllButThisCommand property. This dependency property
/// indicates the 'Close All But This' command.
/// </summary>
public ICommand CloseAllButThisCommand public ICommand CloseAllButThisCommand
{ {
get get
@ -661,24 +513,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the CloseAllButThisCommand property.
/// </summary>
private static void OnCloseAllButThisCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnCloseAllButThisCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnCloseAllButThisCommandChanged( e ); ( ( LayoutItem )d ).OnCloseAllButThisCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the CloseAllButThisCommand property.
/// </summary>
protected virtual void OnCloseAllButThisCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnCloseAllButThisCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the CloseAllButThisCommand value.
/// </summary>
private static object CoerceCloseAllButThisCommandValue( DependencyObject d, object value ) private static object CoerceCloseAllButThisCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -705,16 +548,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region CloseAllCommand #region CloseAllCommand
/// <summary>
/// CloseAllCommand Dependency Property
/// </summary>
public static readonly DependencyProperty CloseAllCommandProperty = DependencyProperty.Register( "CloseAllCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty CloseAllCommandProperty = DependencyProperty.Register( "CloseAllCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnCloseAllCommandChanged ), new CoerceValueCallback( CoerceCloseAllCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnCloseAllCommandChanged ), new CoerceValueCallback( CoerceCloseAllCommandValue ) ) );
/// <summary>
/// Gets or sets the CloseAllCommand property. This dependency property
/// indicates the 'Close All' command.
/// </summary>
public ICommand CloseAllCommand public ICommand CloseAllCommand
{ {
get get
@ -727,24 +563,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the CloseAllCommand property.
/// </summary>
private static void OnCloseAllCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnCloseAllCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnCloseAllCommandChanged( e ); ( ( LayoutItem )d ).OnCloseAllCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the CloseAllCommand property.
/// </summary>
protected virtual void OnCloseAllCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnCloseAllCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the CloseAllCommand value.
/// </summary>
private static object CoerceCloseAllCommandValue( DependencyObject d, object value ) private static object CoerceCloseAllCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -771,16 +598,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region ActivateCommand #region ActivateCommand
/// <summary>
/// ActivateCommand Dependency Property
/// </summary>
public static readonly DependencyProperty ActivateCommandProperty = DependencyProperty.Register( "ActivateCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty ActivateCommandProperty = DependencyProperty.Register( "ActivateCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnActivateCommandChanged ), new CoerceValueCallback( CoerceActivateCommandValue ) ) ); new FrameworkPropertyMetadata( null, new PropertyChangedCallback( OnActivateCommandChanged ), new CoerceValueCallback( CoerceActivateCommandValue ) ) );
/// <summary>
/// Gets or sets the ActivateCommand property. This dependency property
/// indicates the command to execute when user wants to activate a content (either a Document or an Anchorable).
/// </summary>
public ICommand ActivateCommand public ICommand ActivateCommand
{ {
get get
@ -793,24 +613,15 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the ActivateCommand property.
/// </summary>
private static void OnActivateCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnActivateCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnActivateCommandChanged( e ); ( ( LayoutItem )d ).OnActivateCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the ActivateCommand property.
/// </summary>
protected virtual void OnActivateCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnActivateCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
/// <summary>
/// Coerces the ActivateCommand value.
/// </summary>
private static object CoerceActivateCommandValue( DependencyObject d, object value ) private static object CoerceActivateCommandValue( DependencyObject d, object value )
{ {
return value; return value;
@ -830,16 +641,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region NewVerticalTabGroupCommand #region NewVerticalTabGroupCommand
/// <summary>
/// NewVerticalTabGroupCommand Dependency Property
/// </summary>
public static readonly DependencyProperty NewVerticalTabGroupCommandProperty = DependencyProperty.Register( "NewVerticalTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty NewVerticalTabGroupCommandProperty = DependencyProperty.Register( "NewVerticalTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnNewVerticalTabGroupCommandChanged ) ) ); new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnNewVerticalTabGroupCommandChanged ) ) );
/// <summary>
/// Gets or sets the NewVerticalTabGroupCommand property. This dependency property
/// indicates the new vertical tab group command.
/// </summary>
public ICommand NewVerticalTabGroupCommand public ICommand NewVerticalTabGroupCommand
{ {
get get
@ -852,17 +656,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the NewVerticalTabGroupCommand property.
/// </summary>
private static void OnNewVerticalTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnNewVerticalTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnNewVerticalTabGroupCommandChanged( e ); ( ( LayoutItem )d ).OnNewVerticalTabGroupCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the NewVerticalTabGroupCommand property.
/// </summary>
protected virtual void OnNewVerticalTabGroupCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnNewVerticalTabGroupCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
@ -907,16 +705,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region NewHorizontalTabGroupCommand #region NewHorizontalTabGroupCommand
/// <summary>
/// NewHorizontalTabGroupCommand Dependency Property
/// </summary>
public static readonly DependencyProperty NewHorizontalTabGroupCommandProperty = DependencyProperty.Register( "NewHorizontalTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty NewHorizontalTabGroupCommandProperty = DependencyProperty.Register( "NewHorizontalTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnNewHorizontalTabGroupCommandChanged ) ) ); new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnNewHorizontalTabGroupCommandChanged ) ) );
/// <summary>
/// Gets or sets the NewHorizontalTabGroupCommand property. This dependency property
/// indicates the new horizontal tab group command.
/// </summary>
public ICommand NewHorizontalTabGroupCommand public ICommand NewHorizontalTabGroupCommand
{ {
get get
@ -929,17 +720,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the NewHorizontalTabGroupCommand property.
/// </summary>
private static void OnNewHorizontalTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnNewHorizontalTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnNewHorizontalTabGroupCommandChanged( e ); ( ( LayoutItem )d ).OnNewHorizontalTabGroupCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the NewHorizontalTabGroupCommand property.
/// </summary>
protected virtual void OnNewHorizontalTabGroupCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnNewHorizontalTabGroupCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
@ -985,16 +770,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region MoveToNextTabGroupCommand #region MoveToNextTabGroupCommand
/// <summary>
/// MoveToNextTabGroupCommand Dependency Property
/// </summary>
public static readonly DependencyProperty MoveToNextTabGroupCommandProperty = DependencyProperty.Register( "MoveToNextTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty MoveToNextTabGroupCommandProperty = DependencyProperty.Register( "MoveToNextTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnMoveToNextTabGroupCommandChanged ) ) ); new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnMoveToNextTabGroupCommandChanged ) ) );
/// <summary>
/// Gets or sets the MoveToNextTabGroupCommand property. This dependency property
/// indicates move to next tab group command.
/// </summary>
public ICommand MoveToNextTabGroupCommand public ICommand MoveToNextTabGroupCommand
{ {
get get
@ -1007,17 +785,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the MoveToNextTabGroupCommand property.
/// </summary>
private static void OnMoveToNextTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnMoveToNextTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnMoveToNextTabGroupCommandChanged( e ); ( ( LayoutItem )d ).OnMoveToNextTabGroupCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the MoveToNextTabGroupCommand property.
/// </summary>
protected virtual void OnMoveToNextTabGroupCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnMoveToNextTabGroupCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }
@ -1052,16 +824,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region MoveToPreviousTabGroupCommand #region MoveToPreviousTabGroupCommand
/// <summary>
/// MoveToPreviousTabGroupCommand Dependency Property
/// </summary>
public static readonly DependencyProperty MoveToPreviousTabGroupCommandProperty = DependencyProperty.Register( "MoveToPreviousTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ), public static readonly DependencyProperty MoveToPreviousTabGroupCommandProperty = DependencyProperty.Register( "MoveToPreviousTabGroupCommand", typeof( ICommand ), typeof( LayoutItem ),
new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnMoveToPreviousTabGroupCommandChanged ) ) ); new FrameworkPropertyMetadata( ( ICommand )null, new PropertyChangedCallback( OnMoveToPreviousTabGroupCommandChanged ) ) );
/// <summary>
/// Gets or sets the MoveToPreviousTabGroupCommand property. This dependency property
/// indicates move to rpevious tab group command.
/// </summary>
public ICommand MoveToPreviousTabGroupCommand public ICommand MoveToPreviousTabGroupCommand
{ {
get get
@ -1074,17 +839,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the MoveToPreviousTabGroupCommand property.
/// </summary>
private static void OnMoveToPreviousTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnMoveToPreviousTabGroupCommandChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( LayoutItem )d ).OnMoveToPreviousTabGroupCommandChanged( e ); ( ( LayoutItem )d ).OnMoveToPreviousTabGroupCommandChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the MoveToPreviousTabGroupCommand property.
/// </summary>
protected virtual void OnMoveToPreviousTabGroupCommandChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnMoveToPreviousTabGroupCommandChanged( DependencyPropertyChangedEventArgs e )
{ {
} }

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/LayoutPanelControl.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

28
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/MenuItemEx.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -45,16 +45,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IconTemplate #region IconTemplate
/// <summary>
/// IconTemplate Dependency Property
/// </summary>
public static readonly DependencyProperty IconTemplateProperty = DependencyProperty.Register( "IconTemplate", typeof( DataTemplate ), typeof( MenuItemEx ), public static readonly DependencyProperty IconTemplateProperty = DependencyProperty.Register( "IconTemplate", typeof( DataTemplate ), typeof( MenuItemEx ),
new FrameworkPropertyMetadata( ( DataTemplate )null, new PropertyChangedCallback( OnIconTemplateChanged ) ) ); new FrameworkPropertyMetadata( ( DataTemplate )null, new PropertyChangedCallback( OnIconTemplateChanged ) ) );
/// <summary>
/// Gets or sets the IconTemplate property. This dependency property
/// indicates the data template for the icon.
/// </summary>
public DataTemplate IconTemplate public DataTemplate IconTemplate
{ {
get get
@ -67,17 +60,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the IconTemplate property.
/// </summary>
private static void OnIconTemplateChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnIconTemplateChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( MenuItemEx )d ).OnIconTemplateChanged( e ); ( ( MenuItemEx )d ).OnIconTemplateChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the IconTemplate property.
/// </summary>
protected virtual void OnIconTemplateChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnIconTemplateChanged( DependencyPropertyChangedEventArgs e )
{ {
UpdateIcon(); UpdateIcon();
@ -87,16 +74,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region IconTemplateSelector #region IconTemplateSelector
/// <summary>
/// IconTemplateSelector Dependency Property
/// </summary>
public static readonly DependencyProperty IconTemplateSelectorProperty = DependencyProperty.Register( "IconTemplateSelector", typeof( DataTemplateSelector ), typeof( MenuItemEx ), public static readonly DependencyProperty IconTemplateSelectorProperty = DependencyProperty.Register( "IconTemplateSelector", typeof( DataTemplateSelector ), typeof( MenuItemEx ),
new FrameworkPropertyMetadata( ( DataTemplateSelector )null, new PropertyChangedCallback( OnIconTemplateSelectorChanged ) ) ); new FrameworkPropertyMetadata( ( DataTemplateSelector )null, new PropertyChangedCallback( OnIconTemplateSelectorChanged ) ) );
/// <summary>
/// Gets or sets the IconTemplateSelector property. This dependency property
/// indicates the DataTemplateSelector for the Icon.
/// </summary>
public DataTemplateSelector IconTemplateSelector public DataTemplateSelector IconTemplateSelector
{ {
get get
@ -109,17 +89,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the IconTemplateSelector property.
/// </summary>
private static void OnIconTemplateSelectorChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnIconTemplateSelectorChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( MenuItemEx )d ).OnIconTemplateSelectorChanged( e ); ( ( MenuItemEx )d ).OnIconTemplateSelectorChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the IconTemplateSelector property.
/// </summary>
protected virtual void OnIconTemplateSelectorChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnIconTemplateSelectorChanged( DependencyPropertyChangedEventArgs e )
{ {
UpdateIcon(); UpdateIcon();

52
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/NavigatorWindow.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -89,18 +89,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Documents #region Documents
/// <summary>
/// Documents Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey DocumentsPropertyKey = DependencyProperty.RegisterReadOnly( "Documents", typeof( IEnumerable<LayoutDocumentItem> ), typeof( NavigatorWindow ), private static readonly DependencyPropertyKey DocumentsPropertyKey = DependencyProperty.RegisterReadOnly( "Documents", typeof( IEnumerable<LayoutDocumentItem> ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( null ) ); new FrameworkPropertyMetadata( null ) );
public static readonly DependencyProperty DocumentsProperty = DocumentsPropertyKey.DependencyProperty; public static readonly DependencyProperty DocumentsProperty = DocumentsPropertyKey.DependencyProperty;
/// <summary>
/// Gets the Documents property. This dependency property
/// indicates the list of documents.
/// </summary>
public LayoutDocumentItem[] Documents public LayoutDocumentItem[] Documents
{ {
get get
@ -113,18 +106,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Anchorables #region Anchorables
/// <summary>
/// Anchorables Read-Only Dependency Property
/// </summary>
private static readonly DependencyPropertyKey AnchorablesPropertyKey = DependencyProperty.RegisterReadOnly( "Anchorables", typeof( IEnumerable<LayoutAnchorableItem> ), typeof( NavigatorWindow ), private static readonly DependencyPropertyKey AnchorablesPropertyKey = DependencyProperty.RegisterReadOnly( "Anchorables", typeof( IEnumerable<LayoutAnchorableItem> ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( ( IEnumerable<LayoutAnchorableItem> )null ) ); new FrameworkPropertyMetadata( ( IEnumerable<LayoutAnchorableItem> )null ) );
public static readonly DependencyProperty AnchorablesProperty = AnchorablesPropertyKey.DependencyProperty; public static readonly DependencyProperty AnchorablesProperty = AnchorablesPropertyKey.DependencyProperty;
/// <summary>
/// Gets the Anchorables property. This dependency property
/// indicates the list of anchorables.
/// </summary>
public IEnumerable<LayoutAnchorableItem> Anchorables public IEnumerable<LayoutAnchorableItem> Anchorables
{ {
get get
@ -137,16 +123,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region SelectedDocument #region SelectedDocument
/// <summary>
/// SelectedDocument Dependency Property
/// </summary>
public static readonly DependencyProperty SelectedDocumentProperty = DependencyProperty.Register( "SelectedDocument", typeof( LayoutDocumentItem ), typeof( NavigatorWindow ), public static readonly DependencyProperty SelectedDocumentProperty = DependencyProperty.Register( "SelectedDocument", typeof( LayoutDocumentItem ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( ( LayoutDocumentItem )null, new PropertyChangedCallback( OnSelectedDocumentChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutDocumentItem )null, new PropertyChangedCallback( OnSelectedDocumentChanged ) ) );
/// <summary>
/// Gets or sets the SelectedDocument property. This dependency property
/// indicates the selected document.
/// </summary>
public LayoutDocumentItem SelectedDocument public LayoutDocumentItem SelectedDocument
{ {
get get
@ -159,17 +138,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the SelectedDocument property.
/// </summary>
private static void OnSelectedDocumentChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnSelectedDocumentChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( NavigatorWindow )d ).OnSelectedDocumentChanged( e ); ( ( NavigatorWindow )d ).OnSelectedDocumentChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the SelectedDocument property.
/// </summary>
protected virtual void OnSelectedDocumentChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnSelectedDocumentChanged( DependencyPropertyChangedEventArgs e )
{ {
if( _internalSetSelectedDocument ) if( _internalSetSelectedDocument )
@ -187,16 +160,9 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region SelectedAnchorable #region SelectedAnchorable
/// <summary>
/// SelectedAnchorable Dependency Property
/// </summary>
public static readonly DependencyProperty SelectedAnchorableProperty = DependencyProperty.Register( "SelectedAnchorable", typeof( LayoutAnchorableItem ), typeof( NavigatorWindow ), public static readonly DependencyProperty SelectedAnchorableProperty = DependencyProperty.Register( "SelectedAnchorable", typeof( LayoutAnchorableItem ), typeof( NavigatorWindow ),
new FrameworkPropertyMetadata( ( LayoutAnchorableItem )null, new PropertyChangedCallback( OnSelectedAnchorableChanged ) ) ); new FrameworkPropertyMetadata( ( LayoutAnchorableItem )null, new PropertyChangedCallback( OnSelectedAnchorableChanged ) ) );
/// <summary>
/// Gets or sets the SelectedAnchorable property. This dependency property
/// indicates the selected anchorable.
/// </summary>
public LayoutAnchorableItem SelectedAnchorable public LayoutAnchorableItem SelectedAnchorable
{ {
get get
@ -209,17 +175,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Handles changes to the SelectedAnchorable property.
/// </summary>
private static void OnSelectedAnchorableChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) private static void OnSelectedAnchorableChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
{ {
( ( NavigatorWindow )d ).OnSelectedAnchorableChanged( e ); ( ( NavigatorWindow )d ).OnSelectedAnchorableChanged( e );
} }
/// <summary>
/// Provides derived classes an opportunity to handle changes to the SelectedAnchorable property.
/// </summary>
protected virtual void OnSelectedAnchorableChanged( DependencyPropertyChangedEventArgs e ) protected virtual void OnSelectedAnchorableChanged( DependencyPropertyChangedEventArgs e )
{ {
if( _internalSetSelectedAnchorable ) if( _internalSetSelectedAnchorable )
@ -480,21 +440,11 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Internal Methods #region Internal Methods
/// <summary>
/// Provides a secure method for setting the Anchorables property.
/// This dependency property indicates the list of anchorables.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetAnchorables( IEnumerable<LayoutAnchorableItem> value ) protected void SetAnchorables( IEnumerable<LayoutAnchorableItem> value )
{ {
this.SetValue( AnchorablesPropertyKey, value ); this.SetValue( AnchorablesPropertyKey, value );
} }
/// <summary>
/// Provides a secure method for setting the Documents property.
/// This dependency property indicates the list of documents.
/// </summary>
/// <param name="value">The new value for the property.</param>
protected void SetDocuments( LayoutDocumentItem[] value ) protected void SetDocuments( LayoutDocumentItem[] value )
{ {
this.SetValue( DocumentsPropertyKey, value ); this.SetValue( DocumentsPropertyKey, value );

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayArea.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

15
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindow.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -203,14 +203,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
#region Private Methods #region Private Methods
/// <summary>
/// This method controls the DropTargetInto button of the overlay window.
/// It checks that only 1 of the defined ContentLayouts can be present on the LayoutDocumentPane or LayoutAnchorablePane.
/// The combination between the ContentLayout Title and the ContentId is the search key, and has to be unique.
/// If a floating window is dropped on a LayoutDocumentPane or LayoutAnchorablePane, it checks if one of the containing LayoutContents
/// is already present on the LayoutDocumentPane or LayoutAnchorablePane. If so, then it will disable the DropTargetInto button.
/// </summary>
/// <param name="positionableElement">The given LayoutDocumentPane or LayoutAnchorablePane</param>
private void SetDropTargetIntoVisibility( ILayoutPositionableElement positionableElement ) private void SetDropTargetIntoVisibility( ILayoutPositionableElement positionableElement )
{ {
if( positionableElement is LayoutAnchorablePane ) if( positionableElement is LayoutAnchorablePane )
@ -255,11 +247,6 @@ namespace Xceed.Wpf.AvalonDock.Controls
} }
} }
/// <summary>
/// Find any LayoutDocument or LayoutAnchorable from a given source (e.g. LayoutDocumentPane, LayoutAnchorableFloatingWindow, etc.)
/// </summary>
/// <param name="source">The given source to search in</param>
/// <returns>A list of all LayoutContent's</returns>
private List<LayoutContent> GetAllLayoutContents( object source ) private List<LayoutContent> GetAllLayoutContents( object source )
{ {
var result = new List<LayoutContent>(); var result = new List<LayoutContent>();

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTarget.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/OverlayWindowDropTargetType.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/ReentrantFlag.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

38
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ComGuids.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -23,56 +23,32 @@ namespace Standard
{ {
internal static partial class IID internal static partial class IID
{ {
/// <summary>IID_IEnumIDList</summary>
public const string EnumIdList = "000214F2-0000-0000-C000-000000000046"; public const string EnumIdList = "000214F2-0000-0000-C000-000000000046";
/// <summary>IID_IEnumObjects</summary>
public const string EnumObjects = "2c1c7e2e-2d0e-4059-831e-1e6f82335c2e"; public const string EnumObjects = "2c1c7e2e-2d0e-4059-831e-1e6f82335c2e";
/// <summary>IID_IHTMLDocument2</summary>
public const string HtmlDocument2 = "332C4425-26CB-11D0-B483-00C04FD90119"; public const string HtmlDocument2 = "332C4425-26CB-11D0-B483-00C04FD90119";
/// <summary>IID_IModalWindow</summary>
public const string ModalWindow = "b4db1657-70d7-485e-8e3e-6fcb5a5c1802"; public const string ModalWindow = "b4db1657-70d7-485e-8e3e-6fcb5a5c1802";
/// <summary>IID_IObjectArray</summary>
public const string ObjectArray = "92CA9DCD-5622-4bba-A805-5E9F541BD8C9"; public const string ObjectArray = "92CA9DCD-5622-4bba-A805-5E9F541BD8C9";
/// <summary>IID_IObjectCollection</summary>
public const string ObjectCollection = "5632b1a4-e38a-400a-928a-d4cd63230295"; public const string ObjectCollection = "5632b1a4-e38a-400a-928a-d4cd63230295";
/// <summary>IID_IPropertyNotifySink</summary>
public const string PropertyNotifySink = "9BFBBC02-EFF1-101A-84ED-00AA00341D07"; public const string PropertyNotifySink = "9BFBBC02-EFF1-101A-84ED-00AA00341D07";
/// <summary>IID_IPropertyStore</summary>
public const string PropertyStore = "886d8eeb-8cf2-4446-8d02-cdba1dbdcf99"; public const string PropertyStore = "886d8eeb-8cf2-4446-8d02-cdba1dbdcf99";
/// <summary>IID_IServiceProvider</summary>
public const string ServiceProvider = "6d5140c1-7436-11ce-8034-00aa006009fa"; public const string ServiceProvider = "6d5140c1-7436-11ce-8034-00aa006009fa";
/// <summary>IID_IShellFolder</summary>
public const string ShellFolder = "000214E6-0000-0000-C000-000000000046"; public const string ShellFolder = "000214E6-0000-0000-C000-000000000046";
/// <summary>IID_IShellLink</summary>
public const string ShellLink = "000214F9-0000-0000-C000-000000000046"; public const string ShellLink = "000214F9-0000-0000-C000-000000000046";
/// <summary>IID_IShellItem</summary>
public const string ShellItem = "43826d1e-e718-42ee-bc55-a1e261c37bfe"; public const string ShellItem = "43826d1e-e718-42ee-bc55-a1e261c37bfe";
/// <summary>IID_IShellItem2</summary>
public const string ShellItem2 = "7e9fb0d3-919f-4307-ab2e-9b1860310c93"; public const string ShellItem2 = "7e9fb0d3-919f-4307-ab2e-9b1860310c93";
/// <summary>IID_IShellItemArray</summary>
public const string ShellItemArray = "B63EA76D-1F85-456F-A19C-48159EFA858B"; public const string ShellItemArray = "B63EA76D-1F85-456F-A19C-48159EFA858B";
/// <summary>IID_ITaskbarList</summary>
public const string TaskbarList = "56FDF342-FD6D-11d0-958A-006097C9A090"; public const string TaskbarList = "56FDF342-FD6D-11d0-958A-006097C9A090";
/// <summary>IID_ITaskbarList2</summary>
public const string TaskbarList2 = "602D4995-B13A-429b-A66E-1935E44F4317"; public const string TaskbarList2 = "602D4995-B13A-429b-A66E-1935E44F4317";
/// <summary>IID_IUnknown</summary>
public const string Unknown = "00000000-0000-0000-C000-000000000046"; public const string Unknown = "00000000-0000-0000-C000-000000000046";
#region Win7 IIDs #region Win7 IIDs
/// <summary>IID_IApplicationDestinations</summary>
public const string ApplicationDestinations = "12337d35-94c6-48a0-bce7-6a9c69d4d600"; public const string ApplicationDestinations = "12337d35-94c6-48a0-bce7-6a9c69d4d600";
/// <summary>IID_IApplicationDocumentLists</summary>
public const string ApplicationDocumentLists = "3c594f9f-9f30-47a1-979a-c9e83d3d0a06"; public const string ApplicationDocumentLists = "3c594f9f-9f30-47a1-979a-c9e83d3d0a06";
/// <summary>IID_ICustomDestinationList</summary>
public const string CustomDestinationList = "6332debf-87b5-4670-90c0-5e57b408a49e"; public const string CustomDestinationList = "6332debf-87b5-4670-90c0-5e57b408a49e";
/// <summary>IID_IObjectWithAppUserModelID</summary>
public const string ObjectWithAppUserModelId = "36db0196-9665-46d1-9ba7-d3709eecf9ed"; public const string ObjectWithAppUserModelId = "36db0196-9665-46d1-9ba7-d3709eecf9ed";
/// <summary>IID_IObjectWithProgID</summary>
public const string ObjectWithProgId = "71e806fb-8dee-46fc-bf8c-7748a8a1ae13"; public const string ObjectWithProgId = "71e806fb-8dee-46fc-bf8c-7748a8a1ae13";
/// <summary>IID_ITaskbarList3</summary>
public const string TaskbarList3 = "ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf"; public const string TaskbarList3 = "ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf";
/// <summary>IID_ITaskbarList4</summary>
public const string TaskbarList4 = "c43dc798-95d1-4bea-9030-bb99e2983a1a"; public const string TaskbarList4 = "c43dc798-95d1-4bea-9030-bb99e2983a1a";
#endregion #endregion
@ -85,26 +61,14 @@ namespace Standard
return ( T )System.Activator.CreateInstance( System.Type.GetTypeFromCLSID( new System.Guid( clsid ) ) ); return ( T )System.Activator.CreateInstance( System.Type.GetTypeFromCLSID( new System.Guid( clsid ) ) );
} }
/// <summary>CLSID_TaskbarList</summary>
/// <remarks>IID_ITaskbarList</remarks>
public const string TaskbarList = "56FDF344-FD6D-11d0-958A-006097C9A090"; public const string TaskbarList = "56FDF344-FD6D-11d0-958A-006097C9A090";
/// <summary>CLSID_EnumerableObjectCollection</summary>
/// <remarks>IID_IEnumObjects.</remarks>
public const string EnumerableObjectCollection = "2d3468c1-36a7-43b6-ac24-d3f02fd9607a"; public const string EnumerableObjectCollection = "2d3468c1-36a7-43b6-ac24-d3f02fd9607a";
/// <summary>CLSID_ShellLink</summary>
/// <remarks>IID_IShellLink</remarks>
public const string ShellLink = "00021401-0000-0000-C000-000000000046"; public const string ShellLink = "00021401-0000-0000-C000-000000000046";
#region Win7 CLSIDs #region Win7 CLSIDs
/// <summary>CLSID_DestinationList</summary>
/// <remarks>IID_ICustomDestinationList</remarks>
public const string DestinationList = "77f10cf0-3db5-4966-b520-b7c54fd35ed6"; public const string DestinationList = "77f10cf0-3db5-4966-b520-b7c54fd35ed6";
/// <summary>CLSID_ApplicationDestinations</summary>
/// <remarks>IID_IApplicationDestinations</remarks>
public const string ApplicationDestinations = "86c14003-4d6b-4ef3-a7b4-0506663b2e68"; public const string ApplicationDestinations = "86c14003-4d6b-4ef3-a7b4-0506663b2e68";
/// <summary>CLSID_ApplicationDocumentLists</summary>
/// <remarks>IID_IApplicationDocumentLists</remarks>
public const string ApplicationDocumentLists = "86bec222-30f2-47e0-9f25-60d11cd75c28"; public const string ApplicationDocumentLists = "86bec222-30f2-47e0-9f25-60d11cd75c28";
#endregion #endregion

114
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Debug.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -34,7 +34,6 @@ namespace Standard
using System.Diagnostics; using System.Diagnostics;
using System.Threading; using System.Threading;
/// <summary>A static class for verifying assumptions.</summary>
internal static class Assert internal static class Assert
{ {
private static void _Break() private static void _Break()
@ -46,17 +45,10 @@ namespace Standard
#endif #endif
} }
/// <summary>A function signature for Assert.Evaluate.</summary>
public delegate void EvaluateFunction(); public delegate void EvaluateFunction();
/// <summary>A function signature for Assert.Implies.</summary>
/// <returns>Returns the truth of a predicate.</returns>
public delegate bool ImplicationFunction(); public delegate bool ImplicationFunction();
/// <summary>
/// Executes the specified argument.
/// </summary>
/// <param name="argument">The function to execute.</param>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void Evaluate( EvaluateFunction argument ) public static void Evaluate( EvaluateFunction argument )
{ {
@ -64,10 +56,6 @@ namespace Standard
argument(); argument();
} }
/// <summary>Obsolete: Use Standard.Assert.AreEqual instead of Assert.Equals</summary>
/// <typeparam name="T">The generic type to compare for equality.</typeparam>
/// <param name="expected">The first generic type data to compare. This is is the expected value.</param>
/// <param name="actual">The second generic type data to compare. This is the actual value.</param>
[ [
Obsolete( "Use Assert.AreEqual instead of Assert.Equals", false ), Obsolete( "Use Assert.AreEqual instead of Assert.Equals", false ),
Conditional( "DEBUG" ) Conditional( "DEBUG" )
@ -77,13 +65,6 @@ namespace Standard
AreEqual( expected, actual ); AreEqual( expected, actual );
} }
/// <summary>
/// Verifies that two generic type data are equal. The assertion fails if they are not.
/// </summary>
/// <typeparam name="T">The generic type to compare for equality.</typeparam>
/// <param name="expected">The first generic type data to compare. This is is the expected value.</param>
/// <param name="actual">The second generic type data to compare. This is the actual value.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void AreEqual<T>( T expected, T actual ) public static void AreEqual<T>( T expected, T actual )
{ {
@ -101,13 +82,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that two generic type data are not equal. The assertion fails if they are.
/// </summary>
/// <typeparam name="T">The generic type to compare for inequality.</typeparam>
/// <param name="notExpected">The first generic type data to compare. This is is the value that's not expected.</param>
/// <param name="actual">The second generic type data to compare. This is the actual value.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void AreNotEqual<T>( T notExpected, T actual ) public static void AreNotEqual<T>( T notExpected, T actual )
{ {
@ -125,16 +99,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that if the specified condition is true, then so is the result.
/// The assertion fails if the condition is true but the result is false.
/// </summary>
/// <param name="condition">if set to <c>true</c> [condition].</param>
/// <param name="result">
/// A second Boolean statement. If the first was true then so must this be.
/// If the first statement was false then the value of this is ignored.
/// </param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void Implies( bool condition, bool result ) public static void Implies( bool condition, bool result )
{ {
@ -144,14 +108,6 @@ namespace Standard
} }
} }
/// <summary>
/// Lazy evaluation overload. Verifies that if a condition is true, then so is a secondary value.
/// </summary>
/// <param name="condition">The conditional value.</param>
/// <param name="result">A function to be evaluated for truth if the condition argument is true.</param>
/// <remarks>
/// This overload only evaluates the result if the first condition is true.
/// </remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void Implies( bool condition, ImplicationFunction result ) public static void Implies( bool condition, ImplicationFunction result )
{ {
@ -161,20 +117,12 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that a string has content. I.e. it is not null and it is not empty.
/// </summary>
/// <param name="value">The string to verify.</param>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsNeitherNullNorEmpty( string value ) public static void IsNeitherNullNorEmpty( string value )
{ {
IsFalse( string.IsNullOrEmpty( value ) ); IsFalse( string.IsNullOrEmpty( value ) );
} }
/// <summary>
/// Verifies that a string has content. I.e. it is not null and it is not purely whitespace.
/// </summary>
/// <param name="value">The string to verify.</param>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsNeitherNullNorWhitespace( string value ) public static void IsNeitherNullNorWhitespace( string value )
{ {
@ -189,12 +137,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies the specified value is not null. The assertion fails if it is.
/// </summary>
/// <typeparam name="T">The generic reference type.</typeparam>
/// <param name="value">The value to check for nullness.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsNotNull<T>( T value ) where T : class public static void IsNotNull<T>( T value ) where T : class
{ {
@ -222,11 +164,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified condition is false. The assertion fails if it is true.
/// </summary>
/// <param name="condition">The expression that should be <c>false</c>.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsFalse( bool condition ) public static void IsFalse( bool condition )
{ {
@ -236,12 +173,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified condition is false. The assertion fails if it is true.
/// </summary>
/// <param name="condition">The expression that should be <c>false</c>.</param>
/// <param name="message">The message to display if the condition is <c>true</c>.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsFalse( bool condition, string message ) public static void IsFalse( bool condition, string message )
{ {
@ -251,11 +182,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified condition is true. The assertion fails if it is not.
/// </summary>
/// <param name="condition">A condition that is expected to be <c>true</c>.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsTrue( bool condition ) public static void IsTrue( bool condition )
{ {
@ -265,12 +191,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified condition is true. The assertion fails if it is not.
/// </summary>
/// <param name="condition">A condition that is expected to be <c>true</c>.</param>
/// <param name="message">The message to write in case the condition is <c>false</c>.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsTrue( bool condition, string message ) public static void IsTrue( bool condition, string message )
{ {
@ -280,31 +200,18 @@ namespace Standard
} }
} }
/// <summary>
/// This line should never be executed. The assertion always fails.
/// </summary>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void Fail() public static void Fail()
{ {
_Break(); _Break();
} }
/// <summary>
/// This line should never be executed. The assertion always fails.
/// </summary>
/// <param name="message">The message to display if this function is executed.</param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void Fail( string message ) public static void Fail( string message )
{ {
_Break(); _Break();
} }
/// <summary>
/// Verifies that the specified object is null. The assertion fails if it is not.
/// </summary>
/// <param name="item">The item to verify is null.</param>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsNull<T>( T item ) where T : class public static void IsNull<T>( T item ) where T : class
{ {
@ -314,12 +221,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified value is within the expected range. The assertion fails if it isn't.
/// </summary>
/// <param name="lowerBoundInclusive">The lower bound inclusive value.</param>
/// <param name="value">The value to verify.</param>
/// <param name="upperBoundInclusive">The upper bound inclusive value.</param>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void BoundedDoubleInc( double lowerBoundInclusive, double value, double upperBoundInclusive ) public static void BoundedDoubleInc( double lowerBoundInclusive, double value, double upperBoundInclusive )
{ {
@ -329,12 +230,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified value is within the expected range. The assertion fails if it isn't.
/// </summary>
/// <param name="lowerBoundInclusive">The lower bound inclusive value.</param>
/// <param name="value">The value to verify.</param>
/// <param name="upperBoundExclusive">The upper bound exclusive value.</param>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void BoundedInteger( int lowerBoundInclusive, int value, int upperBoundExclusive ) public static void BoundedInteger( int lowerBoundInclusive, int value, int upperBoundExclusive )
{ {
@ -344,13 +239,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verify the current thread's apartment state is what's expected. The assertion fails if it isn't
/// </summary>
/// <param name="expectedState">
/// The expected apartment state for the current thread.
/// </param>
/// <remarks>This breaks into the debugger in the case of a failed assertion.</remarks>
[Conditional( "DEBUG" )] [Conditional( "DEBUG" )]
public static void IsApartmentState( ApartmentState expectedState ) public static void IsApartmentState( ApartmentState expectedState )
{ {

75
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DoubleUtil.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -20,29 +20,10 @@ namespace Standard
{ {
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
/// <summary>
/// DoubleUtil uses fixed eps to provide fuzzy comparison functionality for doubles.
/// Note that FP noise is a big problem and using any of these compare
/// methods is not a complete solution, but rather the way to reduce
/// the probability of repeating unnecessary work.
/// </summary>
internal static class DoubleUtilities internal static class DoubleUtilities
{ {
/// <summary>
/// Epsilon - more or less random, more or less small number.
/// </summary>
private const double Epsilon = 0.00000153; private const double Epsilon = 0.00000153;
/// <summary>
/// AreClose returns whether or not two doubles are "close". That is, whether or
/// not they are within epsilon of each other.
/// There are plenty of ways for this to return false even for numbers which
/// are theoretically identical, so no code calling this should fail to work if this
/// returns false.
/// </summary>
/// <param name="value1">The first double to compare.</param>
/// <param name="value2">The second double to compare.</param>
/// <returns>The result of the AreClose comparision.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool AreClose( double value1, double value2 ) public static bool AreClose( double value1, double value2 )
{ {
@ -55,90 +36,36 @@ namespace Standard
return ( delta < Epsilon ) && ( delta > -Epsilon ); return ( delta < Epsilon ) && ( delta > -Epsilon );
} }
/// <summary>
/// LessThan returns whether or not the first double is less than the second double.
/// That is, whether or not the first is strictly less than *and* not within epsilon of
/// the other number.
/// There are plenty of ways for this to return false even for numbers which
/// are theoretically identical, so no code calling this should fail to work if this
/// returns false.
/// </summary>
/// <param name="value1">The first double to compare.</param>
/// <param name="value2">The second double to compare.</param>
/// <returns>The result of the LessThan comparision.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool LessThan( double value1, double value2 ) public static bool LessThan( double value1, double value2 )
{ {
return ( value1 < value2 ) && !AreClose( value1, value2 ); return ( value1 < value2 ) && !AreClose( value1, value2 );
} }
/// <summary>
/// GreaterThan returns whether or not the first double is greater than the second double.
/// That is, whether or not the first is strictly greater than *and* not within epsilon of
/// the other number.
/// There are plenty of ways for this to return false even for numbers which
/// are theoretically identical, so no code calling this should fail to work if this
/// returns false.
/// </summary>
/// <param name="value1">The first double to compare.</param>
/// <param name="value2">The second double to compare.</param>
/// <returns>The result of the GreaterThan comparision.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool GreaterThan( double value1, double value2 ) public static bool GreaterThan( double value1, double value2 )
{ {
return ( value1 > value2 ) && !AreClose( value1, value2 ); return ( value1 > value2 ) && !AreClose( value1, value2 );
} }
/// <summary>
/// LessThanOrClose returns whether or not the first double is less than or close to
/// the second double. That is, whether or not the first is strictly less than or within
/// epsilon of the other number.
/// There are plenty of ways for this to return false even for numbers which
/// are theoretically identical, so no code calling this should fail to work if this
/// returns false.
/// </summary>
/// <param name="value1">The first double to compare.</param>
/// <param name="value2">The second double to compare.</param>
/// <returns>The result of the LessThanOrClose comparision.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool LessThanOrClose( double value1, double value2 ) public static bool LessThanOrClose( double value1, double value2 )
{ {
return ( value1 < value2 ) || AreClose( value1, value2 ); return ( value1 < value2 ) || AreClose( value1, value2 );
} }
/// <summary>
/// GreaterThanOrClose returns whether or not the first double is greater than or close to
/// the second double. That is, whether or not the first is strictly greater than or within
/// epsilon of the other number.
/// There are plenty of ways for this to return false even for numbers which
/// are theoretically identical, so no code calling this should fail to work if this
/// returns false.
/// </summary>
/// <param name="value1">The first double to compare.</param>
/// <param name="value2">The second double to compare.</param>
/// <returns>The result of the GreaterThanOrClose comparision.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool GreaterThanOrClose( double value1, double value2 ) public static bool GreaterThanOrClose( double value1, double value2 )
{ {
return ( value1 > value2 ) || AreClose( value1, value2 ); return ( value1 > value2 ) || AreClose( value1, value2 );
} }
/// <summary>
/// Test to see if a double is a finite number (is not NaN or Infinity).
/// </summary>
/// <param name='value'>The value to test.</param>
/// <returns>Whether or not the value is a finite number.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool IsFinite( double value ) public static bool IsFinite( double value )
{ {
return !double.IsNaN( value ) && !double.IsInfinity( value ); return !double.IsNaN( value ) && !double.IsInfinity( value );
} }
/// <summary>
/// Test to see if a double a valid size value (is finite and > 0).
/// </summary>
/// <param name='value'>The value to test.</param>
/// <returns>Whether or not the value is a valid size value.</returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static bool IsValidSize( double value ) public static bool IsValidSize( double value )
{ {

12
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/DpiHelper.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -47,21 +47,11 @@ namespace Standard
} }
} }
/// <summary>
/// Convert a point in device independent pixels (1/96") to a point in the system coordinates.
/// </summary>
/// <param name="logicalPoint">A point in the logical coordinate system.</param>
/// <returns>Returns the parameter converted to the system's coordinates.</returns>
public static Point LogicalPixelsToDevice( Point logicalPoint ) public static Point LogicalPixelsToDevice( Point logicalPoint )
{ {
return _transformToDevice.Transform( logicalPoint ); return _transformToDevice.Transform( logicalPoint );
} }
/// <summary>
/// Convert a point in system coordinates to a point in device independent pixels (1/96").
/// </summary>
/// <param name="logicalPoint">A point in the physical coordinate system.</param>
/// <returns>Returns the parameter converted to the device independent coordinate system.</returns>
public static Point DevicePixelsToLogical( Point devicePoint ) public static Point DevicePixelsToLogical( Point devicePoint )
{ {
return _transformToDip.Transform( devicePoint ); return _transformToDip.Transform( devicePoint );

104
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ErrorCodes.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -28,9 +28,6 @@ namespace Standard
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
/// <summary>
/// Wrapper for common Win32 status codes.
/// </summary>
[StructLayout( LayoutKind.Explicit )] [StructLayout( LayoutKind.Explicit )]
internal struct Win32Error internal struct Win32Error
{ {
@ -40,79 +37,52 @@ namespace Standard
// NOTE: These public static field declarations are automatically // NOTE: These public static field declarations are automatically
// picked up by (HRESULT's) ToString through reflection. // picked up by (HRESULT's) ToString through reflection.
/// <summary>The operation completed successfully.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_SUCCESS = new Win32Error( 0 ); public static readonly Win32Error ERROR_SUCCESS = new Win32Error( 0 );
/// <summary>Incorrect function.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_INVALID_FUNCTION = new Win32Error( 1 ); public static readonly Win32Error ERROR_INVALID_FUNCTION = new Win32Error( 1 );
/// <summary>The system cannot find the file specified.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_FILE_NOT_FOUND = new Win32Error( 2 ); public static readonly Win32Error ERROR_FILE_NOT_FOUND = new Win32Error( 2 );
/// <summary>The system cannot find the path specified.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_PATH_NOT_FOUND = new Win32Error( 3 ); public static readonly Win32Error ERROR_PATH_NOT_FOUND = new Win32Error( 3 );
/// <summary>The system cannot open the file.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_TOO_MANY_OPEN_FILES = new Win32Error( 4 ); public static readonly Win32Error ERROR_TOO_MANY_OPEN_FILES = new Win32Error( 4 );
/// <summary>Access is denied.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_ACCESS_DENIED = new Win32Error( 5 ); public static readonly Win32Error ERROR_ACCESS_DENIED = new Win32Error( 5 );
/// <summary>The handle is invalid.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_INVALID_HANDLE = new Win32Error( 6 ); public static readonly Win32Error ERROR_INVALID_HANDLE = new Win32Error( 6 );
/// <summary>Not enough storage is available to complete this operation.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_OUTOFMEMORY = new Win32Error( 14 ); public static readonly Win32Error ERROR_OUTOFMEMORY = new Win32Error( 14 );
/// <summary>There are no more files.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_NO_MORE_FILES = new Win32Error( 18 ); public static readonly Win32Error ERROR_NO_MORE_FILES = new Win32Error( 18 );
/// <summary>The process cannot access the file because it is being used by another process.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_SHARING_VIOLATION = new Win32Error( 32 ); public static readonly Win32Error ERROR_SHARING_VIOLATION = new Win32Error( 32 );
/// <summary>The parameter is incorrect.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_INVALID_PARAMETER = new Win32Error( 87 ); public static readonly Win32Error ERROR_INVALID_PARAMETER = new Win32Error( 87 );
/// <summary>The data area passed to a system call is too small.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_INSUFFICIENT_BUFFER = new Win32Error( 122 ); public static readonly Win32Error ERROR_INSUFFICIENT_BUFFER = new Win32Error( 122 );
/// <summary>Cannot nest calls to LoadModule.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_NESTING_NOT_ALLOWED = new Win32Error( 215 ); public static readonly Win32Error ERROR_NESTING_NOT_ALLOWED = new Win32Error( 215 );
/// <summary>Illegal operation attempted on a registry key that has been marked for deletion.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_KEY_DELETED = new Win32Error( 1018 ); public static readonly Win32Error ERROR_KEY_DELETED = new Win32Error( 1018 );
/// <summary>Element not found.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_NOT_FOUND = new Win32Error( 1168 ); public static readonly Win32Error ERROR_NOT_FOUND = new Win32Error( 1168 );
/// <summary>There was no match for the specified key in the index.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_NO_MATCH = new Win32Error( 1169 ); public static readonly Win32Error ERROR_NO_MATCH = new Win32Error( 1169 );
/// <summary>An invalid device was specified.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_BAD_DEVICE = new Win32Error( 1200 ); public static readonly Win32Error ERROR_BAD_DEVICE = new Win32Error( 1200 );
/// <summary>The operation was canceled by the user.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_CANCELLED = new Win32Error( 1223 ); public static readonly Win32Error ERROR_CANCELLED = new Win32Error( 1223 );
/// <summary>The window class was already registered.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_CLASS_ALREADY_EXISTS = new Win32Error( 1410 ); public static readonly Win32Error ERROR_CLASS_ALREADY_EXISTS = new Win32Error( 1410 );
/// <summary>The specified datatype is invalid.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly Win32Error ERROR_INVALID_DATATYPE = new Win32Error( 1804 ); public static readonly Win32Error ERROR_INVALID_DATATYPE = new Win32Error( 1804 );
/// <summary>
/// Create a new Win32 error.
/// </summary>
/// <param name="i">The integer value of the error.</param>
public Win32Error( int i ) public Win32Error( int i )
{ {
_value = i; _value = i;
} }
/// <summary>Performs HRESULT_FROM_WIN32 conversion.</summary>
/// <param name="error">The Win32 error being converted to an HRESULT.</param>
/// <returns>The equivilent HRESULT value.</returns>
public static explicit operator HRESULT( Win32Error error ) public static explicit operator HRESULT( Win32Error error )
{ {
// #define __HRESULT_FROM_WIN32(x) // #define __HRESULT_FROM_WIN32(x)
@ -125,16 +95,11 @@ namespace Standard
} }
// Method version of the cast operation // Method version of the cast operation
/// <summary>Performs HRESULT_FROM_WIN32 conversion.</summary>
/// <param name="error">The Win32 error being converted to an HRESULT.</param>
/// <returns>The equivilent HRESULT value.</returns>
public HRESULT ToHRESULT() public HRESULT ToHRESULT()
{ {
return ( HRESULT )this; return ( HRESULT )this;
} }
/// <summary>Performs the equivalent of Win32's GetLastError()</summary>
/// <returns>A Win32Error instance with the result of the native GetLastError</returns>
[SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )] [SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )]
public static Win32Error GetLastError() public static Win32Error GetLastError()
{ {
@ -158,23 +123,11 @@ namespace Standard
return _value.GetHashCode(); return _value.GetHashCode();
} }
/// <summary>
/// Compare two Win32 error codes for equality.
/// </summary>
/// <param name="errLeft">The first error code to compare.</param>
/// <param name="errRight">The second error code to compare.</param>
/// <returns>Whether the two error codes are the same.</returns>
public static bool operator ==( Win32Error errLeft, Win32Error errRight ) public static bool operator ==( Win32Error errLeft, Win32Error errRight )
{ {
return errLeft._value == errRight._value; return errLeft._value == errRight._value;
} }
/// <summary>
/// Compare two Win32 error codes for inequality.
/// </summary>
/// <param name="errLeft">The first error code to compare.</param>
/// <param name="errRight">The second error code to compare.</param>
/// <returns>Whether the two error codes are not the same.</returns>
public static bool operator !=( Win32Error errLeft, Win32Error errRight ) public static bool operator !=( Win32Error errLeft, Win32Error errRight )
{ {
return !( errLeft == errRight ); return !( errLeft == errRight );
@ -183,29 +136,18 @@ namespace Standard
internal enum Facility internal enum Facility
{ {
/// <summary>FACILITY_NULL</summary>
Null = 0, Null = 0,
/// <summary>FACILITY_RPC</summary>
Rpc = 1, Rpc = 1,
/// <summary>FACILITY_DISPATCH</summary>
Dispatch = 2, Dispatch = 2,
/// <summary>FACILITY_STORAGE</summary>
Storage = 3, Storage = 3,
/// <summary>FACILITY_ITF</summary>
Itf = 4, Itf = 4,
/// <summary>FACILITY_WIN32</summary>
Win32 = 7, Win32 = 7,
/// <summary>FACILITY_WINDOWS</summary>
Windows = 8, Windows = 8,
/// <summary>FACILITY_CONTROL</summary>
Control = 10, Control = 10,
/// <summary>MSDN doced facility code for ESE errors.</summary>
Ese = 0xE5E, Ese = 0xE5E,
/// <summary>FACILITY_WINCODEC (WIC)</summary>
WinCodec = 0x898, WinCodec = 0x898,
} }
/// <summary>Wrapper for HRESULT status codes.</summary>
[StructLayout( LayoutKind.Explicit )] [StructLayout( LayoutKind.Explicit )]
internal struct HRESULT internal struct HRESULT
{ {
@ -214,82 +156,51 @@ namespace Standard
// NOTE: These public static field declarations are automatically // NOTE: These public static field declarations are automatically
// picked up by ToString through reflection. // picked up by ToString through reflection.
/// <summary>S_OK</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT S_OK = new HRESULT( 0x00000000 ); public static readonly HRESULT S_OK = new HRESULT( 0x00000000 );
/// <summary>S_FALSE</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT S_FALSE = new HRESULT( 0x00000001 ); public static readonly HRESULT S_FALSE = new HRESULT( 0x00000001 );
/// <summary>E_PENDING</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_PENDING = new HRESULT( 0x8000000A ); public static readonly HRESULT E_PENDING = new HRESULT( 0x8000000A );
/// <summary>E_NOTIMPL</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_NOTIMPL = new HRESULT( 0x80004001 ); public static readonly HRESULT E_NOTIMPL = new HRESULT( 0x80004001 );
/// <summary>E_NOINTERFACE</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_NOINTERFACE = new HRESULT( 0x80004002 ); public static readonly HRESULT E_NOINTERFACE = new HRESULT( 0x80004002 );
/// <summary>E_POINTER</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_POINTER = new HRESULT( 0x80004003 ); public static readonly HRESULT E_POINTER = new HRESULT( 0x80004003 );
/// <summary>E_ABORT</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_ABORT = new HRESULT( 0x80004004 ); public static readonly HRESULT E_ABORT = new HRESULT( 0x80004004 );
/// <summary>E_FAIL</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_FAIL = new HRESULT( 0x80004005 ); public static readonly HRESULT E_FAIL = new HRESULT( 0x80004005 );
/// <summary>E_UNEXPECTED</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_UNEXPECTED = new HRESULT( 0x8000FFFF ); public static readonly HRESULT E_UNEXPECTED = new HRESULT( 0x8000FFFF );
/// <summary>STG_E_INVALIDFUNCTION</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT STG_E_INVALIDFUNCTION = new HRESULT( 0x80030001 ); public static readonly HRESULT STG_E_INVALIDFUNCTION = new HRESULT( 0x80030001 );
/// <summary>REGDB_E_CLASSNOTREG</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT REGDB_E_CLASSNOTREG = new HRESULT( 0x80040154 ); public static readonly HRESULT REGDB_E_CLASSNOTREG = new HRESULT( 0x80040154 );
/// <summary>DESTS_E_NO_MATCHING_ASSOC_HANDLER. Win7 internal error code for Jump Lists.</summary>
/// <remarks>There is no Assoc Handler for the given item registered by the specified application.</remarks>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT DESTS_E_NO_MATCHING_ASSOC_HANDLER = new HRESULT( 0x80040F03 ); public static readonly HRESULT DESTS_E_NO_MATCHING_ASSOC_HANDLER = new HRESULT( 0x80040F03 );
/// <summary>DESTS_E_NORECDOCS. Win7 internal error code for Jump Lists.</summary>
/// <remarks>The given item is excluded from the recent docs folder by the NoRecDocs bit on its registration.</remarks>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT DESTS_E_NORECDOCS = new HRESULT( 0x80040F04 ); public static readonly HRESULT DESTS_E_NORECDOCS = new HRESULT( 0x80040F04 );
/// <summary>DESTS_E_NOTALLCLEARED. Win7 internal error code for Jump Lists.</summary>
/// <remarks>Not all of the items were successfully cleared</remarks>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT DESTS_E_NOTALLCLEARED = new HRESULT( 0x80040F05 ); public static readonly HRESULT DESTS_E_NOTALLCLEARED = new HRESULT( 0x80040F05 );
/// <summary>E_ACCESSDENIED</summary>
/// <remarks>Win32Error ERROR_ACCESS_DENIED.</remarks>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_ACCESSDENIED = new HRESULT( 0x80070005 ); public static readonly HRESULT E_ACCESSDENIED = new HRESULT( 0x80070005 );
/// <summary>E_OUTOFMEMORY</summary>
/// <remarks>Win32Error ERROR_OUTOFMEMORY.</remarks>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_OUTOFMEMORY = new HRESULT( 0x8007000E ); public static readonly HRESULT E_OUTOFMEMORY = new HRESULT( 0x8007000E );
/// <summary>E_INVALIDARG</summary>
/// <remarks>Win32Error ERROR_INVALID_PARAMETER.</remarks>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT E_INVALIDARG = new HRESULT( 0x80070057 ); public static readonly HRESULT E_INVALIDARG = new HRESULT( 0x80070057 );
/// <summary>INTSAFE_E_ARITHMETIC_OVERFLOW</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT INTSAFE_E_ARITHMETIC_OVERFLOW = new HRESULT( 0x80070216 ); public static readonly HRESULT INTSAFE_E_ARITHMETIC_OVERFLOW = new HRESULT( 0x80070216 );
/// <summary>COR_E_OBJECTDISPOSED</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT COR_E_OBJECTDISPOSED = new HRESULT( 0x80131622 ); public static readonly HRESULT COR_E_OBJECTDISPOSED = new HRESULT( 0x80131622 );
/// <summary>WC_E_GREATERTHAN</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT WC_E_GREATERTHAN = new HRESULT( 0xC00CEE23 ); public static readonly HRESULT WC_E_GREATERTHAN = new HRESULT( 0xC00CEE23 );
/// <summary>WC_E_SYNTAX</summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )]
public static readonly HRESULT WC_E_SYNTAX = new HRESULT( 0xC00CEE2D ); public static readonly HRESULT WC_E_SYNTAX = new HRESULT( 0xC00CEE2D );
/// <summary>
/// Create an HRESULT from an integer value.
/// </summary>
/// <param name="i"></param>
public HRESULT( uint i ) public HRESULT( uint i )
{ {
_value = i; _value = i;
@ -313,9 +224,6 @@ namespace Standard
return new HRESULT( ( uint )( ( severe ? ( 1 << 31 ) : 0 ) | ( ( int )facility << 16 ) | code ) ); return new HRESULT( ( uint )( ( severe ? ( 1 << 31 ) : 0 ) | ( ( int )facility << 16 ) | code ) );
} }
/// <summary>
/// retrieve HRESULT_FACILITY
/// </summary>
public Facility Facility public Facility Facility
{ {
get get
@ -330,9 +238,6 @@ namespace Standard
return ( Facility )( ( errorCode >> 16 ) & 0x1fff ); return ( Facility )( ( errorCode >> 16 ) & 0x1fff );
} }
/// <summary>
/// retrieve HRESULT_CODE
/// </summary>
public int Code public int Code
{ {
get get
@ -349,10 +254,6 @@ namespace Standard
#region Object class override members #region Object class override members
/// <summary>
/// Get a string representation of this HRESULT.
/// </summary>
/// <returns></returns>
public override string ToString() public override string ToString()
{ {
// Use reflection to try to name this HRESULT. // Use reflection to try to name this HRESULT.
@ -518,9 +419,6 @@ namespace Standard
} }
} }
/// <summary>
/// Convert the result of Win32 GetLastError() into a raised exception.
/// </summary>
public static void ThrowLastError() public static void ThrowLastError()
{ {
( ( HRESULT )Win32Error.GetLastError() ).ThrowIfFailed(); ( ( HRESULT )Win32Error.GetLastError() ).ThrowIfFailed();

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/MessageWindow.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

226
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/NativeMethods.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -48,9 +48,6 @@ namespace Standard
public const uint sizeof_BOOL = 4; public const uint sizeof_BOOL = 4;
} }
/// <summary>
/// HIGHCONTRAST flags
/// </summary>
[Flags] [Flags]
internal enum HCF internal enum HCF
{ {
@ -63,38 +60,17 @@ namespace Standard
HOTKEYAVAILABLE = 0x00000040, HOTKEYAVAILABLE = 0x00000040,
} }
/// <summary>
/// BITMAPINFOHEADER Compression type. BI_*.
/// </summary>
internal enum BI internal enum BI
{ {
RGB = 0, RGB = 0,
} }
/// <summary>
/// CombingRgn flags. RGN_*
/// </summary>
internal enum RGN internal enum RGN
{ {
/// <summary>
/// Creates the intersection of the two combined regions.
/// </summary>
AND = 1, AND = 1,
/// <summary>
/// Creates the union of two combined regions.
/// </summary>
OR = 2, OR = 2,
/// <summary>
/// Creates the union of two combined regions except for any overlapping areas.
/// </summary>
XOR = 3, XOR = 3,
/// <summary>
/// Combines the parts of hrgnSrc1 that are not part of hrgnSrc2.
/// </summary>
DIFF = 4, DIFF = 4,
/// <summary>
/// Creates a copy of the region identified by hrgnSrc1.
/// </summary>
COPY = 5, COPY = 5,
} }
@ -106,9 +82,6 @@ namespace Standard
COMPLEXREGION = 3, COMPLEXREGION = 3,
} }
/// <summary>
/// For IWebBrowser2. OLECMDEXECOPT_*
/// </summary>
internal enum OLECMDEXECOPT internal enum OLECMDEXECOPT
{ {
DODEFAULT = 0, DODEFAULT = 0,
@ -117,9 +90,6 @@ namespace Standard
SHOWHELP = 3 SHOWHELP = 3
} }
/// <summary>
/// For IWebBrowser2. OLECMDF_*
/// </summary>
internal enum OLECMDF internal enum OLECMDF
{ {
SUPPORTED = 1, SUPPORTED = 1,
@ -130,9 +100,6 @@ namespace Standard
DEFHIDEONCTXTMENU = 32 DEFHIDEONCTXTMENU = 32
} }
/// <summary>
/// For IWebBrowser2. OLECMDID_*
/// </summary>
internal enum OLECMDID internal enum OLECMDID
{ {
OPEN = 1, OPEN = 1,
@ -194,9 +161,6 @@ namespace Standard
SHOWPAGEACTIONMENU = 59 SHOWPAGEACTIONMENU = 59
} }
/// <summary>
/// For IWebBrowser2. READYSTATE_*
/// </summary>
enum READYSTATE enum READYSTATE
{ {
UNINITIALIZED = 0, UNINITIALIZED = 0,
@ -206,9 +170,6 @@ namespace Standard
COMPLETE = 4 COMPLETE = 4
} }
/// <summary>
/// DATAOBJ_GET_ITEM_FLAGS. DOGIF_*.
/// </summary>
internal enum DOGIF internal enum DOGIF
{ {
DEFAULT = 0x0000, DEFAULT = 0x0000,
@ -227,35 +188,13 @@ namespace Standard
[Flags] [Flags]
internal enum ErrorModes internal enum ErrorModes
{ {
/// <summary>Use the system default, which is to display all error dialog boxes.</summary>
Default = 0x0, Default = 0x0,
/// <summary>
/// The system does not display the critical-error-handler message box.
/// Instead, the system sends the error to the calling process.
/// </summary>
FailCriticalErrors = 0x1, FailCriticalErrors = 0x1,
/// <summary>
/// 64-bit Windows: The system automatically fixes memory alignment faults and makes them
/// invisible to the application. It does this for the calling process and any descendant processes.
/// After this value is set for a process, subsequent attempts to clear the value are ignored.
/// </summary>
NoGpFaultErrorBox = 0x2, NoGpFaultErrorBox = 0x2,
/// <summary>
/// The system does not display the general-protection-fault message box.
/// This flag should only be set by debugging applications that handle general
/// protection (GP) faults themselves with an exception handler.
/// </summary>
NoAlignmentFaultExcept = 0x4, NoAlignmentFaultExcept = 0x4,
/// <summary>
/// The system does not display a message box when it fails to find a file.
/// Instead, the error is returned to the calling process.
/// </summary>
NoOpenFileErrorBox = 0x8000 NoOpenFileErrorBox = 0x8000
} }
/// <summary>
/// Non-client hit test values, HT*
/// </summary>
internal enum HT internal enum HT
{ {
ERROR = -2, ERROR = -2,
@ -289,17 +228,11 @@ namespace Standard
HELP = 21 HELP = 21
} }
/// <summary>
/// GetClassLongPtr values, GCLP_*
/// </summary>
internal enum GCLP internal enum GCLP
{ {
HBRBACKGROUND = -10, HBRBACKGROUND = -10,
} }
/// <summary>
/// GetWindowLongPtr values, GWL_*
/// </summary>
internal enum GWL internal enum GWL
{ {
WNDPROC = ( -4 ), WNDPROC = ( -4 ),
@ -311,9 +244,6 @@ namespace Standard
ID = ( -12 ) ID = ( -12 )
} }
/// <summary>
/// SystemMetrics. SM_*
/// </summary>
internal enum SM internal enum SM
{ {
CXSCREEN = 0, CXSCREEN = 0,
@ -402,9 +332,6 @@ namespace Standard
REMOTECONTROL = 0x2001, REMOTECONTROL = 0x2001,
} }
/// <summary>
/// SystemParameterInfo values, SPI_*
/// </summary>
internal enum SPI internal enum SPI
{ {
GETBEEP = 0x0001, GETBEEP = 0x0001,
@ -641,9 +568,6 @@ namespace Standard
SETMESSAGEDURATION = 0x2017, SETMESSAGEDURATION = 0x2017,
} }
/// <summary>
/// SystemParameterInfo flag values, SPIF_*
/// </summary>
[Flags] [Flags]
internal enum SPIF internal enum SPIF
{ {
@ -706,9 +630,6 @@ namespace Standard
DEFAULT_PALETTE = 15, DEFAULT_PALETTE = 15,
} }
/// <summary>
/// CS_*
/// </summary>
[Flags] [Flags]
internal enum CS : uint internal enum CS : uint
{ {
@ -727,9 +648,6 @@ namespace Standard
DROPSHADOW = 0x00020000 DROPSHADOW = 0x00020000
} }
/// <summary>
/// WindowStyle values, WS_*
/// </summary>
[Flags] [Flags]
internal enum WS : uint internal enum WS : uint
{ {
@ -765,9 +683,6 @@ namespace Standard
CHILDWINDOW = CHILD, CHILDWINDOW = CHILD,
} }
/// <summary>
/// Window message values, WM_*
/// </summary>
internal enum WM internal enum WM
{ {
NULL = 0x0000, NULL = 0x0000,
@ -923,9 +838,6 @@ namespace Standard
APP = 0x8000, APP = 0x8000,
} }
/// <summary>
/// Window style extended values, WS_EX_*
/// </summary>
[Flags] [Flags]
internal enum WS_EX : uint internal enum WS_EX : uint
{ {
@ -958,25 +870,11 @@ namespace Standard
PALETTEWINDOW = ( WINDOWEDGE | TOOLWINDOW | TOPMOST ), PALETTEWINDOW = ( WINDOWEDGE | TOOLWINDOW | TOPMOST ),
} }
/// <summary>
/// GetDeviceCaps nIndex values.
/// </summary>
internal enum DeviceCap internal enum DeviceCap
{ {
/// <summary>Number of bits per pixel
/// </summary>
BITSPIXEL = 12, BITSPIXEL = 12,
/// <summary>
/// Number of planes
/// </summary>
PLANES = 14, PLANES = 14,
/// <summary>
/// Logical pixels inch in X
/// </summary>
LOGPIXELSX = 88, LOGPIXELSX = 88,
/// <summary>
/// Logical pixels inch in Y
/// </summary>
LOGPIXELSY = 90, LOGPIXELSY = 90,
} }
@ -988,9 +886,6 @@ namespace Standard
RENAME = 0x0004, RENAME = 0x0004,
} }
/// <summary>
/// "FILEOP_FLAGS", FOF_*.
/// </summary>
internal enum FOF : ushort internal enum FOF : ushort
{ {
MULTIDESTFILES = 0x0001, MULTIDESTFILES = 0x0001,
@ -1011,15 +906,9 @@ namespace Standard
NORECURSEREPARSE = 0x8000, NORECURSEREPARSE = 0x8000,
} }
/// <summary>
/// EnableMenuItem uEnable values, MF_*
/// </summary>
[Flags] [Flags]
internal enum MF : uint internal enum MF : uint
{ {
/// <summary>
/// Possible return value for EnableMenuItem
/// </summary>
DOES_NOT_EXIST = unchecked(( uint )-1), DOES_NOT_EXIST = unchecked(( uint )-1),
ENABLED = 0, ENABLED = 0,
BYCOMMAND = 0, BYCOMMAND = 0,
@ -1027,16 +916,11 @@ namespace Standard
DISABLED = 2, DISABLED = 2,
} }
/// <summary>Specifies the type of visual style attribute to set on a window.</summary>
internal enum WINDOWTHEMEATTRIBUTETYPE : uint internal enum WINDOWTHEMEATTRIBUTETYPE : uint
{ {
/// <summary>Non-client area window attributes will be set.</summary>
WTA_NONCLIENT = 1, WTA_NONCLIENT = 1,
} }
/// <summary>
/// DWMFLIP3DWINDOWPOLICY. DWMFLIP3D_*
/// </summary>
internal enum DWMFLIP3D internal enum DWMFLIP3D
{ {
DEFAULT, DEFAULT,
@ -1045,9 +929,6 @@ namespace Standard
//LAST //LAST
} }
/// <summary>
/// DWMNCRENDERINGPOLICY. DWMNCRP_*
/// </summary>
internal enum DWMNCRP internal enum DWMNCRP
{ {
USEWINDOWSTYLE, USEWINDOWSTYLE,
@ -1056,9 +937,6 @@ namespace Standard
//LAST //LAST
} }
/// <summary>
/// DWMWINDOWATTRIBUTE. DWMWA_*
/// </summary>
internal enum DWMWA internal enum DWMWA
{ {
NCRENDERING_ENABLED = 1, NCRENDERING_ENABLED = 1,
@ -1080,27 +958,16 @@ namespace Standard
// LAST // LAST
} }
/// <summary>
/// WindowThemeNonClientAttributes
/// </summary>
[Flags] [Flags]
internal enum WTNCA : uint internal enum WTNCA : uint
{ {
/// <summary>Prevents the window caption from being drawn.</summary>
NODRAWCAPTION = 0x00000001, NODRAWCAPTION = 0x00000001,
/// <summary>Prevents the system icon from being drawn.</summary>
NODRAWICON = 0x00000002, NODRAWICON = 0x00000002,
/// <summary>Prevents the system icon menu from appearing.</summary>
NOSYSMENU = 0x00000004, NOSYSMENU = 0x00000004,
/// <summary>Prevents mirroring of the question mark, even in right-to-left (RTL) layout.</summary>
NOMIRRORHELP = 0x00000008, NOMIRRORHELP = 0x00000008,
/// <summary> A mask that contains all the valid bits.</summary>
VALIDBITS = NODRAWCAPTION | NODRAWICON | NOMIRRORHELP | NOSYSMENU, VALIDBITS = NODRAWCAPTION | NODRAWICON | NOMIRRORHELP | NOSYSMENU,
} }
/// <summary>
/// SetWindowPos options
/// </summary>
[Flags] [Flags]
internal enum SWP internal enum SWP
{ {
@ -1121,9 +988,6 @@ namespace Standard
SHOWWINDOW = 0x0040, SHOWWINDOW = 0x0040,
} }
/// <summary>
/// ShowWindow options
/// </summary>
internal enum SW internal enum SW
{ {
HIDE = 0, HIDE = 0,
@ -1164,17 +1028,11 @@ namespace Standard
MONITORPOWER = 0xF170, MONITORPOWER = 0xF170,
CONTEXTHELP = 0xF180, CONTEXTHELP = 0xF180,
SEPARATOR = 0xF00F, SEPARATOR = 0xF00F,
/// <summary>
/// SCF_ISSECURE
/// </summary>
F_ISSECURE = 0x00000001, F_ISSECURE = 0x00000001,
ICON = MINIMIZE, ICON = MINIMIZE,
ZOOM = MAXIMIZE, ZOOM = MAXIMIZE,
} }
/// <summary>
/// GDI+ Status codes
/// </summary>
internal enum Status internal enum Status
{ {
Ok = 0, Ok = 0,
@ -1208,9 +1066,6 @@ namespace Standard
LEFTUP = 4 LEFTUP = 4
} }
/// <summary>
/// MSGFLT_*. New in Vista. Realiased in Windows 7.
/// </summary>
internal enum MSGFLT internal enum MSGFLT
{ {
// Win7 versions of this enum: // Win7 versions of this enum:
@ -1236,9 +1091,6 @@ namespace Standard
MOUSE = 0, MOUSE = 0,
} }
/// <summary>
/// Shell_NotifyIcon messages. NIM_*
/// </summary>
internal enum NIM : uint internal enum NIM : uint
{ {
ADD = 0, ADD = 0,
@ -1248,9 +1100,6 @@ namespace Standard
SETVERSION = 4, SETVERSION = 4,
} }
/// <summary>
/// SHAddToRecentDocuments flags. SHARD_*
/// </summary>
internal enum SHARD internal enum SHARD
{ {
PIDL = 0x00000001, PIDL = 0x00000001,
@ -1270,9 +1119,6 @@ namespace Standard
RAWPATH = 0x4 RAWPATH = 0x4
} }
/// <summary>
/// Shell_NotifyIcon flags. NIF_*
/// </summary>
[Flags] [Flags]
internal enum NIF : uint internal enum NIF : uint
{ {
@ -1283,43 +1129,26 @@ namespace Standard
INFO = 0x0010, INFO = 0x0010,
GUID = 0x0020, GUID = 0x0020,
/// <summary>
/// Vista only.
/// </summary>
REALTIME = 0x0040, REALTIME = 0x0040,
/// <summary>
/// Vista only.
/// </summary>
SHOWTIP = 0x0080, SHOWTIP = 0x0080,
XP_MASK = MESSAGE | ICON | STATE | INFO | GUID, XP_MASK = MESSAGE | ICON | STATE | INFO | GUID,
VISTA_MASK = XP_MASK | REALTIME | SHOWTIP, VISTA_MASK = XP_MASK | REALTIME | SHOWTIP,
} }
/// <summary>
/// Shell_NotifyIcon info flags. NIIF_*
/// </summary>
internal enum NIIF internal enum NIIF
{ {
NONE = 0x00000000, NONE = 0x00000000,
INFO = 0x00000001, INFO = 0x00000001,
WARNING = 0x00000002, WARNING = 0x00000002,
ERROR = 0x00000003, ERROR = 0x00000003,
/// <summary>XP SP2 and later.</summary>
USER = 0x00000004, USER = 0x00000004,
/// <summary>XP and later.</summary>
NOSOUND = 0x00000010, NOSOUND = 0x00000010,
/// <summary>Vista and later.</summary>
LARGE_ICON = 0x00000020, LARGE_ICON = 0x00000020,
/// <summary>Windows 7 and later</summary>
NIIF_RESPECT_QUIET_TIME = 0x00000080, NIIF_RESPECT_QUIET_TIME = 0x00000080,
/// <summary>XP and later. Native version called NIIF_ICON_MASK.</summary>
XP_ICON_MASK = 0x0000000F, XP_ICON_MASK = 0x0000000F,
} }
/// <summary>
/// AC_*
/// </summary>
internal enum AC : byte internal enum AC : byte
{ {
SRC_OVER = 0, SRC_OVER = 0,
@ -1791,11 +1620,6 @@ namespace Standard
public IntPtr hIcon; public IntPtr hIcon;
[MarshalAs( UnmanagedType.ByValArray, SizeConst = 128 )] [MarshalAs( UnmanagedType.ByValArray, SizeConst = 128 )]
public char[] szTip = new char[ 128 ]; public char[] szTip = new char[ 128 ];
/// <summary>
/// The state of the icon. There are two flags that can be set independently.
/// NIS_HIDDEN = 1. The icon is hidden.
/// NIS_SHAREDICON = 2. The icon is shared.
/// </summary>
public uint dwState; public uint dwState;
public uint dwStateMask; public uint dwStateMask;
[MarshalAs( UnmanagedType.ByValArray, SizeConst = 256 )] [MarshalAs( UnmanagedType.ByValArray, SizeConst = 256 )]
@ -1915,9 +1739,7 @@ namespace Standard
[StructLayout( LayoutKind.Sequential, Pack = 4 )] [StructLayout( LayoutKind.Sequential, Pack = 4 )]
internal class SHARDAPPIDINFOIDLIST internal class SHARDAPPIDINFOIDLIST
{ {
/// <summary>The idlist for the shell item that should be added to the recent docs folder.</summary>
IntPtr pidl; IntPtr pidl;
/// <summary>The id of the application that should be associated with this recent doc.</summary>
[MarshalAs( UnmanagedType.LPWStr )] [MarshalAs( UnmanagedType.LPWStr )]
string pszAppID; string pszAppID;
} }
@ -2009,26 +1831,16 @@ namespace Standard
} }
} }
/// <summary>Defines options that are used to set window visual style attributes.</summary>
[StructLayout( LayoutKind.Explicit )] [StructLayout( LayoutKind.Explicit )]
internal struct WTA_OPTIONS internal struct WTA_OPTIONS
{ {
// public static readonly uint Size = (uint)Marshal.SizeOf(typeof(WTA_OPTIONS)); // public static readonly uint Size = (uint)Marshal.SizeOf(typeof(WTA_OPTIONS));
public const uint Size = 8; public const uint Size = 8;
/// <summary>
/// A combination of flags that modify window visual style attributes.
/// Can be a combination of the WTNCA constants.
/// </summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Used by native code." )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Used by native code." )]
[FieldOffset( 0 )] [FieldOffset( 0 )]
public WTNCA dwFlags; public WTNCA dwFlags;
/// <summary>
/// A bitmask that describes how the values specified in dwFlags should be applied.
/// If the bit corresponding to a value in dwFlags is 0, that flag will be removed.
/// If the bit is 1, the flag will be added.
/// </summary>
[SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Used by native code." )] [SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Used by native code." )]
[FieldOffset( 4 )] [FieldOffset( 4 )]
public WTNCA dwMask; public WTNCA dwMask;
@ -2037,13 +1849,9 @@ namespace Standard
[StructLayout( LayoutKind.Sequential )] [StructLayout( LayoutKind.Sequential )]
internal struct MARGINS internal struct MARGINS
{ {
/// <summary>Width of left border that retains its size.</summary>
public int cxLeftWidth; public int cxLeftWidth;
/// <summary>Width of right border that retains its size.</summary>
public int cxRightWidth; public int cxRightWidth;
/// <summary>Height of top border that retains its size.</summary>
public int cyTopHeight; public int cyTopHeight;
/// <summary>Height of bottom border that retains its size.</summary>
public int cyBottomHeight; public int cyBottomHeight;
}; };
@ -2463,13 +2271,10 @@ namespace Standard
#endregion #endregion
/// <summary>Delegate declaration that matches native WndProc signatures.</summary>
internal delegate IntPtr WndProc( IntPtr hwnd, WM uMsg, IntPtr wParam, IntPtr lParam ); internal delegate IntPtr WndProc( IntPtr hwnd, WM uMsg, IntPtr wParam, IntPtr lParam );
/// <summary>Delegate declaration that matches native WndProc signatures.</summary>
internal delegate IntPtr WndProcHook( IntPtr hwnd, WM uMsg, IntPtr wParam, IntPtr lParam, ref bool handled ); internal delegate IntPtr WndProcHook( IntPtr hwnd, WM uMsg, IntPtr wParam, IntPtr lParam, ref bool handled );
/// <summary>Delegate declaration that matches managed WndProc signatures.</summary>
internal delegate IntPtr MessageHandler( WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled ); internal delegate IntPtr MessageHandler( WM uMsg, IntPtr wParam, IntPtr lParam, out bool handled );
// Some native methods are shimmed through public versions that handle converting failures into thrown exceptions. // Some native methods are shimmed through public versions that handle converting failures into thrown exceptions.
@ -3005,25 +2810,6 @@ namespace Standard
return ret; return ret;
} }
/// <summary>
/// Sets attributes to control how visual styles are applied to a specified window.
/// </summary>
/// <param name="hwnd">
/// Handle to a window to apply changes to.
/// </param>
/// <param name="eAttribute">
/// Value of type WINDOWTHEMEATTRIBUTETYPE that specifies the type of attribute to set.
/// The value of this parameter determines the type of data that should be passed in the pvAttribute parameter.
/// Can be the following value:
/// <list>WTA_NONCLIENT (Specifies non-client related attributes).</list>
/// pvAttribute must be a pointer of type WTA_OPTIONS.
/// </param>
/// <param name="pvAttribute">
/// A pointer that specifies attributes to set. Type is determined by the value of the eAttribute value.
/// </param>
/// <param name="cbAttribute">
/// Specifies the size, in bytes, of the data pointed to by pvAttribute.
/// </param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DllImport( "uxtheme.dll", PreserveSig = false )] [DllImport( "uxtheme.dll", PreserveSig = false )]
public static extern void SetWindowThemeAttribute( [In] IntPtr hwnd, [In] WINDOWTHEMEATTRIBUTETYPE eAttribute, [In] ref WTA_OPTIONS pvAttribute, [In] uint cbAttribute ); public static extern void SetWindowThemeAttribute( [In] IntPtr hwnd, [In] WINDOWTHEMEATTRIBUTETYPE eAttribute, [In] ref WTA_OPTIONS pvAttribute, [In] uint cbAttribute );
@ -3279,13 +3065,11 @@ namespace Standard
[return: MarshalAs( UnmanagedType.Bool )] [return: MarshalAs( UnmanagedType.Bool )]
private static extern bool _SystemParametersInfo_String( SPI uiAction, int uiParam, [MarshalAs( UnmanagedType.LPWStr )] string pvParam, SPIF fWinIni ); private static extern bool _SystemParametersInfo_String( SPI uiAction, int uiParam, [MarshalAs( UnmanagedType.LPWStr )] string pvParam, SPIF fWinIni );
/// <summary>Overload of SystemParametersInfo for getting and setting NONCLIENTMETRICS.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DllImport( "user32.dll", EntryPoint = "SystemParametersInfoW", SetLastError = true, CharSet = CharSet.Unicode )] [DllImport( "user32.dll", EntryPoint = "SystemParametersInfoW", SetLastError = true, CharSet = CharSet.Unicode )]
[return: MarshalAs( UnmanagedType.Bool )] [return: MarshalAs( UnmanagedType.Bool )]
private static extern bool _SystemParametersInfo_NONCLIENTMETRICS( SPI uiAction, int uiParam, [In, Out] ref NONCLIENTMETRICS pvParam, SPIF fWinIni ); private static extern bool _SystemParametersInfo_NONCLIENTMETRICS( SPI uiAction, int uiParam, [In, Out] ref NONCLIENTMETRICS pvParam, SPIF fWinIni );
/// <summary>Overload of SystemParametersInfo for getting and setting HIGHCONTRAST.</summary>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DllImport( "user32.dll", EntryPoint = "SystemParametersInfoW", SetLastError = true, CharSet = CharSet.Unicode )] [DllImport( "user32.dll", EntryPoint = "SystemParametersInfoW", SetLastError = true, CharSet = CharSet.Unicode )]
[return: MarshalAs( UnmanagedType.Bool )] [return: MarshalAs( UnmanagedType.Bool )]
@ -3529,18 +3313,10 @@ namespace Standard
[return: MarshalAs( UnmanagedType.Bool )] [return: MarshalAs( UnmanagedType.Bool )]
public static extern bool Shell_NotifyIcon( NIM dwMessage, [In] NOTIFYICONDATA lpdata ); public static extern bool Shell_NotifyIcon( NIM dwMessage, [In] NOTIFYICONDATA lpdata );
/// <summary>
/// Sets the User Model AppID for the current process, enabling Windows to retrieve this ID
/// </summary>
/// <param name="AppID"></param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DllImport( "shell32.dll", PreserveSig = false )] [DllImport( "shell32.dll", PreserveSig = false )]
public static extern void SetCurrentProcessExplicitAppUserModelID( [MarshalAs( UnmanagedType.LPWStr )] string AppID ); public static extern void SetCurrentProcessExplicitAppUserModelID( [MarshalAs( UnmanagedType.LPWStr )] string AppID );
/// <summary>
/// Retrieves the User Model AppID that has been explicitly set for the current process via SetCurrentProcessExplicitAppUserModelID
/// </summary>
/// <param name="AppID"></param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DllImport( "shell32.dll" )] [DllImport( "shell32.dll" )]
public static extern HRESULT GetCurrentProcessExplicitAppUserModelID( [Out, MarshalAs( UnmanagedType.LPWStr )] out string AppID ); public static extern HRESULT GetCurrentProcessExplicitAppUserModelID( [Out, MarshalAs( UnmanagedType.LPWStr )] out string AppID );

182
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/ShellProvider.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -30,7 +30,6 @@ namespace Standard
#region Enums and Static Property Classes #region Enums and Static Property Classes
/// <summary>ShellItem attribute flags. SIATTRIBFLAGS_*</summary>
internal enum SIATTRIBFLAGS internal enum SIATTRIBFLAGS
{ {
AND = 0x00000001, AND = 0x00000001,
@ -44,10 +43,6 @@ namespace Standard
ADLT_FREQUENT, // The frequently used documents list ADLT_FREQUENT, // The frequently used documents list
} }
/// <summary>
/// Flags for SetTabProperties. STPF_*
/// </summary>
/// <remarks>The native enum was called STPFLAG.</remarks>
[Flags] [Flags]
internal enum STPF internal enum STPF
{ {
@ -58,12 +53,6 @@ namespace Standard
USEAPPPEEKWHENACTIVE = 0x00000008, USEAPPPEEKWHENACTIVE = 0x00000008,
} }
/// <summary>
/// Flags for Setting Taskbar Progress state. TBPF_*
/// </summary>
/// <remarks>
/// The native enum was called TBPFLAG.
/// </remarks>
internal enum TBPF internal enum TBPF
{ {
NOPROGRESS = 0x00000000, NOPROGRESS = 0x00000000,
@ -73,9 +62,6 @@ namespace Standard
PAUSED = 0x00000008, PAUSED = 0x00000008,
} }
/// <summary>
/// THUMBBUTTON mask. THB_*
/// </summary>
[Flags] [Flags]
internal enum THB : uint internal enum THB : uint
{ {
@ -85,9 +71,6 @@ namespace Standard
FLAGS = 0x0008, FLAGS = 0x0008,
} }
/// <summary>
/// THUMBBUTTON flags. THBF_*
/// </summary>
[Flags] [Flags]
internal enum THBF : uint internal enum THBF : uint
{ {
@ -100,12 +83,6 @@ namespace Standard
NONINTERACTIVE = 0x0010, NONINTERACTIVE = 0x0010,
} }
/// <summary>
/// GetPropertyStoreFlags. GPS_*.
/// </summary>
/// <remarks>
/// These are new for Vista, but are used in downlevel components
/// </remarks>
internal enum GPS internal enum GPS
{ {
// If no flags are specified (GPS_DEFAULT), a read-only property store is returned that includes properties for the file or item. // If no flags are specified (GPS_DEFAULT), a read-only property store is returned that includes properties for the file or item.
@ -131,9 +108,6 @@ namespace Standard
MASK_VALID = 0x000000FF, MASK_VALID = 0x000000FF,
} }
/// <summary>
/// KNOWNDESTCATEGORY. KDC_*
/// </summary>
internal enum KDC internal enum KDC
{ {
FREQUENT = 1, FREQUENT = 1,
@ -144,101 +118,49 @@ namespace Standard
[Flags] [Flags]
internal enum SFGAO : uint internal enum SFGAO : uint
{ {
/// <summary>Objects can be copied</summary>
/// <remarks>DROPEFFECT_COPY</remarks>
CANCOPY = 0x1, CANCOPY = 0x1,
/// <summary>Objects can be moved</summary>
/// <remarks>DROPEFFECT_MOVE</remarks>
CANMOVE = 0x2, CANMOVE = 0x2,
/// <summary>Objects can be linked</summary>
/// <remarks>
/// DROPEFFECT_LINK.
///
/// If this bit is set on an item in the shell folder, a
/// 'Create Shortcut' menu item will be added to the File
/// menu and context menus for the item. If the user selects
/// that command, your IContextMenu::InvokeCommand() will be called
/// with 'link'.
/// That flag will also be used to determine if 'Create Shortcut'
/// should be added when the item in your folder is dragged to another
/// folder.
/// </remarks>
CANLINK = 0x4, CANLINK = 0x4,
/// <summary>supports BindToObject(IID_IStorage)</summary>
STORAGE = 0x00000008, STORAGE = 0x00000008,
/// <summary>Objects can be renamed</summary>
CANRENAME = 0x00000010, CANRENAME = 0x00000010,
/// <summary>Objects can be deleted</summary>
CANDELETE = 0x00000020, CANDELETE = 0x00000020,
/// <summary>Objects have property sheets</summary>
HASPROPSHEET = 0x00000040, HASPROPSHEET = 0x00000040,
// unused = 0x00000080, // unused = 0x00000080,
/// <summary>Objects are drop target</summary>
DROPTARGET = 0x00000100, DROPTARGET = 0x00000100,
CAPABILITYMASK = 0x00000177, CAPABILITYMASK = 0x00000177,
// unused = 0x00000200, // unused = 0x00000200,
// unused = 0x00000400, // unused = 0x00000400,
// unused = 0x00000800, // unused = 0x00000800,
// unused = 0x00001000, // unused = 0x00001000,
/// <summary>Object is encrypted (use alt color)</summary>
ENCRYPTED = 0x00002000, ENCRYPTED = 0x00002000,
/// <summary>'Slow' object</summary>
ISSLOW = 0x00004000, ISSLOW = 0x00004000,
/// <summary>Ghosted icon</summary>
GHOSTED = 0x00008000, GHOSTED = 0x00008000,
/// <summary>Shortcut (link)</summary>
LINK = 0x00010000, LINK = 0x00010000,
/// <summary>Shared</summary>
SHARE = 0x00020000, SHARE = 0x00020000,
/// <summary>Read-only</summary>
READONLY = 0x00040000, READONLY = 0x00040000,
/// <summary> Hidden object</summary>
HIDDEN = 0x00080000, HIDDEN = 0x00080000,
DISPLAYATTRMASK = 0x000FC000, DISPLAYATTRMASK = 0x000FC000,
/// <summary> May contain children with SFGAO_FILESYSTEM</summary>
FILESYSANCESTOR = 0x10000000, FILESYSANCESTOR = 0x10000000,
/// <summary>Support BindToObject(IID_IShellFolder)</summary>
FOLDER = 0x20000000, FOLDER = 0x20000000,
/// <summary>Is a win32 file system object (file/folder/root)</summary>
FILESYSTEM = 0x40000000, FILESYSTEM = 0x40000000,
/// <summary>May contain children with SFGAO_FOLDER (may be slow)</summary>
HASSUBFOLDER = 0x80000000, HASSUBFOLDER = 0x80000000,
CONTENTSMASK = 0x80000000, CONTENTSMASK = 0x80000000,
/// <summary>Invalidate cached information (may be slow)</summary>
VALIDATE = 0x01000000, VALIDATE = 0x01000000,
/// <summary>Is this removeable media?</summary>
REMOVABLE = 0x02000000, REMOVABLE = 0x02000000,
/// <summary> Object is compressed (use alt color)</summary>
COMPRESSED = 0x04000000, COMPRESSED = 0x04000000,
/// <summary>Supports IShellFolder, but only implements CreateViewObject() (non-folder view)</summary>
BROWSABLE = 0x08000000, BROWSABLE = 0x08000000,
/// <summary>Is a non-enumerated object (should be hidden)</summary>
NONENUMERATED = 0x00100000, NONENUMERATED = 0x00100000,
/// <summary>Should show bold in explorer tree</summary>
NEWCONTENT = 0x00200000, NEWCONTENT = 0x00200000,
/// <summary>Obsolete</summary>
CANMONIKER = 0x00400000, CANMONIKER = 0x00400000,
/// <summary>Obsolete</summary>
HASSTORAGE = 0x00400000, HASSTORAGE = 0x00400000,
/// <summary>Supports BindToObject(IID_IStream)</summary>
STREAM = 0x00400000, STREAM = 0x00400000,
/// <summary>May contain children with SFGAO_STORAGE or SFGAO_STREAM</summary>
STORAGEANCESTOR = 0x00800000, STORAGEANCESTOR = 0x00800000,
/// <summary>For determining storage capabilities, ie for open/save semantics</summary>
STORAGECAPMASK = 0x70C50008, STORAGECAPMASK = 0x70C50008,
/// <summary>
/// Attributes that are masked out for PKEY_SFGAOFlags because they are considered
/// to cause slow calculations or lack context
/// (SFGAO_VALIDATE | SFGAO_ISSLOW | SFGAO_HASSUBFOLDER and others)
/// </summary>
PKEYSFGAOMASK = 0x81044000, PKEYSFGAOMASK = 0x81044000,
} }
/// <summary>
/// IShellFolder::EnumObjects grfFlags bits. Also called SHCONT
/// </summary>
internal enum SHCONTF internal enum SHCONTF
{ {
CHECKING_FOR_CHILDREN = 0x0010, // hint that client is checking if (what) child items the folder contains - not all details (e.g. short file name) are needed CHECKING_FOR_CHILDREN = 0x0010, // hint that client is checking if (what) child items the folder contains - not all details (e.g. short file name) are needed
@ -255,12 +177,6 @@ namespace Standard
ENABLE_ASYNC = 0x8000, // inform enumerator that client is listening for change notifications so enumerator does not need to be complete, items can be reported via change notifications ENABLE_ASYNC = 0x8000, // inform enumerator that client is listening for change notifications so enumerator does not need to be complete, items can be reported via change notifications
} }
/// <summary>
/// IShellFolder::GetDisplayNameOf/SetNameOf uFlags. Also called SHGDNF.
/// </summary>
/// <remarks>
/// For compatibility with SIGDN, these bits must all sit in the LOW word.
/// </remarks>
[Flags] [Flags]
internal enum SHGDN internal enum SHGDN
{ {
@ -271,23 +187,14 @@ namespace Standard
SHGDN_FORPARSING = 0x8000, // parsing name for ParseDisplayName() SHGDN_FORPARSING = 0x8000, // parsing name for ParseDisplayName()
} }
/// <summary>
/// SHELLITEMCOMPAREHINTF. SICHINT_*.
/// </summary>
internal enum SICHINT : uint internal enum SICHINT : uint
{ {
/// <summary>iOrder based on display in a folder view</summary>
DISPLAY = 0x00000000, DISPLAY = 0x00000000,
/// <summary>exact instance compare</summary>
ALLFIELDS = 0x80000000, ALLFIELDS = 0x80000000,
/// <summary>iOrder based on canonical name (better performance)</summary>
CANONICAL = 0x10000000, CANONICAL = 0x10000000,
TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000, TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000,
}; };
/// <summary>
/// ShellItem enum. SIGDN_*.
/// </summary>
internal enum SIGDN : uint internal enum SIGDN : uint
{ // lower word (& with 0xFFFF) { // lower word (& with 0xFFFF)
NORMALDISPLAY = 0x00000000, // SHGDN_NORMAL NORMALDISPLAY = 0x00000000, // SHGDN_NORMAL
@ -301,24 +208,6 @@ namespace Standard
PARENTRELATIVE = 0x80080001, // SHGDN_INFOLDER PARENTRELATIVE = 0x80080001, // SHGDN_INFOLDER
} }
/// <summary>
/// STR_GPS_*
/// </summary>
/// <remarks>
/// When requesting a property store through IShellFolder, you can specify the equivalent of
/// GPS_DEFAULT by passing in a null IBindCtx parameter.
///
/// You can specify the equivalent of GPS_READWRITE by passing a mode of STGM_READWRITE | STGM_EXCLUSIVE
/// in the bind context
///
/// Here are the string versions of GPS_ flags, passed to IShellFolder::BindToObject() via IBindCtx::RegisterObjectParam()
/// These flags are valid when requesting an IPropertySetStorage or IPropertyStore handler
///
/// The meaning of these flags are described above.
///
/// There is no STR_ equivalent for GPS_TEMPORARY because temporary property stores
/// are provided by IShellItem2 only -- not by the underlying IShellFolder.
/// </remarks>
internal static class STR_GPS internal static class STR_GPS
{ {
public const string HANDLERPROPERTIESONLY = "GPS_HANDLERPROPERTIESONLY"; public const string HANDLERPROPERTIESONLY = "GPS_HANDLERPROPERTIESONLY";
@ -336,9 +225,6 @@ namespace Standard
[StructLayout( LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Unicode )] [StructLayout( LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Unicode )]
internal struct THUMBBUTTON internal struct THUMBBUTTON
{ {
/// <summary>
/// WPARAM value for a THUMBBUTTON being clicked.
/// </summary>
public const int THBN_CLICKED = 0x1800; public const int THBN_CLICKED = 0x1800;
public THB dwMask; public THB dwMask;
@ -354,9 +240,7 @@ namespace Standard
[StructLayout( LayoutKind.Sequential, Pack = 4 )] [StructLayout( LayoutKind.Sequential, Pack = 4 )]
internal struct PKEY internal struct PKEY
{ {
/// <summary>fmtid</summary>
private readonly Guid _fmtid; private readonly Guid _fmtid;
/// <summary>pid</summary>
private readonly uint _pid; private readonly uint _pid;
public PKEY( Guid fmtid, uint pid ) public PKEY( Guid fmtid, uint pid )
@ -365,17 +249,11 @@ namespace Standard
_pid = pid; _pid = pid;
} }
/// <summary>PKEY_Title</summary>
public static readonly PKEY Title = new PKEY( new Guid( "F29F85E0-4FF9-1068-AB91-08002B27B3D9" ), 2 ); public static readonly PKEY Title = new PKEY( new Guid( "F29F85E0-4FF9-1068-AB91-08002B27B3D9" ), 2 );
/// <summary>PKEY_AppUserModel_ID</summary>
public static readonly PKEY AppUserModel_ID = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 5 ); public static readonly PKEY AppUserModel_ID = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 5 );
/// <summary>PKEY_AppUserModel_IsDestListSeparator</summary>
public static readonly PKEY AppUserModel_IsDestListSeparator = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 6 ); public static readonly PKEY AppUserModel_IsDestListSeparator = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 6 );
/// <summary>PKEY_AppUserModel_RelaunchCommand</summary>
public static readonly PKEY AppUserModel_RelaunchCommand = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 2 ); public static readonly PKEY AppUserModel_RelaunchCommand = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 2 );
/// <summary>PKEY_AppUserModel_RelaunchDisplayNameResource</summary>
public static readonly PKEY AppUserModel_RelaunchDisplayNameResource = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 4 ); public static readonly PKEY AppUserModel_RelaunchDisplayNameResource = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 4 );
/// <summary>PKEY_AppUserModel_RelaunchIconResource</summary>
public static readonly PKEY AppUserModel_RelaunchIconResource = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 3 ); public static readonly PKEY AppUserModel_RelaunchIconResource = new PKEY( new Guid( "9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3" ), 3 );
} }
@ -424,7 +302,6 @@ namespace Standard
IEnumObjects Clone(); IEnumObjects Clone();
} }
/// <summary>Unknown Object Array</summary>
[ [
ComImport, ComImport,
InterfaceType( ComInterfaceType.InterfaceIsIUnknown ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown ),
@ -564,9 +441,6 @@ namespace Standard
[Out] out IntPtr ppidlOut ); [Out] out IntPtr ppidlOut );
} }
/// <summary>
/// Shell Namespace helper
/// </summary>
[ [
ComImport, ComImport,
InterfaceType( ComInterfaceType.InterfaceIsIUnknown ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown ),
@ -613,9 +487,6 @@ namespace Standard
object EnumItems(); object EnumItems();
} }
/// <summary>
/// Shell Namespace helper 2
/// </summary>
[ [
ComImport, ComImport,
InterfaceType( ComInterfaceType.InterfaceIsIUnknown ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown ),
@ -712,33 +583,14 @@ namespace Standard
] ]
internal interface ITaskbarList internal interface ITaskbarList
{ {
/// <summary>
/// This function must be called first to validate use of other members.
/// </summary>
void HrInit(); void HrInit();
/// <summary>
/// This function adds a tab for hwnd to the taskbar.
/// </summary>
/// <param name="hwnd">The HWND for which to add the tab.</param>
void AddTab( IntPtr hwnd ); void AddTab( IntPtr hwnd );
/// <summary>
/// This function deletes a tab for hwnd from the taskbar.
/// </summary>
/// <param name="hwnd">The HWND for which the tab is to be deleted.</param>
void DeleteTab( IntPtr hwnd ); void DeleteTab( IntPtr hwnd );
/// <summary>
/// This function activates the tab associated with hwnd on the taskbar.
/// </summary>
/// <param name="hwnd">The HWND for which the tab is to be actuvated.</param>
void ActivateTab( IntPtr hwnd ); void ActivateTab( IntPtr hwnd );
/// <summary>
/// This function marks hwnd in the taskbar as the active tab.
/// </summary>
/// <param name="hwnd">The HWND to activate.</param>
void SetActiveAlt( IntPtr hwnd ); void SetActiveAlt( IntPtr hwnd );
} }
@ -757,18 +609,6 @@ namespace Standard
new void SetActiveAlt( IntPtr hwnd ); new void SetActiveAlt( IntPtr hwnd );
#endregion #endregion
/// <summary>
/// Marks a window as full-screen.
/// </summary>
/// <param name="hwnd">The handle of the window to be marked.</param>
/// <param name="fFullscreen">A Boolean value marking the desired full-screen status of the window.</param>
/// <remarks>
/// Setting the value of fFullscreen to true, the Shell treats this window as a full-screen window, and the taskbar
/// is moved to the bottom of the z-order when this window is active. Setting the value of fFullscreen to false
/// removes the full-screen marking, but <i>does not</i> cause the Shell to treat the window as though it were
/// definitely not full-screen. With a false fFullscreen value, the Shell depends on its automatic detection facility
/// to specify how the window should be treated, possibly still flagging the window as full-screen.
/// </remarks>
void MarkFullscreenWindow( IntPtr hwnd, [MarshalAs( UnmanagedType.Bool )] bool fFullscreen ); void MarkFullscreenWindow( IntPtr hwnd, [MarshalAs( UnmanagedType.Bool )] bool fFullscreen );
} }
@ -792,9 +632,6 @@ namespace Standard
void RemoveAllDestinations(); void RemoveAllDestinations();
} }
/// <summary>
/// Allows an application to retrieve the most recent and frequent documents opened in that app, as reported via SHAddToRecentDocs
/// </summary>
[ [
ComImport, ComImport,
InterfaceType( ComInterfaceType.InterfaceIsIUnknown ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown ),
@ -802,19 +639,8 @@ namespace Standard
] ]
internal interface IApplicationDocumentLists internal interface IApplicationDocumentLists
{ {
/// <summary>
/// Set the App User Model ID for the application retrieving this list. If an AppID is not provided via this method,
/// the system will use a heuristically determined ID. This method must be called before GetList.
/// </summary>
/// <param name="pszAppID">App Id.</param>
void SetAppID( [MarshalAs( UnmanagedType.LPWStr )] string pszAppID ); void SetAppID( [MarshalAs( UnmanagedType.LPWStr )] string pszAppID );
/// <summary>
/// Retrieve an IEnumObjects or IObjectArray for IShellItems and/or IShellLinks.
/// Items may appear in both the frequent and recent lists.
/// </summary>
/// <param name="?"></param>
/// <returns></returns>
[return: MarshalAs( UnmanagedType.IUnknown )] [return: MarshalAs( UnmanagedType.IUnknown )]
object GetList( [In] APPDOCLISTTYPE listtype, [In] uint cItemsDesired, [In] ref Guid riid ); object GetList( [In] APPDOCLISTTYPE listtype, [In] uint cItemsDesired, [In] ref Guid riid );
} }
@ -849,9 +675,6 @@ namespace Standard
void AbortList(); void AbortList();
} }
/// <summary>
/// Provides access to the App User Model ID on objects supporting this value.
/// </summary>
[ [
ComImport, ComImport,
InterfaceType( ComInterfaceType.InterfaceIsIUnknown ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown ),
@ -864,9 +687,6 @@ namespace Standard
string GetAppID(); string GetAppID();
}; };
/// <summary>
/// Provides access to the ProgID associated with an object
/// </summary>
[ [
ComImport, ComImport,
InterfaceType( ComInterfaceType.InterfaceIsIUnknown ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown ),

162
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/StreamHelper.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -31,9 +31,6 @@ namespace Standard
using STATSTG = System.Runtime.InteropServices.ComTypes.STATSTG; using STATSTG = System.Runtime.InteropServices.ComTypes.STATSTG;
// All these methods return void. Does the standard marshaller convert them to HRESULTs? // All these methods return void. Does the standard marshaller convert them to HRESULTs?
/// <summary>
/// Wraps a managed stream instance into an interface pointer consumable by COM.
/// </summary>
internal sealed class ManagedIStream : IStream, IDisposable internal sealed class ManagedIStream : IStream, IDisposable
{ {
private const int STGTY_STREAM = 2; private const int STGTY_STREAM = 2;
@ -42,12 +39,6 @@ namespace Standard
private Stream _source; private Stream _source;
/// <summary>
/// Initializes a new instance of the ManagedIStream class with the specified managed Stream object.
/// </summary>
/// <param name="source">
/// The stream that this IStream reference is wrapping.
/// </param>
public ManagedIStream( Stream source ) public ManagedIStream( Stream source )
{ {
Verify.IsNotNull( source, "source" ); Verify.IsNotNull( source, "source" );
@ -65,17 +56,6 @@ namespace Standard
// Comments are taken from MSDN IStream documentation. // Comments are taken from MSDN IStream documentation.
#region IStream Members #region IStream Members
/// <summary>
/// Creates a new stream object with its own seek pointer that
/// references the same bytes as the original stream.
/// </summary>
/// <param name="ppstm">
/// When this method returns, contains the new stream object. This parameter is passed uninitialized.
/// </param>
/// <remarks>
/// For more information, see the existing documentation for IStream::Clone in the MSDN library.
/// This class doesn't implement Clone. A COMException is thrown if it is used.
/// </remarks>
[SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" )] [SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" )]
[Obsolete( "The method is not implemented", true )] [Obsolete( "The method is not implemented", true )]
public void Clone( out IStream ppstm ) public void Clone( out IStream ppstm )
@ -84,42 +64,12 @@ namespace Standard
HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." ); HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." );
} }
/// <summary>
/// Ensures that any changes made to a stream object that is open in transacted
/// mode are reflected in the parent storage.
/// </summary>
/// <param name="grfCommitFlags">
/// A value that controls how the changes for the stream object are committed.
/// </param>
/// <remarks>
/// For more information, see the existing documentation for IStream::Commit in the MSDN library.
/// </remarks>
public void Commit( int grfCommitFlags ) public void Commit( int grfCommitFlags )
{ {
_Validate(); _Validate();
_source.Flush(); _source.Flush();
} }
/// <summary>
/// Copies a specified number of bytes from the current seek pointer in the
/// stream to the current seek pointer in another stream.
/// </summary>
/// <param name="pstm">
/// A reference to the destination stream.
/// </param>
/// <param name="cb">
/// The number of bytes to copy from the source stream.
/// </param>
/// <param name="pcbRead">
/// On successful return, contains the actual number of bytes read from the source.
/// (Note the native signature is to a ULARGE_INTEGER*, so 64 bits are written
/// to this parameter on success.)
/// </param>
/// <param name="pcbWritten">
/// On successful return, contains the actual number of bytes written to the destination.
/// (Note the native signature is to a ULARGE_INTEGER*, so 64 bits are written
/// to this parameter on success.)
/// </param>
[SuppressMessage( "Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0" )] [SuppressMessage( "Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0" )]
[SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )] [SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )]
public void CopyTo( IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten ) public void CopyTo( IStream pstm, long cb, IntPtr pcbRead, IntPtr pcbWritten )
@ -158,43 +108,12 @@ namespace Standard
} }
} }
/// <summary>
/// Restricts access to a specified range of bytes in the stream.
/// </summary>
/// <param name="libOffset">
/// The byte offset for the beginning of the range.
/// </param>
/// <param name="cb">
/// The length of the range, in bytes, to restrict.
/// </param>
/// <param name="dwLockType">
/// The requested restrictions on accessing the range.
/// </param>
/// <remarks>
/// For more information, see the existing documentation for IStream::LockRegion in the MSDN library.
/// This class doesn't implement LockRegion. A COMException is thrown if it is used.
/// </remarks>
[SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" ), Obsolete( "The method is not implemented", true )] [SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" ), Obsolete( "The method is not implemented", true )]
public void LockRegion( long libOffset, long cb, int dwLockType ) public void LockRegion( long libOffset, long cb, int dwLockType )
{ {
HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." ); HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." );
} }
/// <summary>
/// Reads a specified number of bytes from the stream object into memory starting at the current seek pointer.
/// </summary>
/// <param name="pv">
/// When this method returns, contains the data read from the stream. This parameter is passed uninitialized.
/// </param>
/// <param name="cb">
/// The number of bytes to read from the stream object.
/// </param>
/// <param name="pcbRead">
/// A pointer to a ULONG variable that receives the actual number of bytes read from the stream object.
/// </param>
/// <remarks>
/// For more information, see the existing documentation for ISequentialStream::Read in the MSDN library.
/// </remarks>
[SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )] [SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )]
public void Read( byte[] pv, int cb, IntPtr pcbRead ) public void Read( byte[] pv, int cb, IntPtr pcbRead )
{ {
@ -209,36 +128,12 @@ namespace Standard
} }
/// <summary>
/// Discards all changes that have been made to a transacted stream since the last Commit call.
/// </summary>
/// <remarks>
/// This class doesn't implement Revert. A COMException is thrown if it is used.
/// </remarks>
[SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" ), Obsolete( "The method is not implemented", true )] [SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" ), Obsolete( "The method is not implemented", true )]
public void Revert() public void Revert()
{ {
HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." ); HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." );
} }
/// <summary>
/// Changes the seek pointer to a new location relative to the beginning of the
/// stream, to the end of the stream, or to the current seek pointer.
/// </summary>
/// <param name="dlibMove">
/// The displacement to add to dwOrigin.
/// </param>
/// <param name="dwOrigin">
/// The origin of the seek. The origin can be the beginning of the file, the current seek pointer, or the end of the file.
/// </param>
/// <param name="plibNewPosition">
/// On successful return, contains the offset of the seek pointer from the beginning of the stream.
/// (Note the native signature is to a ULARGE_INTEGER*, so 64 bits are written
/// to this parameter on success.)
/// </param>
/// <remarks>
/// For more information, see the existing documentation for IStream::Seek in the MSDN library.
/// </remarks>
[SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )] [SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )]
public void Seek( long dlibMove, int dwOrigin, IntPtr plibNewPosition ) public void Seek( long dlibMove, int dwOrigin, IntPtr plibNewPosition )
{ {
@ -252,31 +147,12 @@ namespace Standard
} }
} }
/// <summary>
/// Changes the size of the stream object.
/// </summary>
/// <param name="libNewSize">
/// The new size of the stream as a number of bytes.
/// </param>
/// <remarks>
/// For more information, see the existing documentation for IStream::SetSize in the MSDN library.
/// </remarks>
public void SetSize( long libNewSize ) public void SetSize( long libNewSize )
{ {
_Validate(); _Validate();
_source.SetLength( libNewSize ); _source.SetLength( libNewSize );
} }
/// <summary>
/// Retrieves the STATSTG structure for this stream.
/// </summary>
/// <param name="pstatstg">
/// When this method returns, contains a STATSTG structure that describes this stream object.
/// This parameter is passed uninitialized.
/// </param>
/// <param name="grfStatFlag">
/// Members in the STATSTG structure that this method does not return, thus saving some memory allocation operations.
/// </param>
public void Stat( out STATSTG pstatstg, int grfStatFlag ) public void Stat( out STATSTG pstatstg, int grfStatFlag )
{ {
pstatstg = default( STATSTG ); pstatstg = default( STATSTG );
@ -288,21 +164,6 @@ namespace Standard
pstatstg.grfLocksSupported = LOCK_EXCLUSIVE; pstatstg.grfLocksSupported = LOCK_EXCLUSIVE;
} }
/// <summary>
/// Removes the access restriction on a range of bytes previously restricted with the LockRegion method.
/// </summary>
/// <param name="libOffset">The byte offset for the beginning of the range.
/// </param>
/// <param name="cb">
/// The length, in bytes, of the range to restrict.
/// </param>
/// <param name="dwLockType">
/// The access restrictions previously placed on the range.
/// </param>
/// <remarks>
/// For more information, see the existing documentation for IStream::UnlockRegion in the MSDN library.
/// This class doesn't implement UnlockRegion. A COMException is thrown if it is used.
/// </remarks>
[SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" )] [SuppressMessage( "Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Standard.HRESULT.ThrowIfFailed(System.String)" )]
[Obsolete( "The method is not implemented", true )] [Obsolete( "The method is not implemented", true )]
public void UnlockRegion( long libOffset, long cb, int dwLockType ) public void UnlockRegion( long libOffset, long cb, int dwLockType )
@ -310,20 +171,6 @@ namespace Standard
HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." ); HRESULT.STG_E_INVALIDFUNCTION.ThrowIfFailed( "The method is not implemented." );
} }
/// <summary>
/// Writes a specified number of bytes into the stream object starting at the current seek pointer.
/// </summary>
/// <param name="pv">
/// The buffer to write this stream to.
/// </param>
/// <param name="cb">
/// The number of bytes to write to the stream.
/// </param>
/// <param name="pcbWritten">
/// On successful return, contains the actual number of bytes written to the stream object.
/// If the caller sets this pointer to null, this method does not provide the actual number
/// of bytes written.
/// </param>
[SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )] [SuppressMessage( "Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands" )]
public void Write( byte[] pv, int cb, IntPtr pcbWritten ) public void Write( byte[] pv, int cb, IntPtr pcbWritten )
{ {
@ -341,13 +188,6 @@ namespace Standard
#region IDisposable Members #region IDisposable Members
/// <summary>
/// Releases resources controlled by this object.
/// </summary>
/// <remarks>
/// Dispose can be called multiple times, but trying to use the object
/// after it has been disposed will generally throw ObjectDisposedExceptions.
/// </remarks>
public void Dispose() public void Dispose()
{ {
_source = null; _source = null;

56
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Utilities.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -75,18 +75,12 @@ namespace Standard
return true; return true;
} }
/// <summary>The native RGB macro.</summary>
/// <param name="c"></param>
/// <returns></returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static int RGB( Color c ) public static int RGB( Color c )
{ {
return c.R | ( c.G << 8 ) | ( c.B << 16 ); return c.R | ( c.G << 8 ) | ( c.B << 16 );
} }
/// <summary>Convert a native integer that represent a color with an alpha channel into a Color struct.</summary>
/// <param name="color">The integer that represents the color. Its bits are of the format 0xAARRGGBB.</param>
/// <returns>A Color representation of the parameter.</returns>
public static Color ColorFromArgbDword( uint color ) public static Color ColorFromArgbDword( uint color )
{ {
return Color.FromArgb( return Color.FromArgb(
@ -279,13 +273,6 @@ namespace Standard
} }
} }
/// <summary>
/// Is this using WPF4?
/// </summary>
/// <remarks>
/// There are a few specific bugs in Window in 3.5SP1 and below that require workarounds
/// when handling WM_NCCALCSIZE on the HWND.
/// </remarks>
public static bool IsPresentationFrameworkVersionLessThan4 public static bool IsPresentationFrameworkVersionLessThan4
{ {
get get
@ -412,9 +399,6 @@ namespace Standard
return diff; return diff;
} }
/// From a list of BitmapFrames find the one that best matches the requested dimensions.
/// The methods used here are copied from Win32 sources. We want to be consistent with
/// system behaviors.
private static BitmapFrame _GetBestMatch( IList<BitmapFrame> frames, int bitDepth, int width, int height ) private static BitmapFrame _GetBestMatch( IList<BitmapFrame> frames, int bitDepth, int width, int height )
{ {
int bestScore = int.MaxValue; int bestScore = int.MaxValue;
@ -467,14 +451,6 @@ namespace Standard
return s_bitDepth; return s_bitDepth;
} }
/// <summary>
/// Simple guard against the exceptions that File.Delete throws on null and empty strings.
/// </summary>
/// <param name="path">The path to delete. Unlike File.Delete, this can be null or empty.</param>
/// <remarks>
/// Note that File.Delete, and by extension SafeDeleteFile, does not throw an exception
/// if the file does not exist.
/// </remarks>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static void SafeDeleteFile( string path ) public static void SafeDeleteFile( string path )
{ {
@ -485,7 +461,6 @@ namespace Standard
} }
} }
/// <summary>GDI's DeleteObject</summary>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static void SafeDeleteObject( ref IntPtr gdiObject ) public static void SafeDeleteObject( ref IntPtr gdiObject )
{ {
@ -532,8 +507,6 @@ namespace Standard
} }
} }
/// <summary>GDI+'s DisposeImage</summary>
/// <param name="gdipImage"></param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static void SafeDisposeImage( ref IntPtr gdipImage ) public static void SafeDisposeImage( ref IntPtr gdipImage )
{ {
@ -584,12 +557,6 @@ namespace Standard
} }
} }
/// <summary>
/// Utility to help classes catenate their properties for implementing ToString().
/// </summary>
/// <param name="source">The StringBuilder to catenate the results into.</param>
/// <param name="propertyName">The name of the property to be catenated.</param>
/// <param name="value">The value of the property to be catenated.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static void GeneratePropertyString( StringBuilder source, string propertyName, string value ) public static void GeneratePropertyString( StringBuilder source, string propertyName, string value )
{ {
@ -615,15 +582,6 @@ namespace Standard
} }
} }
/// <summary>
/// Generates ToString functionality for a struct. This is an expensive way to do it,
/// it exists for the sake of debugging while classes are in flux.
/// Eventually this should just be removed and the classes should
/// do this without reflection.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="object"></param>
/// <returns></returns>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[Obsolete] [Obsolete]
public static string GenerateToString<T>( T @object ) where T : struct public static string GenerateToString<T>( T @object ) where T : struct
@ -845,18 +803,6 @@ namespace Standard
return decoder.GetString(); return decoder.GetString();
} }
/// <summary>
/// Encodes a URL string. Duplicated functionality from System.Web.HttpUtility.UrlEncode.
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
/// <remarks>
/// Duplicated from System.Web.HttpUtility because System.Web isn't part of the client profile.
/// URL Encoding replaces ' ' with '+' and unsafe ASCII characters with '%XX'.
/// Safe characters are defined in RFC2396 (http://www.ietf.org/rfc/rfc2396.txt).
/// They are the 7-bit ASCII alphanumerics and the mark characters "-_.!~*'()".
/// This implementation does not treat '~' as a safe character to be consistent with the System.Web version.
/// </remarks>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
public static string UrlEncode( string url ) public static string UrlEncode( string url )
{ {

57
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/Standard/Verify.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -33,24 +33,8 @@ namespace Standard
using System.IO; using System.IO;
using System.Threading; using System.Threading;
/// <summary>
/// A static class for retail validated assertions.
/// Instead of breaking into the debugger an exception is thrown.
/// </summary>
internal static class Verify internal static class Verify
{ {
/// <summary>
/// Ensure that the current thread's apartment state is what's expected.
/// </summary>
/// <param name="requiredState">
/// The required apartment state for the current thread.
/// </param>
/// <param name="message">
/// The message string for the exception to be thrown if the state is invalid.
/// </param>
/// <exception cref="InvalidOperationException">
/// Thrown if the calling thread's apartment state is not the same as the requiredState.
/// </exception>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void IsApartmentState( ApartmentState requiredState, string message ) public static void IsApartmentState( ApartmentState requiredState, string message )
@ -61,11 +45,6 @@ namespace Standard
} }
} }
/// <summary>
/// Ensure that an argument is neither null nor empty.
/// </summary>
/// <param name="value">The string to validate.</param>
/// <param name="name">The name of the parameter that will be presented if an exception is thrown.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[SuppressMessage( "Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength" )] [SuppressMessage( "Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength" )]
[DebuggerStepThrough] [DebuggerStepThrough]
@ -86,11 +65,6 @@ namespace Standard
} }
} }
/// <summary>
/// Ensure that an argument is neither null nor does it consist only of whitespace.
/// </summary>
/// <param name="value">The string to validate.</param>
/// <param name="name">The name of the parameter that will be presented if an exception is thrown.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[SuppressMessage( "Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength" )] [SuppressMessage( "Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength" )]
[DebuggerStepThrough] [DebuggerStepThrough]
@ -111,10 +85,6 @@ namespace Standard
} }
} }
/// <summary>Verifies that an argument is not null.</summary>
/// <typeparam name="T">Type of the object to validate. Must be a class.</typeparam>
/// <param name="obj">The object to validate.</param>
/// <param name="name">The name of the parameter that will be presented if an exception is thrown.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void IsNotDefault<T>( T obj, string name ) where T : struct public static void IsNotDefault<T>( T obj, string name ) where T : struct
@ -125,10 +95,6 @@ namespace Standard
} }
} }
/// <summary>Verifies that an argument is not null.</summary>
/// <typeparam name="T">Type of the object to validate. Must be a class.</typeparam>
/// <param name="obj">The object to validate.</param>
/// <param name="name">The name of the parameter that will be presented if an exception is thrown.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void IsNotNull<T>( T obj, string name ) where T : class public static void IsNotNull<T>( T obj, string name ) where T : class
@ -139,10 +105,6 @@ namespace Standard
} }
} }
/// <summary>Verifies that an argument is null.</summary>
/// <typeparam name="T">Type of the object to validate. Must be a class.</typeparam>
/// <param name="obj">The object to validate.</param>
/// <param name="name">The name of the parameter that will be presented if an exception is thrown.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void IsNull<T>( T obj, string name ) where T : class public static void IsNull<T>( T obj, string name ) where T : class
@ -173,11 +135,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies the specified statement is true. Throws an ArgumentException if it's not.
/// </summary>
/// <param name="statement">The statement to be verified as true.</param>
/// <param name="name">Name of the parameter to include in the ArgumentException.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void IsTrue( bool statement, string name ) public static void IsTrue( bool statement, string name )
@ -188,12 +145,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies the specified statement is true. Throws an ArgumentException if it's not.
/// </summary>
/// <param name="statement">The statement to be verified as true.</param>
/// <param name="name">Name of the parameter to include in the ArgumentException.</param>
/// <param name="message">The message to include in the ArgumentException.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void IsTrue( bool statement, string name, string message ) public static void IsTrue( bool statement, string name, string message )
@ -251,12 +202,6 @@ namespace Standard
} }
} }
/// <summary>
/// Verifies that the specified value is within the expected range. The assertion fails if it isn't.
/// </summary>
/// <param name="lowerBoundInclusive">The lower bound inclusive value.</param>
/// <param name="value">The value to verify.</param>
/// <param name="upperBoundExclusive">The upper bound exclusive value.</param>
[SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] [SuppressMessage( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )]
[DebuggerStepThrough] [DebuggerStepThrough]
public static void BoundedInteger( int lowerBoundInclusive, int value, int upperBoundExclusive, string parameterName ) public static void BoundedInteger( int lowerBoundInclusive, int value, int upperBoundExclusive, string parameterName )

4
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemCommands.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -91,8 +91,6 @@ namespace Microsoft.Windows.Shell
_PostSystemCommand( window, SC.RESTORE ); _PostSystemCommand( window, SC.RESTORE );
} }
/// <summary>Display the system menu at a specified location.</summary>
/// <param name="screenLocation">The location to display the system menu, in logical screen coordinates.</param>
public static void ShowSystemMenu( Window window, Point screenLocation ) public static void ShowSystemMenu( Window window, Point screenLocation )
{ {
Verify.IsNotNull( window, "window" ); Verify.IsNotNull( window, "window" );

5
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/SystemParameters2.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -308,9 +308,6 @@ namespace Microsoft.Windows.Shell
#endregion #endregion
/// <summary>
/// Private constructor. The public way to access this class is through the static Current property.
/// </summary>
private SystemParameters2() private SystemParameters2()
{ {
// This window gets used for calculations about standard caption button locations // This window gets used for calculations about standard caption button locations

7
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChrome.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -150,7 +150,6 @@ namespace Microsoft.Windows.Shell
( d, e ) => ( ( WindowChrome )d )._OnPropertyChangedThatRequiresRepaint() ), ( d, e ) => ( ( WindowChrome )d )._OnPropertyChangedThatRequiresRepaint() ),
value => ( double )value >= 0d ); value => ( double )value >= 0d );
/// <summary>The extent of the top of the window to treat as the caption.</summary>
public double CaptionHeight public double CaptionHeight
{ {
get get
@ -237,10 +236,6 @@ namespace Microsoft.Windows.Shell
#region ShowSystemMenu #region ShowSystemMenu
/// <summary>
/// Gets or sets the ShowSystemMenu property. This dependency property
/// indicates if the system menu should be shown at right click on the caption.
/// </summary>
public bool ShowSystemMenu public bool ShowSystemMenu
{ {
get; get;

28
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/Shell/WindowChromeWorker.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -44,9 +44,7 @@ namespace Microsoft.Windows.Shell
private readonly List<HANDLE_MESSAGE> _messageTable; private readonly List<HANDLE_MESSAGE> _messageTable;
/// <summary>The Window that's chrome is being modified.</summary>
private Window _window; private Window _window;
/// <summary>Underlying HWND for the _window.</summary>
private IntPtr _hwnd; private IntPtr _hwnd;
private HwndSource _hwndSource = null; private HwndSource _hwndSource = null;
private bool _isHooked = false; private bool _isHooked = false;
@ -60,7 +58,6 @@ namespace Microsoft.Windows.Shell
// Field to track attempts to force off Device Bitmaps on Win7. // Field to track attempts to force off Device Bitmaps on Win7.
private int _blackGlassFixupAttemptCount; private int _blackGlassFixupAttemptCount;
/// <summary>Object that describes the current modifications being made to the chrome.</summary>
private WindowChrome _chromeInfo; private WindowChrome _chromeInfo;
// Keep track of this so we can detect when we need to apply changes. Tracking these separately // Keep track of this so we can detect when we need to apply changes. Tracking these separately
@ -713,10 +710,6 @@ namespace Microsoft.Windows.Shell
#endregion #endregion
/// <summary>Add and remove a native WindowStyle from the HWND.</summary>
/// <param name="removeStyle">The styles to be removed. These can be bitwise combined.</param>
/// <param name="addStyle">The styles to be added. These can be bitwise combined.</param>
/// <returns>Whether the styles of the HWND were modified as a result of this call.</returns>
private bool _ModifyStyle( WS removeStyle, WS addStyle ) private bool _ModifyStyle( WS removeStyle, WS addStyle )
{ {
Assert.IsNotDefault( _hwnd ); Assert.IsNotDefault( _hwnd );
@ -731,9 +724,6 @@ namespace Microsoft.Windows.Shell
return true; return true;
} }
/// <summary>
/// Get the WindowState as the native HWND knows it to be. This isn't necessarily the same as what Window thinks.
/// </summary>
private WindowState _GetHwndState() private WindowState _GetHwndState()
{ {
var wpl = NativeMethods.GetWindowPlacement( _hwnd ); var wpl = NativeMethods.GetWindowPlacement( _hwnd );
@ -747,10 +737,6 @@ namespace Microsoft.Windows.Shell
return WindowState.Normal; return WindowState.Normal;
} }
/// <summary>
/// Get the bounding rectangle for the window in physical coordinates.
/// </summary>
/// <returns>The bounding rectangle for the window.</returns>
private Rect _GetWindowRect() private Rect _GetWindowRect()
{ {
// Get the window rectangle. // Get the window rectangle.
@ -758,15 +744,6 @@ namespace Microsoft.Windows.Shell
return new Rect( windowPosition.Left, windowPosition.Top, windowPosition.Width, windowPosition.Height ); return new Rect( windowPosition.Left, windowPosition.Top, windowPosition.Width, windowPosition.Height );
} }
/// <summary>
/// Update the items in the system menu based on the current, or assumed, WindowState.
/// </summary>
/// <param name="assumeState">
/// The state to assume that the Window is in. This can be null to query the Window's state.
/// </param>
/// <remarks>
/// We want to update the menu while we have some control over whether the caption will be repainted.
/// </remarks>
private void _UpdateSystemMenu( WindowState? assumeState ) private void _UpdateSystemMenu( WindowState? assumeState )
{ {
const MF mfEnabled = MF.ENABLED | MF.BYCOMMAND; const MF mfEnabled = MF.ENABLED | MF.BYCOMMAND;
@ -1089,9 +1066,6 @@ namespace Microsoft.Windows.Shell
} }
} }
/// <summary>
/// Matrix of the HT values to return when responding to NC window messages.
/// </summary>
[SuppressMessage( "Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", MessageId = "Member" )] [SuppressMessage( "Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", MessageId = "Member" )]
private static readonly HT[,] _HitTestBorders = new[ , ] private static readonly HT[,] _HitTestBorders = new[ , ]
{ {

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/TransformExtentions.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WeakDictionary.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowActivateEventArgs.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Controls/WindowHookHandler.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/ActivateCommandLayoutItemFromLayoutModelConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToAngleConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorSideToOrientationConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorableContextMenuAutoHideHeaderConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AnchorableContextMenuHideVisibilityConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/AutoHideCommandLayoutItemFromLayoutModelConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

23
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/BoolToVisibilityConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
@ -26,16 +26,6 @@ namespace Xceed.Wpf.AvalonDock.Converters
{ {
#region IValueConverter Members #region IValueConverter Members
/// <summary>
/// Converts a value.
/// </summary>
/// <param name="value">The value produced by the binding source.</param>
/// <param name="targetType">The type of the binding target property.</param>
/// <param name="parameter">The converter parameter to use.</param>
/// <param name="culture">The culture to use in the converter.</param>
/// <returns>
/// A converted value. If the method returns null, the valid null value is used.
/// </returns>
public object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) public object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture )
{ {
if( value is bool && targetType == typeof( Visibility ) ) if( value is bool && targetType == typeof( Visibility ) )
@ -58,19 +48,8 @@ namespace Xceed.Wpf.AvalonDock.Converters
} }
return Visibility.Visible; return Visibility.Visible;
///throw new ArgumentException("Invalid argument/return type. Expected argument: bool and return type: Visibility");
} }
/// <summary>
/// Converts a value.
/// </summary>
/// <param name="value">The value that is produced by the binding target.</param>
/// <param name="targetType">The type to convert to.</param>
/// <param name="parameter">The converter parameter to use.</param>
/// <param name="culture">The culture to use in the converter.</param>
/// <returns>
/// A converted value. If the method returns null, the valid null value is used.
/// </returns>
public object ConvertBack( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) public object ConvertBack( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture )
{ {
if( value is Visibility && targetType == typeof( bool ) ) if( value is Visibility && targetType == typeof( bool ) )

2
ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Converters/HideCommandLayoutItemFromLayoutModelConverter.cs

@ -2,7 +2,7 @@
Toolkit for WPF Toolkit for WPF
Copyright (C) 2007-2022 Xceed Software Inc. Copyright (C) 2007-2023 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC. This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save