From 1f9c09ece59837a5d7c6eaf31a85d7f008a07e05 Mon Sep 17 00:00:00 2001 From: Brook Date: Tue, 2 Feb 2016 00:22:21 -0500 Subject: [PATCH 1/5] refactored references to use nuget added monogame, removed xna updated to 11.0 tool chain --- .../AmphibianSoftware.Video.csproj | 69 - src/AmphibianSoftware.Video/AviWriter.cs | 333 ---- .../Properties/AssemblyInfo.cs | 36 - src/AmphibianSoftware.Video/XnaAviWriter.cs | 182 -- src/DockPanel/DockPanel.csproj | 212 --- src/DockPanel/Docking/AutoHideStripBase.cs | 530 ------ src/DockPanel/Docking/DockAreasEditor.cs | 142 -- src/DockPanel/Docking/DockContent.cs | 304 ---- .../Docking/DockContentCollection.cs | 175 -- src/DockPanel/Docking/DockContentEventArgs.cs | 19 - src/DockPanel/Docking/DockContentHandler.cs | 1063 ------------ src/DockPanel/Docking/DockOutlineBase.cs | 161 -- .../Docking/DockPane.SplitterControl.cs | 157 -- src/DockPanel/Docking/DockPane.cs | 1288 -------------- src/DockPanel/Docking/DockPaneCaptionBase.cs | 100 -- src/DockPanel/Docking/DockPaneCollection.cs | 47 - src/DockPanel/Docking/DockPaneStripBase.cs | 252 --- .../Docking/DockPanel.AutoHideWindow.cs | 612 ------- .../Docking/DockPanel.DockDragHandler.cs | 814 --------- .../Docking/DockPanel.DragHandler.cs | 135 -- .../Docking/DockPanel.FocusManager.cs | 568 ------- .../Docking/DockPanel.MdiClientController.cs | 430 ----- src/DockPanel/Docking/DockPanel.Persistor.cs | 781 --------- .../Docking/DockPanel.SplitterDragHandler.cs | 165 -- src/DockPanel/Docking/DockPanel.bmp | Bin 822 -> 0 bytes src/DockPanel/Docking/DockPanel.cs | 1028 ------------ src/DockPanel/Docking/DockPanelExtender.cs | 225 --- src/DockPanel/Docking/DockPanelSkin.cs | 421 ----- .../Docking/DockWindow.SplitterControl.cs | 28 - src/DockPanel/Docking/DockWindow.cs | 243 --- src/DockPanel/Docking/DockWindowCollection.cs | 38 - src/DockPanel/Docking/DragForm.cs | 64 - src/DockPanel/Docking/DummyControl.cs | 13 - src/DockPanel/Docking/Enums.cs | 60 - src/DockPanel/Docking/FloatWindow.cs | 453 ----- .../Docking/FloatWindowCollection.cs | 42 - src/DockPanel/Docking/Helpers/DockHelper.cs | 103 -- src/DockPanel/Docking/Helpers/DrawHelper.cs | 88 - .../Docking/Helpers/ResourceHelper.cs | 29 - src/DockPanel/Docking/Helpers/Win32Helper.cs | 19 - src/DockPanel/Docking/InertButtonBase.cs | 115 -- src/DockPanel/Docking/Interfaces.cs | 46 - src/DockPanel/Docking/Localization.cs | 46 - src/DockPanel/Docking/Measures.cs | 14 - src/DockPanel/Docking/NestedDockingStatus.cs | 108 -- src/DockPanel/Docking/NestedPaneCollection.cs | 116 -- src/DockPanel/Docking/Resources.Designer.cs | 293 ---- src/DockPanel/Docking/Resources.resx | 190 --- .../Resources/DockIndicator_PaneDiamond.bmp | Bin 23286 -> 0 bytes .../DockIndicator_PaneDiamond_Bottom.bmp | Bin 23286 -> 0 bytes .../DockIndicator_PaneDiamond_Hotspot.bmp | Bin 23286 -> 0 bytes ...DockIndicator_PaneDiamond_HotspotIndex.bmp | Bin 90 -> 0 bytes .../DockIndicator_PaneDiamond_Left.bmp | Bin 23286 -> 0 bytes .../DockIndicator_PaneDiamond_Right.bmp | Bin 23286 -> 0 bytes .../DockIndicator_PaneDiamond_Top.bmp | Bin 23286 -> 0 bytes .../Resources/DockIndicator_PanelBottom.bmp | Bin 2782 -> 0 bytes .../DockIndicator_PanelBottom_Active.bmp | Bin 2782 -> 0 bytes .../Resources/DockIndicator_PanelFill.bmp | Bin 3030 -> 0 bytes .../DockIndicator_PanelFill_Active.bmp | Bin 3030 -> 0 bytes .../Resources/DockIndicator_PanelLeft.bmp | Bin 2838 -> 0 bytes .../DockIndicator_PanelLeft_Active.bmp | Bin 2838 -> 0 bytes .../Resources/DockIndicator_PanelRight.bmp | Bin 2838 -> 0 bytes .../DockIndicator_PanelRight_Active.bmp | Bin 2838 -> 0 bytes .../Resources/DockIndicator_PanelTop.bmp | Bin 2870 -> 0 bytes .../DockIndicator_PanelTop_Active.bmp | Bin 2870 -> 0 bytes .../Docking/Resources/DockPane_AutoHide.bmp | Bin 774 -> 0 bytes .../Docking/Resources/DockPane_Close.bmp | Bin 774 -> 0 bytes .../Docking/Resources/DockPane_Dock.bmp | Bin 774 -> 0 bytes .../Docking/Resources/DockPane_Option.bmp | Bin 774 -> 0 bytes .../Resources/DockPane_OptionOverflow.bmp | Bin 774 -> 0 bytes .../Dockindicator_PaneDiamond_Fill.bmp | Bin 23286 -> 0 bytes src/DockPanel/Docking/Resources/Thumbs.db | Bin 138752 -> 0 bytes src/DockPanel/Docking/SplitterBase.cs | 70 - src/DockPanel/Docking/Strings.Designer.cs | 774 --------- src/DockPanel/Docking/Strings.resx | 357 ---- src/DockPanel/Docking/VS2005AutoHideStrip.cs | 505 ------ .../Docking/VS2005DockPaneCaption.cs | 478 ------ src/DockPanel/Docking/VS2005DockPaneStrip.cs | 1479 ----------------- .../Docking/VisibleNestedPaneCollection.cs | 168 -- src/DockPanel/Docking/Win32/Enums.cs | 369 ---- src/DockPanel/Docking/Win32/NativeMethods.cs | 64 - src/DockPanel/Properties/AssemblyInfo.cs | 28 - src/VisualSail.sln | 27 - src/VisualSail/Data/Course.cs | 2 - src/VisualSail/Data/Statistics/Statistic.cs | 4 - src/VisualSail/Executable/Program.cs | 147 +- src/VisualSail/Library/CameraMan.cs | 2 - src/VisualSail/Library/ReplayBoat.cs | 7 - src/VisualSail/Library/Sail.cs | 2 - src/VisualSail/License-LGPL.txt | 506 ++++++ src/VisualSail/License.dll | Bin 20480 -> 0 bytes src/VisualSail/Licensing/ActivationClient.cs | 35 - src/VisualSail/PostBuild/DoNotObfuscate.cs | 9 - src/VisualSail/UI/Controls/.svn/entries | 269 --- src/VisualSail/UI/Controls/.svn/format | 1 - .../prop-base/DirectionSelector.cs.svn-base | 5 - .../DirectionSelector.Designer.cs.svn-base | 48 - .../text-base/DirectionSelector.cs.svn-base | 163 -- .../text-base/DirectionSelector.resx.svn-base | 120 -- .../LakeResizeControl.Designer.cs.svn-base | 49 - .../text-base/LakeResizeControl.cs.svn-base | 500 ------ .../text-base/LakeResizeControl.resx.svn-base | 120 -- .../.svn/text-base/UserDrawnPanel.cs.svn-base | 16 - .../UI/Controls/LakeResizeControl.cs | 2 - .../UI/Controls/TreeGridView/.svn/entries | 198 --- .../UI/Controls/TreeGridView/.svn/format | 1 - .../.svn/text-base/TreeGridCell.cs.svn-base | 324 ---- .../.svn/text-base/TreeGridEvents.cs.svn-base | 82 - .../.svn/text-base/TreeGridNode.cs.svn-base | 556 ------- .../TreeGridNodeCollection.cs.svn-base | 252 --- .../.svn/text-base/TreeGridView.cs.svn-base | 875 ---------- src/VisualSail/UI/GdiCameraMan.cs | 1 - src/VisualSail/UI/GdiRenderer.cs | 1 - src/VisualSail/UI/GraphForm.cs | 2 - src/VisualSail/UI/Import/.svn/entries | 34 - src/VisualSail/UI/Import/.svn/format | 1 - src/VisualSail/UI/Import/CSV/.svn/entries | 232 --- src/VisualSail/UI/Import/CSV/.svn/format | 1 - .../ColumnAssignment.Designer.cs.svn-base | 145 -- .../text-base/ColumnAssignment.cs.svn-base | 144 -- .../text-base/ColumnAssignment.resx.svn-base | 120 -- .../ColumnFilter.Designer.cs.svn-base | 112 -- .../.svn/text-base/ColumnFilter.cs.svn-base | 145 -- .../.svn/text-base/ColumnFilter.resx.svn-base | 120 -- src/VisualSail/UI/Import/NMEA/.svn/entries | 130 -- src/VisualSail/UI/Import/NMEA/.svn/format | 1 - .../NmeaOptions.Designer.cs.svn-base | 90 - .../.svn/text-base/NmeaOptions.cs.svn-base | 32 - .../.svn/text-base/NmeaOptions.resx.svn-base | 120 -- src/VisualSail/UI/LicenseForm.Designer.cs | 166 -- src/VisualSail/UI/LicenseForm.cs | 140 -- src/VisualSail/UI/LicenseForm.resx | 904 ---------- src/VisualSail/UI/NullRenderer.cs | 1 - src/VisualSail/UI/Replay.cs | 3 - src/VisualSail/UI/SkipperMDI.cs | 4 - src/VisualSail/UI/XnaCameraMan.cs | 1 - src/VisualSail/UI/XnaRenderer.cs | 135 +- src/VisualSail/VisualSail.csproj | 147 +- .../WebServices/ActivationService.cs | 209 --- src/VisualSail/app.config | 2 +- src/VisualSail/debug.nrproj | Bin 6256 -> 0 bytes src/{DockPanel => VisualSail}/license.txt | 0 src/VisualSail/packages.config | 7 + src/VisualSail/trial.license | Bin 1472 -> 0 bytes src/lib/ZedGraph.dll | Bin 307200 -> 0 bytes 145 files changed, 557 insertions(+), 23564 deletions(-) delete mode 100644 src/AmphibianSoftware.Video/AmphibianSoftware.Video.csproj delete mode 100644 src/AmphibianSoftware.Video/AviWriter.cs delete mode 100644 src/AmphibianSoftware.Video/Properties/AssemblyInfo.cs delete mode 100644 src/AmphibianSoftware.Video/XnaAviWriter.cs delete mode 100644 src/DockPanel/DockPanel.csproj delete mode 100644 src/DockPanel/Docking/AutoHideStripBase.cs delete mode 100644 src/DockPanel/Docking/DockAreasEditor.cs delete mode 100644 src/DockPanel/Docking/DockContent.cs delete mode 100644 src/DockPanel/Docking/DockContentCollection.cs delete mode 100644 src/DockPanel/Docking/DockContentEventArgs.cs delete mode 100644 src/DockPanel/Docking/DockContentHandler.cs delete mode 100644 src/DockPanel/Docking/DockOutlineBase.cs delete mode 100644 src/DockPanel/Docking/DockPane.SplitterControl.cs delete mode 100644 src/DockPanel/Docking/DockPane.cs delete mode 100644 src/DockPanel/Docking/DockPaneCaptionBase.cs delete mode 100644 src/DockPanel/Docking/DockPaneCollection.cs delete mode 100644 src/DockPanel/Docking/DockPaneStripBase.cs delete mode 100644 src/DockPanel/Docking/DockPanel.AutoHideWindow.cs delete mode 100644 src/DockPanel/Docking/DockPanel.DockDragHandler.cs delete mode 100644 src/DockPanel/Docking/DockPanel.DragHandler.cs delete mode 100644 src/DockPanel/Docking/DockPanel.FocusManager.cs delete mode 100644 src/DockPanel/Docking/DockPanel.MdiClientController.cs delete mode 100644 src/DockPanel/Docking/DockPanel.Persistor.cs delete mode 100644 src/DockPanel/Docking/DockPanel.SplitterDragHandler.cs delete mode 100644 src/DockPanel/Docking/DockPanel.bmp delete mode 100644 src/DockPanel/Docking/DockPanel.cs delete mode 100644 src/DockPanel/Docking/DockPanelExtender.cs delete mode 100644 src/DockPanel/Docking/DockPanelSkin.cs delete mode 100644 src/DockPanel/Docking/DockWindow.SplitterControl.cs delete mode 100644 src/DockPanel/Docking/DockWindow.cs delete mode 100644 src/DockPanel/Docking/DockWindowCollection.cs delete mode 100644 src/DockPanel/Docking/DragForm.cs delete mode 100644 src/DockPanel/Docking/DummyControl.cs delete mode 100644 src/DockPanel/Docking/Enums.cs delete mode 100644 src/DockPanel/Docking/FloatWindow.cs delete mode 100644 src/DockPanel/Docking/FloatWindowCollection.cs delete mode 100644 src/DockPanel/Docking/Helpers/DockHelper.cs delete mode 100644 src/DockPanel/Docking/Helpers/DrawHelper.cs delete mode 100644 src/DockPanel/Docking/Helpers/ResourceHelper.cs delete mode 100644 src/DockPanel/Docking/Helpers/Win32Helper.cs delete mode 100644 src/DockPanel/Docking/InertButtonBase.cs delete mode 100644 src/DockPanel/Docking/Interfaces.cs delete mode 100644 src/DockPanel/Docking/Localization.cs delete mode 100644 src/DockPanel/Docking/Measures.cs delete mode 100644 src/DockPanel/Docking/NestedDockingStatus.cs delete mode 100644 src/DockPanel/Docking/NestedPaneCollection.cs delete mode 100644 src/DockPanel/Docking/Resources.Designer.cs delete mode 100644 src/DockPanel/Docking/Resources.resx delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Bottom.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Hotspot.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_HotspotIndex.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Left.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Right.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Top.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelBottom.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelBottom_Active.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelFill.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelFill_Active.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelLeft.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelLeft_Active.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelRight.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelRight_Active.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelTop.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockIndicator_PanelTop_Active.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockPane_AutoHide.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockPane_Close.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockPane_Dock.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockPane_Option.bmp delete mode 100644 src/DockPanel/Docking/Resources/DockPane_OptionOverflow.bmp delete mode 100644 src/DockPanel/Docking/Resources/Dockindicator_PaneDiamond_Fill.bmp delete mode 100644 src/DockPanel/Docking/Resources/Thumbs.db delete mode 100644 src/DockPanel/Docking/SplitterBase.cs delete mode 100644 src/DockPanel/Docking/Strings.Designer.cs delete mode 100644 src/DockPanel/Docking/Strings.resx delete mode 100644 src/DockPanel/Docking/VS2005AutoHideStrip.cs delete mode 100644 src/DockPanel/Docking/VS2005DockPaneCaption.cs delete mode 100644 src/DockPanel/Docking/VS2005DockPaneStrip.cs delete mode 100644 src/DockPanel/Docking/VisibleNestedPaneCollection.cs delete mode 100644 src/DockPanel/Docking/Win32/Enums.cs delete mode 100644 src/DockPanel/Docking/Win32/NativeMethods.cs delete mode 100644 src/DockPanel/Properties/AssemblyInfo.cs create mode 100644 src/VisualSail/License-LGPL.txt delete mode 100644 src/VisualSail/License.dll delete mode 100644 src/VisualSail/Licensing/ActivationClient.cs delete mode 100644 src/VisualSail/PostBuild/DoNotObfuscate.cs delete mode 100644 src/VisualSail/UI/Controls/.svn/entries delete mode 100644 src/VisualSail/UI/Controls/.svn/format delete mode 100644 src/VisualSail/UI/Controls/.svn/prop-base/DirectionSelector.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/DirectionSelector.Designer.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/DirectionSelector.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/DirectionSelector.resx.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/LakeResizeControl.Designer.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/LakeResizeControl.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/LakeResizeControl.resx.svn-base delete mode 100644 src/VisualSail/UI/Controls/.svn/text-base/UserDrawnPanel.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/entries delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/format delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/text-base/TreeGridCell.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/text-base/TreeGridEvents.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/text-base/TreeGridNode.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/text-base/TreeGridNodeCollection.cs.svn-base delete mode 100644 src/VisualSail/UI/Controls/TreeGridView/.svn/text-base/TreeGridView.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/.svn/entries delete mode 100644 src/VisualSail/UI/Import/.svn/format delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/entries delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/format delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.Designer.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.resx.svn-base delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.Designer.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.resx.svn-base delete mode 100644 src/VisualSail/UI/Import/NMEA/.svn/entries delete mode 100644 src/VisualSail/UI/Import/NMEA/.svn/format delete mode 100644 src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.Designer.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.cs.svn-base delete mode 100644 src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.resx.svn-base delete mode 100644 src/VisualSail/UI/LicenseForm.Designer.cs delete mode 100644 src/VisualSail/UI/LicenseForm.cs delete mode 100644 src/VisualSail/UI/LicenseForm.resx delete mode 100644 src/VisualSail/WebServices/ActivationService.cs delete mode 100644 src/VisualSail/debug.nrproj rename src/{DockPanel => VisualSail}/license.txt (100%) create mode 100644 src/VisualSail/packages.config delete mode 100644 src/VisualSail/trial.license delete mode 100644 src/lib/ZedGraph.dll diff --git a/src/AmphibianSoftware.Video/AmphibianSoftware.Video.csproj b/src/AmphibianSoftware.Video/AmphibianSoftware.Video.csproj deleted file mode 100644 index d1eb62b..0000000 --- a/src/AmphibianSoftware.Video/AmphibianSoftware.Video.csproj +++ /dev/null @@ -1,69 +0,0 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {169F3316-FF07-4B73-82C6-DA85D69CE38B} - Library - Properties - AmphibianSoftware.Video - AmphibianSoftware.Video - v3.5 - 512 - - - - - 3.5 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - true - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - true - - - - - - 3.5 - - - - 3.5 - - - 3.5 - - - - - - - - - - - - \ No newline at end of file diff --git a/src/AmphibianSoftware.Video/AviWriter.cs b/src/AmphibianSoftware.Video/AviWriter.cs deleted file mode 100644 index 028efad..0000000 --- a/src/AmphibianSoftware.Video/AviWriter.cs +++ /dev/null @@ -1,333 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Drawing; -using System.Drawing.Imaging; - -namespace AmphibianSoftware.Video -{ - - public class AviWriter { - [StructLayout(LayoutKind.Sequential, Pack=1)] - private struct AVISTREAMINFOW { - public UInt32 fccType; - public UInt32 fccHandler; - public UInt32 dwFlags; - public UInt32 dwCaps; - public UInt16 wPriority; - public UInt16 wLanguage; - public UInt32 dwScale; - public UInt32 dwRate; - public UInt32 dwStart; - public UInt32 dwLength; - public UInt32 dwInitialFrames; - public UInt32 dwSuggestedBufferSize; - public UInt32 dwQuality; - public UInt32 dwSampleSize; - public UInt32 rect_left; - public UInt32 rect_top; - public UInt32 rect_right; - public UInt32 rect_bottom; - public UInt32 dwEditCount; - public UInt32 dwFormatChangeCount; - public UInt16 szName0; - public UInt16 szName1; - public UInt16 szName2; - public UInt16 szName3; - public UInt16 szName4; - public UInt16 szName5; - public UInt16 szName6; - public UInt16 szName7; - public UInt16 szName8; - public UInt16 szName9; - public UInt16 szName10; - public UInt16 szName11; - public UInt16 szName12; - public UInt16 szName13; - public UInt16 szName14; - public UInt16 szName15; - public UInt16 szName16; - public UInt16 szName17; - public UInt16 szName18; - public UInt16 szName19; - public UInt16 szName20; - public UInt16 szName21; - public UInt16 szName22; - public UInt16 szName23; - public UInt16 szName24; - public UInt16 szName25; - public UInt16 szName26; - public UInt16 szName27; - public UInt16 szName28; - public UInt16 szName29; - public UInt16 szName30; - public UInt16 szName31; - public UInt16 szName32; - public UInt16 szName33; - public UInt16 szName34; - public UInt16 szName35; - public UInt16 szName36; - public UInt16 szName37; - public UInt16 szName38; - public UInt16 szName39; - public UInt16 szName40; - public UInt16 szName41; - public UInt16 szName42; - public UInt16 szName43; - public UInt16 szName44; - public UInt16 szName45; - public UInt16 szName46; - public UInt16 szName47; - public UInt16 szName48; - public UInt16 szName49; - public UInt16 szName50; - public UInt16 szName51; - public UInt16 szName52; - public UInt16 szName53; - public UInt16 szName54; - public UInt16 szName55; - public UInt16 szName56; - public UInt16 szName57; - public UInt16 szName58; - public UInt16 szName59; - public UInt16 szName60; - public UInt16 szName61; - public UInt16 szName62; - public UInt16 szName63; - } - - // vfw.h - [StructLayout(LayoutKind.Sequential, Pack=1)] - private struct AVICOMPRESSOPTIONS { - public UInt32 fccType; - public UInt32 fccHandler; - public UInt32 dwKeyFrameEvery; // only used with AVICOMRPESSF_KEYFRAMES - public UInt32 dwQuality; - public UInt32 dwBytesPerSecond; // only used with AVICOMPRESSF_DATARATE - public UInt32 dwFlags; - public IntPtr lpFormat; - public UInt32 cbFormat; - public IntPtr lpParms; - public UInt32 cbParms; - public UInt32 dwInterleaveEvery; - } - - [StructLayout(LayoutKind.Sequential, Pack=1)] - public struct BITMAPINFOHEADER { - public UInt32 biSize; - public Int32 biWidth; - public Int32 biHeight; - public Int16 biPlanes; - public Int16 biBitCount; - public UInt32 biCompression; - public UInt32 biSizeImage; - public Int32 biXPelsPerMeter; - public Int32 biYPelsPerMeter; - public UInt32 biClrUsed; - public UInt32 biClrImportant; - } - - public class AviException : ApplicationException { - public AviException(string s) : base(s) {} - public AviException(string s, Int32 hr) : base(s) { - - if (hr==AVIERR_BADPARAM) { - err_msg = "AVIERR_BADPARAM"; - } - else { - err_msg = "unknown"; - } - } - - public string ErrMsg() { - return err_msg; - } - private const Int32 AVIERR_BADPARAM = -2147205018; - private string err_msg; - } - - public Bitmap Open(string fileName, UInt32 frameRate, int width, int height) { - frameRate_ = frameRate; - width_ = (UInt32) width; - height_ = (UInt32) height; - bmp_ = new Bitmap(width,height,PixelFormat.Format24bppRgb); - BitmapData bmpDat = bmp_.LockBits(new Rectangle(0,0,width, height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); - stride_ = (UInt32) bmpDat.Stride; - bmp_.UnlockBits(bmpDat); - AVIFileInit(); - int hr = AVIFileOpenW(ref pfile_, fileName, 4097 /* OF_WRITE | OF_CREATE (winbase.h) */, 0); - if (hr != 0) { - throw new AviException("error for AVIFileOpenW"); - } - - CreateStream(); - SetOptions(); - - return bmp_; - } - - public void AddFrame() - { - BitmapData bmpDat = bmp_.LockBits(new Rectangle(0,0,(int) width_, (int) height_),ImageLockMode.ReadOnly,PixelFormat.Format24bppRgb); - - int hr= AVIStreamWrite(psCompressed_, count_, 1, - bmpDat.Scan0, // pointer to data - (Int32) (stride_ * height_), - 0, // 16 = AVIIF_KEYFRAMe - 0,0); - - if (hr != 0) - { - throw new AviException("AVIStreamWrite"); - } - bmp_.UnlockBits(bmpDat); - count_ ++; - } - - public void AddFrame(IntPtr p,int len) - { - int hr = AVIStreamWrite(psCompressed_, count_, 1, - p, // pointer to data - len, - 0, // 16 = AVIIF_KEYFRAMe - 0, 0); - - if (hr != 0) - { - throw new AviException("AVIStreamWrite"); - } - count_++; - } - - public void Close() { - AVIStreamRelease(ps_); - AVIStreamRelease(psCompressed_); - - AVIFileRelease(pfile_); - AVIFileExit(); - } - - private void CreateStream() { - AVISTREAMINFOW strhdr = new AVISTREAMINFOW(); - strhdr.fccType = fccType_; - strhdr.fccHandler = fccHandler_; - strhdr.dwFlags = 0; - strhdr.dwCaps = 0; - strhdr.wPriority = 0; - strhdr.wLanguage = 0; - strhdr.dwScale = 1; - strhdr.dwRate = frameRate_; // Frames per Second - strhdr.dwStart = 0; - strhdr.dwLength = 0; - strhdr.dwInitialFrames = 0; - strhdr.dwSuggestedBufferSize = height_ * stride_; - strhdr.dwQuality = 0xffffffff; //-1; // Use default - strhdr.dwSampleSize = 0; - strhdr.rect_top = 0; - strhdr.rect_left = 0; - strhdr.rect_bottom = height_; - strhdr.rect_right = width_; - strhdr.dwEditCount = 0; - strhdr.dwFormatChangeCount = 0; - strhdr.szName0 = 0; - strhdr.szName1 = 0; - - int hr = AVIFileCreateStream(pfile_, out ps_, ref strhdr); - - if (hr != 0) { - throw new AviException("AVIFileCreateStream"); - } - } - - unsafe private void SetOptions() { - AVICOMPRESSOPTIONS opts = new AVICOMPRESSOPTIONS(); - opts.fccType = fccType_; - opts.fccHandler = 0;//fccHandler_; - opts.dwKeyFrameEvery = 0; - opts.dwQuality = 0; // 0 .. 10000 - opts.dwFlags = 0; // AVICOMRPESSF_KEYFRAMES = 4 - opts.dwBytesPerSecond = 0; - opts.lpFormat = new IntPtr(0); - opts.cbFormat = 0; - opts.lpParms = new IntPtr(0); - opts.cbParms = 0; - opts.dwInterleaveEvery = 0; - - AVICOMPRESSOPTIONS* p = &opts; - AVICOMPRESSOPTIONS** pp = &p; - - IntPtr x = ps_; - IntPtr* ptr_ps = &x; - - AVISaveOptions(0,0,1,ptr_ps,pp); - - - - // TODO: AVISaveOptionsFree(...) - - int hr = AVIMakeCompressedStream(out psCompressed_, ps_, ref opts, 0); - if (hr != 0) { - throw new AviException("AVIMakeCompressedStream"); - } - - BITMAPINFOHEADER bi = new BITMAPINFOHEADER(); - bi.biSize = 40; - bi.biWidth = (Int32) width_; - bi.biHeight = (Int32) height_; - bi.biPlanes = 1; - bi.biBitCount = 24; - bi.biCompression = 0; // 0 = BI_RGB - bi.biSizeImage = stride_*height_; - bi.biXPelsPerMeter= 0; - bi.biYPelsPerMeter= 0; - bi.biClrUsed = 0; - bi.biClrImportant = 0; - - hr = AVIStreamSetFormat(psCompressed_, 0, ref bi, 40); - if (hr != 0) { - throw new AviException("AVIStreamSetFormat",hr); - } - } - - [DllImport("avifil32.dll")] - private static extern void AVIFileInit(); - - [DllImport("avifil32.dll")] - private static extern int AVIFileOpenW(ref int ptr_pfile, [MarshalAs(UnmanagedType.LPWStr)]string fileName,int flags, int dummy); - - [DllImport("avifil32.dll")] - private static extern int AVIFileCreateStream(int ptr_pfile, out IntPtr ptr_ptr_avi, ref AVISTREAMINFOW ptr_streaminfo); - [DllImport("avifil32.dll")] - private static extern int AVIMakeCompressedStream(out IntPtr ppsCompressed, IntPtr aviStream, ref AVICOMPRESSOPTIONS ao, int dummy); - - [DllImport("avifil32.dll")] - private static extern int AVIStreamSetFormat(IntPtr aviStream, Int32 lPos, ref BITMAPINFOHEADER lpFormat, Int32 cbFormat); - - [DllImport("avifil32.dll")] - unsafe private static extern int AVISaveOptions(int hwnd, UInt32 flags, int nStreams, IntPtr* ptr_ptr_avi, AVICOMPRESSOPTIONS** ao); - - [DllImport("avifil32.dll")] - private static extern int AVIStreamWrite(IntPtr aviStream, Int32 lStart, Int32 lSamples, IntPtr lpBuffer, Int32 cbBuffer, Int32 dwFlags, Int32 dummy1, Int32 dummy2); - - [DllImport("avifil32.dll")] - private static extern int AVIStreamRelease(IntPtr aviStream); - - [DllImport("avifil32.dll")] - private static extern int AVIFileRelease(int pfile); - - [DllImport("avifil32.dll")] - private static extern void AVIFileExit(); - - private int pfile_ = 0; - private IntPtr ps_ = new IntPtr(0); - private IntPtr psCompressed_ = new IntPtr(0); - private UInt32 frameRate_ = 0; - private int count_ = 0; - private UInt32 width_ = 0; - private UInt32 stride_ = 0; - private UInt32 height_ = 0; - private UInt32 fccType_ = 1935960438; // vids - private UInt32 fccHandler_ = 808810089;// IV50 - //1145656899; // CVID - private Bitmap bmp_; - }; -} \ No newline at end of file diff --git a/src/AmphibianSoftware.Video/Properties/AssemblyInfo.cs b/src/AmphibianSoftware.Video/Properties/AssemblyInfo.cs deleted file mode 100644 index df82b2d..0000000 --- a/src/AmphibianSoftware.Video/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AmphibianSoftware.Video")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AmphibianSoftware.Video")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("8c5a0df9-40ee-45b2-b297-595177180d64")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/AmphibianSoftware.Video/XnaAviWriter.cs b/src/AmphibianSoftware.Video/XnaAviWriter.cs deleted file mode 100644 index 979ded4..0000000 --- a/src/AmphibianSoftware.Video/XnaAviWriter.cs +++ /dev/null @@ -1,182 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Drawing; -using System.Drawing.Imaging; -using System.Runtime.InteropServices; - -using Microsoft.Xna.Framework.Graphics; - -namespace AmphibianSoftware.Video -{ - public class XnaAviWriter - { - private AviWriter _writer; - private GraphicsDevice _device; - private ResolveTexture2D _texture; - private Bitmap _buffer;//textures go into the buffer first - private Bitmap _videoFrame;//then get drawn to the videoframe - private Bitmap _scaledFrame; - private Graphics _videoG; - private Graphics _scaledG; - private BitmapData _bmpd; - private uint _frameRate; - private bool _closing = false; - private bool _recording = false; - public XnaAviWriter(GraphicsDevice device) - { - _writer = new AviWriter(); - _device = device; - _texture = new ResolveTexture2D(_device, _device.PresentationParameters.BackBufferWidth, _device.PresentationParameters.BackBufferHeight, 1, SurfaceFormat.Color); - _buffer = new Bitmap(_device.PresentationParameters.BackBufferWidth, _device.PresentationParameters.BackBufferHeight); - _bmpd = new BitmapData(); - } - public void VideoInitialize(string filename, uint frameRate, int videoWidth, int videoHeight) - { - _frameRate = frameRate; - _videoFrame = _writer.Open(filename, frameRate, videoWidth, videoHeight); - _scaledFrame = new Bitmap(videoWidth, videoHeight, _videoFrame.PixelFormat); - _scaledG = Graphics.FromImage(_scaledFrame); - _videoG = Graphics.FromImage(_videoFrame); - _recording = true; - } - public bool Recording - { - get - { - return _recording && !_closing; - } - } - public uint FrameRate - { - get - { - return _frameRate; - } - } - public Size VideoSize - { - get - { - return new Size(_videoFrame.Width, _videoFrame.Height); - } - } - public Bitmap Buffer - { - get - { - return _scaledFrame; - } - } - public void CommitBufferChanges() - { - _scaledFrame.RotateFlip(RotateFlipType.RotateNoneFlipY); - } - public void RepeatBuffer() - { - _videoG.DrawImageUnscaled(_scaledFrame, 0, 0); - _writer.AddFrame(); - } - public unsafe void AddFrame() - { - lock (_bmpd) - { - lock (_texture) - { - lock (_buffer) - { - lock (_writer) - { - if (!_closing) - { - _device.ResolveBackBuffer(_texture); - - int[] d = new int[_texture.Width * _texture.Height]; - _texture.GetData(d); - - _bmpd = _buffer.LockBits( - new System.Drawing.Rectangle(0, 0, _buffer.Width, _buffer.Height), - System.Drawing.Imaging.ImageLockMode.WriteOnly, - System.Drawing.Imaging.PixelFormat.Format32bppArgb); - - Marshal.Copy(d, 0, _bmpd.Scan0, d.Length); - - _buffer.UnlockBits(_bmpd); - - _scaledG.DrawImageUnscaled(_buffer, 0, 0); - _scaledFrame.RotateFlip(RotateFlipType.RotateNoneFlipY); - _videoG.DrawImageUnscaled(_scaledFrame, 0, 0); - _writer.AddFrame(); - } - } - } - } - } - } - - public unsafe void ScreenShot(string path,int width,int height) - { - lock (_bmpd) - { - lock (_texture) - { - lock (_buffer) - { - if (!_closing) - { - _device.ResolveBackBuffer(_texture); - - int[] d = new int[_texture.Width * _texture.Height]; - _texture.GetData(d); - - _bmpd = _buffer.LockBits( - new System.Drawing.Rectangle(0, 0, _buffer.Width, _buffer.Height), - System.Drawing.Imaging.ImageLockMode.WriteOnly, - System.Drawing.Imaging.PixelFormat.Format32bppArgb); - - Marshal.Copy(d, 0, _bmpd.Scan0, d.Length); - - _buffer.UnlockBits(_bmpd); - - Bitmap screenshot = new Bitmap(width, height); - Graphics screenshotG = Graphics.FromImage(screenshot); - screenshotG.DrawImageUnscaled(_buffer, 0, 0); - //screenshot.RotateFlip(RotateFlipType.RotateNoneFlipY); - screenshot.Save(path, ImageFormat.Jpeg); - screenshotG.Dispose(); - screenshot.Dispose(); - } - } - } - } - } - public static Bitmap ConvertTexture2DToBitmap(Texture2D texture) - { - Bitmap buffer = new Bitmap(texture.Width, texture.Height); - BitmapData data; - - int[] d = new int[texture.Width * texture.Height]; - texture.GetData(d); - - data = buffer.LockBits( - new System.Drawing.Rectangle(0, 0, buffer.Width, buffer.Height), - System.Drawing.Imaging.ImageLockMode.WriteOnly, - System.Drawing.Imaging.PixelFormat.Format32bppArgb); - - Marshal.Copy(d, 0, data.Scan0, d.Length); - - buffer.UnlockBits(data); - return buffer; - } - public void Close() - { - _closing = true; - lock (_writer) - { - _writer.Close(); - } - _recording = false; - } - } -} diff --git a/src/DockPanel/DockPanel.csproj b/src/DockPanel/DockPanel.csproj deleted file mode 100644 index 05678f7..0000000 --- a/src/DockPanel/DockPanel.csproj +++ /dev/null @@ -1,212 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {C75532C4-765B-418E-B09B-46D36B2ABDB1} - Library - Properties - WeifenLuo.WinFormsUI - WeifenLuo.WinFormsUI.Docking - false - - - - - 3.5 - - - v2.0 - - - true - full - false - bin\Debug\ - TRACE;DEBUG - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Component - - - Component - - - Form - - - Component - - - Component - - - Component - - - - - Component - - - Component - - - - - Form - - - - - Component - - - - - - UserControl - - - Component - - - Component - - - - Component - - - - Component - - - UserControl - - - Component - - - Component - - - Component - - - - Component - - - Component - - - - - Form - - - - Component - - - - - - Component - - - - - - - - True - True - Resources.resx - - - True - True - Strings.resx - - - - - - - Designer - ResXFileCodeGenerator - Resources.Designer.cs - - - Designer - ResXFileCodeGenerator - Strings.Designer.cs - - - - - - - - - - - - - - - - - - - - - - - - - Always - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DockPanel/Docking/AutoHideStripBase.cs b/src/DockPanel/Docking/AutoHideStripBase.cs deleted file mode 100644 index ba60435..0000000 --- a/src/DockPanel/Docking/AutoHideStripBase.cs +++ /dev/null @@ -1,530 +0,0 @@ -using System; -using System.Collections; -using System.Windows.Forms; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public abstract partial class AutoHideStripBase : Control - { - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - protected class Tab : IDisposable - { - private IDockContent m_content; - - protected internal Tab(IDockContent content) - { - m_content = content; - } - - ~Tab() - { - Dispose(false); - } - - public IDockContent Content - { - get { return m_content; } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - } - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - protected sealed class TabCollection : IEnumerable - { - #region IEnumerable Members - IEnumerator IEnumerable.GetEnumerator() - { - for (int i = 0; i < Count; i++) - yield return this[i]; - } - - IEnumerator IEnumerable.GetEnumerator() - { - for (int i = 0; i < Count; i++) - yield return this[i]; - } - #endregion - - internal TabCollection(DockPane pane) - { - m_dockPane = pane; - } - - private DockPane m_dockPane = null; - public DockPane DockPane - { - get { return m_dockPane; } - } - - public DockPanel DockPanel - { - get { return DockPane.DockPanel; } - } - - public int Count - { - get { return DockPane.DisplayingContents.Count; } - } - - public Tab this[int index] - { - get - { - IDockContent content = DockPane.DisplayingContents[index]; - if (content == null) - throw (new ArgumentOutOfRangeException("index")); - if (content.DockHandler.AutoHideTab == null) - content.DockHandler.AutoHideTab = (DockPanel.AutoHideStripControl.CreateTab(content)); - return content.DockHandler.AutoHideTab as Tab; - } - } - - public bool Contains(Tab tab) - { - return (IndexOf(tab) != -1); - } - - public bool Contains(IDockContent content) - { - return (IndexOf(content) != -1); - } - - public int IndexOf(Tab tab) - { - if (tab == null) - return -1; - - return IndexOf(tab.Content); - } - - public int IndexOf(IDockContent content) - { - return DockPane.DisplayingContents.IndexOf(content); - } - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - protected class Pane : IDisposable - { - private DockPane m_dockPane; - - protected internal Pane(DockPane dockPane) - { - m_dockPane = dockPane; - } - - ~Pane() - { - Dispose(false); - } - - public DockPane DockPane - { - get { return m_dockPane; } - } - - public TabCollection AutoHideTabs - { - get - { - if (DockPane.AutoHideTabs == null) - DockPane.AutoHideTabs = new TabCollection(DockPane); - return DockPane.AutoHideTabs as TabCollection; - } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - } - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - protected sealed class PaneCollection : IEnumerable - { - private class AutoHideState - { - public DockState m_dockState; - public bool m_selected = false; - - public AutoHideState(DockState dockState) - { - m_dockState = dockState; - } - - public DockState DockState - { - get { return m_dockState; } - } - - public bool Selected - { - get { return m_selected; } - set { m_selected = value; } - } - } - - private class AutoHideStateCollection - { - private AutoHideState[] m_states; - - public AutoHideStateCollection() - { - m_states = new AutoHideState[] { - new AutoHideState(DockState.DockTopAutoHide), - new AutoHideState(DockState.DockBottomAutoHide), - new AutoHideState(DockState.DockLeftAutoHide), - new AutoHideState(DockState.DockRightAutoHide) - }; - } - - public AutoHideState this[DockState dockState] - { - get - { - for (int i = 0; i < m_states.Length; i++) - { - if (m_states[i].DockState == dockState) - return m_states[i]; - } - throw new ArgumentOutOfRangeException("dockState"); - } - } - - public bool ContainsPane(DockPane pane) - { - if (pane.IsHidden) - return false; - - for (int i = 0; i < m_states.Length; i++) - { - if (m_states[i].DockState == pane.DockState && m_states[i].Selected) - return true; - } - return false; - } - } - - internal PaneCollection(DockPanel panel, DockState dockState) - { - m_dockPanel = panel; - m_states = new AutoHideStateCollection(); - States[DockState.DockTopAutoHide].Selected = (dockState == DockState.DockTopAutoHide); - States[DockState.DockBottomAutoHide].Selected = (dockState == DockState.DockBottomAutoHide); - States[DockState.DockLeftAutoHide].Selected = (dockState == DockState.DockLeftAutoHide); - States[DockState.DockRightAutoHide].Selected = (dockState == DockState.DockRightAutoHide); - } - - private DockPanel m_dockPanel; - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private AutoHideStateCollection m_states; - private AutoHideStateCollection States - { - get { return m_states; } - } - - public int Count - { - get - { - int count = 0; - foreach (DockPane pane in DockPanel.Panes) - { - if (States.ContainsPane(pane)) - count++; - } - - return count; - } - } - - public Pane this[int index] - { - get - { - int count = 0; - foreach (DockPane pane in DockPanel.Panes) - { - if (!States.ContainsPane(pane)) - continue; - - if (count == index) - { - if (pane.AutoHidePane == null) - pane.AutoHidePane = DockPanel.AutoHideStripControl.CreatePane(pane); - return pane.AutoHidePane as Pane; - } - - count++; - } - throw new ArgumentOutOfRangeException("index"); - } - } - - public bool Contains(Pane pane) - { - return (IndexOf(pane) != -1); - } - - public int IndexOf(Pane pane) - { - if (pane == null) - return -1; - - int index = 0; - foreach (DockPane dockPane in DockPanel.Panes) - { - if (!States.ContainsPane(pane.DockPane)) - continue; - - if (pane == dockPane.AutoHidePane) - return index; - - index++; - } - return -1; - } - - #region IEnumerable Members - - IEnumerator IEnumerable.GetEnumerator() - { - for (int i = 0; i < Count; i++) - yield return this[i]; - } - - IEnumerator IEnumerable.GetEnumerator() - { - for (int i = 0; i < Count; i++) - yield return this[i]; - } - - #endregion - } - - protected AutoHideStripBase(DockPanel panel) - { - m_dockPanel = panel; - m_panesTop = new PaneCollection(panel, DockState.DockTopAutoHide); - m_panesBottom = new PaneCollection(panel, DockState.DockBottomAutoHide); - m_panesLeft = new PaneCollection(panel, DockState.DockLeftAutoHide); - m_panesRight = new PaneCollection(panel, DockState.DockRightAutoHide); - - SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - SetStyle(ControlStyles.Selectable, false); - } - - private DockPanel m_dockPanel; - protected DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private PaneCollection m_panesTop; - protected PaneCollection PanesTop - { - get { return m_panesTop; } - } - - private PaneCollection m_panesBottom; - protected PaneCollection PanesBottom - { - get { return m_panesBottom; } - } - - private PaneCollection m_panesLeft; - protected PaneCollection PanesLeft - { - get { return m_panesLeft; } - } - - private PaneCollection m_panesRight; - protected PaneCollection PanesRight - { - get { return m_panesRight; } - } - - protected PaneCollection GetPanes(DockState dockState) - { - if (dockState == DockState.DockTopAutoHide) - return PanesTop; - else if (dockState == DockState.DockBottomAutoHide) - return PanesBottom; - else if (dockState == DockState.DockLeftAutoHide) - return PanesLeft; - else if (dockState == DockState.DockRightAutoHide) - return PanesRight; - else - throw new ArgumentOutOfRangeException("dockState"); - } - - internal int GetNumberOfPanes(DockState dockState) - { - return GetPanes(dockState).Count; - } - - protected Rectangle RectangleTopLeft - { - get - { - int height = MeasureHeight(); - return PanesTop.Count > 0 && PanesLeft.Count > 0 ? new Rectangle(0, 0, height, height) : Rectangle.Empty; - } - } - - protected Rectangle RectangleTopRight - { - get - { - int height = MeasureHeight(); - return PanesTop.Count > 0 && PanesRight.Count > 0 ? new Rectangle(Width - height, 0, height, height) : Rectangle.Empty; - } - } - - protected Rectangle RectangleBottomLeft - { - get - { - int height = MeasureHeight(); - return PanesBottom.Count > 0 && PanesLeft.Count > 0 ? new Rectangle(0, Height - height, height, height) : Rectangle.Empty; - } - } - - protected Rectangle RectangleBottomRight - { - get - { - int height = MeasureHeight(); - return PanesBottom.Count > 0 && PanesRight.Count > 0 ? new Rectangle(Width - height, Height - height, height, height) : Rectangle.Empty; - } - } - - protected internal Rectangle GetTabStripRectangle(DockState dockState) - { - int height = MeasureHeight(); - if (dockState == DockState.DockTopAutoHide && PanesTop.Count > 0) - return new Rectangle(RectangleTopLeft.Width, 0, Width - RectangleTopLeft.Width - RectangleTopRight.Width, height); - else if (dockState == DockState.DockBottomAutoHide && PanesBottom.Count > 0) - return new Rectangle(RectangleBottomLeft.Width, Height - height, Width - RectangleBottomLeft.Width - RectangleBottomRight.Width, height); - else if (dockState == DockState.DockLeftAutoHide && PanesLeft.Count > 0) - return new Rectangle(0, RectangleTopLeft.Width, height, Height - RectangleTopLeft.Height - RectangleBottomLeft.Height); - else if (dockState == DockState.DockRightAutoHide && PanesRight.Count > 0) - return new Rectangle(Width - height, RectangleTopRight.Width, height, Height - RectangleTopRight.Height - RectangleBottomRight.Height); - else - return Rectangle.Empty; - } - - private GraphicsPath m_displayingArea = null; - private GraphicsPath DisplayingArea - { - get - { - if (m_displayingArea == null) - m_displayingArea = new GraphicsPath(); - - return m_displayingArea; - } - } - - private void SetRegion() - { - DisplayingArea.Reset(); - DisplayingArea.AddRectangle(RectangleTopLeft); - DisplayingArea.AddRectangle(RectangleTopRight); - DisplayingArea.AddRectangle(RectangleBottomLeft); - DisplayingArea.AddRectangle(RectangleBottomRight); - DisplayingArea.AddRectangle(GetTabStripRectangle(DockState.DockTopAutoHide)); - DisplayingArea.AddRectangle(GetTabStripRectangle(DockState.DockBottomAutoHide)); - DisplayingArea.AddRectangle(GetTabStripRectangle(DockState.DockLeftAutoHide)); - DisplayingArea.AddRectangle(GetTabStripRectangle(DockState.DockRightAutoHide)); - Region = new Region(DisplayingArea); - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - if (e.Button != MouseButtons.Left) - return; - - IDockContent content = HitTest(); - if (content == null) - return; - - content.DockHandler.Activate(); - } - - protected override void OnMouseHover(EventArgs e) - { - base.OnMouseHover(e); - - IDockContent content = HitTest(); - if (content != null && DockPanel.ActiveAutoHideContent != content) - DockPanel.ActiveAutoHideContent = content; - - // requires further tracking of mouse hover behavior, - ResetMouseEventArgs(); - } - - protected override void OnLayout(LayoutEventArgs levent) - { - RefreshChanges(); - base.OnLayout (levent); - } - - internal void RefreshChanges() - { - if (IsDisposed) - return; - - SetRegion(); - OnRefreshChanges(); - } - - protected virtual void OnRefreshChanges() - { - } - - protected internal abstract int MeasureHeight(); - - private IDockContent HitTest() - { - Point ptMouse = PointToClient(Control.MousePosition); - return HitTest(ptMouse); - } - - protected virtual Tab CreateTab(IDockContent content) - { - return new Tab(content); - } - - protected virtual Pane CreatePane(DockPane dockPane) - { - return new Pane(dockPane); - } - - protected abstract IDockContent HitTest(Point point); - } -} diff --git a/src/DockPanel/Docking/DockAreasEditor.cs b/src/DockPanel/Docking/DockAreasEditor.cs deleted file mode 100644 index 5ec6744..0000000 --- a/src/DockPanel/Docking/DockAreasEditor.cs +++ /dev/null @@ -1,142 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; -using System.Drawing.Design; -using System.Windows.Forms; -using System.Windows.Forms.Design; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal class DockAreasEditor : UITypeEditor - { - private class DockAreasEditorControl : System.Windows.Forms.UserControl - { - private CheckBox checkBoxFloat; - private CheckBox checkBoxDockLeft; - private CheckBox checkBoxDockRight; - private CheckBox checkBoxDockTop; - private CheckBox checkBoxDockBottom; - private CheckBox checkBoxDockFill; - private DockAreas m_oldDockAreas; - - public DockAreas DockAreas - { - get - { - DockAreas dockAreas = 0; - if (checkBoxFloat.Checked) - dockAreas |= DockAreas.Float; - if (checkBoxDockLeft.Checked) - dockAreas |= DockAreas.DockLeft; - if (checkBoxDockRight.Checked) - dockAreas |= DockAreas.DockRight; - if (checkBoxDockTop.Checked) - dockAreas |= DockAreas.DockTop; - if (checkBoxDockBottom.Checked) - dockAreas |= DockAreas.DockBottom; - if (checkBoxDockFill.Checked) - dockAreas |= DockAreas.Document; - - if (dockAreas == 0) - return m_oldDockAreas; - else - return dockAreas; - } - } - - public DockAreasEditorControl() - { - checkBoxFloat = new CheckBox(); - checkBoxDockLeft = new CheckBox(); - checkBoxDockRight = new CheckBox(); - checkBoxDockTop = new CheckBox(); - checkBoxDockBottom = new CheckBox(); - checkBoxDockFill = new CheckBox(); - - SuspendLayout(); - - checkBoxFloat.Appearance = Appearance.Button; - checkBoxFloat.Dock = DockStyle.Top; - checkBoxFloat.Height = 24; - checkBoxFloat.Text = Strings.DockAreaEditor_FloatCheckBoxText; - checkBoxFloat.TextAlign = ContentAlignment.MiddleCenter; - checkBoxFloat.FlatStyle = FlatStyle.System; - - checkBoxDockLeft.Appearance = System.Windows.Forms.Appearance.Button; - checkBoxDockLeft.Dock = System.Windows.Forms.DockStyle.Left; - checkBoxDockLeft.Width = 24; - checkBoxDockLeft.FlatStyle = FlatStyle.System; - - checkBoxDockRight.Appearance = System.Windows.Forms.Appearance.Button; - checkBoxDockRight.Dock = System.Windows.Forms.DockStyle.Right; - checkBoxDockRight.Width = 24; - checkBoxDockRight.FlatStyle = FlatStyle.System; - - checkBoxDockTop.Appearance = System.Windows.Forms.Appearance.Button; - checkBoxDockTop.Dock = System.Windows.Forms.DockStyle.Top; - checkBoxDockTop.Height = 24; - checkBoxDockTop.FlatStyle = FlatStyle.System; - - checkBoxDockBottom.Appearance = System.Windows.Forms.Appearance.Button; - checkBoxDockBottom.Dock = System.Windows.Forms.DockStyle.Bottom; - checkBoxDockBottom.Height = 24; - checkBoxDockBottom.FlatStyle = FlatStyle.System; - - checkBoxDockFill.Appearance = System.Windows.Forms.Appearance.Button; - checkBoxDockFill.Dock = System.Windows.Forms.DockStyle.Fill; - checkBoxDockFill.FlatStyle = FlatStyle.System; - - this.Controls.AddRange(new Control[] { - checkBoxDockFill, - checkBoxDockBottom, - checkBoxDockTop, - checkBoxDockRight, - checkBoxDockLeft, - checkBoxFloat}); - - Size = new System.Drawing.Size(160, 144); - BackColor = SystemColors.Control; - ResumeLayout(); - } - - public void SetStates(DockAreas dockAreas) - { - m_oldDockAreas = dockAreas; - if ((dockAreas & DockAreas.DockLeft) != 0) - checkBoxDockLeft.Checked = true; - if ((dockAreas & DockAreas.DockRight) != 0) - checkBoxDockRight.Checked = true; - if ((dockAreas & DockAreas.DockTop) != 0) - checkBoxDockTop.Checked = true; - if ((dockAreas & DockAreas.DockTop) != 0) - checkBoxDockTop.Checked = true; - if ((dockAreas & DockAreas.DockBottom) != 0) - checkBoxDockBottom.Checked = true; - if ((dockAreas & DockAreas.Document) != 0) - checkBoxDockFill.Checked = true; - if ((dockAreas & DockAreas.Float) != 0) - checkBoxFloat.Checked = true; - } - } - - private DockAreasEditor.DockAreasEditorControl m_ui = null; - - public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) - { - return UITypeEditorEditStyle.DropDown; - } - - public override object EditValue(ITypeDescriptorContext context, IServiceProvider sp, object value) - { - if (m_ui == null) - m_ui = new DockAreasEditor.DockAreasEditorControl(); - - m_ui.SetStates((DockAreas)value); - - IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)sp.GetService(typeof(IWindowsFormsEditorService)); - edSvc.DropDownControl(m_ui); - - return m_ui.DockAreas; - } - } -} diff --git a/src/DockPanel/Docking/DockContent.cs b/src/DockPanel/Docking/DockContent.cs deleted file mode 100644 index 570c3a8..0000000 --- a/src/DockPanel/Docking/DockContent.cs +++ /dev/null @@ -1,304 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class DockContent : Form, IDockContent - { - public DockContent() - { - m_dockHandler = new DockContentHandler(this, new GetPersistStringCallback(GetPersistString)); - m_dockHandler.DockStateChanged += new EventHandler(DockHandler_DockStateChanged); - //Suggested as a fix by bensty regarding form resize - this.ParentChanged += new EventHandler(DockContent_ParentChanged); - } - - //Suggested as a fix by bensty regarding form resize - private void DockContent_ParentChanged(object Sender, EventArgs e) - { - if (this.Parent != null) - this.Font = this.Parent.Font; - } - - private DockContentHandler m_dockHandler = null; - [Browsable(false)] - public DockContentHandler DockHandler - { - get { return m_dockHandler; } - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_AllowEndUserDocking_Description")] - [DefaultValue(true)] - public bool AllowEndUserDocking - { - get { return DockHandler.AllowEndUserDocking; } - set { DockHandler.AllowEndUserDocking = value; } - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_DockAreas_Description")] - [DefaultValue(DockAreas.DockLeft|DockAreas.DockRight|DockAreas.DockTop|DockAreas.DockBottom|DockAreas.Document|DockAreas.Float)] - public DockAreas DockAreas - { - get { return DockHandler.DockAreas; } - set { DockHandler.DockAreas = value; } - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_AutoHidePortion_Description")] - [DefaultValue(0.25)] - public double AutoHidePortion - { - get { return DockHandler.AutoHidePortion; } - set { DockHandler.AutoHidePortion = value; } - } - - [Localizable(true)] - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_TabText_Description")] - [DefaultValue(null)] - private string m_tabText = null; - public string TabText - { - get { return m_tabText; } - set { DockHandler.TabText = m_tabText = value; } - } - private bool ShouldSerializeTabText() - { - return (m_tabText != null); - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_CloseButton_Description")] - [DefaultValue(true)] - public bool CloseButton - { - get { return DockHandler.CloseButton; } - set { DockHandler.CloseButton = value; } - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_CloseButtonVisible_Description")] - [DefaultValue(true)] - public bool CloseButtonVisible - { - get { return DockHandler.CloseButtonVisible; } - set { DockHandler.CloseButtonVisible = value; } - } - - [Browsable(false)] - public DockPanel DockPanel - { - get { return DockHandler.DockPanel; } - set { DockHandler.DockPanel = value; } - } - - [Browsable(false)] - public DockState DockState - { - get { return DockHandler.DockState; } - set { DockHandler.DockState = value; } - } - - [Browsable(false)] - public DockPane Pane - { - get { return DockHandler.Pane; } - set { DockHandler.Pane = value; } - } - - [Browsable(false)] - public bool IsHidden - { - get { return DockHandler.IsHidden; } - set { DockHandler.IsHidden = value; } - } - - [Browsable(false)] - public DockState VisibleState - { - get { return DockHandler.VisibleState; } - set { DockHandler.VisibleState = value; } - } - - [Browsable(false)] - public bool IsFloat - { - get { return DockHandler.IsFloat; } - set { DockHandler.IsFloat = value; } - } - - [Browsable(false)] - public DockPane PanelPane - { - get { return DockHandler.PanelPane; } - set { DockHandler.PanelPane = value; } - } - - [Browsable(false)] - public DockPane FloatPane - { - get { return DockHandler.FloatPane; } - set { DockHandler.FloatPane = value; } - } - - [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")] - protected virtual string GetPersistString() - { - return GetType().ToString(); - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_HideOnClose_Description")] - [DefaultValue(false)] - public bool HideOnClose - { - get { return DockHandler.HideOnClose; } - set { DockHandler.HideOnClose = value; } - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_ShowHint_Description")] - [DefaultValue(DockState.Unknown)] - public DockState ShowHint - { - get { return DockHandler.ShowHint; } - set { DockHandler.ShowHint = value; } - } - - [Browsable(false)] - public bool IsActivated - { - get { return DockHandler.IsActivated; } - } - - public bool IsDockStateValid(DockState dockState) - { - return DockHandler.IsDockStateValid(dockState); - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_TabPageContextMenu_Description")] - [DefaultValue(null)] - public ContextMenu TabPageContextMenu - { - get { return DockHandler.TabPageContextMenu; } - set { DockHandler.TabPageContextMenu = value; } - } - - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockContent_TabPageContextMenuStrip_Description")] - [DefaultValue(null)] - public ContextMenuStrip TabPageContextMenuStrip - { - get { return DockHandler.TabPageContextMenuStrip; } - set { DockHandler.TabPageContextMenuStrip = value; } - } - - [Localizable(true)] - [Category("Appearance")] - [LocalizedDescription("DockContent_ToolTipText_Description")] - [DefaultValue(null)] - public string ToolTipText - { - get { return DockHandler.ToolTipText; } - set { DockHandler.ToolTipText = value; } - } - - public new void Activate() - { - DockHandler.Activate(); - } - - public new void Hide() - { - DockHandler.Hide(); - } - - public new void Show() - { - DockHandler.Show(); - } - - public void Show(DockPanel dockPanel) - { - DockHandler.Show(dockPanel); - } - - public void Show(DockPanel dockPanel, DockState dockState) - { - DockHandler.Show(dockPanel, dockState); - } - - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters")] - public void Show(DockPanel dockPanel, Rectangle floatWindowBounds) - { - DockHandler.Show(dockPanel, floatWindowBounds); - } - - public void Show(DockPane pane, IDockContent beforeContent) - { - DockHandler.Show(pane, beforeContent); - } - - public void Show(DockPane previousPane, DockAlignment alignment, double proportion) - { - DockHandler.Show(previousPane, alignment, proportion); - } - - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters")] - public void FloatAt(Rectangle floatWindowBounds) - { - DockHandler.FloatAt(floatWindowBounds); - } - - public void DockTo(DockPane paneTo, DockStyle dockStyle, int contentIndex) - { - DockHandler.DockTo(paneTo, dockStyle, contentIndex); - } - - public void DockTo(DockPanel panel, DockStyle dockStyle) - { - DockHandler.DockTo(panel, dockStyle); - } - - #region IDockContent Members - void IDockContent.OnActivated(EventArgs e) - { - this.OnActivated(e); - } - - void IDockContent.OnDeactivate(EventArgs e) - { - this.OnDeactivate(e); - } - #endregion - - #region Events - private void DockHandler_DockStateChanged(object sender, EventArgs e) - { - OnDockStateChanged(e); - } - - private static readonly object DockStateChangedEvent = new object(); - [LocalizedCategory("Category_PropertyChanged")] - [LocalizedDescription("Pane_DockStateChanged_Description")] - public event EventHandler DockStateChanged - { - add { Events.AddHandler(DockStateChangedEvent, value); } - remove { Events.RemoveHandler(DockStateChangedEvent, value); } - } - protected virtual void OnDockStateChanged(EventArgs e) - { - EventHandler handler = (EventHandler)Events[DockStateChangedEvent]; - if (handler != null) - handler(this, e); - } - #endregion - } -} diff --git a/src/DockPanel/Docking/DockContentCollection.cs b/src/DockPanel/Docking/DockContentCollection.cs deleted file mode 100644 index 141615f..0000000 --- a/src/DockPanel/Docking/DockContentCollection.cs +++ /dev/null @@ -1,175 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.ObjectModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class DockContentCollection : ReadOnlyCollection - { - private static List _emptyList = new List(0); - - internal DockContentCollection() - : base(new List()) - { - } - - internal DockContentCollection(DockPane pane) - : base(_emptyList) - { - m_dockPane = pane; - } - - private DockPane m_dockPane = null; - private DockPane DockPane - { - get { return m_dockPane; } - } - - public new IDockContent this[int index] - { - get - { - if (DockPane == null) - return Items[index] as IDockContent; - else - return GetVisibleContent(index); - } - } - - internal int Add(IDockContent content) - { -#if DEBUG - if (DockPane != null) - throw new InvalidOperationException(); -#endif - - if (Contains(content)) - return IndexOf(content); - - Items.Add(content); - return Count - 1; - } - - internal void AddAt(IDockContent content, int index) - { -#if DEBUG - if (DockPane != null) - throw new InvalidOperationException(); -#endif - - if (index < 0 || index > Items.Count - 1) - return; - - if (Contains(content)) - return; - - Items.Insert(index, content); - } - - public new bool Contains(IDockContent content) - { - if (DockPane == null) - return Items.Contains(content); - else - return (GetIndexOfVisibleContents(content) != -1); - } - - public new int Count - { - get - { - if (DockPane == null) - return base.Count; - else - return CountOfVisibleContents; - } - } - - public new int IndexOf(IDockContent content) - { - if (DockPane == null) - { - if (!Contains(content)) - return -1; - else - return Items.IndexOf(content); - } - else - return GetIndexOfVisibleContents(content); - } - - internal void Remove(IDockContent content) - { - if (DockPane != null) - throw new InvalidOperationException(); - - if (!Contains(content)) - return; - - Items.Remove(content); - } - - private int CountOfVisibleContents - { - get - { -#if DEBUG - if (DockPane == null) - throw new InvalidOperationException(); -#endif - - int count = 0; - foreach (IDockContent content in DockPane.Contents) - { - if (content.DockHandler.DockState == DockPane.DockState) - count++; - } - return count; - } - } - - private IDockContent GetVisibleContent(int index) - { -#if DEBUG - if (DockPane == null) - throw new InvalidOperationException(); -#endif - - int currentIndex = -1; - foreach (IDockContent content in DockPane.Contents) - { - if (content.DockHandler.DockState == DockPane.DockState) - currentIndex++; - - if (currentIndex == index) - return content; - } - throw (new ArgumentOutOfRangeException()); - } - - private int GetIndexOfVisibleContents(IDockContent content) - { -#if DEBUG - if (DockPane == null) - throw new InvalidOperationException(); -#endif - - if (content == null) - return -1; - - int index = -1; - foreach (IDockContent c in DockPane.Contents) - { - if (c.DockHandler.DockState == DockPane.DockState) - { - index++; - - if (c == content) - return index; - } - } - return -1; - } - } -} diff --git a/src/DockPanel/Docking/DockContentEventArgs.cs b/src/DockPanel/Docking/DockContentEventArgs.cs deleted file mode 100644 index 49d9caf..0000000 --- a/src/DockPanel/Docking/DockContentEventArgs.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class DockContentEventArgs : EventArgs - { - private IDockContent m_content; - - public DockContentEventArgs(IDockContent content) - { - m_content = content; - } - - public IDockContent Content - { - get { return m_content; } - } - } -} diff --git a/src/DockPanel/Docking/DockContentHandler.cs b/src/DockPanel/Docking/DockContentHandler.cs deleted file mode 100644 index e690247..0000000 --- a/src/DockPanel/Docking/DockContentHandler.cs +++ /dev/null @@ -1,1063 +0,0 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public delegate string GetPersistStringCallback(); - - public class DockContentHandler : IDisposable, IDockDragSource - { - public DockContentHandler(Form form) : this(form, null) - { - } - - public DockContentHandler(Form form, GetPersistStringCallback getPersistStringCallback) - { - if (!(form is IDockContent)) - throw new ArgumentException(Strings.DockContent_Constructor_InvalidForm, "form"); - - m_form = form; - m_getPersistStringCallback = getPersistStringCallback; - - m_events = new EventHandlerList(); - Form.Disposed +=new EventHandler(Form_Disposed); - Form.TextChanged += new EventHandler(Form_TextChanged); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if(disposing) - { - lock(this) - { - DockPanel = null; - if (m_autoHideTab != null) - m_autoHideTab.Dispose(); - if (m_tab != null) - m_tab.Dispose(); - - Form.Disposed -= new EventHandler(Form_Disposed); - Form.TextChanged -= new EventHandler(Form_TextChanged); - m_events.Dispose(); - } - } - } - - private Form m_form; - public Form Form - { - get { return m_form; } - } - - public IDockContent Content - { - get { return Form as IDockContent; } - } - - private IDockContent m_previousActive = null; - public IDockContent PreviousActive - { - get { return m_previousActive; } - internal set { m_previousActive = value; } - } - - private IDockContent m_nextActive = null; - public IDockContent NextActive - { - get { return m_nextActive; } - internal set { m_nextActive = value; } - } - - private EventHandlerList m_events; - private EventHandlerList Events - { - get { return m_events; } - } - - private bool m_allowEndUserDocking = true; - public bool AllowEndUserDocking - { - get { return m_allowEndUserDocking; } - set { m_allowEndUserDocking = value; } - } - - private double m_autoHidePortion = 0.25; - public double AutoHidePortion - { - get { return m_autoHidePortion; } - set - { - if (value <= 0) - throw(new ArgumentOutOfRangeException(Strings.DockContentHandler_AutoHidePortion_OutOfRange)); - - if (m_autoHidePortion == value) - return; - - m_autoHidePortion = value; - - if (DockPanel == null) - return; - - if (DockPanel.ActiveAutoHideContent == Content) - DockPanel.PerformLayout(); - } - } - - private bool m_closeButton = true; - public bool CloseButton - { - get { return m_closeButton; } - set - { - if (m_closeButton == value) - return; - - m_closeButton = value; - if (Pane != null) - if (Pane.ActiveContent.DockHandler == this) - Pane.RefreshChanges(); - } - } - - private bool m_closeButtonVisible = true; - /// - /// Determines whether the close button is visible on the content - /// - public bool CloseButtonVisible - { - get { return m_closeButtonVisible; } - set { m_closeButtonVisible = value; } - } - - private DockState DefaultDockState - { - get - { - if (ShowHint != DockState.Unknown && ShowHint != DockState.Hidden) - return ShowHint; - - if ((DockAreas & DockAreas.Document) != 0) - return DockState.Document; - if ((DockAreas & DockAreas.DockRight) != 0) - return DockState.DockRight; - if ((DockAreas & DockAreas.DockLeft) != 0) - return DockState.DockLeft; - if ((DockAreas & DockAreas.DockBottom) != 0) - return DockState.DockBottom; - if ((DockAreas & DockAreas.DockTop) != 0) - return DockState.DockTop; - - return DockState.Unknown; - } - } - - private DockState DefaultShowState - { - get - { - if (ShowHint != DockState.Unknown) - return ShowHint; - - if ((DockAreas & DockAreas.Document) != 0) - return DockState.Document; - if ((DockAreas & DockAreas.DockRight) != 0) - return DockState.DockRight; - if ((DockAreas & DockAreas.DockLeft) != 0) - return DockState.DockLeft; - if ((DockAreas & DockAreas.DockBottom) != 0) - return DockState.DockBottom; - if ((DockAreas & DockAreas.DockTop) != 0) - return DockState.DockTop; - if ((DockAreas & DockAreas.Float) != 0) - return DockState.Float; - - return DockState.Unknown; - } - } - - private DockAreas m_allowedAreas = DockAreas.DockLeft | DockAreas.DockRight | DockAreas.DockTop | DockAreas.DockBottom | DockAreas.Document | DockAreas.Float; - public DockAreas DockAreas - { - get { return m_allowedAreas; } - set - { - if (m_allowedAreas == value) - return; - - if (!DockHelper.IsDockStateValid(DockState, value)) - throw(new InvalidOperationException(Strings.DockContentHandler_DockAreas_InvalidValue)); - - m_allowedAreas = value; - - if (!DockHelper.IsDockStateValid(ShowHint, m_allowedAreas)) - ShowHint = DockState.Unknown; - } - } - - private DockState m_dockState = DockState.Unknown; - public DockState DockState - { - get { return m_dockState; } - set - { - if (m_dockState == value) - return; - - DockPanel.SuspendLayout(true); - - if (value == DockState.Hidden) - IsHidden = true; - else - SetDockState(false, value, Pane); - - DockPanel.ResumeLayout(true, true); - } - } - - private DockPanel m_dockPanel = null; - public DockPanel DockPanel - { - get { return m_dockPanel; } - set - { - if (m_dockPanel == value) - return; - - Pane = null; - - if (m_dockPanel != null) - m_dockPanel.RemoveContent(Content); - - if (m_tab != null) - { - m_tab.Dispose(); - m_tab = null; - } - - if (m_autoHideTab != null) - { - m_autoHideTab.Dispose(); - m_autoHideTab = null; - } - - m_dockPanel = value; - - if (m_dockPanel != null) - { - m_dockPanel.AddContent(Content); - Form.TopLevel = false; - Form.FormBorderStyle = FormBorderStyle.None; - Form.ShowInTaskbar = false; - Form.WindowState = FormWindowState.Normal; - NativeMethods.SetWindowPos(Form.Handle, IntPtr.Zero, 0, 0, 0, 0, - Win32.FlagsSetWindowPos.SWP_NOACTIVATE | - Win32.FlagsSetWindowPos.SWP_NOMOVE | - Win32.FlagsSetWindowPos.SWP_NOSIZE | - Win32.FlagsSetWindowPos.SWP_NOZORDER | - Win32.FlagsSetWindowPos.SWP_NOOWNERZORDER | - Win32.FlagsSetWindowPos.SWP_FRAMECHANGED); - } - } - } - - public Icon Icon - { - get { return Form.Icon; } - } - - public DockPane Pane - { - get { return IsFloat ? FloatPane : PanelPane; } - set - { - if (Pane == value) - return; - - DockPanel.SuspendLayout(true); - - DockPane oldPane = Pane; - - SuspendSetDockState(); - FloatPane = (value == null ? null : (value.IsFloat ? value : FloatPane)); - PanelPane = (value == null ? null : (value.IsFloat ? PanelPane : value)); - ResumeSetDockState(IsHidden, value != null ? value.DockState : DockState.Unknown, oldPane); - - DockPanel.ResumeLayout(true, true); - } - } - - private bool m_isHidden = true; - public bool IsHidden - { - get { return m_isHidden; } - set - { - if (m_isHidden == value) - return; - - SetDockState(value, VisibleState, Pane); - } - } - - private string m_tabText = null; - public string TabText - { - get { return m_tabText == null || m_tabText == "" ? Form.Text : m_tabText; } - set - { - if (m_tabText == value) - return; - - m_tabText = value; - if (Pane != null) - Pane.RefreshChanges(); - } - } - - private DockState m_visibleState = DockState.Unknown; - public DockState VisibleState - { - get { return m_visibleState; } - set - { - if (m_visibleState == value) - return; - - SetDockState(IsHidden, value, Pane); - } - } - - private bool m_isFloat = false; - public bool IsFloat - { - get { return m_isFloat; } - set - { - if (m_isFloat == value) - return; - - DockState visibleState = CheckDockState(value); - - if (visibleState == DockState.Unknown) - throw new InvalidOperationException(Strings.DockContentHandler_IsFloat_InvalidValue); - - SetDockState(IsHidden, visibleState, Pane); - } - } - - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters")] - public DockState CheckDockState(bool isFloat) - { - DockState dockState; - - if (isFloat) - { - if (!IsDockStateValid(DockState.Float)) - dockState = DockState.Unknown; - else - dockState = DockState.Float; - } - else - { - dockState = (PanelPane != null) ? PanelPane.DockState : DefaultDockState; - if (dockState != DockState.Unknown && !IsDockStateValid(dockState)) - dockState = DockState.Unknown; - } - - return dockState; - } - - private DockPane m_panelPane = null; - public DockPane PanelPane - { - get { return m_panelPane; } - set - { - if (m_panelPane == value) - return; - - if (value != null) - { - if (value.IsFloat || value.DockPanel != DockPanel) - throw new InvalidOperationException(Strings.DockContentHandler_DockPane_InvalidValue); - } - - DockPane oldPane = Pane; - - if (m_panelPane != null) - RemoveFromPane(m_panelPane); - m_panelPane = value; - if (m_panelPane != null) - { - m_panelPane.AddContent(Content); - SetDockState(IsHidden, IsFloat ? DockState.Float : m_panelPane.DockState, oldPane); - } - else - SetDockState(IsHidden, DockState.Unknown, oldPane); - } - } - - private void RemoveFromPane(DockPane pane) - { - pane.RemoveContent(Content); - SetPane(null); - if (pane.Contents.Count == 0) - pane.Dispose(); - } - - private DockPane m_floatPane = null; - public DockPane FloatPane - { - get { return m_floatPane; } - set - { - if (m_floatPane == value) - return; - - if (value != null) - { - if (!value.IsFloat || value.DockPanel != DockPanel) - throw new InvalidOperationException(Strings.DockContentHandler_FloatPane_InvalidValue); - } - - DockPane oldPane = Pane; - - if (m_floatPane != null) - RemoveFromPane(m_floatPane); - m_floatPane = value; - if (m_floatPane != null) - { - m_floatPane.AddContent(Content); - SetDockState(IsHidden, IsFloat ? DockState.Float : VisibleState, oldPane); - } - else - SetDockState(IsHidden, DockState.Unknown, oldPane); - } - } - - private int m_countSetDockState = 0; - private void SuspendSetDockState() - { - m_countSetDockState ++; - } - - private void ResumeSetDockState() - { - m_countSetDockState --; - if (m_countSetDockState < 0) - m_countSetDockState = 0; - } - - internal bool IsSuspendSetDockState - { - get { return m_countSetDockState != 0; } - } - - private void ResumeSetDockState(bool isHidden, DockState visibleState, DockPane oldPane) - { - ResumeSetDockState(); - SetDockState(isHidden, visibleState, oldPane); - } - - internal void SetDockState(bool isHidden, DockState visibleState, DockPane oldPane) - { - if (IsSuspendSetDockState) - return; - - if (DockPanel == null && visibleState != DockState.Unknown) - throw new InvalidOperationException(Strings.DockContentHandler_SetDockState_NullPanel); - - if (visibleState == DockState.Hidden || (visibleState != DockState.Unknown && !IsDockStateValid(visibleState))) - throw new InvalidOperationException(Strings.DockContentHandler_SetDockState_InvalidState); - - DockPanel dockPanel = DockPanel; - if (dockPanel != null) - dockPanel.SuspendLayout(true); - - SuspendSetDockState(); - - DockState oldDockState = DockState; - - if (m_isHidden != isHidden || oldDockState == DockState.Unknown) - { - m_isHidden = isHidden; - } - m_visibleState = visibleState; - m_dockState = isHidden ? DockState.Hidden : visibleState; - - if (visibleState == DockState.Unknown) - Pane = null; - else - { - m_isFloat = (m_visibleState == DockState.Float); - - if (Pane == null) - Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, visibleState, true); - else if (Pane.DockState != visibleState) - { - if (Pane.Contents.Count == 1) - Pane.SetDockState(visibleState); - else - Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, visibleState, true); - } - } - - if (Form.ContainsFocus) - if (DockState == DockState.Hidden || DockState == DockState.Unknown) - DockPanel.ContentFocusManager.GiveUpFocus(Content); - - SetPaneAndVisible(Pane); - - if (oldPane != null && !oldPane.IsDisposed && oldDockState == oldPane.DockState) - RefreshDockPane(oldPane); - - if (Pane != null && DockState == Pane.DockState) - { - if ((Pane != oldPane) || - (Pane == oldPane && oldDockState != oldPane.DockState)) - // Avoid early refresh of hidden AutoHide panes - if ((Pane.DockWindow == null || Pane.DockWindow.Visible || Pane.IsHidden) && !Pane.IsAutoHide) - RefreshDockPane(Pane); - } - - if (oldDockState != DockState) - { - if (DockState == DockState.Hidden || DockState == DockState.Unknown || - DockHelper.IsDockStateAutoHide(DockState)) - DockPanel.ContentFocusManager.RemoveFromList(Content); - else - DockPanel.ContentFocusManager.AddToList(Content); - - OnDockStateChanged(EventArgs.Empty); - } - ResumeSetDockState(); - - if (dockPanel != null) - dockPanel.ResumeLayout(true, true); - } - - private static void RefreshDockPane(DockPane pane) - { - pane.RefreshChanges(); - pane.ValidateActiveContent(); - } - - internal string PersistString - { - get { return GetPersistStringCallback == null ? Form.GetType().ToString() : GetPersistStringCallback(); } - } - - private GetPersistStringCallback m_getPersistStringCallback = null; - public GetPersistStringCallback GetPersistStringCallback - { - get { return m_getPersistStringCallback; } - set { m_getPersistStringCallback = value; } - } - - - private bool m_hideOnClose = false; - public bool HideOnClose - { - get { return m_hideOnClose; } - set { m_hideOnClose = value; } - } - - private DockState m_showHint = DockState.Unknown; - public DockState ShowHint - { - get { return m_showHint; } - set - { - if (!DockHelper.IsDockStateValid(value, DockAreas)) - throw (new InvalidOperationException(Strings.DockContentHandler_ShowHint_InvalidValue)); - - if (m_showHint == value) - return; - - m_showHint = value; - } - } - - private bool m_isActivated = false; - public bool IsActivated - { - get { return m_isActivated; } - internal set - { - if (m_isActivated == value) - return; - - m_isActivated = value; - } - } - - public bool IsDockStateValid(DockState dockState) - { - if (DockPanel != null && dockState == DockState.Document && DockPanel.DocumentStyle == DocumentStyle.SystemMdi) - return false; - else - return DockHelper.IsDockStateValid(dockState, DockAreas); - } - - private ContextMenu m_tabPageContextMenu = null; - public ContextMenu TabPageContextMenu - { - get { return m_tabPageContextMenu; } - set { m_tabPageContextMenu = value; } - } - - private string m_toolTipText = null; - public string ToolTipText - { - get { return m_toolTipText; } - set { m_toolTipText = value; } - } - - public void Activate() - { - if (DockPanel == null) - Form.Activate(); - else if (Pane == null) - Show(DockPanel); - else - { - IsHidden = false; - Pane.ActiveContent = Content; - if (DockState == DockState.Document && DockPanel.DocumentStyle == DocumentStyle.SystemMdi) - { - Form.Activate(); - return; - } - else if (DockHelper.IsDockStateAutoHide(DockState)) - DockPanel.ActiveAutoHideContent = Content; - - if (!Form.ContainsFocus) - DockPanel.ContentFocusManager.Activate(Content); - } - } - - public void GiveUpFocus() - { - DockPanel.ContentFocusManager.GiveUpFocus(Content); - } - - private IntPtr m_activeWindowHandle = IntPtr.Zero; - internal IntPtr ActiveWindowHandle - { - get { return m_activeWindowHandle; } - set { m_activeWindowHandle = value; } - } - - public void Hide() - { - IsHidden = true; - } - - internal void SetPaneAndVisible(DockPane pane) - { - SetPane(pane); - SetVisible(); - } - - private void SetPane(DockPane pane) - { - if (pane != null && pane.DockState == DockState.Document && DockPanel.DocumentStyle == DocumentStyle.DockingMdi) - { - if (Form.Parent is DockPane) - SetParent(null); - if (Form.MdiParent != DockPanel.ParentForm) - { - FlagClipWindow = true; - Form.MdiParent = DockPanel.ParentForm; - } - } - else - { - FlagClipWindow = true; - if (Form.MdiParent != null) - Form.MdiParent = null; - if (Form.TopLevel) - Form.TopLevel = false; - SetParent(pane); - } - } - - internal void SetVisible() - { - bool visible; - - if (IsHidden) - visible = false; - else if (Pane != null && Pane.DockState == DockState.Document && DockPanel.DocumentStyle == DocumentStyle.DockingMdi) - visible = true; - else if (Pane != null && Pane.ActiveContent == Content) - visible = true; - else if (Pane != null && Pane.ActiveContent != Content) - visible = false; - else - visible = Form.Visible; - - if (Form.Visible != visible) - Form.Visible = visible; - } - - private void SetParent(Control value) - { - if (Form.Parent == value) - return; - - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Workaround of .Net Framework bug: - // Change the parent of a control with focus may result in the first - // MDI child form get activated. - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - bool bRestoreFocus = false; - if (Form.ContainsFocus) - { - //Suggested as a fix for a memory leak by bugreports - if (value == null && !IsFloat) - DockPanel.ContentFocusManager.GiveUpFocus(this.Content); - else - { - DockPanel.SaveFocus(); - bRestoreFocus = true; - } - } - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - Form.Parent = value; - - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Workaround of .Net Framework bug: - // Change the parent of a control with focus may result in the first - // MDI child form get activated. - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - if (bRestoreFocus) - Activate(); - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - } - - public void Show() - { - if (DockPanel == null) - Form.Show(); - else - Show(DockPanel); - } - - public void Show(DockPanel dockPanel) - { - if (dockPanel == null) - throw(new ArgumentNullException(Strings.DockContentHandler_Show_NullDockPanel)); - - if (DockState == DockState.Unknown) - Show(dockPanel, DefaultShowState); - else - Activate(); - } - - public void Show(DockPanel dockPanel, DockState dockState) - { - if (dockPanel == null) - throw(new ArgumentNullException(Strings.DockContentHandler_Show_NullDockPanel)); - - if (dockState == DockState.Unknown || dockState == DockState.Hidden) - throw(new ArgumentException(Strings.DockContentHandler_Show_InvalidDockState)); - - dockPanel.SuspendLayout(true); - - DockPanel = dockPanel; - - if (dockState == DockState.Float && FloatPane == null) - Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.Float, true); - else if (PanelPane == null) - { - DockPane paneExisting = null; - foreach (DockPane pane in DockPanel.Panes) - if (pane.DockState == dockState) - { - paneExisting = pane; - break; - } - - if (paneExisting == null) - Pane = DockPanel.DockPaneFactory.CreateDockPane(Content, dockState, true); - else - Pane = paneExisting; - } - - DockState = dockState; - dockPanel.ResumeLayout(true, true); //we'll resume the layout before activating to ensure that the position - Activate(); //and size of the form are finally processed before the form is shown - } - - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters")] - public void Show(DockPanel dockPanel, Rectangle floatWindowBounds) - { - if (dockPanel == null) - throw(new ArgumentNullException(Strings.DockContentHandler_Show_NullDockPanel)); - - dockPanel.SuspendLayout(true); - - DockPanel = dockPanel; - if (FloatPane == null) - { - IsHidden = true; // to reduce the screen flicker - FloatPane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.Float, false); - FloatPane.FloatWindow.StartPosition = FormStartPosition.Manual; - } - - FloatPane.FloatWindow.Bounds = floatWindowBounds; - - Show(dockPanel, DockState.Float); - Activate(); - - dockPanel.ResumeLayout(true, true); - } - - public void Show(DockPane pane, IDockContent beforeContent) - { - if (pane == null) - throw(new ArgumentNullException(Strings.DockContentHandler_Show_NullPane)); - - if (beforeContent != null && pane.Contents.IndexOf(beforeContent) == -1) - throw(new ArgumentException(Strings.DockContentHandler_Show_InvalidBeforeContent)); - - pane.DockPanel.SuspendLayout(true); - - DockPanel = pane.DockPanel; - Pane = pane; - pane.SetContentIndex(Content, pane.Contents.IndexOf(beforeContent)); - Show(); - - pane.DockPanel.ResumeLayout(true, true); - } - - public void Show(DockPane previousPane, DockAlignment alignment, double proportion) - { - if (previousPane == null) - throw(new ArgumentException(Strings.DockContentHandler_Show_InvalidPrevPane)); - - if (DockHelper.IsDockStateAutoHide(previousPane.DockState)) - throw(new ArgumentException(Strings.DockContentHandler_Show_InvalidPrevPane)); - - previousPane.DockPanel.SuspendLayout(true); - - DockPanel = previousPane.DockPanel; - DockPanel.DockPaneFactory.CreateDockPane(Content, previousPane, alignment, proportion, true); - Show(); - - previousPane.DockPanel.ResumeLayout(true, true); - } - - public void Close() - { - DockPanel dockPanel = DockPanel; - if (dockPanel != null) - dockPanel.SuspendLayout(true); - Form.Close(); - if (dockPanel != null) - dockPanel.ResumeLayout(true, true); - - } - - private DockPaneStripBase.Tab m_tab = null; - internal DockPaneStripBase.Tab GetTab(DockPaneStripBase dockPaneStrip) - { - if (m_tab == null) - m_tab = dockPaneStrip.CreateTab(Content); - - return m_tab; - } - - private IDisposable m_autoHideTab = null; - internal IDisposable AutoHideTab - { - get { return m_autoHideTab; } - set { m_autoHideTab = value; } - } - - #region Events - private static readonly object DockStateChangedEvent = new object(); - public event EventHandler DockStateChanged - { - add { Events.AddHandler(DockStateChangedEvent, value); } - remove { Events.RemoveHandler(DockStateChangedEvent, value); } - } - protected virtual void OnDockStateChanged(EventArgs e) - { - EventHandler handler = (EventHandler)Events[DockStateChangedEvent]; - if (handler != null) - handler(this, e); - } - #endregion - - private void Form_Disposed(object sender, EventArgs e) - { - Dispose(); - } - - private void Form_TextChanged(object sender, EventArgs e) - { - if (DockHelper.IsDockStateAutoHide(DockState)) - DockPanel.RefreshAutoHideStrip(); - else if (Pane != null) - { - if (Pane.FloatWindow != null) - Pane.FloatWindow.SetText(); - Pane.RefreshChanges(); - } - } - - private bool m_flagClipWindow = false; - internal bool FlagClipWindow - { - get { return m_flagClipWindow; } - set - { - if (m_flagClipWindow == value) - return; - - m_flagClipWindow = value; - if (m_flagClipWindow) - Form.Region = new Region(Rectangle.Empty); - else - Form.Region = null; - } - } - - private ContextMenuStrip m_tabPageContextMenuStrip = null; - public ContextMenuStrip TabPageContextMenuStrip - { - get { return m_tabPageContextMenuStrip; } - set { m_tabPageContextMenuStrip = value; } - } - - #region IDockDragSource Members - - Control IDragSource.DragControl - { - get { return Form; } - } - - bool IDockDragSource.CanDockTo(DockPane pane) - { - if (!IsDockStateValid(pane.DockState)) - return false; - - if (Pane == pane && pane.DisplayingContents.Count == 1) - return false; - - return true; - } - - Rectangle IDockDragSource.BeginDrag(Point ptMouse) - { - Size size; - DockPane floatPane = this.FloatPane; - if (DockState == DockState.Float || floatPane == null || floatPane.FloatWindow.NestedPanes.Count != 1) - size = DockPanel.DefaultFloatWindowSize; - else - size = floatPane.FloatWindow.Size; - - Point location; - Rectangle rectPane = Pane.ClientRectangle; - if (DockState == DockState.Document) - { - if (Pane.DockPanel.DocumentTabStripLocation == DocumentTabStripLocation.Bottom) - location = new Point(rectPane.Left, rectPane.Bottom - size.Height); - else - location = new Point(rectPane.Left, rectPane.Top); - } - else - { - location = new Point(rectPane.Left, rectPane.Bottom); - location.Y -= size.Height; - } - location = Pane.PointToScreen(location); - - if (ptMouse.X > location.X + size.Width) - location.X += ptMouse.X - (location.X + size.Width) + Measures.SplitterSize; - - return new Rectangle(location, size); - } - - public void FloatAt(Rectangle floatWindowBounds) - { - DockPane pane = DockPanel.DockPaneFactory.CreateDockPane(Content, floatWindowBounds, true); - } - - public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex) - { - if (dockStyle == DockStyle.Fill) - { - bool samePane = (Pane == pane); - if (!samePane) - Pane = pane; - - if (contentIndex == -1 || !samePane) - pane.SetContentIndex(Content, contentIndex); - else - { - DockContentCollection contents = pane.Contents; - int oldIndex = contents.IndexOf(Content); - int newIndex = contentIndex; - if (oldIndex < newIndex) - { - newIndex += 1; - if (newIndex > contents.Count -1) - newIndex = -1; - } - pane.SetContentIndex(Content, newIndex); - } - } - else - { - DockPane paneFrom = DockPanel.DockPaneFactory.CreateDockPane(Content, pane.DockState, true); - INestedPanesContainer container = pane.NestedPanesContainer; - if (dockStyle == DockStyle.Left) - paneFrom.DockTo(container, pane, DockAlignment.Left, 0.5); - else if (dockStyle == DockStyle.Right) - paneFrom.DockTo(container, pane, DockAlignment.Right, 0.5); - else if (dockStyle == DockStyle.Top) - paneFrom.DockTo(container, pane, DockAlignment.Top, 0.5); - else if (dockStyle == DockStyle.Bottom) - paneFrom.DockTo(container, pane, DockAlignment.Bottom, 0.5); - - paneFrom.DockState = pane.DockState; - } - } - - public void DockTo(DockPanel panel, DockStyle dockStyle) - { - if (panel != DockPanel) - throw new ArgumentException(Strings.IDockDragSource_DockTo_InvalidPanel, "panel"); - - DockPane pane; - - if (dockStyle == DockStyle.Top) - pane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.DockTop, true); - else if (dockStyle == DockStyle.Bottom) - pane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.DockBottom, true); - else if (dockStyle == DockStyle.Left) - pane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.DockLeft, true); - else if (dockStyle == DockStyle.Right) - pane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.DockRight, true); - else if (dockStyle == DockStyle.Fill) - pane = DockPanel.DockPaneFactory.CreateDockPane(Content, DockState.Document, true); - else - return; - } - - #endregion - } -} diff --git a/src/DockPanel/Docking/DockOutlineBase.cs b/src/DockPanel/Docking/DockOutlineBase.cs deleted file mode 100644 index 6d24175..0000000 --- a/src/DockPanel/Docking/DockOutlineBase.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal abstract class DockOutlineBase - { - public DockOutlineBase() - { - Init(); - } - - private void Init() - { - SetValues(Rectangle.Empty, null, DockStyle.None, -1); - SaveOldValues(); - } - - private Rectangle m_oldFloatWindowBounds; - protected Rectangle OldFloatWindowBounds - { - get { return m_oldFloatWindowBounds; } - } - - private Control m_oldDockTo; - protected Control OldDockTo - { - get { return m_oldDockTo; } - } - - private DockStyle m_oldDock; - protected DockStyle OldDock - { - get { return m_oldDock; } - } - - private int m_oldContentIndex; - protected int OldContentIndex - { - get { return m_oldContentIndex; } - } - - protected bool SameAsOldValue - { - get - { - return FloatWindowBounds == OldFloatWindowBounds && - DockTo == OldDockTo && - Dock == OldDock && - ContentIndex == OldContentIndex; - } - } - - private Rectangle m_floatWindowBounds; - public Rectangle FloatWindowBounds - { - get { return m_floatWindowBounds; } - } - - private Control m_dockTo; - public Control DockTo - { - get { return m_dockTo; } - } - - private DockStyle m_dock; - public DockStyle Dock - { - get { return m_dock; } - } - - private int m_contentIndex; - public int ContentIndex - { - get { return m_contentIndex; } - } - - public bool FlagFullEdge - { - get { return m_contentIndex != 0; } - } - - private bool m_flagTestDrop = false; - public bool FlagTestDrop - { - get { return m_flagTestDrop; } - set { m_flagTestDrop = value; } - } - - private void SaveOldValues() - { - m_oldDockTo = m_dockTo; - m_oldDock = m_dock; - m_oldContentIndex = m_contentIndex; - m_oldFloatWindowBounds = m_floatWindowBounds; - } - - protected abstract void OnShow(); - - protected abstract void OnClose(); - - private void SetValues(Rectangle floatWindowBounds, Control dockTo, DockStyle dock, int contentIndex) - { - m_floatWindowBounds = floatWindowBounds; - m_dockTo = dockTo; - m_dock = dock; - m_contentIndex = contentIndex; - FlagTestDrop = true; - } - - private void TestChange() - { - if (m_floatWindowBounds != m_oldFloatWindowBounds || - m_dockTo != m_oldDockTo || - m_dock != m_oldDock || - m_contentIndex != m_oldContentIndex) - OnShow(); - } - - public void Show() - { - SaveOldValues(); - SetValues(Rectangle.Empty, null, DockStyle.None, -1); - TestChange(); - } - - public void Show(DockPane pane, DockStyle dock) - { - SaveOldValues(); - SetValues(Rectangle.Empty, pane, dock, -1); - TestChange(); - } - - public void Show(DockPane pane, int contentIndex) - { - SaveOldValues(); - SetValues(Rectangle.Empty, pane, DockStyle.Fill, contentIndex); - TestChange(); - } - - public void Show(DockPanel dockPanel, DockStyle dock, bool fullPanelEdge) - { - SaveOldValues(); - SetValues(Rectangle.Empty, dockPanel, dock, fullPanelEdge ? -1 : 0); - TestChange(); - } - - public void Show(Rectangle floatWindowBounds) - { - SaveOldValues(); - SetValues(floatWindowBounds, null, DockStyle.None, -1); - TestChange(); - } - - public void Close() - { - OnClose(); - } - } -} diff --git a/src/DockPanel/Docking/DockPane.SplitterControl.cs b/src/DockPanel/Docking/DockPane.SplitterControl.cs deleted file mode 100644 index dc69fb9..0000000 --- a/src/DockPanel/Docking/DockPane.SplitterControl.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.Collections; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPane - { - private class SplitterControl : Control, ISplitterDragSource - { - DockPane m_pane; - - public SplitterControl(DockPane pane) - { - SetStyle(ControlStyles.Selectable, false); - m_pane = pane; - } - - public DockPane DockPane - { - get { return m_pane; } - } - - private DockAlignment m_alignment; - public DockAlignment Alignment - { - get { return m_alignment; } - set - { - m_alignment = value; - if (m_alignment == DockAlignment.Left || m_alignment == DockAlignment.Right) - Cursor = Cursors.VSplit; - else if (m_alignment == DockAlignment.Top || m_alignment == DockAlignment.Bottom) - Cursor = Cursors.HSplit; - else - Cursor = Cursors.Default; - - if (DockPane.DockState == DockState.Document) - Invalidate(); - } - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - if (DockPane.DockState != DockState.Document) - return; - - Graphics g = e.Graphics; - Rectangle rect = ClientRectangle; - if (Alignment == DockAlignment.Top || Alignment == DockAlignment.Bottom) - g.DrawLine(SystemPens.ControlDark, rect.Left, rect.Bottom - 1, rect.Right, rect.Bottom - 1); - else if (Alignment == DockAlignment.Left || Alignment == DockAlignment.Right) - g.DrawLine(SystemPens.ControlDarkDark, rect.Right - 1, rect.Top, rect.Right - 1, rect.Bottom); - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - if (e.Button != MouseButtons.Left) - return; - - DockPane.DockPanel.BeginDrag(this, Parent.RectangleToScreen(Bounds)); - } - - #region ISplitterDragSource Members - - void ISplitterDragSource.BeginDrag(Rectangle rectSplitter) - { - } - - void ISplitterDragSource.EndDrag() - { - } - - bool ISplitterDragSource.IsVertical - { - get - { - NestedDockingStatus status = DockPane.NestedDockingStatus; - return (status.DisplayingAlignment == DockAlignment.Left || - status.DisplayingAlignment == DockAlignment.Right); - } - } - - Rectangle ISplitterDragSource.DragLimitBounds - { - get - { - NestedDockingStatus status = DockPane.NestedDockingStatus; - Rectangle rectLimit = Parent.RectangleToScreen(status.LogicalBounds); - if (((ISplitterDragSource)this).IsVertical) - { - rectLimit.X += MeasurePane.MinSize; - rectLimit.Width -= 2 * MeasurePane.MinSize; - } - else - { - rectLimit.Y += MeasurePane.MinSize; - rectLimit.Height -= 2 * MeasurePane.MinSize; - } - - return rectLimit; - } - } - - void ISplitterDragSource.MoveSplitter(int offset) - { - NestedDockingStatus status = DockPane.NestedDockingStatus; - double proportion = status.Proportion; - if (status.LogicalBounds.Width <= 0 || status.LogicalBounds.Height <= 0) - return; - else if (status.DisplayingAlignment == DockAlignment.Left) - proportion += ((double)offset) / (double)status.LogicalBounds.Width; - else if (status.DisplayingAlignment == DockAlignment.Right) - proportion -= ((double)offset) / (double)status.LogicalBounds.Width; - else if (status.DisplayingAlignment == DockAlignment.Top) - proportion += ((double)offset) / (double)status.LogicalBounds.Height; - else - proportion -= ((double)offset) / (double)status.LogicalBounds.Height; - - DockPane.SetNestedDockingProportion(proportion); - } - - #region IDragSource Members - - Control IDragSource.DragControl - { - get { return this; } - } - - #endregion - - #endregion - } - - private SplitterControl m_splitter; - private SplitterControl Splitter - { - get { return m_splitter; } - } - - internal Rectangle SplitterBounds - { - set { Splitter.Bounds = value; } - } - - internal DockAlignment SplitterAlignment - { - set { Splitter.Alignment = value; } - } - } -} \ No newline at end of file diff --git a/src/DockPanel/Docking/DockPane.cs b/src/DockPanel/Docking/DockPane.cs deleted file mode 100644 index 523cb29..0000000 --- a/src/DockPanel/Docking/DockPane.cs +++ /dev/null @@ -1,1288 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Security.Permissions; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - [ToolboxItem(false)] - public partial class DockPane : UserControl, IDockDragSource - { - public enum AppearanceStyle - { - ToolWindow, - Document - } - - private enum HitTestArea - { - Caption, - TabStrip, - Content, - None - } - - private struct HitTestResult - { - public HitTestArea HitArea; - public int Index; - - public HitTestResult(HitTestArea hitTestArea, int index) - { - HitArea = hitTestArea; - Index = index; - } - } - - private DockPaneCaptionBase m_captionControl; - private DockPaneCaptionBase CaptionControl - { - get { return m_captionControl; } - } - - private DockPaneStripBase m_tabStripControl; - internal DockPaneStripBase TabStripControl - { - get { return m_tabStripControl; } - } - - internal protected DockPane(IDockContent content, DockState visibleState, bool show) - { - InternalConstruct(content, visibleState, false, Rectangle.Empty, null, DockAlignment.Right, 0.5, show); - } - - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "1#")] - internal protected DockPane(IDockContent content, FloatWindow floatWindow, bool show) - { - if (floatWindow == null) - throw new ArgumentNullException("floatWindow"); - - InternalConstruct(content, DockState.Float, false, Rectangle.Empty, floatWindow.NestedPanes.GetDefaultPreviousPane(this), DockAlignment.Right, 0.5, show); - } - - internal protected DockPane(IDockContent content, DockPane previousPane, DockAlignment alignment, double proportion, bool show) - { - if (previousPane == null) - throw(new ArgumentNullException("previousPane")); - InternalConstruct(content, previousPane.DockState, false, Rectangle.Empty, previousPane, alignment, proportion, show); - } - - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "1#")] - internal protected DockPane(IDockContent content, Rectangle floatWindowBounds, bool show) - { - InternalConstruct(content, DockState.Float, true, floatWindowBounds, null, DockAlignment.Right, 0.5, show); - } - - private void InternalConstruct(IDockContent content, DockState dockState, bool flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, double proportion, bool show) - { - if (dockState == DockState.Hidden || dockState == DockState.Unknown) - throw new ArgumentException(Strings.DockPane_SetDockState_InvalidState); - - if (content == null) - throw new ArgumentNullException(Strings.DockPane_Constructor_NullContent); - - if (content.DockHandler.DockPanel == null) - throw new ArgumentException(Strings.DockPane_Constructor_NullDockPanel); - - - SuspendLayout(); - SetStyle(ControlStyles.Selectable, false); - - m_isFloat = (dockState == DockState.Float); - - m_contents = new DockContentCollection(); - m_displayingContents = new DockContentCollection(this); - m_dockPanel = content.DockHandler.DockPanel; - m_dockPanel.AddPane(this); - - m_splitter = new SplitterControl(this); - - m_nestedDockingStatus = new NestedDockingStatus(this); - - m_captionControl = DockPanel.DockPaneCaptionFactory.CreateDockPaneCaption(this); - m_tabStripControl = DockPanel.DockPaneStripFactory.CreateDockPaneStrip(this); - Controls.AddRange(new Control[] { m_captionControl, m_tabStripControl }); - - DockPanel.SuspendLayout(true); - if (flagBounds) - FloatWindow = DockPanel.FloatWindowFactory.CreateFloatWindow(DockPanel, this, floatWindowBounds); - else if (prevPane != null) - DockTo(prevPane.NestedPanesContainer, prevPane, alignment, proportion); - - SetDockState(dockState); - if (show) - content.DockHandler.Pane = this; - else if (this.IsFloat) - content.DockHandler.FloatPane = this; - else - content.DockHandler.PanelPane = this; - - ResumeLayout(); - DockPanel.ResumeLayout(true, true); - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - m_dockState = DockState.Unknown; - - if (NestedPanesContainer != null) - NestedPanesContainer.NestedPanes.Remove(this); - - if (DockPanel != null) - { - DockPanel.RemovePane(this); - m_dockPanel = null; - } - - Splitter.Dispose(); - if (m_autoHidePane != null) - m_autoHidePane.Dispose(); - } - base.Dispose(disposing); - } - - private IDockContent m_activeContent = null; - public virtual IDockContent ActiveContent - { - get { return m_activeContent; } - set - { - if (ActiveContent == value) - return; - - if (value != null) - { - if (!DisplayingContents.Contains(value)) - throw(new InvalidOperationException(Strings.DockPane_ActiveContent_InvalidValue)); - } - else - { - if (DisplayingContents.Count != 0) - throw(new InvalidOperationException(Strings.DockPane_ActiveContent_InvalidValue)); - } - - IDockContent oldValue = m_activeContent; - - if (DockPanel.ActiveAutoHideContent == oldValue) - DockPanel.ActiveAutoHideContent = null; - - m_activeContent = value; - - if (DockPanel.DocumentStyle == DocumentStyle.DockingMdi && DockState == DockState.Document) - { - if (m_activeContent != null) - m_activeContent.DockHandler.Form.BringToFront(); - } - else - { - if (m_activeContent != null) - m_activeContent.DockHandler.SetVisible(); - if (oldValue != null && DisplayingContents.Contains(oldValue)) - oldValue.DockHandler.SetVisible(); - if (IsActivated && m_activeContent != null) - m_activeContent.DockHandler.Activate(); - } - - if (FloatWindow != null) - FloatWindow.SetText(); - - if (DockPanel.DocumentStyle == DocumentStyle.DockingMdi && - DockState == DockState.Document) - RefreshChanges(false); // delayed layout to reduce screen flicker - else - RefreshChanges(); - - if (m_activeContent != null) - TabStripControl.EnsureTabVisible(m_activeContent); - } - } - - private bool m_allowDockDragAndDrop = true; - public virtual bool AllowDockDragAndDrop - { - get { return m_allowDockDragAndDrop; } - set { m_allowDockDragAndDrop = value; } - } - - private IDisposable m_autoHidePane = null; - internal IDisposable AutoHidePane - { - get { return m_autoHidePane; } - set { m_autoHidePane = value; } - } - - private object m_autoHideTabs = null; - internal object AutoHideTabs - { - get { return m_autoHideTabs; } - set { m_autoHideTabs = value; } - } - - private object TabPageContextMenu - { - get - { - IDockContent content = ActiveContent; - - if (content == null) - return null; - - if (content.DockHandler.TabPageContextMenuStrip != null) - return content.DockHandler.TabPageContextMenuStrip; - else if (content.DockHandler.TabPageContextMenu != null) - return content.DockHandler.TabPageContextMenu; - else - return null; - } - } - - internal bool HasTabPageContextMenu - { - get { return TabPageContextMenu != null; } - } - - internal void ShowTabPageContextMenu(Control control, Point position) - { - object menu = TabPageContextMenu; - - if (menu == null) - return; - - ContextMenuStrip contextMenuStrip = menu as ContextMenuStrip; - if (contextMenuStrip != null) - { - contextMenuStrip.Show(control, position); - return; - } - - ContextMenu contextMenu = menu as ContextMenu; - if (contextMenu != null) - contextMenu.Show(this, position); - } - - private Rectangle CaptionRectangle - { - get - { - if (!HasCaption) - return Rectangle.Empty; - - Rectangle rectWindow = DisplayingRectangle; - int x, y, width; - x = rectWindow.X; - y = rectWindow.Y; - width = rectWindow.Width; - int height = CaptionControl.MeasureHeight(); - - return new Rectangle(x, y, width, height); - } - } - - internal Rectangle ContentRectangle - { - get - { - Rectangle rectWindow = DisplayingRectangle; - Rectangle rectCaption = CaptionRectangle; - Rectangle rectTabStrip = TabStripRectangle; - - int x = rectWindow.X; - - int y = rectWindow.Y + (rectCaption.IsEmpty ? 0 : rectCaption.Height); - if (DockState == DockState.Document && DockPanel.DocumentTabStripLocation == DocumentTabStripLocation.Top) - y += rectTabStrip.Height; - - int width = rectWindow.Width; - int height = rectWindow.Height - rectCaption.Height - rectTabStrip.Height; - - return new Rectangle(x, y, width, height); - } - } - - internal Rectangle TabStripRectangle - { - get - { - if (Appearance == AppearanceStyle.ToolWindow) - return TabStripRectangle_ToolWindow; - else - return TabStripRectangle_Document; - } - } - - private Rectangle TabStripRectangle_ToolWindow - { - get - { - if (DisplayingContents.Count <= 1 || IsAutoHide) - return Rectangle.Empty; - - Rectangle rectWindow = DisplayingRectangle; - - int width = rectWindow.Width; - int height = TabStripControl.MeasureHeight(); - int x = rectWindow.X; - int y = rectWindow.Bottom - height; - Rectangle rectCaption = CaptionRectangle; - if (rectCaption.Contains(x, y)) - y = rectCaption.Y + rectCaption.Height; - - return new Rectangle(x, y, width, height); - } - } - - private Rectangle TabStripRectangle_Document - { - get - { - if (DisplayingContents.Count == 0) - return Rectangle.Empty; - - if (DisplayingContents.Count == 1 && DockPanel.DocumentStyle == DocumentStyle.DockingSdi) - return Rectangle.Empty; - - Rectangle rectWindow = DisplayingRectangle; - int x = rectWindow.X; - int width = rectWindow.Width; - int height = TabStripControl.MeasureHeight(); - - int y = 0; - if (DockPanel.DocumentTabStripLocation == DocumentTabStripLocation.Bottom) - y = rectWindow.Height - height; - else - y = rectWindow.Y; - - return new Rectangle(x, y, width, height); - } - } - - public virtual string CaptionText - { - get { return ActiveContent == null ? string.Empty : ActiveContent.DockHandler.TabText; } - } - - private DockContentCollection m_contents; - public DockContentCollection Contents - { - get { return m_contents; } - } - - private DockContentCollection m_displayingContents; - public DockContentCollection DisplayingContents - { - get { return m_displayingContents; } - } - - private DockPanel m_dockPanel; - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private bool HasCaption - { - get - { - if (DockState == DockState.Document || - DockState == DockState.Hidden || - DockState == DockState.Unknown || - (DockState == DockState.Float && FloatWindow.VisibleNestedPanes.Count <= 1)) - return false; - else - return true; - } - } - - private bool m_isActivated = false; - public bool IsActivated - { - get { return m_isActivated; } - } - internal void SetIsActivated(bool value) - { - if (m_isActivated == value) - return; - - m_isActivated = value; - if (DockState != DockState.Document) - RefreshChanges(false); - OnIsActivatedChanged(EventArgs.Empty); - } - - private bool m_isActiveDocumentPane = false; - public bool IsActiveDocumentPane - { - get { return m_isActiveDocumentPane; } - } - internal void SetIsActiveDocumentPane(bool value) - { - if (m_isActiveDocumentPane == value) - return; - - m_isActiveDocumentPane = value; - if (DockState == DockState.Document) - RefreshChanges(); - OnIsActiveDocumentPaneChanged(EventArgs.Empty); - } - - public bool IsDockStateValid(DockState dockState) - { - foreach (IDockContent content in Contents) - if (!content.DockHandler.IsDockStateValid(dockState)) - return false; - - return true; - } - - public bool IsAutoHide - { - get { return DockHelper.IsDockStateAutoHide(DockState); } - } - - public AppearanceStyle Appearance - { - get { return (DockState == DockState.Document) ? AppearanceStyle.Document : AppearanceStyle.ToolWindow; } - } - - internal Rectangle DisplayingRectangle - { - get { return ClientRectangle; } - } - - public void Activate() - { - if (DockHelper.IsDockStateAutoHide(DockState) && DockPanel.ActiveAutoHideContent != ActiveContent) - DockPanel.ActiveAutoHideContent = ActiveContent; - else if (!IsActivated && ActiveContent != null) - ActiveContent.DockHandler.Activate(); - } - - internal void AddContent(IDockContent content) - { - if (Contents.Contains(content)) - return; - - Contents.Add(content); - } - - internal void Close() - { - Dispose(); - } - - public void CloseActiveContent() - { - CloseContent(ActiveContent); - } - - internal void CloseContent(IDockContent content) - { - DockPanel dockPanel = DockPanel; - dockPanel.SuspendLayout(true); - - if (content == null) - return; - - if (!content.DockHandler.CloseButton) - return; - - if (content.DockHandler.HideOnClose) - content.DockHandler.Hide(); - else - content.DockHandler.Close(); - - dockPanel.ResumeLayout(true, true); - } - - private HitTestResult GetHitTest(Point ptMouse) - { - Point ptMouseClient = PointToClient(ptMouse); - - Rectangle rectCaption = CaptionRectangle; - if (rectCaption.Contains(ptMouseClient)) - return new HitTestResult(HitTestArea.Caption, -1); - - Rectangle rectContent = ContentRectangle; - if (rectContent.Contains(ptMouseClient)) - return new HitTestResult(HitTestArea.Content, -1); - - Rectangle rectTabStrip = TabStripRectangle; - if (rectTabStrip.Contains(ptMouseClient)) - return new HitTestResult(HitTestArea.TabStrip, TabStripControl.HitTest(TabStripControl.PointToClient(ptMouse))); - - return new HitTestResult(HitTestArea.None, -1); - } - - private bool m_isHidden = true; - public bool IsHidden - { - get { return m_isHidden; } - } - private void SetIsHidden(bool value) - { - if (m_isHidden == value) - return; - - m_isHidden = value; - if (DockHelper.IsDockStateAutoHide(DockState)) - { - DockPanel.RefreshAutoHideStrip(); - DockPanel.PerformLayout(); - } - else if (NestedPanesContainer != null) - ((Control)NestedPanesContainer).PerformLayout(); - } - - protected override void OnLayout(LayoutEventArgs levent) - { - SetIsHidden(DisplayingContents.Count == 0); - if (!IsHidden) - { - CaptionControl.Bounds = CaptionRectangle; - TabStripControl.Bounds = TabStripRectangle; - - SetContentBounds(); - - foreach (IDockContent content in Contents) - { - if (DisplayingContents.Contains(content)) - if (content.DockHandler.FlagClipWindow && content.DockHandler.Form.Visible) - content.DockHandler.FlagClipWindow = false; - } - } - - base.OnLayout(levent); - } - - internal void SetContentBounds() - { - Rectangle rectContent = ContentRectangle; - if (DockState == DockState.Document && DockPanel.DocumentStyle == DocumentStyle.DockingMdi) - rectContent = DockPanel.RectangleToMdiClient(RectangleToScreen(rectContent)); - - Rectangle rectInactive = new Rectangle(-rectContent.Width, rectContent.Y, rectContent.Width, rectContent.Height); - foreach (IDockContent content in Contents) - if (content.DockHandler.Pane == this) - { - if (content == ActiveContent) - content.DockHandler.Form.Bounds = rectContent; - else - content.DockHandler.Form.Bounds = rectInactive; - } - } - - internal void RefreshChanges() - { - RefreshChanges(true); - } - - private void RefreshChanges(bool performLayout) - { - if (IsDisposed) - return; - - CaptionControl.RefreshChanges(); - TabStripControl.RefreshChanges(); - if (DockState == DockState.Float) - FloatWindow.RefreshChanges(); - if (DockHelper.IsDockStateAutoHide(DockState) && DockPanel != null) - { - DockPanel.RefreshAutoHideStrip(); - DockPanel.PerformLayout(); - } - - if (performLayout) - PerformLayout(); - } - - internal void RemoveContent(IDockContent content) - { - if (!Contents.Contains(content)) - return; - - Contents.Remove(content); - } - - public void SetContentIndex(IDockContent content, int index) - { - int oldIndex = Contents.IndexOf(content); - if (oldIndex == -1) - throw(new ArgumentException(Strings.DockPane_SetContentIndex_InvalidContent)); - - if (index < 0 || index > Contents.Count - 1) - if (index != -1) - throw(new ArgumentOutOfRangeException(Strings.DockPane_SetContentIndex_InvalidIndex)); - - if (oldIndex == index) - return; - if (oldIndex == Contents.Count - 1 && index == -1) - return; - - Contents.Remove(content); - if (index == -1) - Contents.Add(content); - else if (oldIndex < index) - Contents.AddAt(content, index - 1); - else - Contents.AddAt(content, index); - - RefreshChanges(); - } - - private void SetParent() - { - if (DockState == DockState.Unknown || DockState == DockState.Hidden) - { - SetParent(null); - Splitter.Parent = null; - } - else if (DockState == DockState.Float) - { - SetParent(FloatWindow); - Splitter.Parent = FloatWindow; - } - else if (DockHelper.IsDockStateAutoHide(DockState)) - { - SetParent(DockPanel.AutoHideControl); - Splitter.Parent = null; - } - else - { - SetParent(DockPanel.DockWindows[DockState]); - Splitter.Parent = Parent; - } - } - - private void SetParent(Control value) - { - if (Parent == value) - return; - - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Workaround of .Net Framework bug: - // Change the parent of a control with focus may result in the first - // MDI child form get activated. - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - IDockContent contentFocused = GetFocusedContent(); - if (contentFocused != null) - DockPanel.SaveFocus(); - - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - Parent = value; - - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // Workaround of .Net Framework bug: - // Change the parent of a control with focus may result in the first - // MDI child form get activated. - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - if (contentFocused != null) - contentFocused.DockHandler.Activate(); - //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - } - - public new void Show() - { - Activate(); - } - - internal void TestDrop(IDockDragSource dragSource, DockOutlineBase dockOutline) - { - if (!dragSource.CanDockTo(this)) - return; - - Point ptMouse = Control.MousePosition; - - HitTestResult hitTestResult = GetHitTest(ptMouse); - if (hitTestResult.HitArea == HitTestArea.Caption) - dockOutline.Show(this, -1); - else if (hitTestResult.HitArea == HitTestArea.TabStrip && hitTestResult.Index != -1) - dockOutline.Show(this, hitTestResult.Index); - } - - internal void ValidateActiveContent() - { - if (ActiveContent == null) - { - if (DisplayingContents.Count != 0) - ActiveContent = DisplayingContents[0]; - return; - } - - if (DisplayingContents.IndexOf(ActiveContent) >= 0) - return; - - IDockContent prevVisible = null; - for (int i=Contents.IndexOf(ActiveContent)-1; i>=0; i--) - if (Contents[i].DockHandler.DockState == DockState) - { - prevVisible = Contents[i]; - break; - } - - IDockContent nextVisible = null; - for (int i=Contents.IndexOf(ActiveContent)+1; i= 0); - DockPanel.ResumeLayout(true, true); - } - - private bool IsRefreshStateChangeSuspended - { - get { return m_countRefreshStateChange != 0; } - } - - private void ResumeRefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState) - { - ResumeRefreshStateChange(); - RefreshStateChange(oldContainer, oldDockState); - } - - private void RefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState) - { - lock (this) - { - if (IsRefreshStateChangeSuspended) - return; - - SuspendRefreshStateChange(); - } - - DockPanel.SuspendLayout(true); - - IDockContent contentFocused = GetFocusedContent(); - if (contentFocused != null) - DockPanel.SaveFocus(); - SetParent(); - - if (ActiveContent != null) - ActiveContent.DockHandler.SetDockState(ActiveContent.DockHandler.IsHidden, DockState, ActiveContent.DockHandler.Pane); - foreach (IDockContent content in Contents) - { - if (content.DockHandler.Pane == this) - content.DockHandler.SetDockState(content.DockHandler.IsHidden, DockState, content.DockHandler.Pane); - } - - if (oldContainer != null) - { - Control oldContainerControl = (Control)oldContainer; - if (oldContainer.DockState == oldDockState && !oldContainerControl.IsDisposed) - oldContainerControl.PerformLayout(); - } - if (DockHelper.IsDockStateAutoHide(oldDockState)) - DockPanel.RefreshActiveAutoHideContent(); - - if (NestedPanesContainer.DockState == DockState) - ((Control)NestedPanesContainer).PerformLayout(); - if (DockHelper.IsDockStateAutoHide(DockState)) - DockPanel.RefreshActiveAutoHideContent(); - - if (DockHelper.IsDockStateAutoHide(oldDockState) || - DockHelper.IsDockStateAutoHide(DockState)) - { - DockPanel.RefreshAutoHideStrip(); - DockPanel.PerformLayout(); - } - - ResumeRefreshStateChange(); - - if (contentFocused != null) - contentFocused.DockHandler.Activate(); - - DockPanel.ResumeLayout(true, true); - - if (oldDockState != DockState) - OnDockStateChanged(EventArgs.Empty); - } - - private IDockContent GetFocusedContent() - { - IDockContent contentFocused = null; - foreach (IDockContent content in Contents) - { - if (content.DockHandler.Form.ContainsFocus) - { - contentFocused = content; - break; - } - } - - return contentFocused; - } - - public DockPane DockTo(INestedPanesContainer container) - { - if (container == null) - throw new InvalidOperationException(Strings.DockPane_DockTo_NullContainer); - - DockAlignment alignment; - if (container.DockState == DockState.DockLeft || container.DockState == DockState.DockRight) - alignment = DockAlignment.Bottom; - else - alignment = DockAlignment.Right; - - return DockTo(container, container.NestedPanes.GetDefaultPreviousPane(this), alignment, 0.5); - } - - public DockPane DockTo(INestedPanesContainer container, DockPane previousPane, DockAlignment alignment, double proportion) - { - if (container == null) - throw new InvalidOperationException(Strings.DockPane_DockTo_NullContainer); - - if (container.IsFloat == this.IsFloat) - { - InternalAddToDockList(container, previousPane, alignment, proportion); - return this; - } - - IDockContent firstContent = GetFirstContent(container.DockState); - if (firstContent == null) - return null; - - DockPane pane; - DockPanel.DummyContent.DockPanel = DockPanel; - if (container.IsFloat) - pane = DockPanel.DockPaneFactory.CreateDockPane(DockPanel.DummyContent, (FloatWindow)container, true); - else - pane = DockPanel.DockPaneFactory.CreateDockPane(DockPanel.DummyContent, container.DockState, true); - - pane.DockTo(container, previousPane, alignment, proportion); - SetVisibleContentsToPane(pane); - DockPanel.DummyContent.DockPanel = null; - - return pane; - } - - private void SetVisibleContentsToPane(DockPane pane) - { - SetVisibleContentsToPane(pane, ActiveContent); - } - - private void SetVisibleContentsToPane(DockPane pane, IDockContent activeContent) - { - for (int i=0; i 0) - throw new InvalidOperationException(Strings.DockPane_DockTo_NullPrevPane); - - if (prevPane != null && !container.NestedPanes.Contains(prevPane)) - throw new InvalidOperationException(Strings.DockPane_DockTo_NoPrevPane); - - if (prevPane == this) - throw new InvalidOperationException(Strings.DockPane_DockTo_SelfPrevPane); - - INestedPanesContainer oldContainer = NestedPanesContainer; - DockState oldDockState = DockState; - container.NestedPanes.Add(this); - NestedDockingStatus.SetStatus(container.NestedPanes, prevPane, alignment, proportion); - - if (DockHelper.IsDockWindowState(DockState)) - m_dockState = container.DockState; - - RefreshStateChange(oldContainer, oldDockState); - } - - public void SetNestedDockingProportion(double proportion) - { - NestedDockingStatus.SetStatus(NestedDockingStatus.NestedPanes, NestedDockingStatus.PreviousPane, NestedDockingStatus.Alignment, proportion); - if (NestedPanesContainer != null) - ((Control)NestedPanesContainer).PerformLayout(); - } - - public DockPane Float() - { - DockPanel.SuspendLayout(true); - - IDockContent activeContent = ActiveContent; - - DockPane floatPane = GetFloatPaneFromContents(); - if (floatPane == null) - { - IDockContent firstContent = GetFirstContent(DockState.Float); - if (firstContent == null) - { - DockPanel.ResumeLayout(true, true); - return null; - } - floatPane = DockPanel.DockPaneFactory.CreateDockPane(firstContent,DockState.Float, true); - } - SetVisibleContentsToPane(floatPane, activeContent); - - DockPanel.ResumeLayout(true, true); - return floatPane; - } - - private DockPane GetFloatPaneFromContents() - { - DockPane floatPane = null; - for (int i=0; i=0; i--) - { - IDockContent content = DisplayingContents[i]; - if (content.DockHandler.CheckDockState(false) != DockState.Unknown) - content.DockHandler.IsFloat = false; - } - - DockPanel.ResumeLayout(true, true); - } - - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] - protected override void WndProc(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_MOUSEACTIVATE) - Activate(); - - base.WndProc(ref m); - } - - #region IDockDragSource Members - - #region IDragSource Members - - Control IDragSource.DragControl - { - get { return this; } - } - - #endregion - - bool IDockDragSource.IsDockStateValid(DockState dockState) - { - return IsDockStateValid(dockState); - } - - bool IDockDragSource.CanDockTo(DockPane pane) - { - if (!IsDockStateValid(pane.DockState)) - return false; - - if (pane == this) - return false; - - return true; - } - - Rectangle IDockDragSource.BeginDrag(Point ptMouse) - { - Point location = PointToScreen(new Point(0, 0)); - Size size; - - DockPane floatPane = ActiveContent.DockHandler.FloatPane; - if (DockState == DockState.Float || floatPane == null || floatPane.FloatWindow.NestedPanes.Count != 1) - size = DockPanel.DefaultFloatWindowSize; - else - size = floatPane.FloatWindow.Size; - - if (ptMouse.X > location.X + size.Width) - location.X += ptMouse.X - (location.X + size.Width) + Measures.SplitterSize; - - return new Rectangle(location, size); - } - - public void FloatAt(Rectangle floatWindowBounds) - { - if (FloatWindow == null || FloatWindow.NestedPanes.Count != 1) - FloatWindow = DockPanel.FloatWindowFactory.CreateFloatWindow(DockPanel, this, floatWindowBounds); - else - FloatWindow.Bounds = floatWindowBounds; - - DockState = DockState.Float; - } - - public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex) - { - if (dockStyle == DockStyle.Fill) - { - IDockContent activeContent = ActiveContent; - for (int i = Contents.Count - 1; i >= 0; i--) - { - IDockContent c = Contents[i]; - if (c.DockHandler.DockState == DockState) - { - c.DockHandler.Pane = pane; - if (contentIndex != -1) - pane.SetContentIndex(c, contentIndex); - } - } - pane.ActiveContent = activeContent; - } - else - { - if (dockStyle == DockStyle.Left) - DockTo(pane.NestedPanesContainer, pane, DockAlignment.Left, 0.5); - else if (dockStyle == DockStyle.Right) - DockTo(pane.NestedPanesContainer, pane, DockAlignment.Right, 0.5); - else if (dockStyle == DockStyle.Top) - DockTo(pane.NestedPanesContainer, pane, DockAlignment.Top, 0.5); - else if (dockStyle == DockStyle.Bottom) - DockTo(pane.NestedPanesContainer, pane, DockAlignment.Bottom, 0.5); - - DockState = pane.DockState; - } - } - - public void DockTo(DockPanel panel, DockStyle dockStyle) - { - if (panel != DockPanel) - throw new ArgumentException(Strings.IDockDragSource_DockTo_InvalidPanel, "panel"); - - if (dockStyle == DockStyle.Top) - DockState = DockState.DockTop; - else if (dockStyle == DockStyle.Bottom) - DockState = DockState.DockBottom; - else if (dockStyle == DockStyle.Left) - DockState = DockState.DockLeft; - else if (dockStyle == DockStyle.Right) - DockState = DockState.DockRight; - else if (dockStyle == DockStyle.Fill) - DockState = DockState.Document; - } - - #endregion - } -} diff --git a/src/DockPanel/Docking/DockPaneCaptionBase.cs b/src/DockPanel/Docking/DockPaneCaptionBase.cs deleted file mode 100644 index 3daf9f7..0000000 --- a/src/DockPanel/Docking/DockPaneCaptionBase.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; -using System.Security.Permissions; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public abstract class DockPaneCaptionBase : Control - { - protected internal DockPaneCaptionBase(DockPane pane) - { - m_dockPane = pane; - - SetStyle(ControlStyles.OptimizedDoubleBuffer | - ControlStyles.ResizeRedraw | - ControlStyles.UserPaint | - ControlStyles.AllPaintingInWmPaint, true); - SetStyle(ControlStyles.Selectable, false); - } - - private DockPane m_dockPane; - protected DockPane DockPane - { - get { return m_dockPane; } - } - - protected DockPane.AppearanceStyle Appearance - { - get { return DockPane.Appearance; } - } - - protected bool HasTabPageContextMenu - { - get { return DockPane.HasTabPageContextMenu; } - } - - protected void ShowTabPageContextMenu(Point position) - { - DockPane.ShowTabPageContextMenu(this, position); - } - - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - - if (e.Button == MouseButtons.Right) - ShowTabPageContextMenu(new Point(e.X, e.Y)); - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - if (e.Button == MouseButtons.Left && - DockPane.DockPanel.AllowEndUserDocking && - DockPane.AllowDockDragAndDrop && - !DockHelper.IsDockStateAutoHide(DockPane.DockState) && - DockPane.ActiveContent != null) - DockPane.DockPanel.BeginDrag(DockPane); - } - - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] - protected override void WndProc(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK) - { - if (DockHelper.IsDockStateAutoHide(DockPane.DockState)) - { - DockPane.DockPanel.ActiveAutoHideContent = null; - return; - } - - if (DockPane.IsFloat) - DockPane.RestoreToPanel(); - else - DockPane.Float(); - } - base.WndProc(ref m); - } - - internal void RefreshChanges() - { - if (IsDisposed) - return; - - OnRefreshChanges(); - } - - protected virtual void OnRightToLeftLayoutChanged() - { - } - - protected virtual void OnRefreshChanges() - { - } - - protected internal abstract int MeasureHeight(); - } -} diff --git a/src/DockPanel/Docking/DockPaneCollection.cs b/src/DockPanel/Docking/DockPaneCollection.cs deleted file mode 100644 index 43f0e90..0000000 --- a/src/DockPanel/Docking/DockPaneCollection.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.ObjectModel; -using System.Collections.Generic; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class DockPaneCollection : ReadOnlyCollection - { - internal DockPaneCollection() - : base(new List()) - { - } - - internal int Add(DockPane pane) - { - if (Items.Contains(pane)) - return Items.IndexOf(pane); - - Items.Add(pane); - return Count - 1; - } - - internal void AddAt(DockPane pane, int index) - { - if (index < 0 || index > Items.Count - 1) - return; - - if (Contains(pane)) - return; - - Items.Insert(index, pane); - } - - internal void Dispose() - { - for (int i=Count - 1; i>=0; i--) - this[i].Close(); - } - - internal void Remove(DockPane pane) - { - Items.Remove(pane); - } - } -} diff --git a/src/DockPanel/Docking/DockPaneStripBase.cs b/src/DockPanel/Docking/DockPaneStripBase.cs deleted file mode 100644 index dcf5a93..0000000 --- a/src/DockPanel/Docking/DockPaneStripBase.cs +++ /dev/null @@ -1,252 +0,0 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Collections; -using System.Collections.Generic; -using System.Security.Permissions; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public abstract class DockPaneStripBase : Control - { - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - protected internal class Tab : IDisposable - { - private IDockContent m_content; - - public Tab(IDockContent content) - { - m_content = content; - } - - ~Tab() - { - Dispose(false); - } - - public IDockContent Content - { - get { return m_content; } - } - - public Form ContentForm - { - get { return m_content as Form; } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - } - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - protected sealed class TabCollection : IEnumerable - { - #region IEnumerable Members - IEnumerator IEnumerable.GetEnumerator() - { - for (int i = 0; i < Count; i++) - yield return this[i]; - } - - IEnumerator IEnumerable.GetEnumerator() - { - for (int i = 0; i < Count; i++) - yield return this[i]; - } - #endregion - - internal TabCollection(DockPane pane) - { - m_dockPane = pane; - } - - private DockPane m_dockPane; - public DockPane DockPane - { - get { return m_dockPane; } - } - - public int Count - { - get { return DockPane.DisplayingContents.Count; } - } - - public Tab this[int index] - { - get - { - IDockContent content = DockPane.DisplayingContents[index]; - if (content == null) - throw (new ArgumentOutOfRangeException("index")); - return content.DockHandler.GetTab(DockPane.TabStripControl); - } - } - - public bool Contains(Tab tab) - { - return (IndexOf(tab) != -1); - } - - public bool Contains(IDockContent content) - { - return (IndexOf(content) != -1); - } - - public int IndexOf(Tab tab) - { - if (tab == null) - return -1; - - return DockPane.DisplayingContents.IndexOf(tab.Content); - } - - public int IndexOf(IDockContent content) - { - return DockPane.DisplayingContents.IndexOf(content); - } - } - - protected DockPaneStripBase(DockPane pane) - { - m_dockPane = pane; - - SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - SetStyle(ControlStyles.Selectable, false); - AllowDrop = true; - } - - private DockPane m_dockPane; - protected DockPane DockPane - { - get { return m_dockPane; } - } - - protected DockPane.AppearanceStyle Appearance - { - get { return DockPane.Appearance; } - } - - private TabCollection m_tabs = null; - protected TabCollection Tabs - { - get - { - if (m_tabs == null) - m_tabs = new TabCollection(DockPane); - - return m_tabs; - } - } - - internal void RefreshChanges() - { - if (IsDisposed) - return; - - OnRefreshChanges(); - } - - protected virtual void OnRefreshChanges() - { - } - - protected internal abstract int MeasureHeight(); - - protected internal abstract void EnsureTabVisible(IDockContent content); - - protected int HitTest() - { - return HitTest(PointToClient(Control.MousePosition)); - } - - protected internal abstract int HitTest(Point point); - - protected internal abstract GraphicsPath GetOutline(int index); - - protected internal virtual Tab CreateTab(IDockContent content) - { - return new Tab(content); - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - int index = HitTest(); - if (index != -1) - { - IDockContent content = Tabs[index].Content; - if (DockPane.ActiveContent != content) - DockPane.ActiveContent = content; - } - - if (e.Button == MouseButtons.Left) - { - if (DockPane.DockPanel.AllowEndUserDocking && DockPane.AllowDockDragAndDrop && DockPane.ActiveContent.DockHandler.AllowEndUserDocking) - DockPane.DockPanel.BeginDrag(DockPane.ActiveContent.DockHandler); - } - } - - protected bool HasTabPageContextMenu - { - get { return DockPane.HasTabPageContextMenu; } - } - - protected void ShowTabPageContextMenu(Point position) - { - DockPane.ShowTabPageContextMenu(this, position); - } - - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - - if (e.Button == MouseButtons.Right) - ShowTabPageContextMenu(new Point(e.X, e.Y)); - } - - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] - protected override void WndProc(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK) - { - base.WndProc(ref m); - - int index = HitTest(); - if (DockPane.DockPanel.AllowEndUserDocking && index != -1) - { - IDockContent content = Tabs[index].Content; - if (content.DockHandler.CheckDockState(!content.DockHandler.IsFloat) != DockState.Unknown) - content.DockHandler.IsFloat = !content.DockHandler.IsFloat; - } - - return; - } - - base.WndProc(ref m); - return; - } - - protected override void OnDragOver(DragEventArgs drgevent) - { - base.OnDragOver(drgevent); - - int index = HitTest(); - if (index != -1) - { - IDockContent content = Tabs[index].Content; - if (DockPane.ActiveContent != content) - DockPane.ActiveContent = content; - } - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.AutoHideWindow.cs b/src/DockPanel/Docking/DockPanel.AutoHideWindow.cs deleted file mode 100644 index 99866ad..0000000 --- a/src/DockPanel/Docking/DockPanel.AutoHideWindow.cs +++ /dev/null @@ -1,612 +0,0 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPanel - { - private class AutoHideWindowControl : Panel, ISplitterDragSource - { - private class SplitterControl : SplitterBase - { - public SplitterControl(AutoHideWindowControl autoHideWindow) - { - m_autoHideWindow = autoHideWindow; - } - - private AutoHideWindowControl m_autoHideWindow; - private AutoHideWindowControl AutoHideWindow - { - get { return m_autoHideWindow; } - } - - protected override int SplitterSize - { - get { return Measures.SplitterSize; } - } - - protected override void StartDrag() - { - AutoHideWindow.DockPanel.BeginDrag(AutoHideWindow, AutoHideWindow.RectangleToScreen(Bounds)); - } - } - - #region consts - private const int ANIMATE_TIME = 100; // in mini-seconds - #endregion - - private Timer m_timerMouseTrack; - private SplitterControl m_splitter; - - public AutoHideWindowControl(DockPanel dockPanel) - { - m_dockPanel = dockPanel; - - m_timerMouseTrack = new Timer(); - m_timerMouseTrack.Tick += new EventHandler(TimerMouseTrack_Tick); - - Visible = false; - m_splitter = new SplitterControl(this); - Controls.Add(m_splitter); - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - m_timerMouseTrack.Dispose(); - } - base.Dispose(disposing); - } - - private DockPanel m_dockPanel = null; - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private DockPane m_activePane = null; - public DockPane ActivePane - { - get { return m_activePane; } - } - private void SetActivePane() - { - DockPane value = (ActiveContent == null ? null : ActiveContent.DockHandler.Pane); - - if (value == m_activePane) - return; - - m_activePane = value; - } - - private IDockContent m_activeContent = null; - public IDockContent ActiveContent - { - get { return m_activeContent; } - set - { - if (value == m_activeContent) - return; - - if (value != null) - { - if (!DockHelper.IsDockStateAutoHide(value.DockHandler.DockState) || value.DockHandler.DockPanel != DockPanel) - throw (new InvalidOperationException(Strings.DockPanel_ActiveAutoHideContent_InvalidValue)); - } - - DockPanel.SuspendLayout(); - - if (m_activeContent != null) - { - if (m_activeContent.DockHandler.Form.ContainsFocus) - DockPanel.ContentFocusManager.GiveUpFocus(m_activeContent); - AnimateWindow(false); - } - - m_activeContent = value; - SetActivePane(); - if (ActivePane != null) - ActivePane.ActiveContent = m_activeContent; - - if (m_activeContent != null) - AnimateWindow(true); - - DockPanel.ResumeLayout(); - DockPanel.RefreshAutoHideStrip(); - - SetTimerMouseTrack(); - } - } - - public DockState DockState - { - get { return ActiveContent == null ? DockState.Unknown : ActiveContent.DockHandler.DockState; } - } - - private bool m_flagAnimate = true; - private bool FlagAnimate - { - get { return m_flagAnimate; } - set { m_flagAnimate = value; } - } - - private bool m_flagDragging = false; - internal bool FlagDragging - { - get { return m_flagDragging; } - set - { - if (m_flagDragging == value) - return; - - m_flagDragging = value; - SetTimerMouseTrack(); - } - } - - private void AnimateWindow(bool show) - { - if (!FlagAnimate && Visible != show) - { - Visible = show; - return; - } - - Parent.SuspendLayout(); - - Rectangle rectSource = GetRectangle(!show); - Rectangle rectTarget = GetRectangle(show); - int dxLoc, dyLoc; - int dWidth, dHeight; - dxLoc = dyLoc = dWidth = dHeight = 0; - if (DockState == DockState.DockTopAutoHide) - dHeight = show ? 1 : -1; - else if (DockState == DockState.DockLeftAutoHide) - dWidth = show ? 1 : -1; - else if (DockState == DockState.DockRightAutoHide) - { - dxLoc = show ? -1 : 1; - dWidth = show ? 1 : -1; - } - else if (DockState == DockState.DockBottomAutoHide) - { - dyLoc = (show ? -1 : 1); - dHeight = (show ? 1 : -1); - } - - if (show) - { - Bounds = DockPanel.GetAutoHideWindowBounds(new Rectangle(-rectTarget.Width, -rectTarget.Height, rectTarget.Width, rectTarget.Height)); - if (Visible == false) - Visible = true; - PerformLayout(); - } - - SuspendLayout(); - - LayoutAnimateWindow(rectSource); - if (Visible == false) - Visible = true; - - int speedFactor = 1; - int totalPixels = (rectSource.Width != rectTarget.Width) ? - Math.Abs(rectSource.Width - rectTarget.Width) : - Math.Abs(rectSource.Height - rectTarget.Height); - int remainPixels = totalPixels; - DateTime startingTime = DateTime.Now; - while (rectSource != rectTarget) - { - DateTime startPerMove = DateTime.Now; - - rectSource.X += dxLoc * speedFactor; - rectSource.Y += dyLoc * speedFactor; - rectSource.Width += dWidth * speedFactor; - rectSource.Height += dHeight * speedFactor; - if (Math.Sign(rectTarget.X - rectSource.X) != Math.Sign(dxLoc)) - rectSource.X = rectTarget.X; - if (Math.Sign(rectTarget.Y - rectSource.Y) != Math.Sign(dyLoc)) - rectSource.Y = rectTarget.Y; - if (Math.Sign(rectTarget.Width - rectSource.Width) != Math.Sign(dWidth)) - rectSource.Width = rectTarget.Width; - if (Math.Sign(rectTarget.Height - rectSource.Height) != Math.Sign(dHeight)) - rectSource.Height = rectTarget.Height; - - LayoutAnimateWindow(rectSource); - if (Parent != null) - Parent.Update(); - - remainPixels -= speedFactor; - - while (true) - { - TimeSpan time = new TimeSpan(0, 0, 0, 0, ANIMATE_TIME); - TimeSpan elapsedPerMove = DateTime.Now - startPerMove; - TimeSpan elapsedTime = DateTime.Now - startingTime; - if (((int)((time - elapsedTime).TotalMilliseconds)) <= 0) - { - speedFactor = remainPixels; - break; - } - else - speedFactor = remainPixels * (int)elapsedPerMove.TotalMilliseconds / (int)((time - elapsedTime).TotalMilliseconds); - if (speedFactor >= 1) - break; - } - } - ResumeLayout(); - Parent.ResumeLayout(); - } - - private void LayoutAnimateWindow(Rectangle rect) - { - Bounds = DockPanel.GetAutoHideWindowBounds(rect); - - Rectangle rectClient = ClientRectangle; - - if (DockState == DockState.DockLeftAutoHide) - ActivePane.Location = new Point(rectClient.Right - 2 - Measures.SplitterSize - ActivePane.Width, ActivePane.Location.Y); - else if (DockState == DockState.DockTopAutoHide) - ActivePane.Location = new Point(ActivePane.Location.X, rectClient.Bottom - 2 - Measures.SplitterSize - ActivePane.Height); - } - - private Rectangle GetRectangle(bool show) - { - if (DockState == DockState.Unknown) - return Rectangle.Empty; - - Rectangle rect = DockPanel.AutoHideWindowRectangle; - - if (show) - return rect; - - if (DockState == DockState.DockLeftAutoHide) - rect.Width = 0; - else if (DockState == DockState.DockRightAutoHide) - { - rect.X += rect.Width; - rect.Width = 0; - } - else if (DockState == DockState.DockTopAutoHide) - rect.Height = 0; - else - { - rect.Y += rect.Height; - rect.Height = 0; - } - - return rect; - } - - private void SetTimerMouseTrack() - { - if (ActivePane == null || ActivePane.IsActivated || FlagDragging) - { - m_timerMouseTrack.Enabled = false; - return; - } - - // start the timer - int hovertime = SystemInformation.MouseHoverTime ; - - // assign a default value 400 in case of setting Timer.Interval invalid value exception - if (hovertime <= 0) - hovertime = 400; - - m_timerMouseTrack.Interval = 2 * (int)hovertime; - m_timerMouseTrack.Enabled = true; - } - - protected virtual Rectangle DisplayingRectangle - { - get - { - Rectangle rect = ClientRectangle; - - // exclude the border and the splitter - if (DockState == DockState.DockBottomAutoHide) - { - rect.Y += 2 + Measures.SplitterSize; - rect.Height -= 2 + Measures.SplitterSize; - } - else if (DockState == DockState.DockRightAutoHide) - { - rect.X += 2 + Measures.SplitterSize; - rect.Width -= 2 + Measures.SplitterSize; - } - else if (DockState == DockState.DockTopAutoHide) - rect.Height -= 2 + Measures.SplitterSize; - else if (DockState == DockState.DockLeftAutoHide) - rect.Width -= 2 + Measures.SplitterSize; - - return rect; - } - } - - protected override void OnLayout(LayoutEventArgs levent) - { - DockPadding.All = 0; - if (DockState == DockState.DockLeftAutoHide) - { - DockPadding.Right = 2; - m_splitter.Dock = DockStyle.Right; - } - else if (DockState == DockState.DockRightAutoHide) - { - DockPadding.Left = 2; - m_splitter.Dock = DockStyle.Left; - } - else if (DockState == DockState.DockTopAutoHide) - { - DockPadding.Bottom = 2; - m_splitter.Dock = DockStyle.Bottom; - } - else if (DockState == DockState.DockBottomAutoHide) - { - DockPadding.Top = 2; - m_splitter.Dock = DockStyle.Top; - } - - Rectangle rectDisplaying = DisplayingRectangle; - Rectangle rectHidden = new Rectangle(-rectDisplaying.Width, rectDisplaying.Y, rectDisplaying.Width, rectDisplaying.Height); - foreach (Control c in Controls) - { - DockPane pane = c as DockPane; - if (pane == null) - continue; - - - if (pane == ActivePane) - pane.Bounds = rectDisplaying; - else - pane.Bounds = rectHidden; - } - - base.OnLayout(levent); - } - - protected override void OnPaint(PaintEventArgs e) - { - // Draw the border - Graphics g = e.Graphics; - - if (DockState == DockState.DockBottomAutoHide) - g.DrawLine(SystemPens.ControlLightLight, 0, 1, ClientRectangle.Right, 1); - else if (DockState == DockState.DockRightAutoHide) - g.DrawLine(SystemPens.ControlLightLight, 1, 0, 1, ClientRectangle.Bottom); - else if (DockState == DockState.DockTopAutoHide) - { - g.DrawLine(SystemPens.ControlDark, 0, ClientRectangle.Height - 2, ClientRectangle.Right, ClientRectangle.Height - 2); - g.DrawLine(SystemPens.ControlDarkDark, 0, ClientRectangle.Height - 1, ClientRectangle.Right, ClientRectangle.Height - 1); - } - else if (DockState == DockState.DockLeftAutoHide) - { - g.DrawLine(SystemPens.ControlDark, ClientRectangle.Width - 2, 0, ClientRectangle.Width - 2, ClientRectangle.Bottom); - g.DrawLine(SystemPens.ControlDarkDark, ClientRectangle.Width - 1, 0, ClientRectangle.Width - 1, ClientRectangle.Bottom); - } - - base.OnPaint(e); - } - - public void RefreshActiveContent() - { - if (ActiveContent == null) - return; - - if (!DockHelper.IsDockStateAutoHide(ActiveContent.DockHandler.DockState)) - { - FlagAnimate = false; - ActiveContent = null; - FlagAnimate = true; - } - } - - public void RefreshActivePane() - { - SetTimerMouseTrack(); - } - - private void TimerMouseTrack_Tick(object sender, EventArgs e) - { - if (IsDisposed) - return; - - if (ActivePane == null || ActivePane.IsActivated) - { - m_timerMouseTrack.Enabled = false; - return; - } - - DockPane pane = ActivePane; - Point ptMouseInAutoHideWindow = PointToClient(Control.MousePosition); - Point ptMouseInDockPanel = DockPanel.PointToClient(Control.MousePosition); - - Rectangle rectTabStrip = DockPanel.GetTabStripRectangle(pane.DockState); - - if (!ClientRectangle.Contains(ptMouseInAutoHideWindow) && !rectTabStrip.Contains(ptMouseInDockPanel)) - { - ActiveContent = null; - m_timerMouseTrack.Enabled = false; - } - } - - #region ISplitterDragSource Members - - void ISplitterDragSource.BeginDrag(Rectangle rectSplitter) - { - FlagDragging = true; - } - - void ISplitterDragSource.EndDrag() - { - FlagDragging = false; - } - - bool ISplitterDragSource.IsVertical - { - get { return (DockState == DockState.DockLeftAutoHide || DockState == DockState.DockRightAutoHide); } - } - - Rectangle ISplitterDragSource.DragLimitBounds - { - get - { - Rectangle rectLimit = DockPanel.DockArea; - - if ((this as ISplitterDragSource).IsVertical) - { - rectLimit.X += MeasurePane.MinSize; - rectLimit.Width -= 2 * MeasurePane.MinSize; - } - else - { - rectLimit.Y += MeasurePane.MinSize; - rectLimit.Height -= 2 * MeasurePane.MinSize; - } - - return DockPanel.RectangleToScreen(rectLimit); - } - } - - void ISplitterDragSource.MoveSplitter(int offset) - { - Rectangle rectDockArea = DockPanel.DockArea; - IDockContent content = ActiveContent; - if (DockState == DockState.DockLeftAutoHide && rectDockArea.Width > 0) - { - if (content.DockHandler.AutoHidePortion < 1) - content.DockHandler.AutoHidePortion += ((double)offset) / (double)rectDockArea.Width; - else - content.DockHandler.AutoHidePortion = Width + offset; - } - else if (DockState == DockState.DockRightAutoHide && rectDockArea.Width > 0) - { - if (content.DockHandler.AutoHidePortion < 1) - content.DockHandler.AutoHidePortion -= ((double)offset) / (double)rectDockArea.Width; - else - content.DockHandler.AutoHidePortion = Width - offset; - } - else if (DockState == DockState.DockBottomAutoHide && rectDockArea.Height > 0) - { - if (content.DockHandler.AutoHidePortion < 1) - content.DockHandler.AutoHidePortion -= ((double)offset) / (double)rectDockArea.Height; - else - content.DockHandler.AutoHidePortion = Height - offset; - } - else if (DockState == DockState.DockTopAutoHide && rectDockArea.Height > 0) - { - if (content.DockHandler.AutoHidePortion < 1) - content.DockHandler.AutoHidePortion += ((double)offset) / (double)rectDockArea.Height; - else - content.DockHandler.AutoHidePortion = Height + offset; - } - } - - #region IDragSource Members - - Control IDragSource.DragControl - { - get { return this; } - } - - #endregion - - #endregion - } - - private AutoHideWindowControl AutoHideWindow - { - get { return m_autoHideWindow; } - } - - internal Control AutoHideControl - { - get { return m_autoHideWindow; } - } - - internal void RefreshActiveAutoHideContent() - { - AutoHideWindow.RefreshActiveContent(); - } - - internal Rectangle AutoHideWindowRectangle - { - get - { - DockState state = AutoHideWindow.DockState; - Rectangle rectDockArea = DockArea; - if (ActiveAutoHideContent == null) - return Rectangle.Empty; - - if (Parent == null) - return Rectangle.Empty; - - Rectangle rect = Rectangle.Empty; - double autoHideSize = ActiveAutoHideContent.DockHandler.AutoHidePortion; - if (state == DockState.DockLeftAutoHide) - { - if (autoHideSize < 1) - autoHideSize = rectDockArea.Width * autoHideSize; - if (autoHideSize > rectDockArea.Width - MeasurePane.MinSize) - autoHideSize = rectDockArea.Width - MeasurePane.MinSize; - rect.X = rectDockArea.X; - rect.Y = rectDockArea.Y; - rect.Width = (int)autoHideSize; - rect.Height = rectDockArea.Height; - } - else if (state == DockState.DockRightAutoHide) - { - if (autoHideSize < 1) - autoHideSize = rectDockArea.Width * autoHideSize; - if (autoHideSize > rectDockArea.Width - MeasurePane.MinSize) - autoHideSize = rectDockArea.Width - MeasurePane.MinSize; - rect.X = rectDockArea.X + rectDockArea.Width - (int)autoHideSize; - rect.Y = rectDockArea.Y; - rect.Width = (int)autoHideSize; - rect.Height = rectDockArea.Height; - } - else if (state == DockState.DockTopAutoHide) - { - if (autoHideSize < 1) - autoHideSize = rectDockArea.Height * autoHideSize; - if (autoHideSize > rectDockArea.Height - MeasurePane.MinSize) - autoHideSize = rectDockArea.Height - MeasurePane.MinSize; - rect.X = rectDockArea.X; - rect.Y = rectDockArea.Y; - rect.Width = rectDockArea.Width; - rect.Height = (int)autoHideSize; - } - else if (state == DockState.DockBottomAutoHide) - { - if (autoHideSize < 1) - autoHideSize = rectDockArea.Height * autoHideSize; - if (autoHideSize > rectDockArea.Height - MeasurePane.MinSize) - autoHideSize = rectDockArea.Height - MeasurePane.MinSize; - rect.X = rectDockArea.X; - rect.Y = rectDockArea.Y + rectDockArea.Height - (int)autoHideSize; - rect.Width = rectDockArea.Width; - rect.Height = (int)autoHideSize; - } - - return rect; - } - } - - internal Rectangle GetAutoHideWindowBounds(Rectangle rectAutoHideWindow) - { - if (DocumentStyle == DocumentStyle.SystemMdi || - DocumentStyle == DocumentStyle.DockingMdi) - return (Parent == null) ? Rectangle.Empty : Parent.RectangleToClient(RectangleToScreen(rectAutoHideWindow)); - else - return rectAutoHideWindow; - } - - internal void RefreshAutoHideStrip() - { - AutoHideStripControl.RefreshChanges(); - } - - } -} diff --git a/src/DockPanel/Docking/DockPanel.DockDragHandler.cs b/src/DockPanel/Docking/DockPanel.DockDragHandler.cs deleted file mode 100644 index 9aacdb8..0000000 --- a/src/DockPanel/Docking/DockPanel.DockDragHandler.cs +++ /dev/null @@ -1,814 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPanel - { - private sealed class DockDragHandler : DragHandler - { - private class DockIndicator : DragForm - { - #region IHitTest - private interface IHitTest - { - DockStyle HitTest(Point pt); - DockStyle Status { get; set; } - } - #endregion - - #region PanelIndicator - private class PanelIndicator : PictureBox, IHitTest - { - private static Image _imagePanelLeft = Resources.DockIndicator_PanelLeft; - private static Image _imagePanelRight = Resources.DockIndicator_PanelRight; - private static Image _imagePanelTop = Resources.DockIndicator_PanelTop; - private static Image _imagePanelBottom = Resources.DockIndicator_PanelBottom; - private static Image _imagePanelFill = Resources.DockIndicator_PanelFill; - private static Image _imagePanelLeftActive = Resources.DockIndicator_PanelLeft_Active; - private static Image _imagePanelRightActive = Resources.DockIndicator_PanelRight_Active; - private static Image _imagePanelTopActive = Resources.DockIndicator_PanelTop_Active; - private static Image _imagePanelBottomActive = Resources.DockIndicator_PanelBottom_Active; - private static Image _imagePanelFillActive = Resources.DockIndicator_PanelFill_Active; - - public PanelIndicator(DockStyle dockStyle) - { - m_dockStyle = dockStyle; - SizeMode = PictureBoxSizeMode.AutoSize; - Image = ImageInactive; - } - - private DockStyle m_dockStyle; - private DockStyle DockStyle - { - get { return m_dockStyle; } - } - - private DockStyle m_status; - public DockStyle Status - { - get { return m_status; } - set - { - if (value != DockStyle && value != DockStyle.None) - throw new InvalidEnumArgumentException(); - - if (m_status == value) - return; - - m_status = value; - IsActivated = (m_status != DockStyle.None); - } - } - - private Image ImageInactive - { - get - { - if (DockStyle == DockStyle.Left) - return _imagePanelLeft; - else if (DockStyle == DockStyle.Right) - return _imagePanelRight; - else if (DockStyle == DockStyle.Top) - return _imagePanelTop; - else if (DockStyle == DockStyle.Bottom) - return _imagePanelBottom; - else if (DockStyle == DockStyle.Fill) - return _imagePanelFill; - else - return null; - } - } - - private Image ImageActive - { - get - { - if (DockStyle == DockStyle.Left) - return _imagePanelLeftActive; - else if (DockStyle == DockStyle.Right) - return _imagePanelRightActive; - else if (DockStyle == DockStyle.Top) - return _imagePanelTopActive; - else if (DockStyle == DockStyle.Bottom) - return _imagePanelBottomActive; - else if (DockStyle == DockStyle.Fill) - return _imagePanelFillActive; - else - return null; - } - } - - private bool m_isActivated = false; - private bool IsActivated - { - get { return m_isActivated; } - set - { - m_isActivated = value; - Image = IsActivated ? ImageActive : ImageInactive; - } - } - - public DockStyle HitTest(Point pt) - { - return this.Visible && ClientRectangle.Contains(PointToClient(pt)) ? DockStyle : DockStyle.None; - } - } - #endregion PanelIndicator - - #region PaneIndicator - private class PaneIndicator : PictureBox, IHitTest - { - private struct HotSpotIndex - { - public HotSpotIndex(int x, int y, DockStyle dockStyle) - { - m_x = x; - m_y = y; - m_dockStyle = dockStyle; - } - - private int m_x; - public int X - { - get { return m_x; } - } - - private int m_y; - public int Y - { - get { return m_y; } - } - - private DockStyle m_dockStyle; - public DockStyle DockStyle - { - get { return m_dockStyle; } - } - } - - private static Bitmap _bitmapPaneDiamond = Resources.DockIndicator_PaneDiamond; - private static Bitmap _bitmapPaneDiamondLeft = Resources.DockIndicator_PaneDiamond_Left; - private static Bitmap _bitmapPaneDiamondRight = Resources.DockIndicator_PaneDiamond_Right; - private static Bitmap _bitmapPaneDiamondTop = Resources.DockIndicator_PaneDiamond_Top; - private static Bitmap _bitmapPaneDiamondBottom = Resources.DockIndicator_PaneDiamond_Bottom; - private static Bitmap _bitmapPaneDiamondFill = Resources.DockIndicator_PaneDiamond_Fill; - private static Bitmap _bitmapPaneDiamondHotSpot = Resources.DockIndicator_PaneDiamond_HotSpot; - private static Bitmap _bitmapPaneDiamondHotSpotIndex = Resources.DockIndicator_PaneDiamond_HotSpotIndex; - private static HotSpotIndex[] _hotSpots = new HotSpotIndex[] - { - new HotSpotIndex(1, 0, DockStyle.Top), - new HotSpotIndex(0, 1, DockStyle.Left), - new HotSpotIndex(1, 1, DockStyle.Fill), - new HotSpotIndex(2, 1, DockStyle.Right), - new HotSpotIndex(1, 2, DockStyle.Bottom) - }; - private static GraphicsPath _displayingGraphicsPath = DrawHelper.CalculateGraphicsPathFromBitmap(_bitmapPaneDiamond); - - public PaneIndicator() - { - SizeMode = PictureBoxSizeMode.AutoSize; - Image = _bitmapPaneDiamond; - Region = new Region(DisplayingGraphicsPath); - } - - public static GraphicsPath DisplayingGraphicsPath - { - get { return _displayingGraphicsPath; } - } - - public DockStyle HitTest(Point pt) - { - if (!Visible) - return DockStyle.None; - - pt = PointToClient(pt); - if (!ClientRectangle.Contains(pt)) - return DockStyle.None; - - for (int i = _hotSpots.GetLowerBound(0); i <= _hotSpots.GetUpperBound(0); i++) - { - if (_bitmapPaneDiamondHotSpot.GetPixel(pt.X, pt.Y) == _bitmapPaneDiamondHotSpotIndex.GetPixel(_hotSpots[i].X, _hotSpots[i].Y)) - return _hotSpots[i].DockStyle; - } - - return DockStyle.None; - } - - private DockStyle m_status = DockStyle.None; - public DockStyle Status - { - get { return m_status; } - set - { - m_status = value; - if (m_status == DockStyle.None) - Image = _bitmapPaneDiamond; - else if (m_status == DockStyle.Left) - Image = _bitmapPaneDiamondLeft; - else if (m_status == DockStyle.Right) - Image = _bitmapPaneDiamondRight; - else if (m_status == DockStyle.Top) - Image = _bitmapPaneDiamondTop; - else if (m_status == DockStyle.Bottom) - Image = _bitmapPaneDiamondBottom; - else if (m_status == DockStyle.Fill) - Image = _bitmapPaneDiamondFill; - } - } - } - #endregion PaneIndicator - - #region consts - private int _PanelIndicatorMargin = 10; - #endregion - - private DockDragHandler m_dragHandler; - - public DockIndicator(DockDragHandler dragHandler) - { - m_dragHandler = dragHandler; - Controls.AddRange(new Control[] { - PaneDiamond, - PanelLeft, - PanelRight, - PanelTop, - PanelBottom, - PanelFill - }); - Region = new Region(Rectangle.Empty); - } - - private PaneIndicator m_paneDiamond = null; - private PaneIndicator PaneDiamond - { - get - { - if (m_paneDiamond == null) - m_paneDiamond = new PaneIndicator(); - - return m_paneDiamond; - } - } - - private PanelIndicator m_panelLeft = null; - private PanelIndicator PanelLeft - { - get - { - if (m_panelLeft == null) - m_panelLeft = new PanelIndicator(DockStyle.Left); - - return m_panelLeft; - } - } - - private PanelIndicator m_panelRight = null; - private PanelIndicator PanelRight - { - get - { - if (m_panelRight == null) - m_panelRight = new PanelIndicator(DockStyle.Right); - - return m_panelRight; - } - } - - private PanelIndicator m_panelTop = null; - private PanelIndicator PanelTop - { - get - { - if (m_panelTop == null) - m_panelTop = new PanelIndicator(DockStyle.Top); - - return m_panelTop; - } - } - - private PanelIndicator m_panelBottom = null; - private PanelIndicator PanelBottom - { - get - { - if (m_panelBottom == null) - m_panelBottom = new PanelIndicator(DockStyle.Bottom); - - return m_panelBottom; - } - } - - private PanelIndicator m_panelFill = null; - private PanelIndicator PanelFill - { - get - { - if (m_panelFill == null) - m_panelFill = new PanelIndicator(DockStyle.Fill); - - return m_panelFill; - } - } - - private bool m_fullPanelEdge = false; - public bool FullPanelEdge - { - get { return m_fullPanelEdge; } - set - { - if (m_fullPanelEdge == value) - return; - - m_fullPanelEdge = value; - RefreshChanges(); - } - } - - public DockDragHandler DragHandler - { - get { return m_dragHandler; } - } - - public DockPanel DockPanel - { - get { return DragHandler.DockPanel; } - } - - private DockPane m_dockPane = null; - public DockPane DockPane - { - get { return m_dockPane; } - internal set - { - if (m_dockPane == value) - return; - - DockPane oldDisplayingPane = DisplayingPane; - m_dockPane = value; - if (oldDisplayingPane != DisplayingPane) - RefreshChanges(); - } - } - - private IHitTest m_hitTest = null; - private IHitTest HitTestResult - { - get { return m_hitTest; } - set - { - if (m_hitTest == value) - return; - - if (m_hitTest != null) - m_hitTest.Status = DockStyle.None; - - m_hitTest = value; - } - } - - private DockPane DisplayingPane - { - get { return ShouldPaneDiamondVisible() ? DockPane : null; } - } - - private void RefreshChanges() - { - Region region = new Region(Rectangle.Empty); - Rectangle rectDockArea = FullPanelEdge ? DockPanel.DockArea : DockPanel.DocumentWindowBounds; - - rectDockArea = RectangleToClient(DockPanel.RectangleToScreen(rectDockArea)); - if (ShouldPanelIndicatorVisible(DockState.DockLeft)) - { - PanelLeft.Location = new Point(rectDockArea.X + _PanelIndicatorMargin, rectDockArea.Y + (rectDockArea.Height - PanelRight.Height) / 2); - PanelLeft.Visible = true; - region.Union(PanelLeft.Bounds); - } - else - PanelLeft.Visible = false; - - if (ShouldPanelIndicatorVisible(DockState.DockRight)) - { - PanelRight.Location = new Point(rectDockArea.X + rectDockArea.Width - PanelRight.Width - _PanelIndicatorMargin, rectDockArea.Y + (rectDockArea.Height - PanelRight.Height) / 2); - PanelRight.Visible = true; - region.Union(PanelRight.Bounds); - } - else - PanelRight.Visible = false; - - if (ShouldPanelIndicatorVisible(DockState.DockTop)) - { - PanelTop.Location = new Point(rectDockArea.X + (rectDockArea.Width - PanelTop.Width) / 2, rectDockArea.Y + _PanelIndicatorMargin); - PanelTop.Visible = true; - region.Union(PanelTop.Bounds); - } - else - PanelTop.Visible = false; - - if (ShouldPanelIndicatorVisible(DockState.DockBottom)) - { - PanelBottom.Location = new Point(rectDockArea.X + (rectDockArea.Width - PanelBottom.Width) / 2, rectDockArea.Y + rectDockArea.Height - PanelBottom.Height - _PanelIndicatorMargin); - PanelBottom.Visible = true; - region.Union(PanelBottom.Bounds); - } - else - PanelBottom.Visible = false; - - if (ShouldPanelIndicatorVisible(DockState.Document)) - { - Rectangle rectDocumentWindow = RectangleToClient(DockPanel.RectangleToScreen(DockPanel.DocumentWindowBounds)); - PanelFill.Location = new Point(rectDocumentWindow.X + (rectDocumentWindow.Width - PanelFill.Width) / 2, rectDocumentWindow.Y + (rectDocumentWindow.Height - PanelFill.Height) / 2); - PanelFill.Visible = true; - region.Union(PanelFill.Bounds); - } - else - PanelFill.Visible = false; - - if (ShouldPaneDiamondVisible()) - { - Rectangle rect = RectangleToClient(DockPane.RectangleToScreen(DockPane.ClientRectangle)); - PaneDiamond.Location = new Point(rect.Left + (rect.Width - PaneDiamond.Width) / 2, rect.Top + (rect.Height - PaneDiamond.Height) / 2); - PaneDiamond.Visible = true; - using (GraphicsPath graphicsPath = PaneIndicator.DisplayingGraphicsPath.Clone() as GraphicsPath) - { - Point[] pts = new Point[] - { - new Point(PaneDiamond.Left, PaneDiamond.Top), - new Point(PaneDiamond.Right, PaneDiamond.Top), - new Point(PaneDiamond.Left, PaneDiamond.Bottom) - }; - using (Matrix matrix = new Matrix(PaneDiamond.ClientRectangle, pts)) - { - graphicsPath.Transform(matrix); - } - region.Union(graphicsPath); - } - } - else - PaneDiamond.Visible = false; - - Region = region; - } - - private bool ShouldPanelIndicatorVisible(DockState dockState) - { - if (!Visible) - return false; - - if (DockPanel.DockWindows[dockState].Visible) - return false; - - return DragHandler.DragSource.IsDockStateValid(dockState); - } - - private bool ShouldPaneDiamondVisible() - { - if (DockPane == null) - return false; - - if (!DockPanel.AllowEndUserNestedDocking) - return false; - - return DragHandler.DragSource.CanDockTo(DockPane); - } - - public override void Show(bool bActivate) - { - base.Show(bActivate); - Bounds = SystemInformation.VirtualScreen; - RefreshChanges(); - } - - public void TestDrop() - { - Point pt = Control.MousePosition; - DockPane = DockHelper.PaneAtPoint(pt, DockPanel); - - if (TestDrop(PanelLeft, pt) != DockStyle.None) - HitTestResult = PanelLeft; - else if (TestDrop(PanelRight, pt) != DockStyle.None) - HitTestResult = PanelRight; - else if (TestDrop(PanelTop, pt) != DockStyle.None) - HitTestResult = PanelTop; - else if (TestDrop(PanelBottom, pt) != DockStyle.None) - HitTestResult = PanelBottom; - else if (TestDrop(PanelFill, pt) != DockStyle.None) - HitTestResult = PanelFill; - else if (TestDrop(PaneDiamond, pt) != DockStyle.None) - HitTestResult = PaneDiamond; - else - HitTestResult = null; - - if (HitTestResult != null) - { - if (HitTestResult is PaneIndicator) - DragHandler.Outline.Show(DockPane, HitTestResult.Status); - else - DragHandler.Outline.Show(DockPanel, HitTestResult.Status, FullPanelEdge); - } - } - - private static DockStyle TestDrop(IHitTest hitTest, Point pt) - { - return hitTest.Status = hitTest.HitTest(pt); - } - } - - private class DockOutline : DockOutlineBase - { - public DockOutline() - { - m_dragForm = new DragForm(); - SetDragForm(Rectangle.Empty); - DragForm.BackColor = SystemColors.ActiveCaption; - DragForm.Opacity = 0.5; - DragForm.Show(false); - } - - DragForm m_dragForm; - private DragForm DragForm - { - get { return m_dragForm; } - } - - protected override void OnShow() - { - CalculateRegion(); - } - - protected override void OnClose() - { - DragForm.Close(); - } - - private void CalculateRegion() - { - if (SameAsOldValue) - return; - - if (!FloatWindowBounds.IsEmpty) - SetOutline(FloatWindowBounds); - else if (DockTo is DockPanel) - SetOutline(DockTo as DockPanel, Dock, (ContentIndex != 0)); - else if (DockTo is DockPane) - SetOutline(DockTo as DockPane, Dock, ContentIndex); - else - SetOutline(); - } - - private void SetOutline() - { - SetDragForm(Rectangle.Empty); - } - - private void SetOutline(Rectangle floatWindowBounds) - { - SetDragForm(floatWindowBounds); - } - - private void SetOutline(DockPanel dockPanel, DockStyle dock, bool fullPanelEdge) - { - Rectangle rect = fullPanelEdge ? dockPanel.DockArea : dockPanel.DocumentWindowBounds; - rect.Location = dockPanel.PointToScreen(rect.Location); - if (dock == DockStyle.Top) - { - int height = dockPanel.GetDockWindowSize(DockState.DockTop); - rect = new Rectangle(rect.X, rect.Y, rect.Width, height); - } - else if (dock == DockStyle.Bottom) - { - int height = dockPanel.GetDockWindowSize(DockState.DockBottom); - rect = new Rectangle(rect.X, rect.Bottom - height, rect.Width, height); - } - else if (dock == DockStyle.Left) - { - int width = dockPanel.GetDockWindowSize(DockState.DockLeft); - rect = new Rectangle(rect.X, rect.Y, width, rect.Height); - } - else if (dock == DockStyle.Right) - { - int width = dockPanel.GetDockWindowSize(DockState.DockRight); - rect = new Rectangle(rect.Right - width, rect.Y, width, rect.Height); - } - else if (dock == DockStyle.Fill) - { - rect = dockPanel.DocumentWindowBounds; - rect.Location = dockPanel.PointToScreen(rect.Location); - } - - SetDragForm(rect); - } - - private void SetOutline(DockPane pane, DockStyle dock, int contentIndex) - { - if (dock != DockStyle.Fill) - { - Rectangle rect = pane.DisplayingRectangle; - if (dock == DockStyle.Right) - rect.X += rect.Width / 2; - if (dock == DockStyle.Bottom) - rect.Y += rect.Height / 2; - if (dock == DockStyle.Left || dock == DockStyle.Right) - rect.Width -= rect.Width / 2; - if (dock == DockStyle.Top || dock == DockStyle.Bottom) - rect.Height -= rect.Height / 2; - rect.Location = pane.PointToScreen(rect.Location); - - SetDragForm(rect); - } - else if (contentIndex == -1) - { - Rectangle rect = pane.DisplayingRectangle; - rect.Location = pane.PointToScreen(rect.Location); - SetDragForm(rect); - } - else - { - using (GraphicsPath path = pane.TabStripControl.GetOutline(contentIndex)) - { - RectangleF rectF = path.GetBounds(); - Rectangle rect = new Rectangle((int)rectF.X, (int)rectF.Y, (int)rectF.Width, (int)rectF.Height); - using (Matrix matrix = new Matrix(rect, new Point[] { new Point(0, 0), new Point(rect.Width, 0), new Point(0, rect.Height) })) - { - path.Transform(matrix); - } - Region region = new Region(path); - SetDragForm(rect, region); - } - } - } - - private void SetDragForm(Rectangle rect) - { - DragForm.Bounds = rect; - if (rect == Rectangle.Empty) - DragForm.Region = new Region(Rectangle.Empty); - else if (DragForm.Region != null) - DragForm.Region = null; - } - - private void SetDragForm(Rectangle rect, Region region) - { - DragForm.Bounds = rect; - DragForm.Region = region; - } - } - - public DockDragHandler(DockPanel panel) - : base(panel) - { - } - - public new IDockDragSource DragSource - { - get { return base.DragSource as IDockDragSource; } - set { base.DragSource = value; } - } - - private DockOutlineBase m_outline; - public DockOutlineBase Outline - { - get { return m_outline; } - private set { m_outline = value; } - } - - private DockIndicator m_indicator; - private DockIndicator Indicator - { - get { return m_indicator; } - set { m_indicator = value; } - } - - private Rectangle m_floatOutlineBounds; - private Rectangle FloatOutlineBounds - { - get { return m_floatOutlineBounds; } - set { m_floatOutlineBounds = value; } - } - - public void BeginDrag(IDockDragSource dragSource) - { - DragSource = dragSource; - - if (!BeginDrag()) - { - DragSource = null; - return; - } - - Outline = new DockOutline(); - Indicator = new DockIndicator(this); - Indicator.Show(false); - - FloatOutlineBounds = DragSource.BeginDrag(StartMousePosition); - } - - protected override void OnDragging() - { - TestDrop(); - } - - protected override void OnEndDrag(bool abort) - { - DockPanel.SuspendLayout(true); - - Outline.Close(); - Indicator.Close(); - - EndDrag(abort); - - // Queue a request to layout all children controls - DockPanel.PerformMdiClientLayout(); - - DockPanel.ResumeLayout(true, true); - - DragSource = null; - } - - private void TestDrop() - { - Outline.FlagTestDrop = false; - - Indicator.FullPanelEdge = ((Control.ModifierKeys & Keys.Shift) != 0); - - if ((Control.ModifierKeys & Keys.Control) == 0) - { - Indicator.TestDrop(); - - if (!Outline.FlagTestDrop) - { - DockPane pane = DockHelper.PaneAtPoint(Control.MousePosition, DockPanel); - if (pane != null && DragSource.IsDockStateValid(pane.DockState)) - pane.TestDrop(DragSource, Outline); - } - - if (!Outline.FlagTestDrop && DragSource.IsDockStateValid(DockState.Float)) - { - FloatWindow floatWindow = DockHelper.FloatWindowAtPoint(Control.MousePosition, DockPanel); - if (floatWindow != null) - floatWindow.TestDrop(DragSource, Outline); - } - } - else - Indicator.DockPane = DockHelper.PaneAtPoint(Control.MousePosition, DockPanel); - - if (!Outline.FlagTestDrop) - { - if (DragSource.IsDockStateValid(DockState.Float)) - { - Rectangle rect = FloatOutlineBounds; - rect.Offset(Control.MousePosition.X - StartMousePosition.X, Control.MousePosition.Y - StartMousePosition.Y); - Outline.Show(rect); - } - } - - if (!Outline.FlagTestDrop) - { - Cursor.Current = Cursors.No; - Outline.Show(); - } - else - Cursor.Current = DragControl.Cursor; - } - - private void EndDrag(bool abort) - { - if (abort) - return; - - if (!Outline.FloatWindowBounds.IsEmpty) - DragSource.FloatAt(Outline.FloatWindowBounds); - else if (Outline.DockTo is DockPane) - { - DockPane pane = Outline.DockTo as DockPane; - DragSource.DockTo(pane, Outline.Dock, Outline.ContentIndex); - } - else if (Outline.DockTo is DockPanel) - { - DockPanel panel = Outline.DockTo as DockPanel; - panel.UpdateDockWindowZOrder(Outline.Dock, Outline.FlagFullEdge); - DragSource.DockTo(panel, Outline.Dock); - } - } - } - - private DockDragHandler m_dockDragHandler = null; - private DockDragHandler GetDockDragHandler() - { - if (m_dockDragHandler == null) - m_dockDragHandler = new DockDragHandler(this); - return m_dockDragHandler; - } - - internal void BeginDrag(IDockDragSource dragSource) - { - GetDockDragHandler().BeginDrag(dragSource); - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.DragHandler.cs b/src/DockPanel/Docking/DockPanel.DragHandler.cs deleted file mode 100644 index 46a1e09..0000000 --- a/src/DockPanel/Docking/DockPanel.DragHandler.cs +++ /dev/null @@ -1,135 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPanel - { - /// - /// DragHandlerBase is the base class for drag handlers. The derived class should: - /// 1. Define its public method BeginDrag. From within this public BeginDrag method, - /// DragHandlerBase.BeginDrag should be called to initialize the mouse capture - /// and message filtering. - /// 2. Override the OnDragging and OnEndDrag methods. - /// - private abstract class DragHandlerBase : NativeWindow, IMessageFilter - { - protected DragHandlerBase() - { - } - - protected abstract Control DragControl - { - get; - } - - private Point m_startMousePosition = Point.Empty; - protected Point StartMousePosition - { - get { return m_startMousePosition; } - private set { m_startMousePosition = value; } - } - - protected bool BeginDrag() - { - // Avoid re-entrance; - lock (this) - { - if (DragControl == null) - return false; - - StartMousePosition = Control.MousePosition; - - if (!NativeMethods.DragDetect(DragControl.Handle, StartMousePosition)) - return false; - - DragControl.FindForm().Capture = true; - AssignHandle(DragControl.FindForm().Handle); - Application.AddMessageFilter(this); - return true; - } - } - - protected abstract void OnDragging(); - - protected abstract void OnEndDrag(bool abort); - - private void EndDrag(bool abort) - { - ReleaseHandle(); - Application.RemoveMessageFilter(this); - DragControl.FindForm().Capture = false; - - OnEndDrag(abort); - } - - bool IMessageFilter.PreFilterMessage(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_MOUSEMOVE) - OnDragging(); - else if (m.Msg == (int)Win32.Msgs.WM_LBUTTONUP) - EndDrag(false); - else if (m.Msg == (int)Win32.Msgs.WM_CAPTURECHANGED) - EndDrag(true); - else if (m.Msg == (int)Win32.Msgs.WM_KEYDOWN && (int)m.WParam == (int)Keys.Escape) - EndDrag(true); - - return OnPreFilterMessage(ref m); - } - - protected virtual bool OnPreFilterMessage(ref Message m) - { - return false; - } - - protected sealed override void WndProc(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_CANCELMODE || m.Msg == (int)Win32.Msgs.WM_CAPTURECHANGED) - EndDrag(true); - - base.WndProc(ref m); - } - } - - private abstract class DragHandler : DragHandlerBase - { - private DockPanel m_dockPanel; - - protected DragHandler(DockPanel dockPanel) - { - m_dockPanel = dockPanel; - } - - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private IDragSource m_dragSource; - protected IDragSource DragSource - { - get { return m_dragSource; } - set { m_dragSource = value; } - } - - protected sealed override Control DragControl - { - get { return DragSource == null ? null : DragSource.DragControl; } - } - - protected sealed override bool OnPreFilterMessage(ref Message m) - { - if ((m.Msg == (int)Win32.Msgs.WM_KEYDOWN || m.Msg == (int)Win32.Msgs.WM_KEYUP) && - ((int)m.WParam == (int)Keys.ControlKey || (int)m.WParam == (int)Keys.ShiftKey)) - OnDragging(); - - return base.OnPreFilterMessage(ref m); - } - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.FocusManager.cs b/src/DockPanel/Docking/DockPanel.FocusManager.cs deleted file mode 100644 index ef717c2..0000000 --- a/src/DockPanel/Docking/DockPanel.FocusManager.cs +++ /dev/null @@ -1,568 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Runtime.InteropServices; -using System.Windows.Forms; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal interface IContentFocusManager - { - void Activate(IDockContent content); - void GiveUpFocus(IDockContent content); - void AddToList(IDockContent content); - void RemoveFromList(IDockContent content); - } - - partial class DockPanel - { - private interface IFocusManager - { - void SuspendFocusTracking(); - void ResumeFocusTracking(); - bool IsFocusTrackingSuspended { get; } - IDockContent ActiveContent { get; } - DockPane ActivePane { get; } - IDockContent ActiveDocument { get; } - DockPane ActiveDocumentPane { get; } - } - - private class FocusManagerImpl : Component, IContentFocusManager, IFocusManager - { - private class HookEventArgs : EventArgs - { - [SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] - public int HookCode; - [SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] - public IntPtr wParam; - public IntPtr lParam; - } - - private class LocalWindowsHook : IDisposable - { - // Internal properties - private IntPtr m_hHook = IntPtr.Zero; - private NativeMethods.HookProc m_filterFunc = null; - private Win32.HookType m_hookType; - - // Event delegate - public delegate void HookEventHandler(object sender, HookEventArgs e); - - // Event: HookInvoked - public event HookEventHandler HookInvoked; - protected void OnHookInvoked(HookEventArgs e) - { - if (HookInvoked != null) - HookInvoked(this, e); - } - - public LocalWindowsHook(Win32.HookType hook) - { - m_hookType = hook; - m_filterFunc = new NativeMethods.HookProc(this.CoreHookProc); - } - - // Default filter function - public IntPtr CoreHookProc(int code, IntPtr wParam, IntPtr lParam) - { - if (code < 0) - return NativeMethods.CallNextHookEx(m_hHook, code, wParam, lParam); - - // Let clients determine what to do - HookEventArgs e = new HookEventArgs(); - e.HookCode = code; - e.wParam = wParam; - e.lParam = lParam; - OnHookInvoked(e); - - // Yield to the next hook in the chain - return NativeMethods.CallNextHookEx(m_hHook, code, wParam, lParam); - } - - // Install the hook - public void Install() - { - if (m_hHook != IntPtr.Zero) - Uninstall(); - - int threadId = NativeMethods.GetCurrentThreadId(); - m_hHook = NativeMethods.SetWindowsHookEx(m_hookType, m_filterFunc, IntPtr.Zero, threadId); - } - - // Uninstall the hook - public void Uninstall() - { - if (m_hHook != IntPtr.Zero) - { - NativeMethods.UnhookWindowsHookEx(m_hHook); - m_hHook = IntPtr.Zero; - } - } - - ~LocalWindowsHook() - { - Dispose(false); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - Uninstall(); - } - } - - private LocalWindowsHook m_localWindowsHook; - private LocalWindowsHook.HookEventHandler m_hookEventHandler; - - public FocusManagerImpl(DockPanel dockPanel) - { - m_dockPanel = dockPanel; - m_localWindowsHook = new LocalWindowsHook(Win32.HookType.WH_CALLWNDPROCRET); - m_hookEventHandler = new LocalWindowsHook.HookEventHandler(HookEventHandler); - m_localWindowsHook.HookInvoked += m_hookEventHandler; - m_localWindowsHook.Install(); - } - - private DockPanel m_dockPanel; - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private bool m_disposed = false; - protected override void Dispose(bool disposing) - { - lock (this) - { - if (!m_disposed && disposing) - { - m_localWindowsHook.Dispose(); - m_disposed = true; - } - - base.Dispose(disposing); - } - } - - private IDockContent m_contentActivating = null; - private IDockContent ContentActivating - { - get { return m_contentActivating; } - set { m_contentActivating = value; } - } - - public void Activate(IDockContent content) - { - if (IsFocusTrackingSuspended) - { - ContentActivating = content; - return; - } - - if (content == null) - return; - DockContentHandler handler = content.DockHandler; - if (handler.Form.IsDisposed) - return; // Should not reach here, but better than throwing an exception - if (ContentContains(content, handler.ActiveWindowHandle)) - NativeMethods.SetFocus(handler.ActiveWindowHandle); - if (!handler.Form.ContainsFocus) - { - if (!handler.Form.SelectNextControl(handler.Form.ActiveControl, true, true, true, true)) - // Since DockContent Form is not selectalbe, use Win32 SetFocus instead - NativeMethods.SetFocus(handler.Form.Handle); - } - } - - private List m_listContent = new List(); - private List ListContent - { - get { return m_listContent; } - } - public void AddToList(IDockContent content) - { - if (ListContent.Contains(content) || IsInActiveList(content)) - return; - - ListContent.Add(content); - } - - public void RemoveFromList(IDockContent content) - { - if (IsInActiveList(content)) - RemoveFromActiveList(content); - if (ListContent.Contains(content)) - ListContent.Remove(content); - } - - private IDockContent m_lastActiveContent = null; - private IDockContent LastActiveContent - { - get { return m_lastActiveContent; } - set { m_lastActiveContent = value; } - } - - private bool IsInActiveList(IDockContent content) - { - return !(content.DockHandler.NextActive == null && LastActiveContent != content); - } - - private void AddLastToActiveList(IDockContent content) - { - IDockContent last = LastActiveContent; - if (last == content) - return; - - DockContentHandler handler = content.DockHandler; - - if (IsInActiveList(content)) - RemoveFromActiveList(content); - - handler.PreviousActive = last; - handler.NextActive = null; - LastActiveContent = content; - if (last != null) - last.DockHandler.NextActive = LastActiveContent; - } - - private void RemoveFromActiveList(IDockContent content) - { - if (LastActiveContent == content) - LastActiveContent = content.DockHandler.PreviousActive; - - IDockContent prev = content.DockHandler.PreviousActive; - IDockContent next = content.DockHandler.NextActive; - if (prev != null) - prev.DockHandler.NextActive = next; - if (next != null) - next.DockHandler.PreviousActive = prev; - - content.DockHandler.PreviousActive = null; - content.DockHandler.NextActive = null; - } - - public void GiveUpFocus(IDockContent content) - { - DockContentHandler handler = content.DockHandler; - if (!handler.Form.ContainsFocus) - return; - - if (IsFocusTrackingSuspended) - DockPanel.DummyControl.Focus(); - - if (LastActiveContent == content) - { - IDockContent prev = handler.PreviousActive; - if (prev != null) - Activate(prev); - else if (ListContent.Count > 0) - Activate(ListContent[ListContent.Count - 1]); - } - else if (LastActiveContent != null) - Activate(LastActiveContent); - else if (ListContent.Count > 0) - Activate(ListContent[ListContent.Count - 1]); - } - - private static bool ContentContains(IDockContent content, IntPtr hWnd) - { - Control control = Control.FromChildHandle(hWnd); - for (Control parent = control; parent != null; parent = parent.Parent) - if (parent == content.DockHandler.Form) - return true; - - return false; - } - - private int m_countSuspendFocusTracking = 0; - public void SuspendFocusTracking() - { - m_countSuspendFocusTracking++; - m_localWindowsHook.HookInvoked -= m_hookEventHandler; - } - - public void ResumeFocusTracking() - { - if (m_countSuspendFocusTracking > 0) - m_countSuspendFocusTracking--; - - if (m_countSuspendFocusTracking == 0) - { - if (ContentActivating != null) - { - Activate(ContentActivating); - ContentActivating = null; - } - m_localWindowsHook.HookInvoked += m_hookEventHandler; - if (!InRefreshActiveWindow) - RefreshActiveWindow(); - } - } - - public bool IsFocusTrackingSuspended - { - get { return m_countSuspendFocusTracking != 0; } - } - - // Windows hook event handler - private void HookEventHandler(object sender, HookEventArgs e) - { - Win32.Msgs msg = (Win32.Msgs)Marshal.ReadInt32(e.lParam, IntPtr.Size * 3); - - if (msg == Win32.Msgs.WM_KILLFOCUS) - { - IntPtr wParam = Marshal.ReadIntPtr(e.lParam, IntPtr.Size * 2); - DockPane pane = GetPaneFromHandle(wParam); - if (pane == null) - RefreshActiveWindow(); - } - else if (msg == Win32.Msgs.WM_SETFOCUS) - RefreshActiveWindow(); - } - - private DockPane GetPaneFromHandle(IntPtr hWnd) - { - Control control = Control.FromChildHandle(hWnd); - - IDockContent content = null; - DockPane pane = null; - for (; control != null; control = control.Parent) - { - content = control as IDockContent; - if (content != null) - content.DockHandler.ActiveWindowHandle = hWnd; - - if (content != null && content.DockHandler.DockPanel == DockPanel) - return content.DockHandler.Pane; - - pane = control as DockPane; - if (pane != null && pane.DockPanel == DockPanel) - break; - } - - return pane; - } - - private bool m_inRefreshActiveWindow = false; - private bool InRefreshActiveWindow - { - get { return m_inRefreshActiveWindow; } - } - - private void RefreshActiveWindow() - { - SuspendFocusTracking(); - m_inRefreshActiveWindow = true; - - DockPane oldActivePane = ActivePane; - IDockContent oldActiveContent = ActiveContent; - IDockContent oldActiveDocument = ActiveDocument; - - SetActivePane(); - SetActiveContent(); - SetActiveDocumentPane(); - SetActiveDocument(); - DockPanel.AutoHideWindow.RefreshActivePane(); - - ResumeFocusTracking(); - m_inRefreshActiveWindow = false; - - if (oldActiveContent != ActiveContent) - DockPanel.OnActiveContentChanged(EventArgs.Empty); - if (oldActiveDocument != ActiveDocument) - DockPanel.OnActiveDocumentChanged(EventArgs.Empty); - if (oldActivePane != ActivePane) - DockPanel.OnActivePaneChanged(EventArgs.Empty); - } - - private DockPane m_activePane = null; - public DockPane ActivePane - { - get { return m_activePane; } - } - - private void SetActivePane() - { - DockPane value = GetPaneFromHandle(NativeMethods.GetFocus()); - if (m_activePane == value) - return; - - if (m_activePane != null) - m_activePane.SetIsActivated(false); - - m_activePane = value; - - if (m_activePane != null) - m_activePane.SetIsActivated(true); - } - - private IDockContent m_activeContent = null; - public IDockContent ActiveContent - { - get { return m_activeContent; } - } - - internal void SetActiveContent() - { - IDockContent value = ActivePane == null ? null : ActivePane.ActiveContent; - - if (m_activeContent == value) - return; - - if (m_activeContent != null) - m_activeContent.DockHandler.IsActivated = false; - - m_activeContent = value; - - if (m_activeContent != null) - { - m_activeContent.DockHandler.IsActivated = true; - if (!DockHelper.IsDockStateAutoHide((m_activeContent.DockHandler.DockState))) - AddLastToActiveList(m_activeContent); - } - } - - private DockPane m_activeDocumentPane = null; - public DockPane ActiveDocumentPane - { - get { return m_activeDocumentPane; } - } - - private void SetActiveDocumentPane() - { - DockPane value = null; - - if (ActivePane != null && ActivePane.DockState == DockState.Document) - value = ActivePane; - - if (value == null && DockPanel.DockWindows != null) - { - if (ActiveDocumentPane == null) - value = DockPanel.DockWindows[DockState.Document].DefaultPane; - else if (ActiveDocumentPane.DockPanel != DockPanel || ActiveDocumentPane.DockState != DockState.Document) - value = DockPanel.DockWindows[DockState.Document].DefaultPane; - else - value = ActiveDocumentPane; - } - - if (m_activeDocumentPane == value) - return; - - if (m_activeDocumentPane != null) - m_activeDocumentPane.SetIsActiveDocumentPane(false); - - m_activeDocumentPane = value; - - if (m_activeDocumentPane != null) - m_activeDocumentPane.SetIsActiveDocumentPane(true); - } - - private IDockContent m_activeDocument = null; - public IDockContent ActiveDocument - { - get { return m_activeDocument; } - } - - private void SetActiveDocument() - { - IDockContent value = ActiveDocumentPane == null ? null : ActiveDocumentPane.ActiveContent; - - if (m_activeDocument == value) - return; - - m_activeDocument = value; - } - } - - private IFocusManager FocusManager - { - get { return m_focusManager; } - } - - internal IContentFocusManager ContentFocusManager - { - get { return m_focusManager; } - } - - internal void SaveFocus() - { - DummyControl.Focus(); - } - - [Browsable(false)] - public IDockContent ActiveContent - { - get { return FocusManager.ActiveContent; } - } - - [Browsable(false)] - public DockPane ActivePane - { - get { return FocusManager.ActivePane; } - } - - [Browsable(false)] - public IDockContent ActiveDocument - { - get { return FocusManager.ActiveDocument; } - } - - [Browsable(false)] - public DockPane ActiveDocumentPane - { - get { return FocusManager.ActiveDocumentPane; } - } - - private static readonly object ActiveDocumentChangedEvent = new object(); - [LocalizedCategory("Category_PropertyChanged")] - [LocalizedDescription("DockPanel_ActiveDocumentChanged_Description")] - public event EventHandler ActiveDocumentChanged - { - add { Events.AddHandler(ActiveDocumentChangedEvent, value); } - remove { Events.RemoveHandler(ActiveDocumentChangedEvent, value); } - } - protected virtual void OnActiveDocumentChanged(EventArgs e) - { - EventHandler handler = (EventHandler)Events[ActiveDocumentChangedEvent]; - if (handler != null) - handler(this, e); - } - - private static readonly object ActiveContentChangedEvent = new object(); - [LocalizedCategory("Category_PropertyChanged")] - [LocalizedDescription("DockPanel_ActiveContentChanged_Description")] - public event EventHandler ActiveContentChanged - { - add { Events.AddHandler(ActiveContentChangedEvent, value); } - remove { Events.RemoveHandler(ActiveContentChangedEvent, value); } - } - protected void OnActiveContentChanged(EventArgs e) - { - EventHandler handler = (EventHandler)Events[ActiveContentChangedEvent]; - if (handler != null) - handler(this, e); - } - - private static readonly object ActivePaneChangedEvent = new object(); - [LocalizedCategory("Category_PropertyChanged")] - [LocalizedDescription("DockPanel_ActivePaneChanged_Description")] - public event EventHandler ActivePaneChanged - { - add { Events.AddHandler(ActivePaneChangedEvent, value); } - remove { Events.RemoveHandler(ActivePaneChangedEvent, value); } - } - protected virtual void OnActivePaneChanged(EventArgs e) - { - EventHandler handler = (EventHandler)Events[ActivePaneChangedEvent]; - if (handler != null) - handler(this, e); - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.MdiClientController.cs b/src/DockPanel/Docking/DockPanel.MdiClientController.cs deleted file mode 100644 index 5f24eae..0000000 --- a/src/DockPanel/Docking/DockPanel.MdiClientController.cs +++ /dev/null @@ -1,430 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Runtime.InteropServices; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPanel - { - // This class comes from Jacob Slusser's MdiClientController class: - // http://www.codeproject.com/cs/miscctrl/mdiclientcontroller.asp - private class MdiClientController : NativeWindow, IComponent, IDisposable - { - private bool m_autoScroll = true; - private BorderStyle m_borderStyle = BorderStyle.Fixed3D; - private MdiClient m_mdiClient = null; - private Form m_parentForm = null; - private ISite m_site = null; - - public MdiClientController() - { - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if (disposing) - { - lock (this) - { - if (Site != null && Site.Container != null) - Site.Container.Remove(this); - - if (Disposed != null) - Disposed(this, EventArgs.Empty); - } - } - } - - public bool AutoScroll - { - get { return m_autoScroll; } - set - { - // By default the MdiClient control scrolls. It can appear though that - // there are no scrollbars by turning them off when the non-client - // area is calculated. I decided to expose this method following - // the .NET vernacular of an AutoScroll property. - m_autoScroll = value; - if (MdiClient != null) - UpdateStyles(); - } - } - - public BorderStyle BorderStyle - { - set - { - // Error-check the enum. - if (!Enum.IsDefined(typeof(BorderStyle), value)) - throw new InvalidEnumArgumentException(); - - m_borderStyle = value; - - if (MdiClient == null) - return; - - // This property can actually be visible in design-mode, - // but to keep it consistent with the others, - // prevent this from being show at design-time. - if (Site != null && Site.DesignMode) - return; - - // There is no BorderStyle property exposed by the MdiClient class, - // but this can be controlled by Win32 functions. A Win32 ExStyle - // of WS_EX_CLIENTEDGE is equivalent to a Fixed3D border and a - // Style of WS_BORDER is equivalent to a FixedSingle border. - - // This code is inspired Jason Dori's article: - // "Adding designable borders to user controls". - // http://www.codeproject.com/cs/miscctrl/CsAddingBorders.asp - - // Get styles using Win32 calls - int style = NativeMethods.GetWindowLong(MdiClient.Handle, (int)Win32.GetWindowLongIndex.GWL_STYLE); - int exStyle = NativeMethods.GetWindowLong(MdiClient.Handle, (int)Win32.GetWindowLongIndex.GWL_EXSTYLE); - - // Add or remove style flags as necessary. - switch (m_borderStyle) - { - case BorderStyle.Fixed3D: - exStyle |= (int)Win32.WindowExStyles.WS_EX_CLIENTEDGE; - style &= ~((int)Win32.WindowStyles.WS_BORDER); - break; - - case BorderStyle.FixedSingle: - exStyle &= ~((int)Win32.WindowExStyles.WS_EX_CLIENTEDGE); - style |= (int)Win32.WindowStyles.WS_BORDER; - break; - - case BorderStyle.None: - style &= ~((int)Win32.WindowStyles.WS_BORDER); - exStyle &= ~((int)Win32.WindowExStyles.WS_EX_CLIENTEDGE); - break; - } - - // Set the styles using Win32 calls - NativeMethods.SetWindowLong(MdiClient.Handle, (int)Win32.GetWindowLongIndex.GWL_STYLE, style); - NativeMethods.SetWindowLong(MdiClient.Handle, (int)Win32.GetWindowLongIndex.GWL_EXSTYLE, exStyle); - - // Cause an update of the non-client area. - UpdateStyles(); - } - } - - public MdiClient MdiClient - { - get { return m_mdiClient; } - } - - [Browsable(false)] - public Form ParentForm - { - get { return m_parentForm; } - set - { - // If the ParentForm has previously been set, - // unwire events connected to the old parent. - if (m_parentForm != null) - { - m_parentForm.HandleCreated -= new EventHandler(ParentFormHandleCreated); - m_parentForm.MdiChildActivate -= new EventHandler(ParentFormMdiChildActivate); - } - - m_parentForm = value; - - if (m_parentForm == null) - return; - - // If the parent form has not been created yet, - // wait to initialize the MDI client until it is. - if (m_parentForm.IsHandleCreated) - { - InitializeMdiClient(); - RefreshProperties(); - } - else - m_parentForm.HandleCreated += new EventHandler(ParentFormHandleCreated); - - m_parentForm.MdiChildActivate += new EventHandler(ParentFormMdiChildActivate); - } - } - - public ISite Site - { - get { return m_site; } - set - { - m_site = value; - - if (m_site == null) - return; - - // If the component is dropped onto a form during design-time, - // set the ParentForm property. - IDesignerHost host = (value.GetService(typeof(IDesignerHost)) as IDesignerHost); - if (host != null) - { - Form parent = host.RootComponent as Form; - if (parent != null) - ParentForm = parent; - } - } - } - - public void RenewMdiClient() - { - // Reinitialize the MdiClient and its properties. - InitializeMdiClient(); - RefreshProperties(); - } - - public event EventHandler Disposed; - - public event EventHandler HandleAssigned; - - public event EventHandler MdiChildActivate; - - public event LayoutEventHandler Layout; - - protected virtual void OnHandleAssigned(EventArgs e) - { - // Raise the HandleAssigned event. - if (HandleAssigned != null) - HandleAssigned(this, e); - } - - protected virtual void OnMdiChildActivate(EventArgs e) - { - // Raise the MdiChildActivate event - if (MdiChildActivate != null) - MdiChildActivate(this, e); - } - - protected virtual void OnLayout(LayoutEventArgs e) - { - // Raise the Layout event - if (Layout != null) - Layout(this, e); - } - - public event PaintEventHandler Paint; - - protected virtual void OnPaint(PaintEventArgs e) - { - // Raise the Paint event. - if (Paint != null) - Paint(this, e); - } - - protected override void WndProc(ref Message m) - { - switch (m.Msg) - { - case (int)Win32.Msgs.WM_NCCALCSIZE: - // If AutoScroll is set to false, hide the scrollbars when the control - // calculates its non-client area. - if (!AutoScroll) - NativeMethods.ShowScrollBar(m.HWnd, (int)Win32.ScrollBars.SB_BOTH, 0 /*false*/); - break; - } - - base.WndProc(ref m); - } - - private void ParentFormHandleCreated(object sender, EventArgs e) - { - // The form has been created, unwire the event, and initialize the MdiClient. - this.m_parentForm.HandleCreated -= new EventHandler(ParentFormHandleCreated); - InitializeMdiClient(); - RefreshProperties(); - } - - private void ParentFormMdiChildActivate(object sender, EventArgs e) - { - OnMdiChildActivate(e); - } - - private void MdiClientLayout(object sender, LayoutEventArgs e) - { - OnLayout(e); - } - - private void MdiClientHandleDestroyed(object sender, EventArgs e) - { - // If the MdiClient handle has been released, drop the reference and - // release the handle. - if (m_mdiClient != null) - { - m_mdiClient.HandleDestroyed -= new EventHandler(MdiClientHandleDestroyed); - m_mdiClient = null; - } - - ReleaseHandle(); - } - - private void InitializeMdiClient() - { - // If the mdiClient has previously been set, unwire events connected - // to the old MDI. - if (MdiClient != null) - { - MdiClient.HandleDestroyed -= new EventHandler(MdiClientHandleDestroyed); - MdiClient.Layout -= new LayoutEventHandler(MdiClientLayout); - } - - if (ParentForm == null) - return; - - // Get the MdiClient from the parent form. - foreach (Control control in ParentForm.Controls) - { - // If the form is an MDI container, it will contain an MdiClient control - // just as it would any other control. - - m_mdiClient = control as MdiClient; - if (m_mdiClient == null) - continue; - - // Assign the MdiClient Handle to the NativeWindow. - ReleaseHandle(); - AssignHandle(MdiClient.Handle); - - // Raise the HandleAssigned event. - OnHandleAssigned(EventArgs.Empty); - - // Monitor the MdiClient for when its handle is destroyed. - MdiClient.HandleDestroyed += new EventHandler(MdiClientHandleDestroyed); - MdiClient.Layout += new LayoutEventHandler(MdiClientLayout); - - break; - } - } - - private void RefreshProperties() - { - // Refresh all the properties - BorderStyle = m_borderStyle; - AutoScroll = m_autoScroll; - } - - private void UpdateStyles() - { - // To show style changes, the non-client area must be repainted. Using the - // control's Invalidate method does not affect the non-client area. - // Instead use a Win32 call to signal the style has changed. - NativeMethods.SetWindowPos(MdiClient.Handle, IntPtr.Zero, 0, 0, 0, 0, - Win32.FlagsSetWindowPos.SWP_NOACTIVATE | - Win32.FlagsSetWindowPos.SWP_NOMOVE | - Win32.FlagsSetWindowPos.SWP_NOSIZE | - Win32.FlagsSetWindowPos.SWP_NOZORDER | - Win32.FlagsSetWindowPos.SWP_NOOWNERZORDER | - Win32.FlagsSetWindowPos.SWP_FRAMECHANGED); - } - } - - private MdiClientController m_mdiClientController = null; - private MdiClientController GetMdiClientController() - { - if (m_mdiClientController == null) - { - m_mdiClientController = new MdiClientController(); - m_mdiClientController.HandleAssigned += new EventHandler(MdiClientHandleAssigned); - m_mdiClientController.MdiChildActivate += new EventHandler(ParentFormMdiChildActivate); - m_mdiClientController.Layout += new LayoutEventHandler(MdiClient_Layout); - } - - return m_mdiClientController; - } - - private void ParentFormMdiChildActivate(object sender, EventArgs e) - { - if (GetMdiClientController().ParentForm == null) - return; - - IDockContent content = GetMdiClientController().ParentForm.ActiveMdiChild as IDockContent; - if (content == null) - return; - - if (content.DockHandler.DockPanel == this && content.DockHandler.Pane != null) - content.DockHandler.Pane.ActiveContent = content; - } - - private bool MdiClientExists - { - get { return GetMdiClientController().MdiClient != null; } - } - - private void SetMdiClientBounds(Rectangle bounds) - { - GetMdiClientController().MdiClient.Bounds = bounds; - } - - private void SuspendMdiClientLayout() - { - if (GetMdiClientController().MdiClient != null) - GetMdiClientController().MdiClient.SuspendLayout(); - } - - private void ResumeMdiClientLayout(bool perform) - { - if (GetMdiClientController().MdiClient != null) - GetMdiClientController().MdiClient.ResumeLayout(perform); - } - - private void PerformMdiClientLayout() - { - if (GetMdiClientController().MdiClient != null) - GetMdiClientController().MdiClient.PerformLayout(); - } - - // Called when: - // 1. DockPanel.DocumentStyle changed - // 2. DockPanel.Visible changed - // 3. MdiClientController.Handle assigned - private void SetMdiClient() - { - MdiClientController controller = GetMdiClientController(); - - if (this.DocumentStyle == DocumentStyle.DockingMdi) - { - controller.AutoScroll = false; - controller.BorderStyle = BorderStyle.None; - if (MdiClientExists) - controller.MdiClient.Dock = DockStyle.Fill; - } - else if (DocumentStyle == DocumentStyle.DockingSdi || DocumentStyle == DocumentStyle.DockingWindow) - { - controller.AutoScroll = true; - controller.BorderStyle = BorderStyle.Fixed3D; - if (MdiClientExists) - controller.MdiClient.Dock = DockStyle.Fill; - } - else if (this.DocumentStyle == DocumentStyle.SystemMdi) - { - controller.AutoScroll = true; - controller.BorderStyle = BorderStyle.Fixed3D; - if (controller.MdiClient != null) - { - controller.MdiClient.Dock = DockStyle.None; - controller.MdiClient.Bounds = SystemMdiClientBounds; - } - } - } - - internal Rectangle RectangleToMdiClient(Rectangle rect) - { - if (MdiClientExists) - return GetMdiClientController().MdiClient.RectangleToClient(rect); - else - return Rectangle.Empty; - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.Persistor.cs b/src/DockPanel/Docking/DockPanel.Persistor.cs deleted file mode 100644 index 6536bfd..0000000 --- a/src/DockPanel/Docking/DockPanel.Persistor.cs +++ /dev/null @@ -1,781 +0,0 @@ -using System; -using System.ComponentModel; -using System.Windows.Forms; -using System.Drawing; -using WeifenLuo.WinFormsUI.Docking; -using System.IO; -using System.Text; -using System.Xml; -using System.Globalization; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPanel - { - private static class Persistor - { - private const string ConfigFileVersion = "1.0"; - private static string[] CompatibleConfigFileVersions = new string[] { }; - - private class DummyContent : DockContent - { - } - - private struct DockPanelStruct - { - private double m_dockLeftPortion; - public double DockLeftPortion - { - get { return m_dockLeftPortion; } - set { m_dockLeftPortion = value; } - } - - private double m_dockRightPortion; - public double DockRightPortion - { - get { return m_dockRightPortion; } - set { m_dockRightPortion = value; } - } - - private double m_dockTopPortion; - public double DockTopPortion - { - get { return m_dockTopPortion; } - set { m_dockTopPortion = value; } - } - - private double m_dockBottomPortion; - public double DockBottomPortion - { - get { return m_dockBottomPortion; } - set { m_dockBottomPortion = value; } - } - - private int m_indexActiveDocumentPane; - public int IndexActiveDocumentPane - { - get { return m_indexActiveDocumentPane; } - set { m_indexActiveDocumentPane = value; } - } - - private int m_indexActivePane; - public int IndexActivePane - { - get { return m_indexActivePane; } - set { m_indexActivePane = value; } - } - } - - private struct ContentStruct - { - private string m_persistString; - public string PersistString - { - get { return m_persistString; } - set { m_persistString = value; } - } - - private double m_autoHidePortion; - public double AutoHidePortion - { - get { return m_autoHidePortion; } - set { m_autoHidePortion = value; } - } - - private bool m_isHidden; - public bool IsHidden - { - get { return m_isHidden; } - set { m_isHidden = value; } - } - - private bool m_isFloat; - public bool IsFloat - { - get { return m_isFloat; } - set { m_isFloat = value; } - } - } - - private struct PaneStruct - { - private DockState m_dockState; - public DockState DockState - { - get { return m_dockState; } - set { m_dockState = value; } - } - - private int m_indexActiveContent; - public int IndexActiveContent - { - get { return m_indexActiveContent; } - set { m_indexActiveContent = value; } - } - - private int[] m_indexContents; - public int[] IndexContents - { - get { return m_indexContents; } - set { m_indexContents = value; } - } - - private int m_zOrderIndex; - public int ZOrderIndex - { - get { return m_zOrderIndex; } - set { m_zOrderIndex = value; } - } - } - - private struct NestedPane - { - private int m_indexPane; - public int IndexPane - { - get { return m_indexPane; } - set { m_indexPane = value; } - } - - private int m_indexPrevPane; - public int IndexPrevPane - { - get { return m_indexPrevPane; } - set { m_indexPrevPane = value; } - } - - private DockAlignment m_alignment; - public DockAlignment Alignment - { - get { return m_alignment; } - set { m_alignment = value; } - } - - private double m_proportion; - public double Proportion - { - get { return m_proportion; } - set { m_proportion = value; } - } - } - - private struct DockWindowStruct - { - private DockState m_dockState; - public DockState DockState - { - get { return m_dockState; } - set { m_dockState = value; } - } - - private int m_zOrderIndex; - public int ZOrderIndex - { - get { return m_zOrderIndex; } - set { m_zOrderIndex = value; } - } - - private NestedPane[] m_nestedPanes; - public NestedPane[] NestedPanes - { - get { return m_nestedPanes; } - set { m_nestedPanes = value; } - } - } - - private struct FloatWindowStruct - { - private Rectangle m_bounds; - public Rectangle Bounds - { - get { return m_bounds; } - set { m_bounds = value; } - } - - private int m_zOrderIndex; - public int ZOrderIndex - { - get { return m_zOrderIndex; } - set { m_zOrderIndex = value; } - } - - private NestedPane[] m_nestedPanes; - public NestedPane[] NestedPanes - { - get { return m_nestedPanes; } - set { m_nestedPanes = value; } - } - } - - public static void SaveAsXml(DockPanel dockPanel, string fileName) - { - SaveAsXml(dockPanel, fileName, Encoding.Unicode); - } - - public static void SaveAsXml(DockPanel dockPanel, string fileName, Encoding encoding) - { - FileStream fs = new FileStream(fileName, FileMode.Create); - try - { - SaveAsXml(dockPanel, fs, encoding); - } - finally - { - fs.Close(); - } - } - - public static void SaveAsXml(DockPanel dockPanel, Stream stream, Encoding encoding) - { - SaveAsXml(dockPanel, stream, encoding, false); - } - - public static void SaveAsXml(DockPanel dockPanel, Stream stream, Encoding encoding, bool upstream) - { - XmlTextWriter xmlOut = new XmlTextWriter(stream, encoding); - - // Use indenting for readability - xmlOut.Formatting = Formatting.Indented; - - if (!upstream) - xmlOut.WriteStartDocument(); - - // Always begin file with identification and warning - xmlOut.WriteComment(Strings.DockPanel_Persistor_XmlFileComment1); - xmlOut.WriteComment(Strings.DockPanel_Persistor_XmlFileComment2); - - // Associate a version number with the root element so that future version of the code - // will be able to be backwards compatible or at least recognise out of date versions - xmlOut.WriteStartElement("DockPanel"); - xmlOut.WriteAttributeString("FormatVersion", ConfigFileVersion); - xmlOut.WriteAttributeString("DockLeftPortion", dockPanel.DockLeftPortion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("DockRightPortion", dockPanel.DockRightPortion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("DockTopPortion", dockPanel.DockTopPortion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("DockBottomPortion", dockPanel.DockBottomPortion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("ActiveDocumentPane", dockPanel.Panes.IndexOf(dockPanel.ActiveDocumentPane).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("ActivePane", dockPanel.Panes.IndexOf(dockPanel.ActivePane).ToString(CultureInfo.InvariantCulture)); - - // Contents - xmlOut.WriteStartElement("Contents"); - xmlOut.WriteAttributeString("Count", dockPanel.Contents.Count.ToString(CultureInfo.InvariantCulture)); - foreach (IDockContent content in dockPanel.Contents) - { - xmlOut.WriteStartElement("Content"); - xmlOut.WriteAttributeString("ID", dockPanel.Contents.IndexOf(content).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("PersistString", content.DockHandler.PersistString); - xmlOut.WriteAttributeString("AutoHidePortion", content.DockHandler.AutoHidePortion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("IsHidden", content.DockHandler.IsHidden.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("IsFloat", content.DockHandler.IsFloat.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); - - // Panes - xmlOut.WriteStartElement("Panes"); - xmlOut.WriteAttributeString("Count", dockPanel.Panes.Count.ToString(CultureInfo.InvariantCulture)); - foreach (DockPane pane in dockPanel.Panes) - { - xmlOut.WriteStartElement("Pane"); - xmlOut.WriteAttributeString("ID", dockPanel.Panes.IndexOf(pane).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("DockState", pane.DockState.ToString()); - xmlOut.WriteAttributeString("ActiveContent", dockPanel.Contents.IndexOf(pane.ActiveContent).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteStartElement("Contents"); - xmlOut.WriteAttributeString("Count", pane.Contents.Count.ToString(CultureInfo.InvariantCulture)); - foreach (IDockContent content in pane.Contents) - { - xmlOut.WriteStartElement("Content"); - xmlOut.WriteAttributeString("ID", pane.Contents.IndexOf(content).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("RefID", dockPanel.Contents.IndexOf(content).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); - - // DockWindows - xmlOut.WriteStartElement("DockWindows"); - int dockWindowId = 0; - foreach (DockWindow dw in dockPanel.DockWindows) - { - xmlOut.WriteStartElement("DockWindow"); - xmlOut.WriteAttributeString("ID", dockWindowId.ToString(CultureInfo.InvariantCulture)); - dockWindowId++; - xmlOut.WriteAttributeString("DockState", dw.DockState.ToString()); - xmlOut.WriteAttributeString("ZOrderIndex", dockPanel.Controls.IndexOf(dw).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteStartElement("NestedPanes"); - xmlOut.WriteAttributeString("Count", dw.NestedPanes.Count.ToString(CultureInfo.InvariantCulture)); - foreach (DockPane pane in dw.NestedPanes) - { - xmlOut.WriteStartElement("Pane"); - xmlOut.WriteAttributeString("ID", dw.NestedPanes.IndexOf(pane).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("RefID", dockPanel.Panes.IndexOf(pane).ToString(CultureInfo.InvariantCulture)); - NestedDockingStatus status = pane.NestedDockingStatus; - xmlOut.WriteAttributeString("PrevPane", dockPanel.Panes.IndexOf(status.PreviousPane).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("Alignment", status.Alignment.ToString()); - xmlOut.WriteAttributeString("Proportion", status.Proportion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); - - // FloatWindows - RectangleConverter rectConverter = new RectangleConverter(); - xmlOut.WriteStartElement("FloatWindows"); - xmlOut.WriteAttributeString("Count", dockPanel.FloatWindows.Count.ToString(CultureInfo.InvariantCulture)); - foreach (FloatWindow fw in dockPanel.FloatWindows) - { - xmlOut.WriteStartElement("FloatWindow"); - xmlOut.WriteAttributeString("ID", dockPanel.FloatWindows.IndexOf(fw).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("Bounds", rectConverter.ConvertToInvariantString(fw.Bounds)); - xmlOut.WriteAttributeString("ZOrderIndex", fw.DockPanel.FloatWindows.IndexOf(fw).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteStartElement("NestedPanes"); - xmlOut.WriteAttributeString("Count", fw.NestedPanes.Count.ToString(CultureInfo.InvariantCulture)); - foreach (DockPane pane in fw.NestedPanes) - { - xmlOut.WriteStartElement("Pane"); - xmlOut.WriteAttributeString("ID", fw.NestedPanes.IndexOf(pane).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("RefID", dockPanel.Panes.IndexOf(pane).ToString(CultureInfo.InvariantCulture)); - NestedDockingStatus status = pane.NestedDockingStatus; - xmlOut.WriteAttributeString("PrevPane", dockPanel.Panes.IndexOf(status.PreviousPane).ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteAttributeString("Alignment", status.Alignment.ToString()); - xmlOut.WriteAttributeString("Proportion", status.Proportion.ToString(CultureInfo.InvariantCulture)); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); - xmlOut.WriteEndElement(); - } - xmlOut.WriteEndElement(); // - - xmlOut.WriteEndElement(); - - if (!upstream) - { - xmlOut.WriteEndDocument(); - xmlOut.Close(); - } - else - xmlOut.Flush(); - } - - public static void LoadFromXml(DockPanel dockPanel, string fileName, DeserializeDockContent deserializeContent) - { - FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); - try - { - LoadFromXml(dockPanel, fs, deserializeContent); - } - finally - { - fs.Close(); - } - } - - public static void LoadFromXml(DockPanel dockPanel, Stream stream, DeserializeDockContent deserializeContent) - { - LoadFromXml(dockPanel, stream, deserializeContent, true); - } - - private static ContentStruct[] LoadContents(XmlTextReader xmlIn) - { - int countOfContents = Convert.ToInt32(xmlIn.GetAttribute("Count"), CultureInfo.InvariantCulture); - ContentStruct[] contents = new ContentStruct[countOfContents]; - MoveToNextElement(xmlIn); - for (int i = 0; i < countOfContents; i++) - { - int id = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "Content" || id != i) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - - contents[i].PersistString = xmlIn.GetAttribute("PersistString"); - contents[i].AutoHidePortion = Convert.ToDouble(xmlIn.GetAttribute("AutoHidePortion"), CultureInfo.InvariantCulture); - contents[i].IsHidden = Convert.ToBoolean(xmlIn.GetAttribute("IsHidden"), CultureInfo.InvariantCulture); - contents[i].IsFloat = Convert.ToBoolean(xmlIn.GetAttribute("IsFloat"), CultureInfo.InvariantCulture); - MoveToNextElement(xmlIn); - } - - return contents; - } - - private static PaneStruct[] LoadPanes(XmlTextReader xmlIn) - { - EnumConverter dockStateConverter = new EnumConverter(typeof(DockState)); - int countOfPanes = Convert.ToInt32(xmlIn.GetAttribute("Count"), CultureInfo.InvariantCulture); - PaneStruct[] panes = new PaneStruct[countOfPanes]; - MoveToNextElement(xmlIn); - for (int i = 0; i < countOfPanes; i++) - { - int id = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "Pane" || id != i) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - - panes[i].DockState = (DockState)dockStateConverter.ConvertFrom(xmlIn.GetAttribute("DockState")); - panes[i].IndexActiveContent = Convert.ToInt32(xmlIn.GetAttribute("ActiveContent"), CultureInfo.InvariantCulture); - panes[i].ZOrderIndex = -1; - - MoveToNextElement(xmlIn); - if (xmlIn.Name != "Contents") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - int countOfPaneContents = Convert.ToInt32(xmlIn.GetAttribute("Count"), CultureInfo.InvariantCulture); - panes[i].IndexContents = new int[countOfPaneContents]; - MoveToNextElement(xmlIn); - for (int j = 0; j < countOfPaneContents; j++) - { - int id2 = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "Content" || id2 != j) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - - panes[i].IndexContents[j] = Convert.ToInt32(xmlIn.GetAttribute("RefID"), CultureInfo.InvariantCulture); - MoveToNextElement(xmlIn); - } - } - - return panes; - } - - private static DockWindowStruct[] LoadDockWindows(XmlTextReader xmlIn, DockPanel dockPanel) - { - EnumConverter dockStateConverter = new EnumConverter(typeof(DockState)); - EnumConverter dockAlignmentConverter = new EnumConverter(typeof(DockAlignment)); - int countOfDockWindows = dockPanel.DockWindows.Count; - DockWindowStruct[] dockWindows = new DockWindowStruct[countOfDockWindows]; - MoveToNextElement(xmlIn); - for (int i = 0; i < countOfDockWindows; i++) - { - int id = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "DockWindow" || id != i) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - - dockWindows[i].DockState = (DockState)dockStateConverter.ConvertFrom(xmlIn.GetAttribute("DockState")); - dockWindows[i].ZOrderIndex = Convert.ToInt32(xmlIn.GetAttribute("ZOrderIndex"), CultureInfo.InvariantCulture); - MoveToNextElement(xmlIn); - if (xmlIn.Name != "DockList" && xmlIn.Name != "NestedPanes") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - int countOfNestedPanes = Convert.ToInt32(xmlIn.GetAttribute("Count"), CultureInfo.InvariantCulture); - dockWindows[i].NestedPanes = new NestedPane[countOfNestedPanes]; - MoveToNextElement(xmlIn); - for (int j = 0; j < countOfNestedPanes; j++) - { - int id2 = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "Pane" || id2 != j) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - dockWindows[i].NestedPanes[j].IndexPane = Convert.ToInt32(xmlIn.GetAttribute("RefID"), CultureInfo.InvariantCulture); - dockWindows[i].NestedPanes[j].IndexPrevPane = Convert.ToInt32(xmlIn.GetAttribute("PrevPane"), CultureInfo.InvariantCulture); - dockWindows[i].NestedPanes[j].Alignment = (DockAlignment)dockAlignmentConverter.ConvertFrom(xmlIn.GetAttribute("Alignment")); - dockWindows[i].NestedPanes[j].Proportion = Convert.ToDouble(xmlIn.GetAttribute("Proportion"), CultureInfo.InvariantCulture); - MoveToNextElement(xmlIn); - } - } - - return dockWindows; - } - - private static FloatWindowStruct[] LoadFloatWindows(XmlTextReader xmlIn) - { - EnumConverter dockAlignmentConverter = new EnumConverter(typeof(DockAlignment)); - RectangleConverter rectConverter = new RectangleConverter(); - int countOfFloatWindows = Convert.ToInt32(xmlIn.GetAttribute("Count"), CultureInfo.InvariantCulture); - FloatWindowStruct[] floatWindows = new FloatWindowStruct[countOfFloatWindows]; - MoveToNextElement(xmlIn); - for (int i = 0; i < countOfFloatWindows; i++) - { - int id = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "FloatWindow" || id != i) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - - floatWindows[i].Bounds = (Rectangle)rectConverter.ConvertFromInvariantString(xmlIn.GetAttribute("Bounds")); - floatWindows[i].ZOrderIndex = Convert.ToInt32(xmlIn.GetAttribute("ZOrderIndex"), CultureInfo.InvariantCulture); - MoveToNextElement(xmlIn); - if (xmlIn.Name != "DockList" && xmlIn.Name != "NestedPanes") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - int countOfNestedPanes = Convert.ToInt32(xmlIn.GetAttribute("Count"), CultureInfo.InvariantCulture); - floatWindows[i].NestedPanes = new NestedPane[countOfNestedPanes]; - MoveToNextElement(xmlIn); - for (int j = 0; j < countOfNestedPanes; j++) - { - int id2 = Convert.ToInt32(xmlIn.GetAttribute("ID"), CultureInfo.InvariantCulture); - if (xmlIn.Name != "Pane" || id2 != j) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - floatWindows[i].NestedPanes[j].IndexPane = Convert.ToInt32(xmlIn.GetAttribute("RefID"), CultureInfo.InvariantCulture); - floatWindows[i].NestedPanes[j].IndexPrevPane = Convert.ToInt32(xmlIn.GetAttribute("PrevPane"), CultureInfo.InvariantCulture); - floatWindows[i].NestedPanes[j].Alignment = (DockAlignment)dockAlignmentConverter.ConvertFrom(xmlIn.GetAttribute("Alignment")); - floatWindows[i].NestedPanes[j].Proportion = Convert.ToDouble(xmlIn.GetAttribute("Proportion"), CultureInfo.InvariantCulture); - MoveToNextElement(xmlIn); - } - } - - return floatWindows; - } - - public static void LoadFromXml(DockPanel dockPanel, Stream stream, DeserializeDockContent deserializeContent, bool closeStream) - { - - if (dockPanel.Contents.Count != 0) - throw new InvalidOperationException(Strings.DockPanel_LoadFromXml_AlreadyInitialized); - - XmlTextReader xmlIn = new XmlTextReader(stream); - xmlIn.WhitespaceHandling = WhitespaceHandling.None; - xmlIn.MoveToContent(); - - while (!xmlIn.Name.Equals("DockPanel")) - { - if (!MoveToNextElement(xmlIn)) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - } - - string formatVersion = xmlIn.GetAttribute("FormatVersion"); - if (!IsFormatVersionValid(formatVersion)) - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidFormatVersion); - - DockPanelStruct dockPanelStruct = new DockPanelStruct(); - dockPanelStruct.DockLeftPortion = Convert.ToDouble(xmlIn.GetAttribute("DockLeftPortion"), CultureInfo.InvariantCulture); - dockPanelStruct.DockRightPortion = Convert.ToDouble(xmlIn.GetAttribute("DockRightPortion"), CultureInfo.InvariantCulture); - dockPanelStruct.DockTopPortion = Convert.ToDouble(xmlIn.GetAttribute("DockTopPortion"), CultureInfo.InvariantCulture); - dockPanelStruct.DockBottomPortion = Convert.ToDouble(xmlIn.GetAttribute("DockBottomPortion"), CultureInfo.InvariantCulture); - dockPanelStruct.IndexActiveDocumentPane = Convert.ToInt32(xmlIn.GetAttribute("ActiveDocumentPane"), CultureInfo.InvariantCulture); - dockPanelStruct.IndexActivePane = Convert.ToInt32(xmlIn.GetAttribute("ActivePane"), CultureInfo.InvariantCulture); - - // Load Contents - MoveToNextElement(xmlIn); - if (xmlIn.Name != "Contents") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - ContentStruct[] contents = LoadContents(xmlIn); - - // Load Panes - if (xmlIn.Name != "Panes") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - PaneStruct[] panes = LoadPanes(xmlIn); - - // Load DockWindows - if (xmlIn.Name != "DockWindows") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - DockWindowStruct[] dockWindows = LoadDockWindows(xmlIn, dockPanel); - - // Load FloatWindows - if (xmlIn.Name != "FloatWindows") - throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); - FloatWindowStruct[] floatWindows = LoadFloatWindows(xmlIn); - - if (closeStream) - xmlIn.Close(); - - dockPanel.SuspendLayout(true); - - dockPanel.DockLeftPortion = dockPanelStruct.DockLeftPortion; - dockPanel.DockRightPortion = dockPanelStruct.DockRightPortion; - dockPanel.DockTopPortion = dockPanelStruct.DockTopPortion; - dockPanel.DockBottomPortion = dockPanelStruct.DockBottomPortion; - - // Set DockWindow ZOrders - int prevMaxDockWindowZOrder = int.MaxValue; - for (int i = 0; i < dockWindows.Length; i++) - { - int maxDockWindowZOrder = -1; - int index = -1; - for (int j = 0; j < dockWindows.Length; j++) - { - if (dockWindows[j].ZOrderIndex > maxDockWindowZOrder && dockWindows[j].ZOrderIndex < prevMaxDockWindowZOrder) - { - maxDockWindowZOrder = dockWindows[j].ZOrderIndex; - index = j; - } - } - - dockPanel.DockWindows[dockWindows[index].DockState].BringToFront(); - prevMaxDockWindowZOrder = maxDockWindowZOrder; - } - - // Create Contents - for (int i = 0; i < contents.Length; i++) - { - IDockContent content = deserializeContent(contents[i].PersistString); - if (content == null) - content = new DummyContent(); - content.DockHandler.DockPanel = dockPanel; - content.DockHandler.AutoHidePortion = contents[i].AutoHidePortion; - content.DockHandler.IsHidden = true; - content.DockHandler.IsFloat = contents[i].IsFloat; - } - - // Create panes - for (int i = 0; i < panes.Length; i++) - { - DockPane pane = null; - for (int j = 0; j < panes[i].IndexContents.Length; j++) - { - IDockContent content = dockPanel.Contents[panes[i].IndexContents[j]]; - if (j == 0) - pane = dockPanel.DockPaneFactory.CreateDockPane(content, panes[i].DockState, false); - else if (panes[i].DockState == DockState.Float) - content.DockHandler.FloatPane = pane; - else - content.DockHandler.PanelPane = pane; - } - } - - // Assign Panes to DockWindows - for (int i = 0; i < dockWindows.Length; i++) - { - for (int j = 0; j < dockWindows[i].NestedPanes.Length; j++) - { - DockWindow dw = dockPanel.DockWindows[dockWindows[i].DockState]; - int indexPane = dockWindows[i].NestedPanes[j].IndexPane; - DockPane pane = dockPanel.Panes[indexPane]; - int indexPrevPane = dockWindows[i].NestedPanes[j].IndexPrevPane; - DockPane prevPane = (indexPrevPane == -1) ? dw.NestedPanes.GetDefaultPreviousPane(pane) : dockPanel.Panes[indexPrevPane]; - DockAlignment alignment = dockWindows[i].NestedPanes[j].Alignment; - double proportion = dockWindows[i].NestedPanes[j].Proportion; - pane.DockTo(dw, prevPane, alignment, proportion); - if (panes[indexPane].DockState == dw.DockState) - panes[indexPane].ZOrderIndex = dockWindows[i].ZOrderIndex; - } - } - - // Create float windows - for (int i = 0; i < floatWindows.Length; i++) - { - FloatWindow fw = null; - for (int j = 0; j < floatWindows[i].NestedPanes.Length; j++) - { - int indexPane = floatWindows[i].NestedPanes[j].IndexPane; - DockPane pane = dockPanel.Panes[indexPane]; - if (j == 0) - fw = dockPanel.FloatWindowFactory.CreateFloatWindow(dockPanel, pane, floatWindows[i].Bounds); - else - { - int indexPrevPane = floatWindows[i].NestedPanes[j].IndexPrevPane; - DockPane prevPane = indexPrevPane == -1 ? null : dockPanel.Panes[indexPrevPane]; - DockAlignment alignment = floatWindows[i].NestedPanes[j].Alignment; - double proportion = floatWindows[i].NestedPanes[j].Proportion; - pane.DockTo(fw, prevPane, alignment, proportion); - } - - if (panes[indexPane].DockState == fw.DockState) - panes[indexPane].ZOrderIndex = floatWindows[i].ZOrderIndex; - } - } - - // sort IDockContent by its Pane's ZOrder - int[] sortedContents = null; - if (contents.Length > 0) - { - sortedContents = new int[contents.Length]; - for (int i = 0; i < contents.Length; i++) - sortedContents[i] = i; - - int lastDocument = contents.Length; - for (int i = 0; i < contents.Length - 1; i++) - { - for (int j = i + 1; j < contents.Length; j++) - { - DockPane pane1 = dockPanel.Contents[sortedContents[i]].DockHandler.Pane; - int ZOrderIndex1 = pane1 == null ? 0 : panes[dockPanel.Panes.IndexOf(pane1)].ZOrderIndex; - DockPane pane2 = dockPanel.Contents[sortedContents[j]].DockHandler.Pane; - int ZOrderIndex2 = pane2 == null ? 0 : panes[dockPanel.Panes.IndexOf(pane2)].ZOrderIndex; - if (ZOrderIndex1 > ZOrderIndex2) - { - int temp = sortedContents[i]; - sortedContents[i] = sortedContents[j]; - sortedContents[j] = temp; - } - } - } - } - - // show non-document IDockContent first to avoid screen flickers - for (int i = 0; i < contents.Length; i++) - { - IDockContent content = dockPanel.Contents[sortedContents[i]]; - if (content.DockHandler.Pane != null && content.DockHandler.Pane.DockState != DockState.Document) - content.DockHandler.IsHidden = contents[sortedContents[i]].IsHidden; - } - - // after all non-document IDockContent, show document IDockContent - for (int i = 0; i < contents.Length; i++) - { - IDockContent content = dockPanel.Contents[sortedContents[i]]; - if (content.DockHandler.Pane != null && content.DockHandler.Pane.DockState == DockState.Document) - content.DockHandler.IsHidden = contents[sortedContents[i]].IsHidden; - } - - for (int i = 0; i < panes.Length; i++) - dockPanel.Panes[i].ActiveContent = panes[i].IndexActiveContent == -1 ? null : dockPanel.Contents[panes[i].IndexActiveContent]; - - if (dockPanelStruct.IndexActiveDocumentPane != -1) - dockPanel.Panes[dockPanelStruct.IndexActiveDocumentPane].Activate(); - - if (dockPanelStruct.IndexActivePane != -1) - dockPanel.Panes[dockPanelStruct.IndexActivePane].Activate(); - - for (int i = dockPanel.Contents.Count - 1; i >= 0; i--) - if (dockPanel.Contents[i] is DummyContent) - dockPanel.Contents[i].DockHandler.Form.Close(); - - dockPanel.ResumeLayout(true, true); - } - - private static bool MoveToNextElement(XmlTextReader xmlIn) - { - if (!xmlIn.Read()) - return false; - - while (xmlIn.NodeType == XmlNodeType.EndElement) - { - if (!xmlIn.Read()) - return false; - } - - return true; - } - - private static bool IsFormatVersionValid(string formatVersion) - { - if (formatVersion == ConfigFileVersion) - return true; - - foreach (string s in CompatibleConfigFileVersions) - if (s == formatVersion) - return true; - - return false; - } - } - - public void SaveAsXml(string fileName) - { - Persistor.SaveAsXml(this, fileName); - } - - public void SaveAsXml(string fileName, Encoding encoding) - { - Persistor.SaveAsXml(this, fileName, encoding); - } - - public void SaveAsXml(Stream stream, Encoding encoding) - { - Persistor.SaveAsXml(this, stream, encoding); - } - - public void SaveAsXml(Stream stream, Encoding encoding, bool upstream) - { - Persistor.SaveAsXml(this, stream, encoding, upstream); - } - - public void LoadFromXml(string fileName, DeserializeDockContent deserializeContent) - { - Persistor.LoadFromXml(this, fileName, deserializeContent); - } - - public void LoadFromXml(Stream stream, DeserializeDockContent deserializeContent) - { - Persistor.LoadFromXml(this, stream, deserializeContent); - } - - public void LoadFromXml(Stream stream, DeserializeDockContent deserializeContent, bool closeStream) - { - Persistor.LoadFromXml(this, stream, deserializeContent, closeStream); - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.SplitterDragHandler.cs b/src/DockPanel/Docking/DockPanel.SplitterDragHandler.cs deleted file mode 100644 index 8689e16..0000000 --- a/src/DockPanel/Docking/DockPanel.SplitterDragHandler.cs +++ /dev/null @@ -1,165 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - partial class DockPanel - { - private sealed class SplitterDragHandler : DragHandler - { - private class SplitterOutline - { - public SplitterOutline() - { - m_dragForm = new DragForm(); - SetDragForm(Rectangle.Empty); - DragForm.BackColor = Color.Black; - DragForm.Opacity = 0.7; - DragForm.Show(false); - } - - DragForm m_dragForm; - private DragForm DragForm - { - get { return m_dragForm; } - } - - public void Show(Rectangle rect) - { - SetDragForm(rect); - } - - public void Close() - { - DragForm.Close(); - } - - private void SetDragForm(Rectangle rect) - { - DragForm.Bounds = rect; - if (rect == Rectangle.Empty) - DragForm.Region = new Region(Rectangle.Empty); - else if (DragForm.Region != null) - DragForm.Region = null; - } - } - - public SplitterDragHandler(DockPanel dockPanel) - : base(dockPanel) - { - } - - public new ISplitterDragSource DragSource - { - get { return base.DragSource as ISplitterDragSource; } - private set { base.DragSource = value; } - } - - private SplitterOutline m_outline; - private SplitterOutline Outline - { - get { return m_outline; } - set { m_outline = value; } - } - - private Rectangle m_rectSplitter; - private Rectangle RectSplitter - { - get { return m_rectSplitter; } - set { m_rectSplitter = value; } - } - - public void BeginDrag(ISplitterDragSource dragSource, Rectangle rectSplitter) - { - DragSource = dragSource; - RectSplitter = rectSplitter; - - if (!BeginDrag()) - { - DragSource = null; - return; - } - - Outline = new SplitterOutline(); - Outline.Show(rectSplitter); - DragSource.BeginDrag(rectSplitter); - } - - protected override void OnDragging() - { - Outline.Show(GetSplitterOutlineBounds(Control.MousePosition)); - } - - protected override void OnEndDrag(bool abort) - { - DockPanel.SuspendLayout(true); - - Outline.Close(); - - if (!abort) - DragSource.MoveSplitter(GetMovingOffset(Control.MousePosition)); - - DragSource.EndDrag(); - DockPanel.ResumeLayout(true, true); - } - - private int GetMovingOffset(Point ptMouse) - { - Rectangle rect = GetSplitterOutlineBounds(ptMouse); - if (DragSource.IsVertical) - return rect.X - RectSplitter.X; - else - return rect.Y - RectSplitter.Y; - } - - private Rectangle GetSplitterOutlineBounds(Point ptMouse) - { - Rectangle rectLimit = DragSource.DragLimitBounds; - - Rectangle rect = RectSplitter; - if (rectLimit.Width <= 0 || rectLimit.Height <= 0) - return rect; - - if (DragSource.IsVertical) - { - rect.X += ptMouse.X - StartMousePosition.X; - rect.Height = rectLimit.Height; - } - else - { - rect.Y += ptMouse.Y - StartMousePosition.Y; - rect.Width = rectLimit.Width; - } - - if (rect.Left < rectLimit.Left) - rect.X = rectLimit.X; - if (rect.Top < rectLimit.Top) - rect.Y = rectLimit.Y; - if (rect.Right > rectLimit.Right) - rect.X -= rect.Right - rectLimit.Right; - if (rect.Bottom > rectLimit.Bottom) - rect.Y -= rect.Bottom - rectLimit.Bottom; - - return rect; - } - } - - private SplitterDragHandler m_splitterDragHandler = null; - private SplitterDragHandler GetSplitterDragHandler() - { - if (m_splitterDragHandler == null) - m_splitterDragHandler = new SplitterDragHandler(this); - return m_splitterDragHandler; - } - - internal void BeginDrag(ISplitterDragSource dragSource, Rectangle rectSplitter) - { - GetSplitterDragHandler().BeginDrag(dragSource, rectSplitter); - } - } -} diff --git a/src/DockPanel/Docking/DockPanel.bmp b/src/DockPanel/Docking/DockPanel.bmp deleted file mode 100644 index 10d6858f9490df8c44bc54bb02ab98d05d052484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmbV_(G7qg3~$x7}%dq7e+dr!<0rf4+`axo8$wKBceVOu6aY@k6LOI;(>ATU_|AQ5wMj X8lVvjpaB}em)YQocLrtG_;(y0(ZY@L diff --git a/src/DockPanel/Docking/DockPanel.cs b/src/DockPanel/Docking/DockPanel.cs deleted file mode 100644 index e9c7594..0000000 --- a/src/DockPanel/Docking/DockPanel.cs +++ /dev/null @@ -1,1028 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Windows.Forms; -using System.ComponentModel; -using System.Runtime.InteropServices; -using System.IO; -using System.Text; -using System.Diagnostics.CodeAnalysis; -using System.Collections.Generic; - -// To simplify the process of finding the toolbox bitmap resource: -// #1 Create an internal class called "resfinder" outside of the root namespace. -// #2 Use "resfinder" in the toolbox bitmap attribute instead of the control name. -// #3 use the "." string to locate the resource. -// See: http://www.bobpowell.net/toolboxbitmap.htm -internal class resfinder -{ -} - -namespace WeifenLuo.WinFormsUI.Docking -{ - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "0#")] - public delegate IDockContent DeserializeDockContent(string persistString); - - [LocalizedDescription("DockPanel_Description")] - [Designer(typeof(System.Windows.Forms.Design.ControlDesigner))] - [ToolboxBitmap(typeof(resfinder), "WeifenLuo.WinFormsUI.Docking.DockPanel.bmp")] - [DefaultProperty("DocumentStyle")] - [DefaultEvent("ActiveContentChanged")] - public partial class DockPanel : Panel - { - private FocusManagerImpl m_focusManager; - private DockPanelExtender m_extender; - private DockPaneCollection m_panes; - private FloatWindowCollection m_floatWindows; - private AutoHideWindowControl m_autoHideWindow; - private DockWindowCollection m_dockWindows; - private DockContent m_dummyContent; - private Control m_dummyControl; - - public DockPanel() - { - m_focusManager = new FocusManagerImpl(this); - m_extender = new DockPanelExtender(this); - m_panes = new DockPaneCollection(); - m_floatWindows = new FloatWindowCollection(); - - SuspendLayout(); - - m_autoHideWindow = new AutoHideWindowControl(this); - m_autoHideWindow.Visible = false; - SetAutoHideWindowParent(); - - m_dummyControl = new DummyControl(); - m_dummyControl.Bounds = new Rectangle(0, 0, 1, 1); - Controls.Add(m_dummyControl); - - m_dockWindows = new DockWindowCollection(this); - Controls.AddRange(new Control[] { - DockWindows[DockState.Document], - DockWindows[DockState.DockLeft], - DockWindows[DockState.DockRight], - DockWindows[DockState.DockTop], - DockWindows[DockState.DockBottom] - }); - - m_dummyContent = new DockContent(); - ResumeLayout(); - } - - private Color m_BackColor; - /// - /// Determines the color with which the client rectangle will be drawn. - /// If you take this property instead of the BackColor it will not have any influence on the borders to the surrounding controls (DockPane). - /// If you use BackColor the borders to the surrounding controls (DockPane) will also change there colors. - /// Alternatively you can use both of them (BackColor to draw the define the color of the borders and DockBackColor to define the color of the client rectangle). - /// For Backgroundimages: Set your prefered Image, then set the DockBackColor and the BackColor to the same Color (Control) - /// - public Color DockBackColor - { - get - { - return !m_BackColor.IsEmpty ? m_BackColor : base.BackColor; - } - set - { - m_BackColor = value; - } - } - - private AutoHideStripBase m_autoHideStripControl = null; - internal AutoHideStripBase AutoHideStripControl - { - get - { - if (m_autoHideStripControl == null) - { - m_autoHideStripControl = AutoHideStripFactory.CreateAutoHideStrip(this); - Controls.Add(m_autoHideStripControl); - } - return m_autoHideStripControl; - } - } - internal void ResetAutoHideStripControl() - { - if (m_autoHideStripControl != null) - m_autoHideStripControl.Dispose(); - - m_autoHideStripControl = null; - } - - private void MdiClientHandleAssigned(object sender, EventArgs e) - { - SetMdiClient(); - PerformLayout(); - } - - private void MdiClient_Layout(object sender, LayoutEventArgs e) - { - if (DocumentStyle != DocumentStyle.DockingMdi) - return; - - foreach (DockPane pane in Panes) - if (pane.DockState == DockState.Document) - pane.SetContentBounds(); - - InvalidateWindowRegion(); - } - - private bool m_disposed = false; - protected override void Dispose(bool disposing) - { - lock (this) - { - if (!m_disposed && disposing) - { - m_focusManager.Dispose(); - if (m_mdiClientController != null) - { - m_mdiClientController.HandleAssigned -= new EventHandler(MdiClientHandleAssigned); - m_mdiClientController.MdiChildActivate -= new EventHandler(ParentFormMdiChildActivate); - m_mdiClientController.Layout -= new LayoutEventHandler(MdiClient_Layout); - m_mdiClientController.Dispose(); - } - FloatWindows.Dispose(); - Panes.Dispose(); - DummyContent.Dispose(); - - m_disposed = true; - } - - base.Dispose(disposing); - } - } - - [Browsable(false)] - public IDockContent ActiveAutoHideContent - { - get { return AutoHideWindow.ActiveContent; } - set { AutoHideWindow.ActiveContent = value; } - } - - private bool m_allowEndUserDocking = true; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_AllowEndUserDocking_Description")] - [DefaultValue(true)] - public bool AllowEndUserDocking - { - get { return m_allowEndUserDocking; } - set { m_allowEndUserDocking = value; } - } - - private bool m_allowEndUserNestedDocking = true; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_AllowEndUserNestedDocking_Description")] - [DefaultValue(true)] - public bool AllowEndUserNestedDocking - { - get { return m_allowEndUserNestedDocking; } - set { m_allowEndUserNestedDocking = value; } - } - - private DockContentCollection m_contents = new DockContentCollection(); - [Browsable(false)] - public DockContentCollection Contents - { - get { return m_contents; } - } - - internal DockContent DummyContent - { - get { return m_dummyContent; } - } - - private bool m_rightToLeftLayout = false; - [DefaultValue(false)] - [LocalizedCategory("Appearance")] - [LocalizedDescription("DockPanel_RightToLeftLayout_Description")] - public bool RightToLeftLayout - { - get { return m_rightToLeftLayout; } - set - { - if (m_rightToLeftLayout == value) - return; - - m_rightToLeftLayout = value; - foreach (FloatWindow floatWindow in FloatWindows) - floatWindow.RightToLeftLayout = value; - } - } - - protected override void OnRightToLeftChanged(EventArgs e) - { - base.OnRightToLeftChanged(e); - foreach (FloatWindow floatWindow in FloatWindows) - { - if (floatWindow.RightToLeft != RightToLeft) - floatWindow.RightToLeft = RightToLeft; - } - } - - private bool m_showDocumentIcon = false; - [DefaultValue(false)] - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_ShowDocumentIcon_Description")] - public bool ShowDocumentIcon - { - get { return m_showDocumentIcon; } - set - { - if (m_showDocumentIcon == value) - return; - - m_showDocumentIcon = value; - Refresh(); - } - } - - private DockPanelSkin m_dockPanelSkin = new DockPanelSkin(); - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DockPanelSkin")] - public DockPanelSkin Skin - { - get { return m_dockPanelSkin; } - set { m_dockPanelSkin = value; } - } - - private DocumentTabStripLocation m_documentTabStripLocation = DocumentTabStripLocation.Top; - [DefaultValue(DocumentTabStripLocation.Top)] - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DocumentTabStripLocation")] - public DocumentTabStripLocation DocumentTabStripLocation - { - get { return m_documentTabStripLocation; } - set { m_documentTabStripLocation = value; } - } - - [Browsable(false)] - public DockPanelExtender Extender - { - get { return m_extender; } - } - - public DockPanelExtender.IDockPaneFactory DockPaneFactory - { - get { return Extender.DockPaneFactory; } - } - - public DockPanelExtender.IFloatWindowFactory FloatWindowFactory - { - get { return Extender.FloatWindowFactory; } - } - - internal DockPanelExtender.IDockPaneCaptionFactory DockPaneCaptionFactory - { - get { return Extender.DockPaneCaptionFactory; } - } - - internal DockPanelExtender.IDockPaneStripFactory DockPaneStripFactory - { - get { return Extender.DockPaneStripFactory; } - } - - internal DockPanelExtender.IAutoHideStripFactory AutoHideStripFactory - { - get { return Extender.AutoHideStripFactory; } - } - - [Browsable(false)] - public DockPaneCollection Panes - { - get { return m_panes; } - } - - internal Rectangle DockArea - { - get - { - return new Rectangle(DockPadding.Left, DockPadding.Top, - ClientRectangle.Width - DockPadding.Left - DockPadding.Right, - ClientRectangle.Height - DockPadding.Top - DockPadding.Bottom); - } - } - - private double m_dockBottomPortion = 0.25; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DockBottomPortion_Description")] - [DefaultValue(0.25)] - public double DockBottomPortion - { - get { return m_dockBottomPortion; } - set - { - if (value <= 0) - throw new ArgumentOutOfRangeException("value"); - - if (value == m_dockBottomPortion) - return; - - m_dockBottomPortion = value; - - if (m_dockBottomPortion < 1 && m_dockTopPortion < 1) - { - if (m_dockTopPortion + m_dockBottomPortion > 1) - m_dockTopPortion = 1 - m_dockBottomPortion; - } - - PerformLayout(); - } - } - - private double m_dockLeftPortion = 0.25; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DockLeftPortion_Description")] - [DefaultValue(0.25)] - public double DockLeftPortion - { - get { return m_dockLeftPortion; } - set - { - if (value <= 0) - throw new ArgumentOutOfRangeException("value"); - - if (value == m_dockLeftPortion) - return; - - m_dockLeftPortion = value; - - if (m_dockLeftPortion < 1 && m_dockRightPortion < 1) - { - if (m_dockLeftPortion + m_dockRightPortion > 1) - m_dockRightPortion = 1 - m_dockLeftPortion; - } - PerformLayout(); - } - } - - private double m_dockRightPortion = 0.25; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DockRightPortion_Description")] - [DefaultValue(0.25)] - public double DockRightPortion - { - get { return m_dockRightPortion; } - set - { - if (value <= 0) - throw new ArgumentOutOfRangeException("value"); - - if (value == m_dockRightPortion) - return; - - m_dockRightPortion = value; - - if (m_dockLeftPortion < 1 && m_dockRightPortion < 1) - { - if (m_dockLeftPortion + m_dockRightPortion > 1) - m_dockLeftPortion = 1 - m_dockRightPortion; - } - PerformLayout(); - } - } - - private double m_dockTopPortion = 0.25; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DockTopPortion_Description")] - [DefaultValue(0.25)] - public double DockTopPortion - { - get { return m_dockTopPortion; } - set - { - if (value <= 0) - throw new ArgumentOutOfRangeException("value"); - - if (value == m_dockTopPortion) - return; - - m_dockTopPortion = value; - - if (m_dockTopPortion < 1 && m_dockBottomPortion < 1) - { - if (m_dockTopPortion + m_dockBottomPortion > 1) - m_dockBottomPortion = 1 - m_dockTopPortion; - } - PerformLayout(); - } - } - - [Browsable(false)] - public DockWindowCollection DockWindows - { - get { return m_dockWindows; } - } - - public void UpdateDockWindowZOrder(DockStyle dockStyle, bool fullPanelEdge) - { - if (dockStyle == DockStyle.Left) - { - if (fullPanelEdge) - DockWindows[DockState.DockLeft].SendToBack(); - else - DockWindows[DockState.DockLeft].BringToFront(); - } - else if (dockStyle == DockStyle.Right) - { - if (fullPanelEdge) - DockWindows[DockState.DockRight].SendToBack(); - else - DockWindows[DockState.DockRight].BringToFront(); - } - else if (dockStyle == DockStyle.Top) - { - if (fullPanelEdge) - DockWindows[DockState.DockTop].SendToBack(); - else - DockWindows[DockState.DockTop].BringToFront(); - } - else if (dockStyle == DockStyle.Bottom) - { - if (fullPanelEdge) - DockWindows[DockState.DockBottom].SendToBack(); - else - DockWindows[DockState.DockBottom].BringToFront(); - } - } - - public int DocumentsCount - { - get - { - int count = 0; - foreach (IDockContent content in Documents) - count++; - - return count; - } - } - - public IDockContent[] DocumentsToArray() - { - int count = DocumentsCount; - IDockContent[] documents = new IDockContent[count]; - int i = 0; - foreach (IDockContent content in Documents) - { - documents[i] = content; - i++; - } - - return documents; - } - - public IEnumerable Documents - { - get - { - foreach (IDockContent content in Contents) - { - if (content.DockHandler.DockState == DockState.Document) - yield return content; - } - } - } - - private Rectangle DocumentRectangle - { - get - { - Rectangle rect = DockArea; - if (DockWindows[DockState.DockLeft].VisibleNestedPanes.Count != 0) - { - rect.X += (int)(DockArea.Width * DockLeftPortion); - rect.Width -= (int)(DockArea.Width * DockLeftPortion); - } - if (DockWindows[DockState.DockRight].VisibleNestedPanes.Count != 0) - rect.Width -= (int)(DockArea.Width * DockRightPortion); - if (DockWindows[DockState.DockTop].VisibleNestedPanes.Count != 0) - { - rect.Y += (int)(DockArea.Height * DockTopPortion); - rect.Height -= (int)(DockArea.Height * DockTopPortion); - } - if (DockWindows[DockState.DockBottom].VisibleNestedPanes.Count != 0) - rect.Height -= (int)(DockArea.Height * DockBottomPortion); - - return rect; - } - } - - private Control DummyControl - { - get { return m_dummyControl; } - } - - [Browsable(false)] - public FloatWindowCollection FloatWindows - { - get { return m_floatWindows; } - } - - private Size m_defaultFloatWindowSize = new Size(300, 300); - [Category("Layout")] - [LocalizedDescription("DockPanel_DefaultFloatWindowSize_Description")] - public Size DefaultFloatWindowSize - { - get { return m_defaultFloatWindowSize; } - set { m_defaultFloatWindowSize = value; } - } - private bool ShouldSerializeDefaultFloatWindowSize() - { - return DefaultFloatWindowSize != new Size(300, 300); - } - - private DocumentStyle m_documentStyle = DocumentStyle.DockingMdi; - [LocalizedCategory("Category_Docking")] - [LocalizedDescription("DockPanel_DocumentStyle_Description")] - [DefaultValue(DocumentStyle.DockingMdi)] - public DocumentStyle DocumentStyle - { - get { return m_documentStyle; } - set - { - if (value == m_documentStyle) - return; - - if (!Enum.IsDefined(typeof(DocumentStyle), value)) - throw new InvalidEnumArgumentException(); - - if (value == DocumentStyle.SystemMdi && DockWindows[DockState.Document].VisibleNestedPanes.Count > 0) - throw new InvalidEnumArgumentException(); - - m_documentStyle = value; - - SuspendLayout(true); - - SetAutoHideWindowParent(); - SetMdiClient(); - InvalidateWindowRegion(); - - foreach (IDockContent content in Contents) - { - if (content.DockHandler.DockState == DockState.Document) - content.DockHandler.SetPaneAndVisible(content.DockHandler.Pane); - } - - PerformMdiClientLayout(); - - ResumeLayout(true, true); - } - } - - private int GetDockWindowSize(DockState dockState) - { - if (dockState == DockState.DockLeft || dockState == DockState.DockRight) - { - int width = ClientRectangle.Width - DockPadding.Left - DockPadding.Right; - int dockLeftSize = m_dockLeftPortion >= 1 ? (int)m_dockLeftPortion : (int)(width * m_dockLeftPortion); - int dockRightSize = m_dockRightPortion >= 1 ? (int)m_dockRightPortion : (int)(width * m_dockRightPortion); - - if (dockLeftSize < MeasurePane.MinSize) - dockLeftSize = MeasurePane.MinSize; - if (dockRightSize < MeasurePane.MinSize) - dockRightSize = MeasurePane.MinSize; - - if (dockLeftSize + dockRightSize > width - MeasurePane.MinSize) - { - int adjust = (dockLeftSize + dockRightSize) - (width - MeasurePane.MinSize); - dockLeftSize -= adjust / 2; - dockRightSize -= adjust / 2; - } - - return dockState == DockState.DockLeft ? dockLeftSize : dockRightSize; - } - else if (dockState == DockState.DockTop || dockState == DockState.DockBottom) - { - int height = ClientRectangle.Height - DockPadding.Top - DockPadding.Bottom; - int dockTopSize = m_dockTopPortion >= 1 ? (int)m_dockTopPortion : (int)(height * m_dockTopPortion); - int dockBottomSize = m_dockBottomPortion >= 1 ? (int)m_dockBottomPortion : (int)(height * m_dockBottomPortion); - - if (dockTopSize < MeasurePane.MinSize) - dockTopSize = MeasurePane.MinSize; - if (dockBottomSize < MeasurePane.MinSize) - dockBottomSize = MeasurePane.MinSize; - - if (dockTopSize + dockBottomSize > height - MeasurePane.MinSize) - { - int adjust = (dockTopSize + dockBottomSize) - (height - MeasurePane.MinSize); - dockTopSize -= adjust / 2; - dockBottomSize -= adjust / 2; - } - - return dockState == DockState.DockTop ? dockTopSize : dockBottomSize; - } - else - return 0; - } - - protected override void OnLayout(LayoutEventArgs levent) - { - SuspendLayout(true); - - AutoHideStripControl.Bounds = ClientRectangle; - - CalculateDockPadding(); - - DockWindows[DockState.DockLeft].Width = GetDockWindowSize(DockState.DockLeft); - DockWindows[DockState.DockRight].Width = GetDockWindowSize(DockState.DockRight); - DockWindows[DockState.DockTop].Height = GetDockWindowSize(DockState.DockTop); - DockWindows[DockState.DockBottom].Height = GetDockWindowSize(DockState.DockBottom); - - AutoHideWindow.Bounds = GetAutoHideWindowBounds(AutoHideWindowRectangle); - - DockWindows[DockState.Document].BringToFront(); - AutoHideWindow.BringToFront(); - - base.OnLayout(levent); - - if (DocumentStyle == DocumentStyle.SystemMdi && MdiClientExists) - { - SetMdiClientBounds(SystemMdiClientBounds); - InvalidateWindowRegion(); - } - else if (DocumentStyle == DocumentStyle.DockingMdi) - InvalidateWindowRegion(); - - ResumeLayout(true, true); - } - - internal Rectangle GetTabStripRectangle(DockState dockState) - { - return AutoHideStripControl.GetTabStripRectangle(dockState); - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - if (DockBackColor == BackColor) return; - - Graphics g = e.Graphics; - SolidBrush bgBrush = new SolidBrush(DockBackColor); - g.FillRectangle(bgBrush, ClientRectangle); - } - - internal void AddContent(IDockContent content) - { - if (content == null) - throw(new ArgumentNullException()); - - if (!Contents.Contains(content)) - { - Contents.Add(content); - OnContentAdded(new DockContentEventArgs(content)); - } - } - - internal void AddPane(DockPane pane) - { - if (Panes.Contains(pane)) - return; - - Panes.Add(pane); - } - - internal void AddFloatWindow(FloatWindow floatWindow) - { - if (FloatWindows.Contains(floatWindow)) - return; - - FloatWindows.Add(floatWindow); - } - - private void CalculateDockPadding() - { - DockPadding.All = 0; - - int height = AutoHideStripControl.MeasureHeight(); - - if (AutoHideStripControl.GetNumberOfPanes(DockState.DockLeftAutoHide) > 0) - DockPadding.Left = height; - if (AutoHideStripControl.GetNumberOfPanes(DockState.DockRightAutoHide) > 0) - DockPadding.Right = height; - if (AutoHideStripControl.GetNumberOfPanes(DockState.DockTopAutoHide) > 0) - DockPadding.Top = height; - if (AutoHideStripControl.GetNumberOfPanes(DockState.DockBottomAutoHide) > 0) - DockPadding.Bottom = height; - } - - internal void RemoveContent(IDockContent content) - { - if (content == null) - throw(new ArgumentNullException()); - - if (Contents.Contains(content)) - { - Contents.Remove(content); - OnContentRemoved(new DockContentEventArgs(content)); - } - } - - internal void RemovePane(DockPane pane) - { - if (!Panes.Contains(pane)) - return; - - Panes.Remove(pane); - } - - internal void RemoveFloatWindow(FloatWindow floatWindow) - { - if (!FloatWindows.Contains(floatWindow)) - return; - - FloatWindows.Remove(floatWindow); - } - - public void SetPaneIndex(DockPane pane, int index) - { - int oldIndex = Panes.IndexOf(pane); - if (oldIndex == -1) - throw(new ArgumentException(Strings.DockPanel_SetPaneIndex_InvalidPane)); - - if (index < 0 || index > Panes.Count - 1) - if (index != -1) - throw(new ArgumentOutOfRangeException(Strings.DockPanel_SetPaneIndex_InvalidIndex)); - - if (oldIndex == index) - return; - if (oldIndex == Panes.Count - 1 && index == -1) - return; - - Panes.Remove(pane); - if (index == -1) - Panes.Add(pane); - else if (oldIndex < index) - Panes.AddAt(pane, index - 1); - else - Panes.AddAt(pane, index); - } - - public void SuspendLayout(bool allWindows) - { - FocusManager.SuspendFocusTracking(); - SuspendLayout(); - if (allWindows) - SuspendMdiClientLayout(); - } - - public void ResumeLayout(bool performLayout, bool allWindows) - { - FocusManager.ResumeFocusTracking(); - ResumeLayout(performLayout); - if (allWindows) - ResumeMdiClientLayout(performLayout); - } - - internal Form ParentForm - { - get - { - if (!IsParentFormValid()) - throw new InvalidOperationException(Strings.DockPanel_ParentForm_Invalid); - - return GetMdiClientController().ParentForm; - } - } - - private bool IsParentFormValid() - { - if (DocumentStyle == DocumentStyle.DockingSdi || DocumentStyle == DocumentStyle.DockingWindow) - return true; - - if (!MdiClientExists) - GetMdiClientController().RenewMdiClient(); - - return (MdiClientExists); - } - - protected override void OnParentChanged(EventArgs e) - { - SetAutoHideWindowParent(); - GetMdiClientController().ParentForm = (this.Parent as Form); - base.OnParentChanged (e); - } - - private void SetAutoHideWindowParent() - { - Control parent; - if (DocumentStyle == DocumentStyle.DockingMdi || - DocumentStyle == DocumentStyle.SystemMdi) - parent = this.Parent; - else - parent = this; - if (AutoHideWindow.Parent != parent) - { - AutoHideWindow.Parent = parent; - AutoHideWindow.BringToFront(); - } - } - - protected override void OnVisibleChanged(EventArgs e) - { - base.OnVisibleChanged (e); - - if (Visible) - SetMdiClient(); - } - - private Rectangle SystemMdiClientBounds - { - get - { - if (!IsParentFormValid() || !Visible) - return Rectangle.Empty; - - Rectangle rect = ParentForm.RectangleToClient(RectangleToScreen(DocumentWindowBounds)); - return rect; - } - } - - internal Rectangle DocumentWindowBounds - { - get - { - Rectangle rectDocumentBounds = DisplayRectangle; - if (DockWindows[DockState.DockLeft].Visible) - { - rectDocumentBounds.X += DockWindows[DockState.DockLeft].Width; - rectDocumentBounds.Width -= DockWindows[DockState.DockLeft].Width; - } - if (DockWindows[DockState.DockRight].Visible) - rectDocumentBounds.Width -= DockWindows[DockState.DockRight].Width; - if (DockWindows[DockState.DockTop].Visible) - { - rectDocumentBounds.Y += DockWindows[DockState.DockTop].Height; - rectDocumentBounds.Height -= DockWindows[DockState.DockTop].Height; - } - if (DockWindows[DockState.DockBottom].Visible) - rectDocumentBounds.Height -= DockWindows[DockState.DockBottom].Height; - - return rectDocumentBounds; - - } - } - - private PaintEventHandler m_dummyControlPaintEventHandler = null; - private void InvalidateWindowRegion() - { - if (DesignMode) - return; - - if (m_dummyControlPaintEventHandler == null) - m_dummyControlPaintEventHandler = new PaintEventHandler(DummyControl_Paint); - - DummyControl.Paint += m_dummyControlPaintEventHandler; - DummyControl.Invalidate(); - } - - void DummyControl_Paint(object sender, PaintEventArgs e) - { - DummyControl.Paint -= m_dummyControlPaintEventHandler; - UpdateWindowRegion(); - } - - private void UpdateWindowRegion() - { - if (this.DocumentStyle == DocumentStyle.DockingMdi) - UpdateWindowRegion_ClipContent(); - else if (this.DocumentStyle == DocumentStyle.DockingSdi || - this.DocumentStyle == DocumentStyle.DockingWindow) - UpdateWindowRegion_FullDocumentArea(); - else if (this.DocumentStyle == DocumentStyle.SystemMdi) - UpdateWindowRegion_EmptyDocumentArea(); - } - - private void UpdateWindowRegion_FullDocumentArea() - { - SetRegion(null); - } - - private void UpdateWindowRegion_EmptyDocumentArea() - { - Rectangle rect = DocumentWindowBounds; - SetRegion(new Rectangle[] { rect }); - } - - private void UpdateWindowRegion_ClipContent() - { - int count = 0; - foreach (DockPane pane in this.Panes) - { - if (!pane.Visible || pane.DockState != DockState.Document) - continue; - - count ++; - } - - if (count == 0) - { - SetRegion(null); - return; - } - - Rectangle[] rects = new Rectangle[count]; - int i = 0; - foreach (DockPane pane in this.Panes) - { - if (!pane.Visible || pane.DockState != DockState.Document) - continue; - - rects[i] = RectangleToClient(pane.RectangleToScreen(pane.ContentRectangle)); - i++; - } - - SetRegion(rects); - } - - private Rectangle[] m_clipRects = null; - private void SetRegion(Rectangle[] clipRects) - { - if (!IsClipRectsChanged(clipRects)) - return; - - m_clipRects = clipRects; - - if (m_clipRects == null || m_clipRects.GetLength(0) == 0) - Region = null; - else - { - Region region = new Region(new Rectangle(0, 0, this.Width, this.Height)); - foreach (Rectangle rect in m_clipRects) - region.Exclude(rect); - Region = region; - } - } - - private bool IsClipRectsChanged(Rectangle[] clipRects) - { - if (clipRects == null && m_clipRects == null) - return false; - else if ((clipRects == null) != (m_clipRects == null)) - return true; - - foreach (Rectangle rect in clipRects) - { - bool matched = false; - foreach (Rectangle rect2 in m_clipRects) - { - if (rect == rect2) - { - matched = true; - break; - } - } - if (!matched) - return true; - } - - foreach (Rectangle rect2 in m_clipRects) - { - bool matched = false; - foreach (Rectangle rect in clipRects) - { - if (rect == rect2) - { - matched = true; - break; - } - } - if (!matched) - return true; - } - return false; - } - - private static readonly object ContentAddedEvent = new object(); - [LocalizedCategory("Category_DockingNotification")] - [LocalizedDescription("DockPanel_ContentAdded_Description")] - public event EventHandler ContentAdded - { - add { Events.AddHandler(ContentAddedEvent, value); } - remove { Events.RemoveHandler(ContentAddedEvent, value); } - } - protected virtual void OnContentAdded(DockContentEventArgs e) - { - EventHandler handler = (EventHandler)Events[ContentAddedEvent]; - if (handler != null) - handler(this, e); - } - - private static readonly object ContentRemovedEvent = new object(); - [LocalizedCategory("Category_DockingNotification")] - [LocalizedDescription("DockPanel_ContentRemoved_Description")] - public event EventHandler ContentRemoved - { - add { Events.AddHandler(ContentRemovedEvent, value); } - remove { Events.RemoveHandler(ContentRemovedEvent, value); } - } - protected virtual void OnContentRemoved(DockContentEventArgs e) - { - EventHandler handler = (EventHandler)Events[ContentRemovedEvent]; - if (handler != null) - handler(this, e); - } - } -} \ No newline at end of file diff --git a/src/DockPanel/Docking/DockPanelExtender.cs b/src/DockPanel/Docking/DockPanelExtender.cs deleted file mode 100644 index e304ea7..0000000 --- a/src/DockPanel/Docking/DockPanelExtender.cs +++ /dev/null @@ -1,225 +0,0 @@ -using System; -using System.Drawing; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public sealed class DockPanelExtender - { - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - public interface IDockPaneFactory - { - DockPane CreateDockPane(IDockContent content, DockState visibleState, bool show); - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "1#")] - DockPane CreateDockPane(IDockContent content, FloatWindow floatWindow, bool show); - DockPane CreateDockPane(IDockContent content, DockPane previousPane, DockAlignment alignment, double proportion, bool show); - [SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", MessageId = "1#")] - DockPane CreateDockPane(IDockContent content, Rectangle floatWindowBounds, bool show); - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - public interface IFloatWindowFactory - { - FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane); - FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds); - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - public interface IDockPaneCaptionFactory - { - DockPaneCaptionBase CreateDockPaneCaption(DockPane pane); - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - public interface IDockPaneStripFactory - { - DockPaneStripBase CreateDockPaneStrip(DockPane pane); - } - - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - public interface IAutoHideStripFactory - { - AutoHideStripBase CreateAutoHideStrip(DockPanel panel); - } - - #region DefaultDockPaneFactory - private class DefaultDockPaneFactory : IDockPaneFactory - { - public DockPane CreateDockPane(IDockContent content, DockState visibleState, bool show) - { - return new DockPane(content, visibleState, show); - } - - public DockPane CreateDockPane(IDockContent content, FloatWindow floatWindow, bool show) - { - return new DockPane(content, floatWindow, show); - } - - public DockPane CreateDockPane(IDockContent content, DockPane prevPane, DockAlignment alignment, double proportion, bool show) - { - return new DockPane(content, prevPane, alignment, proportion, show); - } - - public DockPane CreateDockPane(IDockContent content, Rectangle floatWindowBounds, bool show) - { - return new DockPane(content, floatWindowBounds, show); - } - } - #endregion - - #region DefaultFloatWindowFactory - private class DefaultFloatWindowFactory : IFloatWindowFactory - { - public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane) - { - return new FloatWindow(dockPanel, pane); - } - - public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) - { - return new FloatWindow(dockPanel, pane, bounds); - } - } - #endregion - - #region DefaultDockPaneCaptionFactory - private class DefaultDockPaneCaptionFactory : IDockPaneCaptionFactory - { - public DockPaneCaptionBase CreateDockPaneCaption(DockPane pane) - { - return new VS2005DockPaneCaption(pane); - } - } - #endregion - - #region DefaultDockPaneTabStripFactory - private class DefaultDockPaneStripFactory : IDockPaneStripFactory - { - public DockPaneStripBase CreateDockPaneStrip(DockPane pane) - { - return new VS2005DockPaneStrip(pane); - } - } - #endregion - - #region DefaultAutoHideStripFactory - private class DefaultAutoHideStripFactory : IAutoHideStripFactory - { - public AutoHideStripBase CreateAutoHideStrip(DockPanel panel) - { - return new VS2005AutoHideStrip(panel); - } - } - #endregion - - internal DockPanelExtender(DockPanel dockPanel) - { - m_dockPanel = dockPanel; - } - - private DockPanel m_dockPanel; - private DockPanel DockPanel - { - get { return m_dockPanel; } - } - - private IDockPaneFactory m_dockPaneFactory = null; - public IDockPaneFactory DockPaneFactory - { - get - { - if (m_dockPaneFactory == null) - m_dockPaneFactory = new DefaultDockPaneFactory(); - - return m_dockPaneFactory; - } - set - { - if (DockPanel.Panes.Count > 0) - throw new InvalidOperationException(); - - m_dockPaneFactory = value; - } - } - - private IFloatWindowFactory m_floatWindowFactory = null; - public IFloatWindowFactory FloatWindowFactory - { - get - { - if (m_floatWindowFactory == null) - m_floatWindowFactory = new DefaultFloatWindowFactory(); - - return m_floatWindowFactory; - } - set - { - if (DockPanel.FloatWindows.Count > 0) - throw new InvalidOperationException(); - - m_floatWindowFactory = value; - } - } - - private IDockPaneCaptionFactory m_dockPaneCaptionFactory = null; - public IDockPaneCaptionFactory DockPaneCaptionFactory - { - get - { - if (m_dockPaneCaptionFactory == null) - m_dockPaneCaptionFactory = new DefaultDockPaneCaptionFactory(); - - return m_dockPaneCaptionFactory; - } - set - { - if (DockPanel.Panes.Count > 0) - throw new InvalidOperationException(); - - m_dockPaneCaptionFactory = value; - } - } - - private IDockPaneStripFactory m_dockPaneStripFactory = null; - public IDockPaneStripFactory DockPaneStripFactory - { - get - { - if (m_dockPaneStripFactory == null) - m_dockPaneStripFactory = new DefaultDockPaneStripFactory(); - - return m_dockPaneStripFactory; - } - set - { - if (DockPanel.Contents.Count > 0) - throw new InvalidOperationException(); - - m_dockPaneStripFactory = value; - } - } - - private IAutoHideStripFactory m_autoHideStripFactory = null; - public IAutoHideStripFactory AutoHideStripFactory - { - get - { - if (m_autoHideStripFactory == null) - m_autoHideStripFactory = new DefaultAutoHideStripFactory(); - - return m_autoHideStripFactory; - } - set - { - if (DockPanel.Contents.Count > 0) - throw new InvalidOperationException(); - - if (m_autoHideStripFactory == value) - return; - - m_autoHideStripFactory = value; - DockPanel.ResetAutoHideStripControl(); - } - } - } -} diff --git a/src/DockPanel/Docking/DockPanelSkin.cs b/src/DockPanel/Docking/DockPanelSkin.cs deleted file mode 100644 index 3a0c1af..0000000 --- a/src/DockPanel/Docking/DockPanelSkin.cs +++ /dev/null @@ -1,421 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Drawing.Design; -using System.Windows.Forms.Design; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - #region DockPanelSkin classes - /// - /// The skin to use when displaying the DockPanel. - /// The skin allows custom gradient color schemes to be used when drawing the - /// DockStrips and Tabs. - /// - [TypeConverter(typeof(DockPanelSkinConverter))] - public class DockPanelSkin - { - private AutoHideStripSkin m_autoHideStripSkin; - private DockPaneStripSkin m_dockPaneStripSkin; - - public DockPanelSkin() - { - m_autoHideStripSkin = new AutoHideStripSkin(); - m_dockPaneStripSkin = new DockPaneStripSkin(); - } - - /// - /// The skin used to display the auto hide strips and tabs. - /// - public AutoHideStripSkin AutoHideStripSkin - { - get { return m_autoHideStripSkin; } - set { m_autoHideStripSkin = value; } - } - - /// - /// The skin used to display the Document and ToolWindow style DockStrips and Tabs. - /// - public DockPaneStripSkin DockPaneStripSkin - { - get { return m_dockPaneStripSkin; } - set { m_dockPaneStripSkin = value; } - } - } - - /// - /// The skin used to display the auto hide strip and tabs. - /// - [TypeConverter(typeof(AutoHideStripConverter))] - public class AutoHideStripSkin - { - private DockPanelGradient m_dockStripGradient; - private TabGradient m_TabGradient; - - public AutoHideStripSkin() - { - m_dockStripGradient = new DockPanelGradient(); - m_dockStripGradient.StartColor = SystemColors.ControlLight; - m_dockStripGradient.EndColor = SystemColors.ControlLight; - - m_TabGradient = new TabGradient(); - m_TabGradient.TextColor = SystemColors.ControlDarkDark; - } - - /// - /// The gradient color skin for the DockStrips. - /// - public DockPanelGradient DockStripGradient - { - get { return m_dockStripGradient; } - set { m_dockStripGradient = value; } - } - - /// - /// The gradient color skin for the Tabs. - /// - public TabGradient TabGradient - { - get { return m_TabGradient; } - set { m_TabGradient = value; } - } - } - - /// - /// The skin used to display the document and tool strips and tabs. - /// - [TypeConverter(typeof(DockPaneStripConverter))] - public class DockPaneStripSkin - { - private DockPaneStripGradient m_DocumentGradient; - private DockPaneStripToolWindowGradient m_ToolWindowGradient; - - public DockPaneStripSkin() - { - m_DocumentGradient = new DockPaneStripGradient(); - m_DocumentGradient.DockStripGradient.StartColor = SystemColors.Control; - m_DocumentGradient.DockStripGradient.EndColor = SystemColors.Control; - m_DocumentGradient.ActiveTabGradient.StartColor = SystemColors.ControlLightLight; - m_DocumentGradient.ActiveTabGradient.EndColor = SystemColors.ControlLightLight; - m_DocumentGradient.InactiveTabGradient.StartColor = SystemColors.ControlLight; - m_DocumentGradient.InactiveTabGradient.EndColor = SystemColors.ControlLight; - - m_ToolWindowGradient = new DockPaneStripToolWindowGradient(); - m_ToolWindowGradient.DockStripGradient.StartColor = SystemColors.ControlLight; - m_ToolWindowGradient.DockStripGradient.EndColor = SystemColors.ControlLight; - - m_ToolWindowGradient.ActiveTabGradient.StartColor = SystemColors.Control; - m_ToolWindowGradient.ActiveTabGradient.EndColor = SystemColors.Control; - - m_ToolWindowGradient.InactiveTabGradient.StartColor = Color.Transparent; - m_ToolWindowGradient.InactiveTabGradient.EndColor = Color.Transparent; - m_ToolWindowGradient.InactiveTabGradient.TextColor = SystemColors.ControlDarkDark; - - m_ToolWindowGradient.ActiveCaptionGradient.StartColor = SystemColors.GradientActiveCaption; - m_ToolWindowGradient.ActiveCaptionGradient.EndColor = SystemColors.ActiveCaption; - m_ToolWindowGradient.ActiveCaptionGradient.LinearGradientMode = LinearGradientMode.Vertical; - m_ToolWindowGradient.ActiveCaptionGradient.TextColor = SystemColors.ActiveCaptionText; - - m_ToolWindowGradient.InactiveCaptionGradient.StartColor = SystemColors.GradientInactiveCaption; - m_ToolWindowGradient.InactiveCaptionGradient.EndColor = SystemColors.GradientInactiveCaption; - m_ToolWindowGradient.InactiveCaptionGradient.LinearGradientMode = LinearGradientMode.Vertical; - m_ToolWindowGradient.InactiveCaptionGradient.TextColor = SystemColors.ControlText; - } - - /// - /// The skin used to display the Document style DockPane strip and tab. - /// - public DockPaneStripGradient DocumentGradient - { - get { return m_DocumentGradient; } - set { m_DocumentGradient = value; } - } - - /// - /// The skin used to display the ToolWindow style DockPane strip and tab. - /// - public DockPaneStripToolWindowGradient ToolWindowGradient - { - get { return m_ToolWindowGradient; } - set { m_ToolWindowGradient = value; } - } - } - - /// - /// The skin used to display the DockPane ToolWindow strip and tab. - /// - [TypeConverter(typeof(DockPaneStripGradientConverter))] - public class DockPaneStripToolWindowGradient : DockPaneStripGradient - { - private TabGradient m_activeCaptionGradient; - private TabGradient m_inactiveCaptionGradient; - - public DockPaneStripToolWindowGradient() - { - m_activeCaptionGradient = new TabGradient(); - m_inactiveCaptionGradient = new TabGradient(); - } - - /// - /// The skin used to display the active ToolWindow caption. - /// - public TabGradient ActiveCaptionGradient - { - get { return m_activeCaptionGradient; } - set { m_activeCaptionGradient = value; } - } - - /// - /// The skin used to display the inactive ToolWindow caption. - /// - public TabGradient InactiveCaptionGradient - { - get { return m_inactiveCaptionGradient; } - set { m_inactiveCaptionGradient = value; } - } - } - - /// - /// The skin used to display the DockPane strip and tab. - /// - [TypeConverter(typeof(DockPaneStripGradientConverter))] - public class DockPaneStripGradient - { - private DockPanelGradient m_dockStripGradient; - private TabGradient m_activeTabGradient; - private TabGradient m_inactiveTabGradient; - - public DockPaneStripGradient() - { - m_dockStripGradient = new DockPanelGradient(); - m_activeTabGradient = new TabGradient(); - m_inactiveTabGradient = new TabGradient(); - } - - /// - /// The gradient color skin for the DockStrip. - /// - public DockPanelGradient DockStripGradient - { - get { return m_dockStripGradient; } - set { m_dockStripGradient = value; } - } - - /// - /// The skin used to display the active DockPane tabs. - /// - public TabGradient ActiveTabGradient - { - get { return m_activeTabGradient; } - set { m_activeTabGradient = value; } - } - - /// - /// The skin used to display the inactive DockPane tabs. - /// - public TabGradient InactiveTabGradient - { - get { return m_inactiveTabGradient; } - set { m_inactiveTabGradient = value; } - } - } - - /// - /// The skin used to display the dock pane tab - /// - [TypeConverter(typeof(DockPaneTabGradientConverter))] - public class TabGradient : DockPanelGradient - { - private Color m_textColor; - - public TabGradient() - { - m_textColor = SystemColors.ControlText; - } - - /// - /// The text color. - /// - [DefaultValue(typeof(SystemColors), "ControlText")] - public Color TextColor - { - get { return m_textColor; } - set { m_textColor = value; } - } - } - - /// - /// The gradient color skin. - /// - [TypeConverter(typeof(DockPanelGradientConverter))] - public class DockPanelGradient - { - private Color m_startColor; - private Color m_endColor; - private LinearGradientMode m_linearGradientMode; - - public DockPanelGradient() - { - m_startColor = SystemColors.Control; - m_endColor = SystemColors.Control; - m_linearGradientMode = LinearGradientMode.Horizontal; - } - - /// - /// The beginning gradient color. - /// - [DefaultValue(typeof(SystemColors), "Control")] - public Color StartColor - { - get { return m_startColor; } - set { m_startColor = value; } - } - - /// - /// The ending gradient color. - /// - [DefaultValue(typeof(SystemColors), "Control")] - public Color EndColor - { - get { return m_endColor; } - set { m_endColor = value; } - } - - /// - /// The gradient mode to display the colors. - /// - [DefaultValue(LinearGradientMode.Horizontal)] - public LinearGradientMode LinearGradientMode - { - get { return m_linearGradientMode; } - set { m_linearGradientMode = value; } - } - } - - #endregion - - #region Converters - public class DockPanelSkinConverter : ExpandableObjectConverter - { - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - if (destinationType == typeof(DockPanelSkin)) - return true; - - return base.CanConvertTo(context, destinationType); - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (destinationType == typeof(String) && value is DockPanelSkin) - { - return "DockPanelSkin"; - } - return base.ConvertTo(context, culture, value, destinationType); - } - } - - public class DockPanelGradientConverter : ExpandableObjectConverter - { - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - if (destinationType == typeof(DockPanelGradient)) - return true; - - return base.CanConvertTo(context, destinationType); - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (destinationType == typeof(String) && value is DockPanelGradient) - { - return "DockPanelGradient"; - } - return base.ConvertTo(context, culture, value, destinationType); - } - } - - public class AutoHideStripConverter : ExpandableObjectConverter - { - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - if (destinationType == typeof(AutoHideStripSkin)) - return true; - - return base.CanConvertTo(context, destinationType); - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (destinationType == typeof(String) && value is AutoHideStripSkin) - { - return "AutoHideStripSkin"; - } - return base.ConvertTo(context, culture, value, destinationType); - } - } - - public class DockPaneStripConverter : ExpandableObjectConverter - { - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - if (destinationType == typeof(DockPaneStripSkin)) - return true; - - return base.CanConvertTo(context, destinationType); - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (destinationType == typeof(String) && value is DockPaneStripSkin) - { - return "DockPaneStripSkin"; - } - return base.ConvertTo(context, culture, value, destinationType); - } - } - - public class DockPaneStripGradientConverter : ExpandableObjectConverter - { - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - if (destinationType == typeof(DockPaneStripGradient)) - return true; - - return base.CanConvertTo(context, destinationType); - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (destinationType == typeof(String) && value is DockPaneStripGradient) - { - return "DockPaneStripGradient"; - } - return base.ConvertTo(context, culture, value, destinationType); - } - } - - public class DockPaneTabGradientConverter : ExpandableObjectConverter - { - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - if (destinationType == typeof(TabGradient)) - return true; - - return base.CanConvertTo(context, destinationType); - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (destinationType == typeof(String) && value is TabGradient) - { - return "DockPaneTabGradient"; - } - return base.ConvertTo(context, culture, value, destinationType); - } - } - #endregion -} diff --git a/src/DockPanel/Docking/DockWindow.SplitterControl.cs b/src/DockPanel/Docking/DockWindow.SplitterControl.cs deleted file mode 100644 index 3eaa653..0000000 --- a/src/DockPanel/Docking/DockWindow.SplitterControl.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public partial class DockWindow - { - private class SplitterControl : SplitterBase - { - protected override int SplitterSize - { - get { return Measures.SplitterSize; } - } - - protected override void StartDrag() - { - DockWindow window = Parent as DockWindow; - if (window == null) - return; - - window.DockPanel.BeginDrag(window, window.RectangleToScreen(Bounds)); - } - } - } -} diff --git a/src/DockPanel/Docking/DockWindow.cs b/src/DockPanel/Docking/DockWindow.cs deleted file mode 100644 index 4bbf423..0000000 --- a/src/DockPanel/Docking/DockWindow.cs +++ /dev/null @@ -1,243 +0,0 @@ -using System; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - [ToolboxItem(false)] - public partial class DockWindow : Panel, INestedPanesContainer, ISplitterDragSource - { - private DockPanel m_dockPanel; - private DockState m_dockState; - private SplitterControl m_splitter; - private NestedPaneCollection m_nestedPanes; - - internal DockWindow(DockPanel dockPanel, DockState dockState) - { - m_nestedPanes = new NestedPaneCollection(this); - m_dockPanel = dockPanel; - m_dockState = dockState; - Visible = false; - - SuspendLayout(); - - if (DockState == DockState.DockLeft || DockState == DockState.DockRight || - DockState == DockState.DockTop || DockState == DockState.DockBottom) - { - m_splitter = new SplitterControl(); - Controls.Add(m_splitter); - } - - if (DockState == DockState.DockLeft) - { - Dock = DockStyle.Left; - m_splitter.Dock = DockStyle.Right; - } - else if (DockState == DockState.DockRight) - { - Dock = DockStyle.Right; - m_splitter.Dock = DockStyle.Left; - } - else if (DockState == DockState.DockTop) - { - Dock = DockStyle.Top; - m_splitter.Dock = DockStyle.Bottom; - } - else if (DockState == DockState.DockBottom) - { - Dock = DockStyle.Bottom; - m_splitter.Dock = DockStyle.Top; - } - else if (DockState == DockState.Document) - { - Dock = DockStyle.Fill; - } - - ResumeLayout(); - } - - public VisibleNestedPaneCollection VisibleNestedPanes - { - get { return NestedPanes.VisibleNestedPanes; } - } - - public NestedPaneCollection NestedPanes - { - get { return m_nestedPanes; } - } - - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - public DockState DockState - { - get { return m_dockState; } - } - - public bool IsFloat - { - get { return DockState == DockState.Float; } - } - - internal DockPane DefaultPane - { - get { return VisibleNestedPanes.Count == 0 ? null : VisibleNestedPanes[0]; } - } - - public virtual Rectangle DisplayingRectangle - { - get - { - Rectangle rect = ClientRectangle; - // if DockWindow is document, exclude the border - if (DockState == DockState.Document) - { - rect.X += 1; - rect.Y += 1; - rect.Width -= 2; - rect.Height -= 2; - } - // exclude the splitter - else if (DockState == DockState.DockLeft) - rect.Width -= Measures.SplitterSize; - else if (DockState == DockState.DockRight) - { - rect.X += Measures.SplitterSize; - rect.Width -= Measures.SplitterSize; - } - else if (DockState == DockState.DockTop) - rect.Height -= Measures.SplitterSize; - else if (DockState == DockState.DockBottom) - { - rect.Y += Measures.SplitterSize; - rect.Height -= Measures.SplitterSize; - } - - return rect; - } - } - - protected override void OnPaint(PaintEventArgs e) - { - // if DockWindow is document, draw the border - if (DockState == DockState.Document) - e.Graphics.DrawRectangle(SystemPens.ControlDark, ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width - 1, ClientRectangle.Height - 1); - - base.OnPaint(e); - } - - protected override void OnLayout(LayoutEventArgs levent) - { - VisibleNestedPanes.Refresh(); - if (VisibleNestedPanes.Count == 0) - { - if (Visible) - Visible = false; - } - else if (!Visible) - { - Visible = true; - VisibleNestedPanes.Refresh(); - } - - base.OnLayout (levent); - } - - #region ISplitterDragSource Members - - void ISplitterDragSource.BeginDrag(Rectangle rectSplitter) - { - } - - void ISplitterDragSource.EndDrag() - { - } - - bool ISplitterDragSource.IsVertical - { - get { return (DockState == DockState.DockLeft || DockState == DockState.DockRight); } - } - - Rectangle ISplitterDragSource.DragLimitBounds - { - get - { - Rectangle rectLimit = DockPanel.DockArea; - Point location; - if ((Control.ModifierKeys & Keys.Shift) == 0) - location = Location; - else - location = DockPanel.DockArea.Location; - - if (((ISplitterDragSource)this).IsVertical) - { - rectLimit.X += MeasurePane.MinSize; - rectLimit.Width -= 2 * MeasurePane.MinSize; - rectLimit.Y = location.Y; - if ((Control.ModifierKeys & Keys.Shift) == 0) - rectLimit.Height = Height; - } - else - { - rectLimit.Y += MeasurePane.MinSize; - rectLimit.Height -= 2 * MeasurePane.MinSize; - rectLimit.X = location.X; - if ((Control.ModifierKeys & Keys.Shift) == 0) - rectLimit.Width = Width; - } - - return DockPanel.RectangleToScreen(rectLimit); - } - } - - void ISplitterDragSource.MoveSplitter(int offset) - { - if ((Control.ModifierKeys & Keys.Shift) != 0) - SendToBack(); - - Rectangle rectDockArea = DockPanel.DockArea; - if (DockState == DockState.DockLeft && rectDockArea.Width > 0) - { - if (DockPanel.DockLeftPortion > 1) - DockPanel.DockLeftPortion = Width + offset; - else - DockPanel.DockLeftPortion += ((double)offset) / (double)rectDockArea.Width; - } - else if (DockState == DockState.DockRight && rectDockArea.Width > 0) - { - if (DockPanel.DockRightPortion > 1) - DockPanel.DockRightPortion = Width - offset; - else - DockPanel.DockRightPortion -= ((double)offset) / (double)rectDockArea.Width; - } - else if (DockState == DockState.DockBottom && rectDockArea.Height > 0) - { - if (DockPanel.DockBottomPortion > 1) - DockPanel.DockBottomPortion = Height - offset; - else - DockPanel.DockBottomPortion -= ((double)offset) / (double)rectDockArea.Height; - } - else if (DockState == DockState.DockTop && rectDockArea.Height > 0) - { - if (DockPanel.DockTopPortion > 1) - DockPanel.DockTopPortion = Height + offset; - else - DockPanel.DockTopPortion += ((double)offset) / (double)rectDockArea.Height; - } - } - - #region IDragSource Members - - Control IDragSource.DragControl - { - get { return this; } - } - - #endregion - #endregion - } -} diff --git a/src/DockPanel/Docking/DockWindowCollection.cs b/src/DockPanel/Docking/DockWindowCollection.cs deleted file mode 100644 index edb1141..0000000 --- a/src/DockPanel/Docking/DockWindowCollection.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class DockWindowCollection : ReadOnlyCollection - { - internal DockWindowCollection(DockPanel dockPanel) - : base(new List()) - { - Items.Add(new DockWindow(dockPanel, DockState.Document)); - Items.Add(new DockWindow(dockPanel, DockState.DockLeft)); - Items.Add(new DockWindow(dockPanel, DockState.DockRight)); - Items.Add(new DockWindow(dockPanel, DockState.DockTop)); - Items.Add(new DockWindow(dockPanel, DockState.DockBottom)); - } - - public DockWindow this [DockState dockState] - { - get - { - if (dockState == DockState.Document) - return Items[0]; - else if (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide) - return Items[1]; - else if (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide) - return Items[2]; - else if (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide) - return Items[3]; - else if (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide) - return Items[4]; - - throw (new ArgumentOutOfRangeException()); - } - } - } -} diff --git a/src/DockPanel/Docking/DragForm.cs b/src/DockPanel/Docking/DragForm.cs deleted file mode 100644 index 08187e9..0000000 --- a/src/DockPanel/Docking/DragForm.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - // Inspired by Chris Sano's article: - // http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnwinforms/html/colorpicker.asp - // In Sano's article, the DragForm needs to meet the following criteria: - // (1) it was not to show up in the task bar; - // ShowInTaskBar = false - // (2) it needed to be the top-most window; - // TopMost = true (not necessary here) - // (3) its icon could not show up in the ALT+TAB window if the user pressed ALT+TAB during a drag-and-drop; - // FormBorderStyle = FormBorderStyle.None; - // Create with WS_EX_TOOLWINDOW window style. - // Compares with the solution in the artile by setting FormBorderStyle as FixedToolWindow, - // and then clip the window caption and border, this way is much simplier. - // (4) it was not to steal focus from the application when displayed. - // User Win32 ShowWindow API with SW_SHOWNOACTIVATE - // In addition, this form should only for display and therefore should act as transparent, otherwise - // WindowFromPoint will return this form, instead of the control beneath. Need BOTH of the following to - // achieve this (don't know why, spent hours to try it out :( ): - // 1. Enabled = false; - // 2. WM_NCHITTEST returns HTTRANSPARENT - internal class DragForm : Form - { - public DragForm() - { - FormBorderStyle = FormBorderStyle.None; - ShowInTaskbar = false; - SetStyle(ControlStyles.Selectable, false); - Enabled = false; - } - - protected override CreateParams CreateParams - { - get - { - CreateParams createParams = base.CreateParams; - createParams.ExStyle |= (int)Win32.WindowExStyles.WS_EX_TOOLWINDOW; - return createParams; - } - } - - protected override void WndProc(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_NCHITTEST) - { - m.Result = (IntPtr)Win32.HitTest.HTTRANSPARENT; - return; - } - - base.WndProc (ref m); - } - - public virtual void Show(bool bActivate) - { - if (bActivate) - Show(); - else - NativeMethods.ShowWindow(Handle, (int)Win32.ShowWindowStyles.SW_SHOWNOACTIVATE); - } - } -} diff --git a/src/DockPanel/Docking/DummyControl.cs b/src/DockPanel/Docking/DummyControl.cs deleted file mode 100644 index 99832c0..0000000 --- a/src/DockPanel/Docking/DummyControl.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal class DummyControl : Control - { - public DummyControl() - { - SetStyle(ControlStyles.Selectable, false); - } - } -} diff --git a/src/DockPanel/Docking/Enums.cs b/src/DockPanel/Docking/Enums.cs deleted file mode 100644 index d65f7e4..0000000 --- a/src/DockPanel/Docking/Enums.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.ComponentModel; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - [Flags] - [Serializable] - [Editor(typeof(DockAreasEditor), typeof(System.Drawing.Design.UITypeEditor))] - public enum DockAreas - { - Float = 1, - DockLeft = 2, - DockRight = 4, - DockTop = 8, - DockBottom = 16, - Document = 32 - } - - public enum DockState - { - Unknown = 0, - Float = 1, - DockTopAutoHide = 2, - DockLeftAutoHide = 3, - DockBottomAutoHide = 4, - DockRightAutoHide = 5, - Document = 6, - DockTop = 7, - DockLeft = 8, - DockBottom = 9, - DockRight = 10, - Hidden = 11 - } - - public enum DockAlignment - { - Left, - Right, - Top, - Bottom - } - - public enum DocumentStyle - { - DockingMdi, - DockingWindow, - DockingSdi, - SystemMdi, - } - - /// - /// The location to draw the DockPaneStrip for Document style windows. - /// - public enum DocumentTabStripLocation - { - Top, - Bottom - } -} diff --git a/src/DockPanel/Docking/FloatWindow.cs b/src/DockPanel/Docking/FloatWindow.cs deleted file mode 100644 index 6d20fe2..0000000 --- a/src/DockPanel/Docking/FloatWindow.cs +++ /dev/null @@ -1,453 +0,0 @@ -using System; -using System.Collections; -using System.Drawing; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Security.Permissions; -using System.Diagnostics.CodeAnalysis; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class FloatWindow : Form, INestedPanesContainer, IDockDragSource - { - private NestedPaneCollection m_nestedPanes; - internal const int WM_CHECKDISPOSE = (int)(Win32.Msgs.WM_USER + 1); - - internal protected FloatWindow(DockPanel dockPanel, DockPane pane) - { - InternalConstruct(dockPanel, pane, false, Rectangle.Empty); - } - - internal protected FloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) - { - InternalConstruct(dockPanel, pane, true, bounds); - } - - private void InternalConstruct(DockPanel dockPanel, DockPane pane, bool boundsSpecified, Rectangle bounds) - { - if (dockPanel == null) - throw(new ArgumentNullException(Strings.FloatWindow_Constructor_NullDockPanel)); - - m_nestedPanes = new NestedPaneCollection(this); - - FormBorderStyle = FormBorderStyle.SizableToolWindow; - ShowInTaskbar = false; - if (dockPanel.RightToLeft != RightToLeft) - RightToLeft = dockPanel.RightToLeft; - if (RightToLeftLayout != dockPanel.RightToLeftLayout) - RightToLeftLayout = dockPanel.RightToLeftLayout; - - SuspendLayout(); - if (boundsSpecified) - { - Bounds = bounds; - StartPosition = FormStartPosition.Manual; - } - else - { - StartPosition = FormStartPosition.WindowsDefaultLocation; - Size = dockPanel.DefaultFloatWindowSize; - } - - m_dockPanel = dockPanel; - Owner = DockPanel.FindForm(); - DockPanel.AddFloatWindow(this); - if (pane != null) - pane.FloatWindow = this; - - ResumeLayout(); - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (DockPanel != null) - DockPanel.RemoveFloatWindow(this); - m_dockPanel = null; - } - base.Dispose(disposing); - } - - private bool m_allowEndUserDocking = true; - public bool AllowEndUserDocking - { - get { return m_allowEndUserDocking; } - set { m_allowEndUserDocking = value; } - } - - public NestedPaneCollection NestedPanes - { - get { return m_nestedPanes; } - } - - public VisibleNestedPaneCollection VisibleNestedPanes - { - get { return NestedPanes.VisibleNestedPanes; } - } - - private DockPanel m_dockPanel; - public DockPanel DockPanel - { - get { return m_dockPanel; } - } - - public DockState DockState - { - get { return DockState.Float; } - } - - public bool IsFloat - { - get { return DockState == DockState.Float; } - } - - internal bool IsDockStateValid(DockState dockState) - { - foreach (DockPane pane in NestedPanes) - foreach (IDockContent content in pane.Contents) - if (!DockHelper.IsDockStateValid(dockState, content.DockHandler.DockAreas)) - return false; - - return true; - } - - protected override void OnActivated(EventArgs e) - { - DockPanel.FloatWindows.BringWindowToFront(this); - base.OnActivated (e); - // Propagate the Activated event to the visible panes content objects - foreach (DockPane pane in VisibleNestedPanes) - foreach (IDockContent content in pane.Contents) - content.OnActivated(e); - } - - protected override void OnDeactivate(EventArgs e) - { - base.OnDeactivate(e); - // Propagate the Deactivate event to the visible panes content objects - foreach (DockPane pane in VisibleNestedPanes) - foreach (IDockContent content in pane.Contents) - content.OnDeactivate(e); - } - - protected override void OnLayout(LayoutEventArgs levent) - { - VisibleNestedPanes.Refresh(); - RefreshChanges(); - Visible = (VisibleNestedPanes.Count > 0); - SetText(); - - base.OnLayout(levent); - } - - - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.Windows.Forms.Control.set_Text(System.String)")] - internal void SetText() - { - DockPane theOnlyPane = (VisibleNestedPanes.Count == 1) ? VisibleNestedPanes[0] : null; - - if (theOnlyPane == null) - Text = " "; // use " " instead of string.Empty because the whole title bar will disappear when ControlBox is set to false. - else if (theOnlyPane.ActiveContent == null) - Text = " "; - else - Text = theOnlyPane.ActiveContent.DockHandler.TabText; - } - - protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) - { - Rectangle rectWorkArea = SystemInformation.VirtualScreen; - - if (y + height > rectWorkArea.Bottom) - y -= (y + height) - rectWorkArea.Bottom; - - if (y < rectWorkArea.Top) - y += rectWorkArea.Top - y; - - base.SetBoundsCore (x, y, width, height, specified); - } - - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] - protected override void WndProc(ref Message m) - { - if (m.Msg == (int)Win32.Msgs.WM_NCLBUTTONDOWN) - { - if (IsDisposed) - return; - - uint result = NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam); - if (result == 2 && DockPanel.AllowEndUserDocking && this.AllowEndUserDocking) // HITTEST_CAPTION - { - Activate(); - m_dockPanel.BeginDrag(this); - } - else - base.WndProc(ref m); - - return; - } - else if (m.Msg == (int)Win32.Msgs.WM_NCRBUTTONDOWN) - { - uint result = NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam); - if (result == 2) // HITTEST_CAPTION - { - DockPane theOnlyPane = (VisibleNestedPanes.Count == 1) ? VisibleNestedPanes[0] : null; - if (theOnlyPane != null && theOnlyPane.ActiveContent != null) - { - theOnlyPane.ShowTabPageContextMenu(this, PointToClient(Control.MousePosition)); - return; - } - } - - base.WndProc(ref m); - return; - } - else if (m.Msg == (int)Win32.Msgs.WM_CLOSE) - { - if (NestedPanes.Count == 0) - { - base.WndProc(ref m); - return; - } - - for (int i = NestedPanes.Count - 1; i >= 0; i--) - { - DockContentCollection contents = NestedPanes[i].Contents; - for (int j = contents.Count - 1; j >= 0; j--) - { - IDockContent content = contents[j]; - if (content.DockHandler.DockState != DockState.Float) - continue; - - if (!content.DockHandler.CloseButton) - continue; - - if (content.DockHandler.HideOnClose) - content.DockHandler.Hide(); - else - content.DockHandler.Close(); - } - } - - return; - } - else if (m.Msg == (int)Win32.Msgs.WM_NCLBUTTONDBLCLK) - { - uint result = NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam); - if (result != 2) // HITTEST_CAPTION - { - base.WndProc(ref m); - return; - } - - DockPanel.SuspendLayout(true); - - // Restore to panel - foreach (DockPane pane in NestedPanes) - { - if (pane.DockState != DockState.Float) - continue; - pane.RestoreToPanel(); - } - - - DockPanel.ResumeLayout(true, true); - return; - } - else if (m.Msg == WM_CHECKDISPOSE) - { - if (NestedPanes.Count == 0) - Dispose(); - - return; - } - - base.WndProc(ref m); - } - - internal void RefreshChanges() - { - if (IsDisposed) - return; - - if (VisibleNestedPanes.Count == 0) - { - ControlBox = true; - return; - } - - for (int i=VisibleNestedPanes.Count - 1; i>=0; i--) - { - DockContentCollection contents = VisibleNestedPanes[i].Contents; - for (int j=contents.Count - 1; j>=0; j--) - { - IDockContent content = contents[j]; - if (content.DockHandler.DockState != DockState.Float) - continue; - - if (content.DockHandler.CloseButton && content.DockHandler.CloseButtonVisible) - { - ControlBox = true; - return; - } - } - } - //Only if there is a ControlBox do we turn it off - //old code caused a flash of the window. - if (ControlBox) - ControlBox = false; - } - - public virtual Rectangle DisplayingRectangle - { - get { return ClientRectangle; } - } - - internal void TestDrop(IDockDragSource dragSource, DockOutlineBase dockOutline) - { - if (VisibleNestedPanes.Count == 1) - { - DockPane pane = VisibleNestedPanes[0]; - if (!dragSource.CanDockTo(pane)) - return; - - Point ptMouse = Control.MousePosition; - uint lParam = Win32Helper.MakeLong(ptMouse.X, ptMouse.Y); - if (NativeMethods.SendMessage(Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, lParam) == (uint)Win32.HitTest.HTCAPTION) - dockOutline.Show(VisibleNestedPanes[0], -1); - } - } - - #region IDockDragSource Members - - #region IDragSource Members - - Control IDragSource.DragControl - { - get { return this; } - } - - #endregion - - bool IDockDragSource.IsDockStateValid(DockState dockState) - { - return IsDockStateValid(dockState); - } - - bool IDockDragSource.CanDockTo(DockPane pane) - { - if (!IsDockStateValid(pane.DockState)) - return false; - - if (pane.FloatWindow == this) - return false; - - return true; - } - - Rectangle IDockDragSource.BeginDrag(Point ptMouse) - { - return Bounds; - } - - public void FloatAt(Rectangle floatWindowBounds) - { - Bounds = floatWindowBounds; - } - - public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex) - { - if (dockStyle == DockStyle.Fill) - { - for (int i = NestedPanes.Count - 1; i >= 0; i--) - { - DockPane paneFrom = NestedPanes[i]; - for (int j = paneFrom.Contents.Count - 1; j >= 0; j--) - { - IDockContent c = paneFrom.Contents[j]; - c.DockHandler.Pane = pane; - if (contentIndex != -1) - pane.SetContentIndex(c, contentIndex); - c.DockHandler.Activate(); - } - } - } - else - { - DockAlignment alignment = DockAlignment.Left; - if (dockStyle == DockStyle.Left) - alignment = DockAlignment.Left; - else if (dockStyle == DockStyle.Right) - alignment = DockAlignment.Right; - else if (dockStyle == DockStyle.Top) - alignment = DockAlignment.Top; - else if (dockStyle == DockStyle.Bottom) - alignment = DockAlignment.Bottom; - - MergeNestedPanes(VisibleNestedPanes, pane.NestedPanesContainer.NestedPanes, pane, alignment, 0.5); - } - } - - public void DockTo(DockPanel panel, DockStyle dockStyle) - { - if (panel != DockPanel) - throw new ArgumentException(Strings.IDockDragSource_DockTo_InvalidPanel, "panel"); - - NestedPaneCollection nestedPanesTo = null; - - if (dockStyle == DockStyle.Top) - nestedPanesTo = DockPanel.DockWindows[DockState.DockTop].NestedPanes; - else if (dockStyle == DockStyle.Bottom) - nestedPanesTo = DockPanel.DockWindows[DockState.DockBottom].NestedPanes; - else if (dockStyle == DockStyle.Left) - nestedPanesTo = DockPanel.DockWindows[DockState.DockLeft].NestedPanes; - else if (dockStyle == DockStyle.Right) - nestedPanesTo = DockPanel.DockWindows[DockState.DockRight].NestedPanes; - else if (dockStyle == DockStyle.Fill) - nestedPanesTo = DockPanel.DockWindows[DockState.Document].NestedPanes; - - DockPane prevPane = null; - for (int i = nestedPanesTo.Count - 1; i >= 0; i--) - if (nestedPanesTo[i] != VisibleNestedPanes[0]) - prevPane = nestedPanesTo[i]; - MergeNestedPanes(VisibleNestedPanes, nestedPanesTo, prevPane, DockAlignment.Left, 0.5); - } - - private static void MergeNestedPanes(VisibleNestedPaneCollection nestedPanesFrom, NestedPaneCollection nestedPanesTo, DockPane prevPane, DockAlignment alignment, double proportion) - { - if (nestedPanesFrom.Count == 0) - return; - - int count = nestedPanesFrom.Count; - DockPane[] panes = new DockPane[count]; - DockPane[] prevPanes = new DockPane[count]; - DockAlignment[] alignments = new DockAlignment[count]; - double[] proportions = new double[count]; - - for (int i = 0; i < count; i++) - { - panes[i] = nestedPanesFrom[i]; - prevPanes[i] = nestedPanesFrom[i].NestedDockingStatus.PreviousPane; - alignments[i] = nestedPanesFrom[i].NestedDockingStatus.Alignment; - proportions[i] = nestedPanesFrom[i].NestedDockingStatus.Proportion; - } - - DockPane pane = panes[0].DockTo(nestedPanesTo.Container, prevPane, alignment, proportion); - panes[0].DockState = nestedPanesTo.DockState; - - for (int i = 1; i < count; i++) - { - for (int j = i; j < count; j++) - { - if (prevPanes[j] == panes[i - 1]) - prevPanes[j] = pane; - } - pane = panes[i].DockTo(nestedPanesTo.Container, prevPanes[i], alignments[i], proportions[i]); - panes[i].DockState = nestedPanesTo.DockState; - } - } - - #endregion - } -} diff --git a/src/DockPanel/Docking/FloatWindowCollection.cs b/src/DockPanel/Docking/FloatWindowCollection.cs deleted file mode 100644 index 03f81b5..0000000 --- a/src/DockPanel/Docking/FloatWindowCollection.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public class FloatWindowCollection : ReadOnlyCollection - { - internal FloatWindowCollection() - : base(new List()) - { - } - - internal int Add(FloatWindow fw) - { - if (Items.Contains(fw)) - return Items.IndexOf(fw); - - Items.Add(fw); - return Count - 1; - } - - internal void Dispose() - { - for (int i=Count - 1; i>=0; i--) - this[i].Close(); - } - - internal void Remove(FloatWindow fw) - { - Items.Remove(fw); - } - - internal void BringWindowToFront(FloatWindow fw) - { - Items.Remove(fw); - Items.Add(fw); - } - } -} diff --git a/src/DockPanel/Docking/Helpers/DockHelper.cs b/src/DockPanel/Docking/Helpers/DockHelper.cs deleted file mode 100644 index 885dd0f..0000000 --- a/src/DockPanel/Docking/Helpers/DockHelper.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal static class DockHelper - { - public static bool IsDockStateAutoHide(DockState dockState) - { - if (dockState == DockState.DockLeftAutoHide || - dockState == DockState.DockRightAutoHide || - dockState == DockState.DockTopAutoHide || - dockState == DockState.DockBottomAutoHide) - return true; - else - return false; - } - - public static bool IsDockStateValid(DockState dockState, DockAreas dockableAreas) - { - if (((dockableAreas & DockAreas.Float) == 0) && - (dockState == DockState.Float)) - return false; - else if (((dockableAreas & DockAreas.Document) == 0) && - (dockState == DockState.Document)) - return false; - else if (((dockableAreas & DockAreas.DockLeft) == 0) && - (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide)) - return false; - else if (((dockableAreas & DockAreas.DockRight) == 0) && - (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide)) - return false; - else if (((dockableAreas & DockAreas.DockTop) == 0) && - (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide)) - return false; - else if (((dockableAreas & DockAreas.DockBottom) == 0) && - (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide)) - return false; - else - return true; - } - - public static bool IsDockWindowState(DockState state) - { - if (state == DockState.DockTop || state == DockState.DockBottom || state == DockState.DockLeft || - state == DockState.DockRight || state == DockState.Document) - return true; - else - return false; - } - - public static DockState ToggleAutoHideState(DockState state) - { - if (state == DockState.DockLeft) - return DockState.DockLeftAutoHide; - else if (state == DockState.DockRight) - return DockState.DockRightAutoHide; - else if (state == DockState.DockTop) - return DockState.DockTopAutoHide; - else if (state == DockState.DockBottom) - return DockState.DockBottomAutoHide; - else if (state == DockState.DockLeftAutoHide) - return DockState.DockLeft; - else if (state == DockState.DockRightAutoHide) - return DockState.DockRight; - else if (state == DockState.DockTopAutoHide) - return DockState.DockTop; - else if (state == DockState.DockBottomAutoHide) - return DockState.DockBottom; - else - return state; - } - - public static DockPane PaneAtPoint(Point pt, DockPanel dockPanel) - { - for (Control control = Win32Helper.ControlAtPoint(pt); control != null; control = control.Parent) - { - IDockContent content = control as IDockContent; - if (content != null && content.DockHandler.DockPanel == dockPanel) - return content.DockHandler.Pane; - - DockPane pane = control as DockPane; - if (pane != null && pane.DockPanel == dockPanel) - return pane; - } - - return null; - } - - public static FloatWindow FloatWindowAtPoint(Point pt, DockPanel dockPanel) - { - for (Control control = Win32Helper.ControlAtPoint(pt); control != null; control = control.Parent) - { - FloatWindow floatWindow = control as FloatWindow; - if (floatWindow != null && floatWindow.DockPanel == dockPanel) - return floatWindow; - } - - return null; - } - } -} diff --git a/src/DockPanel/Docking/Helpers/DrawHelper.cs b/src/DockPanel/Docking/Helpers/DrawHelper.cs deleted file mode 100644 index cf8ab98..0000000 --- a/src/DockPanel/Docking/Helpers/DrawHelper.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Drawing.Imaging; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal static class DrawHelper - { - public static Point RtlTransform(Control control, Point point) - { - if (control.RightToLeft != RightToLeft.Yes) - return point; - else - return new Point(control.Right - point.X, point.Y); - } - - public static Rectangle RtlTransform(Control control, Rectangle rectangle) - { - if (control.RightToLeft != RightToLeft.Yes) - return rectangle; - else - return new Rectangle(control.ClientRectangle.Right - rectangle.Right, rectangle.Y, rectangle.Width, rectangle.Height); - } - - public static GraphicsPath GetRoundedCornerTab(GraphicsPath graphicsPath, Rectangle rect, bool upCorner) - { - if (graphicsPath == null) - graphicsPath = new GraphicsPath(); - else - graphicsPath.Reset(); - - int curveSize = 6; - if (upCorner) - { - graphicsPath.AddLine(rect.Left, rect.Bottom, rect.Left, rect.Top + curveSize / 2); - graphicsPath.AddArc(new Rectangle(rect.Left, rect.Top, curveSize, curveSize), 180, 90); - graphicsPath.AddLine(rect.Left + curveSize / 2, rect.Top, rect.Right - curveSize / 2, rect.Top); - graphicsPath.AddArc(new Rectangle(rect.Right - curveSize, rect.Top, curveSize, curveSize), -90, 90); - graphicsPath.AddLine(rect.Right, rect.Top + curveSize / 2, rect.Right, rect.Bottom); - } - else - { - graphicsPath.AddLine(rect.Right, rect.Top, rect.Right, rect.Bottom - curveSize / 2); - graphicsPath.AddArc(new Rectangle(rect.Right - curveSize, rect.Bottom - curveSize, curveSize, curveSize), 0, 90); - graphicsPath.AddLine(rect.Right - curveSize / 2, rect.Bottom, rect.Left + curveSize / 2, rect.Bottom); - graphicsPath.AddArc(new Rectangle(rect.Left, rect.Bottom - curveSize, curveSize, curveSize), 90, 90); - graphicsPath.AddLine(rect.Left, rect.Bottom - curveSize / 2, rect.Left, rect.Top); - } - - return graphicsPath; - } - - public static GraphicsPath CalculateGraphicsPathFromBitmap(Bitmap bitmap) - { - return CalculateGraphicsPathFromBitmap(bitmap, Color.Empty); - } - - // From http://edu.cnzz.cn/show_3281.html - public static GraphicsPath CalculateGraphicsPathFromBitmap(Bitmap bitmap, Color colorTransparent) - { - GraphicsPath graphicsPath = new GraphicsPath(); - if (colorTransparent == Color.Empty) - colorTransparent = bitmap.GetPixel(0, 0); - - for(int row = 0; row < bitmap.Height; row ++) - { - int colOpaquePixel = 0; - for(int col = 0; col < bitmap.Width; col ++) - { - if(bitmap.GetPixel(col, row) != colorTransparent) - { - colOpaquePixel = col; - int colNext = col; - for(colNext = colOpaquePixel; colNext < bitmap.Width; colNext ++) - if(bitmap.GetPixel(colNext, row) == colorTransparent) - break; - - graphicsPath.AddRectangle(new Rectangle(colOpaquePixel, row, colNext - colOpaquePixel, 1)); - col = colNext; - } - } - } - return graphicsPath; - } - } -} diff --git a/src/DockPanel/Docking/Helpers/ResourceHelper.cs b/src/DockPanel/Docking/Helpers/ResourceHelper.cs deleted file mode 100644 index 30f3594..0000000 --- a/src/DockPanel/Docking/Helpers/ResourceHelper.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Drawing; -using System.Reflection; -using System.Resources; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal static class ResourceHelper - { - private static ResourceManager _resourceManager = null; - - private static ResourceManager ResourceManager - { - get - { - if (_resourceManager == null) - _resourceManager = new ResourceManager("WeifenLuo.WinFormsUI.Docking.Strings", typeof(ResourceHelper).Assembly); - return _resourceManager; - } - - } - - public static string GetString(string name) - { - return ResourceManager.GetString(name); - } - } -} diff --git a/src/DockPanel/Docking/Helpers/Win32Helper.cs b/src/DockPanel/Docking/Helpers/Win32Helper.cs deleted file mode 100644 index 473d7c5..0000000 --- a/src/DockPanel/Docking/Helpers/Win32Helper.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal static class Win32Helper - { - public static Control ControlAtPoint(Point pt) - { - return Control.FromChildHandle(NativeMethods.WindowFromPoint(pt)); - } - - public static uint MakeLong(int low, int high) - { - return (uint)((high << 16) + low); - } - } -} diff --git a/src/DockPanel/Docking/InertButtonBase.cs b/src/DockPanel/Docking/InertButtonBase.cs deleted file mode 100644 index 92d5731..0000000 --- a/src/DockPanel/Docking/InertButtonBase.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Drawing.Imaging; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal abstract class InertButtonBase : Control - { - protected InertButtonBase() - { - SetStyle(ControlStyles.SupportsTransparentBackColor, true); - BackColor = Color.Transparent; - } - - public abstract Bitmap Image - { - get; - } - - private bool m_isMouseOver = false; - protected bool IsMouseOver - { - get { return m_isMouseOver; } - private set - { - if (m_isMouseOver == value) - return; - - m_isMouseOver = value; - Invalidate(); - } - } - - protected override Size DefaultSize - { - get { return Resources.DockPane_Close.Size; } - } - - protected override void OnMouseMove(MouseEventArgs e) - { - base.OnMouseMove(e); - bool over = ClientRectangle.Contains(e.X, e.Y); - if (IsMouseOver != over) - IsMouseOver = over; - } - - protected override void OnMouseEnter(EventArgs e) - { - base.OnMouseEnter(e); - if (!IsMouseOver) - IsMouseOver = true; - } - - protected override void OnMouseLeave(EventArgs e) - { - base.OnMouseLeave(e); - if (IsMouseOver) - IsMouseOver = false; - } - - protected override void OnPaint(PaintEventArgs e) - { - if (IsMouseOver && Enabled) - { - using (Pen pen = new Pen(ForeColor)) - { - e.Graphics.DrawRectangle(pen, Rectangle.Inflate(ClientRectangle, -1, -1)); - } - } - - using (ImageAttributes imageAttributes = new ImageAttributes()) - { - ColorMap[] colorMap = new ColorMap[2]; - colorMap[0] = new ColorMap(); - colorMap[0].OldColor = Color.FromArgb(0, 0, 0); - colorMap[0].NewColor = ForeColor; - colorMap[1] = new ColorMap(); - colorMap[1].OldColor = Image.GetPixel(0, 0); - colorMap[1].NewColor = Color.Transparent; - - imageAttributes.SetRemapTable(colorMap); - - e.Graphics.DrawImage( - Image, - new Rectangle(0, 0, Image.Width, Image.Height), - 0, 0, - Image.Width, - Image.Height, - GraphicsUnit.Pixel, - imageAttributes); - } - - base.OnPaint(e); - } - - public void RefreshChanges() - { - if (IsDisposed) - return; - - bool mouseOver = ClientRectangle.Contains(PointToClient(Control.MousePosition)); - if (mouseOver != IsMouseOver) - IsMouseOver = mouseOver; - - OnRefreshChanges(); - } - - protected virtual void OnRefreshChanges() - { - } - } -} diff --git a/src/DockPanel/Docking/Interfaces.cs b/src/DockPanel/Docking/Interfaces.cs deleted file mode 100644 index 5efb5f8..0000000 --- a/src/DockPanel/Docking/Interfaces.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public interface IDockContent - { - DockContentHandler DockHandler { get; } - void OnActivated(EventArgs e); - void OnDeactivate(EventArgs e); - } - - public interface INestedPanesContainer - { - DockState DockState { get; } - Rectangle DisplayingRectangle { get; } - NestedPaneCollection NestedPanes { get; } - VisibleNestedPaneCollection VisibleNestedPanes { get; } - bool IsFloat { get; } - } - - internal interface IDragSource - { - Control DragControl { get; } - } - - internal interface IDockDragSource : IDragSource - { - Rectangle BeginDrag(Point ptMouse); - bool IsDockStateValid(DockState dockState); - bool CanDockTo(DockPane pane); - void FloatAt(Rectangle floatWindowBounds); - void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex); - void DockTo(DockPanel panel, DockStyle dockStyle); - } - - internal interface ISplitterDragSource : IDragSource - { - void BeginDrag(Rectangle rectSplitter); - void EndDrag(); - bool IsVertical { get; } - Rectangle DragLimitBounds { get; } - void MoveSplitter(int offset); - } -} diff --git a/src/DockPanel/Docking/Localization.cs b/src/DockPanel/Docking/Localization.cs deleted file mode 100644 index c6f71af..0000000 --- a/src/DockPanel/Docking/Localization.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - [AttributeUsage(AttributeTargets.All)] - internal sealed class LocalizedDescriptionAttribute : DescriptionAttribute - { - private bool m_initialized = false; - - public LocalizedDescriptionAttribute(string key) : base(key) - { - } - - public override string Description - { - get - { - if (!m_initialized) - { - string key = base.Description; - DescriptionValue = ResourceHelper.GetString(key); - if (DescriptionValue == null) - DescriptionValue = String.Empty; - - m_initialized = true; - } - - return DescriptionValue; - } - } - } - - [AttributeUsage(AttributeTargets.All)] - internal sealed class LocalizedCategoryAttribute : CategoryAttribute - { - public LocalizedCategoryAttribute(string key) : base(key) - { - } - - protected override string GetLocalizedString(string key) - { - return ResourceHelper.GetString(key); - } - } -} diff --git a/src/DockPanel/Docking/Measures.cs b/src/DockPanel/Docking/Measures.cs deleted file mode 100644 index d1c591f..0000000 --- a/src/DockPanel/Docking/Measures.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal static class Measures - { - public const int SplitterSize = 4; - } - - internal static class MeasurePane - { - public const int MinSize = 24; - } -} diff --git a/src/DockPanel/Docking/NestedDockingStatus.cs b/src/DockPanel/Docking/NestedDockingStatus.cs deleted file mode 100644 index 8d0de44..0000000 --- a/src/DockPanel/Docking/NestedDockingStatus.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Drawing; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public sealed class NestedDockingStatus - { - internal NestedDockingStatus(DockPane pane) - { - m_dockPane = pane; - } - - private DockPane m_dockPane = null; - public DockPane DockPane - { - get { return m_dockPane; } - } - - private NestedPaneCollection m_nestedPanes = null; - public NestedPaneCollection NestedPanes - { - get { return m_nestedPanes; } - } - - private DockPane m_previousPane = null; - public DockPane PreviousPane - { - get { return m_previousPane; } - } - - private DockAlignment m_alignment = DockAlignment.Left; - public DockAlignment Alignment - { - get { return m_alignment; } - } - - private double m_proportion = 0.5; - public double Proportion - { - get { return m_proportion; } - } - - private bool m_isDisplaying = false; - public bool IsDisplaying - { - get { return m_isDisplaying; } - } - - private DockPane m_displayingPreviousPane = null; - public DockPane DisplayingPreviousPane - { - get { return m_displayingPreviousPane; } - } - - private DockAlignment m_displayingAlignment = DockAlignment.Left; - public DockAlignment DisplayingAlignment - { - get { return m_displayingAlignment; } - } - - private double m_displayingProportion = 0.5; - public double DisplayingProportion - { - get { return m_displayingProportion; } - } - - private Rectangle m_logicalBounds = Rectangle.Empty; - public Rectangle LogicalBounds - { - get { return m_logicalBounds; } - } - - private Rectangle m_paneBounds = Rectangle.Empty; - public Rectangle PaneBounds - { - get { return m_paneBounds; } - } - - private Rectangle m_splitterBounds = Rectangle.Empty; - public Rectangle SplitterBounds - { - get { return m_splitterBounds; } - } - - internal void SetStatus(NestedPaneCollection nestedPanes, DockPane previousPane, DockAlignment alignment, double proportion) - { - m_nestedPanes = nestedPanes; - m_previousPane = previousPane; - m_alignment = alignment; - m_proportion = proportion; - } - - internal void SetDisplayingStatus(bool isDisplaying, DockPane displayingPreviousPane, DockAlignment displayingAlignment, double displayingProportion) - { - m_isDisplaying = isDisplaying; - m_displayingPreviousPane = displayingPreviousPane; - m_displayingAlignment = displayingAlignment; - m_displayingProportion = displayingProportion; - } - - internal void SetDisplayingBounds(Rectangle logicalBounds, Rectangle paneBounds, Rectangle splitterBounds) - { - m_logicalBounds = logicalBounds; - m_paneBounds = paneBounds; - m_splitterBounds = splitterBounds; - } - } -} diff --git a/src/DockPanel/Docking/NestedPaneCollection.cs b/src/DockPanel/Docking/NestedPaneCollection.cs deleted file mode 100644 index 0d0ae70..0000000 --- a/src/DockPanel/Docking/NestedPaneCollection.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Drawing; - -namespace WeifenLuo.WinFormsUI.Docking -{ - public sealed class NestedPaneCollection : ReadOnlyCollection - { - private INestedPanesContainer m_container; - private VisibleNestedPaneCollection m_visibleNestedPanes; - - internal NestedPaneCollection(INestedPanesContainer container) - : base(new List()) - { - m_container = container; - m_visibleNestedPanes = new VisibleNestedPaneCollection(this); - } - - public INestedPanesContainer Container - { - get { return m_container; } - } - - public VisibleNestedPaneCollection VisibleNestedPanes - { - get { return m_visibleNestedPanes; } - } - - public DockState DockState - { - get { return Container.DockState; } - } - - public bool IsFloat - { - get { return DockState == DockState.Float; } - } - - internal void Add(DockPane pane) - { - if (pane == null) - return; - - NestedPaneCollection oldNestedPanes = (pane.NestedPanesContainer == null) ? null : pane.NestedPanesContainer.NestedPanes; - if (oldNestedPanes != null) - oldNestedPanes.InternalRemove(pane); - Items.Add(pane); - if (oldNestedPanes != null) - oldNestedPanes.CheckFloatWindowDispose(); - } - - private void CheckFloatWindowDispose() - { - if (Count == 0 && Container.DockState == DockState.Float) - { - FloatWindow floatWindow = (FloatWindow)Container; - if (!floatWindow.Disposing && !floatWindow.IsDisposed) - NativeMethods.PostMessage(((FloatWindow)Container).Handle, FloatWindow.WM_CHECKDISPOSE, 0, 0); - } - } - - internal void Remove(DockPane pane) - { - InternalRemove(pane); - CheckFloatWindowDispose(); - } - - private void InternalRemove(DockPane pane) - { - if (!Contains(pane)) - return; - - NestedDockingStatus statusPane = pane.NestedDockingStatus; - DockPane lastNestedPane = null; - for (int i=Count - 1; i> IndexOf(pane); i--) - { - if (this[i].NestedDockingStatus.PreviousPane == pane) - { - lastNestedPane = this[i]; - break; - } - } - - if (lastNestedPane != null) - { - int indexLastNestedPane = IndexOf(lastNestedPane); - Items.Remove(lastNestedPane); - Items[IndexOf(pane)] = lastNestedPane; - NestedDockingStatus lastNestedDock = lastNestedPane.NestedDockingStatus; - lastNestedDock.SetStatus(this, statusPane.PreviousPane, statusPane.Alignment, statusPane.Proportion); - for (int i=indexLastNestedPane - 1; i>IndexOf(lastNestedPane); i--) - { - NestedDockingStatus status = this[i].NestedDockingStatus; - if (status.PreviousPane == pane) - status.SetStatus(this, lastNestedPane, status.Alignment, status.Proportion); - } - } - else - Items.Remove(pane); - - statusPane.SetStatus(null, null, DockAlignment.Left, 0.5); - statusPane.SetDisplayingStatus(false, null, DockAlignment.Left, 0.5); - statusPane.SetDisplayingBounds(Rectangle.Empty, Rectangle.Empty, Rectangle.Empty); - } - - public DockPane GetDefaultPreviousPane(DockPane pane) - { - for (int i=Count-1; i>=0; i--) - if (this[i] != pane) - return this[i]; - - return null; - } - } -} diff --git a/src/DockPanel/Docking/Resources.Designer.cs b/src/DockPanel/Docking/Resources.Designer.cs deleted file mode 100644 index a4ec3f5..0000000 --- a/src/DockPanel/Docking/Resources.Designer.cs +++ /dev/null @@ -1,293 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WeifenLuo.WinFormsUI.Docking { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WeifenLuo.WinFormsUI.Docking.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Bottom { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Bottom", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Fill { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Fill", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_HotSpot { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_HotSpot", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_HotSpotIndex { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_HotSpotIndex", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Left { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Left", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Right { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Right", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Top { - get { - object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Top", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelBottom { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelBottom", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelBottom_Active { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelBottom_Active", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelFill { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelFill", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelFill_Active { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelFill_Active", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelLeft { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelLeft", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelLeft_Active { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelLeft_Active", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelRight { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelRight", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelRight_Active { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelRight_Active", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelTop { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelTop", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockIndicator_PanelTop_Active { - get { - object obj = ResourceManager.GetObject("DockIndicator_PanelTop_Active", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockPane_AutoHide { - get { - object obj = ResourceManager.GetObject("DockPane_AutoHide", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockPane_Close { - get { - object obj = ResourceManager.GetObject("DockPane_Close", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockPane_Dock { - get { - object obj = ResourceManager.GetObject("DockPane_Dock", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockPane_Option { - get { - object obj = ResourceManager.GetObject("DockPane_Option", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap DockPane_OptionOverflow { - get { - object obj = ResourceManager.GetObject("DockPane_OptionOverflow", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/src/DockPanel/Docking/Resources.resx b/src/DockPanel/Docking/Resources.resx deleted file mode 100644 index 0f8b146..0000000 --- a/src/DockPanel/Docking/Resources.resx +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - Resources\DockIndicator_PaneDiamond.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_Bottom.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_Fill.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_HotSpot.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_HotSpotIndex.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_Left.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_Right.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PaneDiamond_Top.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelBottom.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelBottom_Active.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelFill.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelFill_Active.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelLeft.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelLeft_Active.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelRight.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelRight_Active.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelTop.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockIndicator_PanelTop_Active.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockPane_AutoHide.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockPane_Close.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockPane_Dock.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockPane_Option.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\DockPane_OptionOverflow.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond.bmp deleted file mode 100644 index 70e70e288d70741ca264944ab528dd070fae23f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23286 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 Oi*i8i+^>Zj3cdw(sg<(; diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Hotspot.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Hotspot.bmp deleted file mode 100644 index e801d382d77400616c5ba7c40646e5a387b0c992..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23286 zcmeI3J#K?Q5Joq*$Psda93XxAD5uG#(nm4{9VHC{|D7SN^Vv(#CtA-)Sb8Ijur1Gy zp5IJi)^G2>pXC;>I=|@gF+ZNl^X>JY`Tg6I`E<#N@0`dfHZiL(TuO;Ot~nnq;84FY zIKaVs7a#BeADjR_I1T0lKH!5Bzz3(ne82~Ma02+?G?)+gfDcXpADjmB0Uz+e3Ful) z(f57qkM_!TKA*4c_8?IqjN_QW;Zaa55RS)V5{K=ha0se4kHeNxtRQ4_*d_`=7=~e* zCbfeqtdZ(NT|( z!T}E6SNMPr_}~Qa!D%ob@Bts306sVk<^w+9gA>39r@?%{2Yhe>_~0~{5BPu&P5>XA z2J-1+PLZMj^&O!StwAG}}gg}#%QdKK7 zF2XrztBH2qD1TDr;b~Q>BAi1_8(wW{!Xyri03VzN^8p|5!3p4l(_lW}!^#IK5gxuo?DZdhY962f diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_HotspotIndex.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_HotspotIndex.bmp deleted file mode 100644 index e5ef472c56cb9258fdaa5b45bf9df1d5adbcd38c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 tcmZ?rjbeZRGa#h_#LQ64$RGihPyv&u#D5@QU;q<93MkhAk%tL`gaEYn5c~iD diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Left.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Left.bmp deleted file mode 100644 index 1fbda61c089c95635644e4f5d01905477db17842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23286 zcmeI4?Qc~@8o=?t@K5kB@QX$ljU0zJhW0!*1gKW}b7N4(H|e+;h*>-UBDo$=v6hnR(_n zuV{&Ae-^yx`rpKRoZ(#$2B^=4yIDPswG`>!IDamH%Fg7+;C=@6~x{J7=pg|G6F_qT9RMA=c z#XEnvbNl?eQah5ODdmI1`{aIeckn>YI7|a0!is7^AouVi!%}lmrGYU7!f~k3O;B3;wlGT6?xC9!hssEe)me~7eEjfhvG`;7kk@UyW3j2jc;5eihOV=7Kzw*G?x_d@myyIwRtN6puE&S@)+XkPx^~=A`ciRI=aglzljq105 zJ`4fPDa-!~J8}Q*+3}yx-u~s&t(QJ}{m1UEZ+EXd_wMsk|6Ez#y6p6p_TycP#2qJ6edV`}P(?6QGEMfZn_R)`{D-Y4v*>R&9T2#kLoo+S>7#H&(X4y8O=@ zpL}Rt`+aL3y{qG)Kd!v*cJY_ry;5$bNlT#!a?mg%7MU~Z5444T;;P3&p{NZ z#5#c~lG!2K!d6c$OBD0w{hEctm^(Q+IW;v^UGvQEf+CX(2x@@K$}k-$EXmTxBh9?X z16JTjNrMzqJt66G2&fdPc@m*JvQdOmsnpZc6IpA>dwYA`yO9!7a8XnNn?yZ*M)eGE zsM9d5C3R;y^6L3u*Y35QjQp0k?h{IJ|Nky94{i7b{=0%ZdvWC;SuLG<|gb;H5PJ;jN|ZL|31P z$f>32Y-BEz!Bvo7xmd^W{XvS5{TrGu;Agx!U=}k1N*&f zeY-jkmZWCJ$z!%XBV{Ie0f;oYDbQ2 z4*>;4E6Gv%g&iMQS0AEsz42in>G)vBNq=4K_Y2gMT&nme;HoWUNdZBkkWnDP@c0m^ zj6|pUXw2sQLi&YrNIXu$!K|z0{lb6Gl0rr1tHOZV5(Pg63XSW6O~^rVH0vmtFUHM# zRt^2a&YN^1mR@$guYS~K6Chkz(6FPCH43EDoLIu)@ZrOlazH_=;6Dx1U7UX5 z6p(xDLG)~>4+M^ykSSTCKswEdr5r#(tAIv57bN8@kQ{?)C;@2+0)b4)x*pAi151cH z9qB;w$dM!c{rzDSb()`Ox2`cu@M=pS>rAc`6InP4nglqw9fX3^V}5e2V_^tkWqw~t z0EOEs7%J;=q^#C4w>u#JeTy8IyNg0QNQUPIIaJ_whd4Fnf?QEBRxoyDdybUz6;P$e z&DoaVR)L_9xtQJ&cdpotQYB1>B0=dFjFzkungW892vxb5$e5ZLBr`l$OtMv=&B0r< za$qx!eMR;*)x~YEk(9KDrh`De%*ugh*j)8pOV|)2mFxD4ymFwVI-g3Z!~PY*K~RK? zuaYZ=gBCe5aFv5#xym7z9N0CbX4Cn3nm1+lIEA0Heu144Qv$o_#;=UwV{t=h|-j=83zt2VOPRoRgr+_my04X-#{=QK(NmFJVMSmU=%aX`M`wVg~mNk6G*)QiH@xPYiJ>dN` zcXQSrIG|;n`5F=@3b4P=1pIF$Avex`MhQctJdiUE7|?MXSH^-Y&X-*FH7&iRft+#3 zsy{T7|wg=g=uG4(%nr@qy W11Rb@AFBbkNjac)=2zoJg8u`JR+iHM diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Right.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Right.bmp deleted file mode 100644 index 1de97a098639b0bb45e11c38ba76ebd8e103e8cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23286 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 diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Top.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PaneDiamond_Top.bmp deleted file mode 100644 index 95122a0f31b83e03b34977ac7fdea926907d9a83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23286 zcmeI4?Q<2?8Nk#3qJKjFf_`a7iyfK4NgB0Q9ktfVM64h!A_hZ6s6uGPb~=nwEmTGZ z3;EPe5vG;QTn3U!Ow7F`hVVAIF`A zo|u?8bLPy&ix(I2xX81G8n-5Em&1h%7ohQR)=NpYJBR7%=~AggEwWvt1qBU?5BPjo&C9ZHmCKR%CgXL+1c4ztwvq6UX2FYngcVPLSSDpFAnXsMHzu09Im|6cX@B`r9B%K-g>U~ z=Gu$9R?q(Gsq?Qrd3MM5XI_0|ddv4FU%K~HUzhk3FRb|J`MbxS`}T)FS?0C}vf?8D zMjO@tKfVtE&8f?OOZ#yD8QlBtKfm?Q_jg_Y!|R_7^#Aq1mdn3;asD^!tGm`**x7TY z|8eoBfA;Xy<_9W$-4nf?q}6?Ui=hor#6m#t13&M>?ccufomV#Od3oLLpFX>*_eZ~6 z-}8&LKiu}rV_SM2+VsTzy^noo{X_SNzxILUYwo@4>8?9_?)fGh)Q+PZ2rSuFkp#h2 zKHu;XM1e}I6PO~I9rCSg{oHayK~}k37<1?5=H}<;>ua9--CUHHOw<6Emti_mS+b>% z$C`PON36iHk`^hZdPX=zREpI+jnEz0s6wSu85|speQ?N!hKAg`u@Z7{QPcsOMm>$A zdPX=jX_(fUx-%VR4ZgSkz~(+ie%I~a)ccqH`wkvFIPm(8H=bR^E&M|}cOb!cB>hN$ zLq7WW2sdLu_w|f$XwopP)g)V(i`vHre*fX0{`mJ#E=3kINRS_TZM)tT$${-#Ba%Zq z``rx5Rtst}pxOEy#43$p5wjZRBrGY|9oRR%R{NM;R$Qby{!et%{L%Tnmp2K7H&^$N zTzwKE=egt4HAsS=Bylqo4t}{2iD--3D33LSieNRvdPvozj;@~dIgk*elHo90xjtt& zkTz1B|I^K1b(ZRjZsH>$t)F46Bm)QXp`h!+;rtk;Gz^P8T#U%+In>6EV3WnjNOEAp z;hN<@&VI!sl2{Hd0SyZW;@{L|;2@=#_Ap!KQCbcqD%Btd(=USdaBd6(Q4 zfB=#Rz@(oMu-e9w;)|SAl)~d%<_psv!tsFtN0gUR)MuZWEmr+WAeKYQiu=+04E^@N zelJ_!t`3AHtHp8hv~3URIoQ)#aIpO%oHrRKEeGo87ROIGphiUKK0Zl;@7M9B5>4x7 z7|VhEe~GM`NQrR3s&2+f%Yi{J7#~Is6G5{jz@_gOtfOR3q46-J*zsYQ!wJ~sg#((q z1(8)s4mYiGQUr=~6$U~Ahc2SwR6WVi&KDJqSQrjdcKtAZR1T-P*(Px?{UR72hRDRs z7m4kmGfjK&=ZmC@yKabs+o|IC@M*&xDsY?b3l7xaH z8TuSzm67B;J{q%mzmR^R98!;ya4_p?dA|tXv!qh7<*G2Ewj{yNfI`!{U{i9C63seF z=8GBgp4C9Vu=6IJh^3dEFYNn8xUQxyTHmAq3b<-ZT{1wBB$N`#FeL{`&N4XQ;I1F+ z8p+KTg}MBBGng+JCs{|C_sz1rXGx`!2#DOxUv>81H`9^4g*{+mN;tRs+S=g%OPJq{eB^)H*9bi;Bv9VQ47^M7qHSE^3_v0jE|3F zq27IG_q+WYar<6b??%mIHFI&}lhi{34gX)|MSmB_yLIUq@+qie@^Xc_`s`HMOE55-?1pCr#(X;z4 z9M~A-?8>QAr$E70aJGx{Kd~k)IH=C~nm7T%g#`^e8bzZ(HqA*T98R1#!IS|CS_S`U znC;^93#WkGV-KQdOMM`4)PzDQ8U?axPAcU93R(p;nza6=}x&2@Wg=s0W{}M5T=5qj9c=_5c+edk z^*OMa#=atZo9dFb*R(yrA!RFCLeXx<0ae*t4PB>ih>^Ou{i3KGsHx7UNl)+=;UFlI zAjsXq_lr8!*ITzvd(bM!25xf@ECu7ht|>Lj<`-#vklo`9e!i9AwM7N%OI5 bx@}($plIHFtOndRAe1M3Ss(A#J zSb@8oUU^0+~+#2UDs_Vo=6tmGS@k%nXQrYkOrA%bj#dkgly(N;QIakcs!0zDb6B$ z#y?5QyoXRIluRZmw=`)kPM8*LBZcwdg$IWB*5ldxhtszQQ#bYrqk9vU-TcL#s98&W z_{`4G=^cUL?Qc$Yfa`L(>b}Q3&!P=;{IuPepF?#=asU7T diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PanelBottom_Active.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PanelBottom_Active.bmp deleted file mode 100644 index 212fb0d366643c01ddb73ad88d5caac25db236fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2782 zcmds(+iTNc7{=qRe}OmRt$%@6f^1^JvDz^v6PcouiicTrbyn-Cc$#M~3hJP9f(*1* zUO0zrg{(BCwWl;a#I82gwWXyxHWcwfp*~-d)^?4HjTOO{Cok{!yx;pvQYiU4^}Rh4TfP{ zS_88nC~zGey?-J+4_;K6``-UTLB2+F#Znx>1GUb@WHYPLQQ_tS(+i?%1(v9DL6YUV zx<}mkl5_*pD%^Z{ra&}Xh|J`nFcBP*BSi9sT7jM71{H3Rql?@e$uSgki7Z8l%b(q< zFKsAsb1K|&(p%;kSxKf`FZk%n8&HT{ViI44yEq?MOjlJ`f1D2xNv)cXqFSqPm$EF8 z5FwK4EW0egVVB7gKB*-UN2;^zKjMDQ^SHCNyxRYwqBT^02d&tOb}lAYxvNGl#w7g; zt%du{pm!R&og@<}qFd&=26eM_avjjYX-2oqZAK_M{{h$U_s8RLd`j^yitqS4ro!(K z3Wbu%q{J;vSc~J9f@35EaK2X``C)cNCrvl08U=pYW$i_uN)Iih&^%686 z=xm5$pqV5gpe~?ZV$3JWSY*XSnh)_ZvPNRqKwU(dPmF0;)evbuBr36*fJYFhi%9eF z7=mAlNb`rf`$y9cp7IBn2Jj~mJhCGs{m`NOgjfMdsF3W2i-f3ws3$V~fy&4RKxg2u zzn;!1eKND?`P_0Kg0LS=%X=_6`(A(A?e3(T9kJJ2qOLZCUaAeaSmg^L&y{(eEpa_v zMK}_b2Dv=}EoO9tR<> zHbq>n3%O9`f3DmIXg;vzgD3qj?W_W##cdTpG{3oYPJQ9@n%v3dnSI5nU3rPESuqW% z;nfL2!q8_N1 zp!q;&LlgteBnbg^0re7NK1s$RD<;x>h?kKy62k`SBGP%Nb@04iPZ!=f(9UL+iMm7LC z1AqPXbWZ7$nMKd%mID!l{b*X=gUQ+V`qOTAC*ACbz1|XawITFUZNSAUUkG`w%=2uC z>**rrQw5F$&Huf3?)RND{~TBVL=g7Zt&=}(=zYJc{q@p@=kqEb&nUh>IpW%g| z2zj+B;&NTcg)0AZ3?Zw6%Z|Ms{o?;&82hd3#ZrQPA<>vD^BgoOKi=G zX-EyPP6#TG@hcAZf{=M3ZaD!?8NT+ZUN%7UZ``PoPCKLcsPd0CV;=cmMzZ diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PanelLeft.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PanelLeft.bmp deleted file mode 100644 index 551fd88624747761b970c653d7449ec33dbddc13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838 zcmZ?r72{?A12Z700mSk^EDOYp3=%++f#Crcm_i}8(h>k|0vdnf#EHw7FW`yRCc zn)yI0u3o(gw2MLjGz8*WH1mPtM~@!eOECZ%0yGL37-;6taSWmg0y+>F0$9y|cybF6 zJwCnt>ABr6E**Sz?bzGfr{CYd@bS@=&rhxc(SJe!=t3gRe}3t}t7}I==HI*U=^@B` zpk6}8|0l-$N2j+vJ-6ot(ERI1-`)b5{}F6HwcP&*96nI@-#Y!_K2_a+VhhmxC+Bt} zhtJ1HSE(5OAorgKn|~b~zj(ucZ;~5wq!0-I6NvN!az8BmKjBC}tNeZUCX-@5EPaB* z2bMm8@e4K|E&TwwK=b#ImuYzYodo zKe6TU8F2c!49Z_X^Fiq!NBFNKHGI(G7o2}T0MidP_d}8mY3TKr|6z&4-Vm_6^|LL64Co_wl&n<_L5bmRCc@HLM-|J7i-JNu^Bldbr)YXR2OSJ(P zt9&8kxiZhQC9bE7oKF=v;t&7dd*^=NIrGnf1rQR#{knDXrwzUDSGB)h+VFf{<>MK} z_b2Dv=}EoO9tR<>Hbq>n3%O9`f3DmIXg;3$cWGx85G`)2fROW>OXt)VPOr(GT%Ori zoZ6L_*qRm7kQ!c{5L6!HR~+sIA@f4qasr$(eC<=cY=GvYwI7ZhJ9hEn#p~Cv0~;08 s1(5c`kt0XWoH+xug2HAGrgn(=2M!znS^@M0upviX05P9-El{BO02Xyfj{pDw diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PanelLeft_Active.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PanelLeft_Active.bmp deleted file mode 100644 index 5182318ed3d451f969799e09333f85e60ede5ad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838 zcmZ?r72{?A12Z700mSk^EDOYp3=%++f#Crcm_i}`GceE&0c`>re&WQ5%a1 zwE>#>Kr60Zy$ZC8LI5-b;#xHGf#OGx9^FeZ02%@`3K$q@=Ff2qq6z{!5Euej&3|}u z3lKd%z5VIA-7hX3e0A;E+uNt#-@owj(Us3nt^?73LICJOBF%q(>A>?#=LOLG>qp<-0-662Y(BNz{|FpDQ1{W(EKOo zb|Z(+$46JG82%vlp9h%m^^aFA~Ec`#=NI$FmefK7lVm>T= zg2M-vK7sKIHXkkh0J%W(_mJd%u=$AaxpwRgDE*(uO#eW`$u=L9zo6lN^bI8a;B>za z$?iX~tEhk_~C;2NwP)=^vQCaJU~i zWkT4%NFiAMK=K!;e1Mccu<{M47t=sA5n|1U#4pf%VEDtz2Wpi+(DVb0Uts_F-&$A`2r;D6V6*%G#|KEG(e&0Fs&w&LH62kqub@HbTz3*4Gzh2t#d|u__ z8O8S}=iKQ@z0n>AA+I(?T&@ebQ00HF+y`hrp89ubXB7}FZmWQh^P5ZO)E7>#$(>xD z*;ky}m6zC>71NL!UY!tB9^+RW?gb(9Lfmo!oHBgvQ@w0}=A*SAjvYI8@#4kn*RKN` s71RZg_QR1QN6wr%1GIv|W)G%zi1`N&8~|DY^aZdXM_m9hpQi0k0Kv25U;qFB diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PanelRight.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PanelRight.bmp deleted file mode 100644 index 003cbb02a6df99653e66cf887fff26d684f97f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838 zcmZ?r72{?A12Z700mSk^EDOYp3=%++f#Crcm_i}8(h>k|0vdnf#EHw7FW`yRCc zn)yI0fZ*!Yt3c~00YDRg<^UawWA;h7yC0w4{_x}$AOgCO67zxDf#!dLn1B29 ztLsOfUpn~o-0nwIG9Tgod*|Om%|Gz;+#YI~4{`s;hgaUi&A)u$>3OP!55)bSfaXKP z9~eFdo}4EqeD)@}Va7Jp{qXR=cJu`}e#r=*JxOjW{e97_fVv;ad`S8s&-_*XK0pT} zTLDi$AMRZM#qTvx_yE%nG<}{RA$bIN<{zYD`G812 zK=Xm&4+$T#;ukGsAY5qr0p(wC`ngVi_+T|37XDYE=7ZBGFnmDaPh$GPYChckACSri z>X)C8@BxQEuzUcQpWBEj|DVn&eKND?`P^~{3E@7PmiJ(C_PzeJ+ucbwJ7TZ5L|ttN zy;K`;vC0=ho-6Y_TjF}U$oW)(BhZ6*>X+Yp=YHQg^Ur|=5E8=ux^?oW4ZZJIwZC54 z@O)n7;~B;GC+FPhNxjh?2O+OEMO>~6xlrYQt{haJ;HiI?c2)t=;$$Wa$S%%@!o6lgvGL|{nP diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PanelRight_Active.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PanelRight_Active.bmp deleted file mode 100644 index dad423551dc270a8fc196ced8f72bf9c9e01ecac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838 zcmZ?r72{?A12Z700mSk^EDOYp3=%++f#Crcm_i}`GceE&0d3m4b?b=}CoW&UeEat8 zdsGELXQP=9v;qjOUcCymjuHSg0cZ}U`9Sdt7cLw+bZ9SS;ONn#K%+3tpW_%r6$Er0 z(EC`;|4#^fesUd%K0dng{{Drxw@$yhcI^4315eKFetdfS!;@Qp2EP3IyB|@>e1!Y&oqr28|G?98d#GhT#Qh&1UU?5U|MG#S=cyJx5chuq znhyV72iA?b%a^H=%% z03D2M1w8$HxOV{*zt=$F157{A^m&4W^a*tTDt}*~fyh=MrJoCLKdNHkd1Kv{qt`?;RDLQ!1PH*_!CG!(C`PEe~^mh z10wwZ%?E}*Bz(w4re>$i1$;_hXbITzlg!^b(-h;{6_xjUrcPHKKh`rtt zb+sY%Qfcy!1f^k Dd#2bL diff --git a/src/DockPanel/Docking/Resources/DockIndicator_PanelTop.bmp b/src/DockPanel/Docking/Resources/DockIndicator_PanelTop.bmp deleted file mode 100644 index f6293fd2bc2b474bdb32322ee92ba986f7fa0233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2870 zcmZ?rHREOg12Z700mQOEtN_G}3=%*R2%z#14uqV!Vht@2!`7`^PnfA?H~^T^+FtnZZ1&b=+UEl$pt{YKofv|MmKkkV-O_>=pLX)v77s! zTmW>?sJXzvBRL%QCb{iRcH5JLKtK`9SRmP4pb@M5ePPIFrN1wxq2#z1VhTL{VKtO| zb0Io$8A_44cnlqW=6-&19T-LAk@)g4&_wbOf%NFttPCzrz})xuFTB48LLXoZ2>1Q{^AM2_Kv|#^1l>FT9*Dqf0_MKGeHw&rff1a2 z`}7+ix&=Z|1rRk51z!l6P=T$zQQG9=L&Yhmr8|`rr@@iAW<+_jyRsQG7eSqfTtml_@RsqrCwu<@9 zrE}^Fr`P08F3;>MPVLG|Y|V;kNDZ$}2r7^9D-QR9ka;0)IRQ=?zV@kJHb8UH+a<@2 z9lLn(;`Qs-fvpv)0BF19$dMyw&YS@nO{89I?YNv{O`%R=bZb?okz%Rv$w1j zsI|av#8{890b`A@4j#tqY{LA!AOxR0Yp%c)Fk-P-Hk(ydHQyww=K?LuGQPu_VJ+KS zJr{*&G#a*QSPKHKxt<$p?OKhnA6)3-+dg%xvw z7gMkG;0KGsuxl$Gm9!pO!<@!(b$ChO^p*xQq^KL z{uP=e;ti~aHPG0ETbYn56VZwiC7uKljge%5k>^#~Ntz`SZaMR|lo87r5&kccBvF

|x4stI={`G#r?zKA$QraVZ|fKHJqqC~2^(}X)6e+6mrmm2XzMur9nR$VC7dQ7#DpB2ayPTOS?#GU6{iJU#uuQwa2Zy5;&XxQBW9;?C^(?s1Foe_ z$^ZG0>ptl5)lda;5~H5(wZ9nFKIIT3r__-t!i6jyUpsgLB8dq_yD2hO1*Ej$+#W)uqO_%To D=uj!( diff --git a/src/DockPanel/Docking/Resources/DockPane_AutoHide.bmp b/src/DockPanel/Docking/Resources/DockPane_AutoHide.bmp deleted file mode 100644 index 2f395fc0103c27921866c86c1e18e06eb0437c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmZ?rWn*Rl12Z700mK48%n!tj3=%++f#CuZm_i}`4+Q{pF-guu@gay7ogS!Nx V9KT|q>@ZLd3m6bh(7yw#0058Bb*TUV diff --git a/src/DockPanel/Docking/Resources/DockPane_Option.bmp b/src/DockPanel/Docking/Resources/DockPane_Option.bmp deleted file mode 100644 index 0d9927a7ce5d055bfc510269000a26a74b54bb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmZ?rWn*Rl12Z700mK48%n!tj3=%++f#CuZm_i}`4@Us;A(1{q4i17^kQEcO1yeCW NEd(7fssMio006TLlZyZV diff --git a/src/DockPanel/Docking/Resources/DockPane_OptionOverflow.bmp b/src/DockPanel/Docking/Resources/DockPane_OptionOverflow.bmp deleted file mode 100644 index 02e4bf2905c71009e0a642e171211bf86da659ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmZ?rWn*Rl12Z700mK48%n!tj3=%++f#CuZm_i}`4@Us;A(1{q4i17^kQEcO1yeCW UEd(8atbkPWNmY+**HB>t0L6i0y8r+H diff --git a/src/DockPanel/Docking/Resources/Dockindicator_PaneDiamond_Fill.bmp b/src/DockPanel/Docking/Resources/Dockindicator_PaneDiamond_Fill.bmp deleted file mode 100644 index cbe0a156ab38a1bdd969735c4bb24cc1c9865744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23286 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

alaYAV8S8llZOJ&~{ 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 diff --git a/src/DockPanel/Docking/SplitterBase.cs b/src/DockPanel/Docking/SplitterBase.cs deleted file mode 100644 index 0364d8d..0000000 --- a/src/DockPanel/Docking/SplitterBase.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Collections; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal class SplitterBase : Control - { - public SplitterBase() - { - SetStyle(ControlStyles.Selectable, false); - } - - public override DockStyle Dock - { - get { return base.Dock; } - set - { - SuspendLayout(); - base.Dock = value; - - if (Dock == DockStyle.Left || Dock == DockStyle.Right) - Width = SplitterSize; - else if (Dock == DockStyle.Top || Dock == DockStyle.Bottom) - Height = SplitterSize; - else - Bounds = Rectangle.Empty; - - if (Dock == DockStyle.Left || Dock == DockStyle.Right) - Cursor = Cursors.VSplit; - else if (Dock == DockStyle.Top || Dock == DockStyle.Bottom) - Cursor = Cursors.HSplit; - else - Cursor = Cursors.Default; - - ResumeLayout(); - } - } - - protected virtual int SplitterSize - { - get { return 0; } - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - if (e.Button != MouseButtons.Left) - return; - - StartDrag(); - } - - protected virtual void StartDrag() - { - } - - protected override void WndProc(ref Message m) - { - // eat the WM_MOUSEACTIVATE message - if (m.Msg == (int)Win32.Msgs.WM_MOUSEACTIVATE) - return; - - base.WndProc(ref m); - } - } -} diff --git a/src/DockPanel/Docking/Strings.Designer.cs b/src/DockPanel/Docking/Strings.Designer.cs deleted file mode 100644 index 8e7e1b9..0000000 --- a/src/DockPanel/Docking/Strings.Designer.cs +++ /dev/null @@ -1,774 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WeifenLuo.WinFormsUI.Docking { - using System; - - - ///

- /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Strings { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Strings() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WeifenLuo.WinFormsUI.Docking.Strings", typeof(Strings).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Docking. - /// - internal static string Category_Docking { - get { - return ResourceManager.GetString("Category_Docking", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Docking Notification. - /// - internal static string Category_DockingNotification { - get { - return ResourceManager.GetString("Category_DockingNotification", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property Changed. - /// - internal static string Category_PropertyChanged { - get { - return ResourceManager.GetString("Category_PropertyChanged", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to (Float). - /// - internal static string DockAreaEditor_FloatCheckBoxText { - get { - return ResourceManager.GetString("DockAreaEditor_FloatCheckBoxText", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Determines if end user drag and drop docking is allowed.. - /// - internal static string DockContent_AllowEndUserDocking_Description { - get { - return ResourceManager.GetString("DockContent_AllowEndUserDocking_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The size to display the content in auto hide mode. Value < 1 to specify the size in portion; value >= 1 to specify the size in pixel.. - /// - internal static string DockContent_AutoHidePortion_Description { - get { - return ResourceManager.GetString("DockContent_AutoHidePortion_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Enable/Disable the close button of the content.. - /// - internal static string DockContent_CloseButton_Description { - get { - return ResourceManager.GetString("DockContent_CloseButton_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Shows or hides the close button of the content. This property does not function with System MDI Document Style.. - /// - internal static string DockContent_CloseButtonVisible_Description { - get { - return ResourceManager.GetString("DockContent_CloseButtonVisible_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The form must be of type IDockContent.. - /// - internal static string DockContent_Constructor_InvalidForm { - get { - return ResourceManager.GetString("DockContent_Constructor_InvalidForm", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Gets or sets a value indicating in which area of the DockPanel the content allowed to show.. - /// - internal static string DockContent_DockAreas_Description { - get { - return ResourceManager.GetString("DockContent_DockAreas_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Occurs when the value of DockState property changed.. - /// - internal static string DockContent_DockStateChanged_Description { - get { - return ResourceManager.GetString("DockContent_DockStateChanged_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Indicates the content will be hidden instead of being closed.. - /// - internal static string DockContent_HideOnClose_Description { - get { - return ResourceManager.GetString("DockContent_HideOnClose_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The desired docking state when first showing.. - /// - internal static string DockContent_ShowHint_Description { - get { - return ResourceManager.GetString("DockContent_ShowHint_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Context menu displayed for the dock pane tab strip.. - /// - internal static string DockContent_TabPageContextMenu_Description { - get { - return ResourceManager.GetString("DockContent_TabPageContextMenu_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The tab text displayed in the dock pane. If not set, the Text property will be used.. - /// - internal static string DockContent_TabText_Description { - get { - return ResourceManager.GetString("DockContent_TabText_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The text displayed when mouse hovers over the tab.. - /// - internal static string DockContent_ToolTipText_Description { - get { - return ResourceManager.GetString("DockContent_ToolTipText_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The provided value is out of range.. - /// - internal static string DockContentHandler_AutoHidePortion_OutOfRange { - get { - return ResourceManager.GetString("DockContentHandler_AutoHidePortion_OutOfRange", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Value: The value of DockAreas conflicts with current DockState.. - /// - internal static string DockContentHandler_DockAreas_InvalidValue { - get { - return ResourceManager.GetString("DockContentHandler_DockAreas_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane.. - /// - internal static string DockContentHandler_DockPane_InvalidValue { - get { - return ResourceManager.GetString("DockContentHandler_DockPane_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane.. - /// - internal static string DockContentHandler_FloatPane_InvalidValue { - get { - return ResourceManager.GetString("DockContentHandler_FloatPane_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid value, conflicts with DockableAreas property.. - /// - internal static string DockContentHandler_IsFloat_InvalidValue { - get { - return ResourceManager.GetString("DockContentHandler_IsFloat_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The dock state is invalid.. - /// - internal static string DockContentHandler_SetDockState_InvalidState { - get { - return ResourceManager.GetString("DockContentHandler_SetDockState_InvalidState", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The dock panel is null.. - /// - internal static string DockContentHandler_SetDockState_NullPanel { - get { - return ResourceManager.GetString("DockContentHandler_SetDockState_NullPanel", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid beforeContent, it must be contained by the pane.. - /// - internal static string DockContentHandler_Show_InvalidBeforeContent { - get { - return ResourceManager.GetString("DockContentHandler_Show_InvalidBeforeContent", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid DockState: Content can not be showed as "Unknown" or "Hidden".. - /// - internal static string DockContentHandler_Show_InvalidDockState { - get { - return ResourceManager.GetString("DockContentHandler_Show_InvalidDockState", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The previous pane is invalid. It can not be null, and its docking state must not be auto-hide.. - /// - internal static string DockContentHandler_Show_InvalidPrevPane { - get { - return ResourceManager.GetString("DockContentHandler_Show_InvalidPrevPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to DockPanel can not be null.. - /// - internal static string DockContentHandler_Show_NullDockPanel { - get { - return ResourceManager.GetString("DockContentHandler_Show_NullDockPanel", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The Pane can not be null.. - /// - internal static string DockContentHandler_Show_NullPane { - get { - return ResourceManager.GetString("DockContentHandler_Show_NullPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid value, check DockableAreas property.. - /// - internal static string DockContentHandler_ShowHint_InvalidValue { - get { - return ResourceManager.GetString("DockContentHandler_ShowHint_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Context menu displayed for the dock pane tab strip.. - /// - internal static string DockHandler_TabPageContextMenuStrip_Description { - get { - return ResourceManager.GetString("DockHandler_TabPageContextMenuStrip_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Press SHIFT for docking to full side.. - /// - internal static string DockIndicator_ToolTipText { - get { - return ResourceManager.GetString("DockIndicator_ToolTipText", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Content: ActiveContent must be one of the visible contents, or null if there is no visible content.. - /// - internal static string DockPane_ActiveContent_InvalidValue { - get { - return ResourceManager.GetString("DockPane_ActiveContent_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid argument: Content can not be "null".. - /// - internal static string DockPane_Constructor_NullContent { - get { - return ResourceManager.GetString("DockPane_Constructor_NullContent", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid argument: The content's DockPanel can not be "null".. - /// - internal static string DockPane_Constructor_NullDockPanel { - get { - return ResourceManager.GetString("DockPane_Constructor_NullDockPanel", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The specified container conflicts with the IsFloat property.. - /// - internal static string DockPane_DockTo_InvalidContainer { - get { - return ResourceManager.GetString("DockPane_DockTo_InvalidContainer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The previous pane does not exist in the nested docking pane collection.. - /// - internal static string DockPane_DockTo_NoPrevPane { - get { - return ResourceManager.GetString("DockPane_DockTo_NoPrevPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The container can not be null.. - /// - internal static string DockPane_DockTo_NullContainer { - get { - return ResourceManager.GetString("DockPane_DockTo_NullContainer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The previous pane can not be null when the nested docking pane collection is not empty.. - /// - internal static string DockPane_DockTo_NullPrevPane { - get { - return ResourceManager.GetString("DockPane_DockTo_NullPrevPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The previous pane can not be itself.. - /// - internal static string DockPane_DockTo_SelfPrevPane { - get { - return ResourceManager.GetString("DockPane_DockTo_SelfPrevPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to FloatWindow property can not be set to "null" when DockState is DockState.Float.. - /// - internal static string DockPane_FloatWindow_InvalidValue { - get { - return ResourceManager.GetString("DockPane_FloatWindow_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Content: Content not within the collection.. - /// - internal static string DockPane_SetContentIndex_InvalidContent { - get { - return ResourceManager.GetString("DockPane_SetContentIndex_InvalidContent", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Index: The index is out of range.. - /// - internal static string DockPane_SetContentIndex_InvalidIndex { - get { - return ResourceManager.GetString("DockPane_SetContentIndex_InvalidIndex", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The state for the dock pane is invalid.. - /// - internal static string DockPane_SetDockState_InvalidState { - get { - return ResourceManager.GetString("DockPane_SetDockState_InvalidState", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Auto Hide. - /// - internal static string DockPaneCaption_ToolTipAutoHide { - get { - return ResourceManager.GetString("DockPaneCaption_ToolTipAutoHide", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Close. - /// - internal static string DockPaneCaption_ToolTipClose { - get { - return ResourceManager.GetString("DockPaneCaption_ToolTipClose", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Options. - /// - internal static string DockPaneCaption_ToolTipOptions { - get { - return ResourceManager.GetString("DockPaneCaption_ToolTipOptions", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Content: The content must be auto-hide state and associates with this DockPanel.. - /// - internal static string DockPanel_ActiveAutoHideContent_InvalidValue { - get { - return ResourceManager.GetString("DockPanel_ActiveAutoHideContent_InvalidValue", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Occurs when the value of ActiveContentProperty changed.. - /// - internal static string DockPanel_ActiveContentChanged_Description { - get { - return ResourceManager.GetString("DockPanel_ActiveContentChanged_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Occurs when the value of ActiveDocument property changed.. - /// - internal static string DockPanel_ActiveDocumentChanged_Description { - get { - return ResourceManager.GetString("DockPanel_ActiveDocumentChanged_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Occurs when the value of ActivePane property changed.. - /// - internal static string DockPanel_ActivePaneChanged_Description { - get { - return ResourceManager.GetString("DockPanel_ActivePaneChanged_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Determines if the drag and drop docking is allowed.. - /// - internal static string DockPanel_AllowEndUserDocking_Description { - get { - return ResourceManager.GetString("DockPanel_AllowEndUserDocking_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Determines if the drag and drop nested docking is allowed.. - /// - internal static string DockPanel_AllowEndUserNestedDocking_Description { - get { - return ResourceManager.GetString("DockPanel_AllowEndUserNestedDocking_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Occurs when a content added to the DockPanel.. - /// - internal static string DockPanel_ContentAdded_Description { - get { - return ResourceManager.GetString("DockPanel_ContentAdded_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Occurs when a content removed from the DockPanel.. - /// - internal static string DockPanel_ContentRemoved_Description { - get { - return ResourceManager.GetString("DockPanel_ContentRemoved_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The default size of float window.. - /// - internal static string DockPanel_DefaultFloatWindowSize_Description { - get { - return ResourceManager.GetString("DockPanel_DefaultFloatWindowSize_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Provides Visual Studio .Net style docking.. - /// - internal static string DockPanel_Description { - get { - return ResourceManager.GetString("DockPanel_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Size of the bottom docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. - /// - internal static string DockPanel_DockBottomPortion_Description { - get { - return ResourceManager.GetString("DockPanel_DockBottomPortion_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Size of the left docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. - /// - internal static string DockPanel_DockLeftPortion_Description { - get { - return ResourceManager.GetString("DockPanel_DockLeftPortion_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The visual skin to use when displaying the docked windows.. - /// - internal static string DockPanel_DockPanelSkin { - get { - return ResourceManager.GetString("DockPanel_DockPanelSkin", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Size of the right docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. - /// - internal static string DockPanel_DockRightPortion_Description { - get { - return ResourceManager.GetString("DockPanel_DockRightPortion_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Size of the top docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels.. - /// - internal static string DockPanel_DockTopPortion_Description { - get { - return ResourceManager.GetString("DockPanel_DockTopPortion_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The style of the document window.. - /// - internal static string DockPanel_DocumentStyle_Description { - get { - return ResourceManager.GetString("DockPanel_DocumentStyle_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Determines where the tab strip for Document style content is drawn.. - /// - internal static string DockPanel_DocumentTabStripLocation { - get { - return ResourceManager.GetString("DockPanel_DocumentTabStripLocation", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The DockPanel has already been initialized.. - /// - internal static string DockPanel_LoadFromXml_AlreadyInitialized { - get { - return ResourceManager.GetString("DockPanel_LoadFromXml_AlreadyInitialized", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The configuration file's version is invalid.. - /// - internal static string DockPanel_LoadFromXml_InvalidFormatVersion { - get { - return ResourceManager.GetString("DockPanel_LoadFromXml_InvalidFormatVersion", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The XML file format is invalid.. - /// - internal static string DockPanel_LoadFromXml_InvalidXmlFormat { - get { - return ResourceManager.GetString("DockPanel_LoadFromXml_InvalidXmlFormat", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid parent form. When using DockingMdi or SystemMdi document style, the DockPanel control must be the child control of the main MDI container form.. - /// - internal static string DockPanel_ParentForm_Invalid { - get { - return ResourceManager.GetString("DockPanel_ParentForm_Invalid", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to DockPanel configuration file. Author: Weifen Luo, all rights reserved.. - /// - internal static string DockPanel_Persistor_XmlFileComment1 { - get { - return ResourceManager.GetString("DockPanel_Persistor_XmlFileComment1", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to !!! AUTOMATICALLY GENERATED FILE. DO NOT MODIFY !!!. - /// - internal static string DockPanel_Persistor_XmlFileComment2 { - get { - return ResourceManager.GetString("DockPanel_Persistor_XmlFileComment2", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Indicates whether the control layout is right-to-left when the RightToLeft property is set to Yes.. - /// - internal static string DockPanel_RightToLeftLayout_Description { - get { - return ResourceManager.GetString("DockPanel_RightToLeftLayout_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Index: The index is out of range.. - /// - internal static string DockPanel_SetPaneIndex_InvalidIndex { - get { - return ResourceManager.GetString("DockPanel_SetPaneIndex_InvalidIndex", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Pane: DockPane not within the collection.. - /// - internal static string DockPanel_SetPaneIndex_InvalidPane { - get { - return ResourceManager.GetString("DockPanel_SetPaneIndex_InvalidPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Determines if the document icon will be displayed in the tab strip.. - /// - internal static string DockPanel_ShowDocumentIcon_Description { - get { - return ResourceManager.GetString("DockPanel_ShowDocumentIcon_Description", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Close. - /// - internal static string DockPaneStrip_ToolTipClose { - get { - return ResourceManager.GetString("DockPaneStrip_ToolTipClose", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Window List. - /// - internal static string DockPaneStrip_ToolTipWindowList { - get { - return ResourceManager.GetString("DockPaneStrip_ToolTipWindowList", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid argument: DockPanel can not be "null".. - /// - internal static string FloatWindow_Constructor_NullDockPanel { - get { - return ResourceManager.GetString("FloatWindow_Constructor_NullDockPanel", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Index: The index is out of range.. - /// - internal static string FloatWindow_SetPaneIndex_InvalidIndex { - get { - return ResourceManager.GetString("FloatWindow_SetPaneIndex_InvalidIndex", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid Pane: DockPane not within the collection.. - /// - internal static string FloatWindow_SetPaneIndex_InvalidPane { - get { - return ResourceManager.GetString("FloatWindow_SetPaneIndex_InvalidPane", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid DockPanel.. - /// - internal static string IDockDragSource_DockTo_InvalidPanel { - get { - return ResourceManager.GetString("IDockDragSource_DockTo_InvalidPanel", resourceCulture); - } - } - } -} diff --git a/src/DockPanel/Docking/Strings.resx b/src/DockPanel/Docking/Strings.resx deleted file mode 100644 index 1500401..0000000 --- a/src/DockPanel/Docking/Strings.resx +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Docking - - - Docking Notification - - - Property Changed - - - (Float) - - - Determines if end user drag and drop docking is allowed. - - - The size to display the content in auto hide mode. Value < 1 to specify the size in portion; value >= 1 to specify the size in pixel. - - - Enable/Disable the close button of the content. - - - The form must be of type IDockContent. - - - Gets or sets a value indicating in which area of the DockPanel the content allowed to show. - - - Occurs when the value of DockState property changed. - - - Indicates the content will be hidden instead of being closed. - - - The desired docking state when first showing. - - - Context menu displayed for the dock pane tab strip. - - - The tab text displayed in the dock pane. If not set, the Text property will be used. - - - The text displayed when mouse hovers over the tab. - - - The provided value is out of range. - - - Invalid Value: The value of DockAreas conflicts with current DockState. - - - The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane. - - - The pane is invalid. Check the IsFloat and DockPanel properties of this dock pane. - - - Invalid value, conflicts with DockableAreas property. - - - The dock state is invalid. - - - The dock panel is null. - - - Invalid beforeContent, it must be contained by the pane. - - - Invalid DockState: Content can not be showed as "Unknown" or "Hidden". - - - The previous pane is invalid. It can not be null, and its docking state must not be auto-hide. - - - DockPanel can not be null. - - - The Pane can not be null. - - - Invalid value, check DockableAreas property. - - - Context menu displayed for the dock pane tab strip. - - - Press SHIFT for docking to full side. - - - Invalid Content: ActiveContent must be one of the visible contents, or null if there is no visible content. - - - Invalid argument: Content can not be "null". - - - Invalid argument: The content's DockPanel can not be "null". - - - The specified container conflicts with the IsFloat property. - - - The previous pane does not exist in the nested docking pane collection. - - - The container can not be null. - - - The previous pane can not be null when the nested docking pane collection is not empty. - - - The previous pane can not be itself. - - - FloatWindow property can not be set to "null" when DockState is DockState.Float. - - - Invalid Content: Content not within the collection. - - - Invalid Index: The index is out of range. - - - The state for the dock pane is invalid. - - - Auto Hide - - - Close - - - Options - - - Invalid Content: The content must be auto-hide state and associates with this DockPanel. - - - Occurs when the value of ActiveContentProperty changed. - - - Occurs when the value of ActiveDocument property changed. - - - Occurs when the value of ActivePane property changed. - - - Determines if the drag and drop docking is allowed. - - - Determines if the drag and drop nested docking is allowed. - - - Occurs when a content added to the DockPanel. - - - Occurs when a content removed from the DockPanel. - - - The default size of float window. - - - Provides Visual Studio .Net style docking. - - - Size of the bottom docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels. - - - Size of the left docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels. - - - Size of the right docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels. - - - Size of the top docking window. Value < 1 to specify the size in portion; value > 1 to specify the size in pixels. - - - The style of the document window. - - - The DockPanel has already been initialized. - - - The configuration file's version is invalid. - - - The XML file format is invalid. - - - Invalid parent form. When using DockingMdi or SystemMdi document style, the DockPanel control must be the child control of the main MDI container form. - - - DockPanel configuration file. Author: Weifen Luo, all rights reserved. - - - !!! AUTOMATICALLY GENERATED FILE. DO NOT MODIFY !!! - - - Indicates whether the control layout is right-to-left when the RightToLeft property is set to Yes. - - - Invalid Index: The index is out of range. - - - Invalid Pane: DockPane not within the collection. - - - Determines if the document icon will be displayed in the tab strip. - - - Close - - - Window List - - - Invalid argument: DockPanel can not be "null". - - - Invalid Index: The index is out of range. - - - Invalid Pane: DockPane not within the collection. - - - Invalid DockPanel. - - - Shows or hides the close button of the content. This property does not function with System MDI Document Style. - - - The visual skin to use when displaying the docked windows. - - - Determines where the tab strip for Document style content is drawn. - - \ No newline at end of file diff --git a/src/DockPanel/Docking/VS2005AutoHideStrip.cs b/src/DockPanel/Docking/VS2005AutoHideStrip.cs deleted file mode 100644 index be8d8d5..0000000 --- a/src/DockPanel/Docking/VS2005AutoHideStrip.cs +++ /dev/null @@ -1,505 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; -using System.Drawing.Drawing2D; -using System.ComponentModel; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal class VS2005AutoHideStrip : AutoHideStripBase - { - private class TabVS2005 : Tab - { - internal TabVS2005(IDockContent content) - : base(content) - { - } - - private int m_tabX = 0; - public int TabX - { - get { return m_tabX; } - set { m_tabX = value; } - } - - private int m_tabWidth = 0; - public int TabWidth - { - get { return m_tabWidth; } - set { m_tabWidth = value; } - } - - } - - private const int _ImageHeight = 16; - private const int _ImageWidth = 16; - private const int _ImageGapTop = 2; - private const int _ImageGapLeft = 4; - private const int _ImageGapRight = 2; - private const int _ImageGapBottom = 2; - private const int _TextGapLeft = 0; - private const int _TextGapRight = 0; - private const int _TabGapTop = 3; - private const int _TabGapLeft = 4; - private const int _TabGapBetween = 10; - - #region Customizable Properties - private static Font TextFont - { - get { return SystemInformation.MenuFont; } - } - - private static StringFormat _stringFormatTabHorizontal; - private StringFormat StringFormatTabHorizontal - { - get - { - if (_stringFormatTabHorizontal == null) - { - _stringFormatTabHorizontal = new StringFormat(); - _stringFormatTabHorizontal.Alignment = StringAlignment.Near; - _stringFormatTabHorizontal.LineAlignment = StringAlignment.Center; - _stringFormatTabHorizontal.FormatFlags = StringFormatFlags.NoWrap; - _stringFormatTabHorizontal.Trimming = StringTrimming.None; - } - - if (RightToLeft == RightToLeft.Yes) - _stringFormatTabHorizontal.FormatFlags |= StringFormatFlags.DirectionRightToLeft; - else - _stringFormatTabHorizontal.FormatFlags &= ~StringFormatFlags.DirectionRightToLeft; - - return _stringFormatTabHorizontal; - } - } - - private static StringFormat _stringFormatTabVertical; - private StringFormat StringFormatTabVertical - { - get - { - if (_stringFormatTabVertical == null) - { - _stringFormatTabVertical = new StringFormat(); - _stringFormatTabVertical.Alignment = StringAlignment.Near; - _stringFormatTabVertical.LineAlignment = StringAlignment.Center; - _stringFormatTabVertical.FormatFlags = StringFormatFlags.NoWrap | StringFormatFlags.DirectionVertical; - _stringFormatTabVertical.Trimming = StringTrimming.None; - } - if (RightToLeft == RightToLeft.Yes) - _stringFormatTabVertical.FormatFlags |= StringFormatFlags.DirectionRightToLeft; - else - _stringFormatTabVertical.FormatFlags &= ~StringFormatFlags.DirectionRightToLeft; - - return _stringFormatTabVertical; - } - } - - private static int ImageHeight - { - get { return _ImageHeight; } - } - - private static int ImageWidth - { - get { return _ImageWidth; } - } - - private static int ImageGapTop - { - get { return _ImageGapTop; } - } - - private static int ImageGapLeft - { - get { return _ImageGapLeft; } - } - - private static int ImageGapRight - { - get { return _ImageGapRight; } - } - - private static int ImageGapBottom - { - get { return _ImageGapBottom; } - } - - private static int TextGapLeft - { - get { return _TextGapLeft; } - } - - private static int TextGapRight - { - get { return _TextGapRight; } - } - - private static int TabGapTop - { - get { return _TabGapTop; } - } - - private static int TabGapLeft - { - get { return _TabGapLeft; } - } - - private static int TabGapBetween - { - get { return _TabGapBetween; } - } - - private static Pen PenTabBorder - { - get { return SystemPens.GrayText; } - } - #endregion - - private static Matrix _matrixIdentity = new Matrix(); - private static Matrix MatrixIdentity - { - get { return _matrixIdentity; } - } - - private static DockState[] _dockStates; - private static DockState[] DockStates - { - get - { - if (_dockStates == null) - { - _dockStates = new DockState[4]; - _dockStates[0] = DockState.DockLeftAutoHide; - _dockStates[1] = DockState.DockRightAutoHide; - _dockStates[2] = DockState.DockTopAutoHide; - _dockStates[3] = DockState.DockBottomAutoHide; - } - return _dockStates; - } - } - - private static GraphicsPath _graphicsPath; - internal static GraphicsPath GraphicsPath - { - get - { - if (_graphicsPath == null) - _graphicsPath = new GraphicsPath(); - - return _graphicsPath; - } - } - - public VS2005AutoHideStrip(DockPanel panel) : base(panel) - { - SetStyle(ControlStyles.ResizeRedraw | - ControlStyles.UserPaint | - ControlStyles.AllPaintingInWmPaint | - ControlStyles.OptimizedDoubleBuffer, true); - BackColor = SystemColors.ControlLight; - } - - protected override void OnPaint(PaintEventArgs e) - { - Graphics g = e.Graphics; - - Color startColor = DockPanel.Skin.AutoHideStripSkin.DockStripGradient.StartColor; - Color endColor = DockPanel.Skin.AutoHideStripSkin.DockStripGradient.EndColor; - LinearGradientMode gradientMode = DockPanel.Skin.AutoHideStripSkin.DockStripGradient.LinearGradientMode; - using (LinearGradientBrush brush = new LinearGradientBrush(ClientRectangle, startColor, endColor, gradientMode)) - { - g.FillRectangle(brush, ClientRectangle); - } - - DrawTabStrip(g); - } - - protected override void OnLayout(LayoutEventArgs levent) - { - CalculateTabs(); - base.OnLayout (levent); - } - - private void DrawTabStrip(Graphics g) - { - DrawTabStrip(g, DockState.DockTopAutoHide); - DrawTabStrip(g, DockState.DockBottomAutoHide); - DrawTabStrip(g, DockState.DockLeftAutoHide); - DrawTabStrip(g, DockState.DockRightAutoHide); - } - - private void DrawTabStrip(Graphics g, DockState dockState) - { - Rectangle rectTabStrip = GetLogicalTabStripRectangle(dockState); - - if (rectTabStrip.IsEmpty) - return; - - Matrix matrixIdentity = g.Transform; - if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) - { - Matrix matrixRotated = new Matrix(); - matrixRotated.RotateAt(90, new PointF((float)rectTabStrip.X + (float)rectTabStrip.Height / 2, - (float)rectTabStrip.Y + (float)rectTabStrip.Height / 2)); - g.Transform = matrixRotated; - } - - foreach (Pane pane in GetPanes(dockState)) - { - foreach (TabVS2005 tab in pane.AutoHideTabs) - DrawTab(g, tab); - } - g.Transform = matrixIdentity; - } - - private void CalculateTabs() - { - CalculateTabs(DockState.DockTopAutoHide); - CalculateTabs(DockState.DockBottomAutoHide); - CalculateTabs(DockState.DockLeftAutoHide); - CalculateTabs(DockState.DockRightAutoHide); - } - - private void CalculateTabs(DockState dockState) - { - Rectangle rectTabStrip = GetLogicalTabStripRectangle(dockState); - - int imageHeight = rectTabStrip.Height - ImageGapTop - ImageGapBottom; - int imageWidth = ImageWidth; - if (imageHeight > ImageHeight) - imageWidth = ImageWidth * (imageHeight / ImageHeight); - - int x = TabGapLeft + rectTabStrip.X; - foreach (Pane pane in GetPanes(dockState)) - { - foreach (TabVS2005 tab in pane.AutoHideTabs) - { - int width = imageWidth + ImageGapLeft + ImageGapRight + - TextRenderer.MeasureText(tab.Content.DockHandler.TabText, TextFont).Width + - TextGapLeft + TextGapRight; - tab.TabX = x; - tab.TabWidth = width; - x += width; - } - - x += TabGapBetween; - } - } - - private Rectangle RtlTransform(Rectangle rect, DockState dockState) - { - Rectangle rectTransformed; - if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) - rectTransformed = rect; - else - rectTransformed = DrawHelper.RtlTransform(this, rect); - - return rectTransformed; - } - - private GraphicsPath GetTabOutline(TabVS2005 tab, bool transformed, bool rtlTransform) - { - DockState dockState = tab.Content.DockHandler.DockState; - Rectangle rectTab = GetTabRectangle(tab, transformed); - if (rtlTransform) - rectTab = RtlTransform(rectTab, dockState); - bool upTab = (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockBottomAutoHide); - DrawHelper.GetRoundedCornerTab(GraphicsPath, rectTab, upTab); - - return GraphicsPath; - } - - private void DrawTab(Graphics g, TabVS2005 tab) - { - Rectangle rectTabOrigin = GetTabRectangle(tab); - if (rectTabOrigin.IsEmpty) - return; - - DockState dockState = tab.Content.DockHandler.DockState; - IDockContent content = tab.Content; - - GraphicsPath path = GetTabOutline(tab, false, true); - - Color startColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.StartColor; - Color endColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.EndColor; - LinearGradientMode gradientMode = DockPanel.Skin.AutoHideStripSkin.TabGradient.LinearGradientMode; - g.FillPath(new LinearGradientBrush(rectTabOrigin, startColor, endColor, gradientMode), path); - g.DrawPath(PenTabBorder, path); - - // Set no rotate for drawing icon and text - Matrix matrixRotate = g.Transform; - g.Transform = MatrixIdentity; - - // Draw the icon - Rectangle rectImage = rectTabOrigin; - rectImage.X += ImageGapLeft; - rectImage.Y += ImageGapTop; - int imageHeight = rectTabOrigin.Height - ImageGapTop - ImageGapBottom; - int imageWidth = ImageWidth; - if (imageHeight > ImageHeight) - imageWidth = ImageWidth * (imageHeight/ImageHeight); - rectImage.Height = imageHeight; - rectImage.Width = imageWidth; - rectImage = GetTransformedRectangle(dockState, rectImage); - g.DrawIcon(((Form)content).Icon, RtlTransform(rectImage, dockState)); - - // Draw the text - Rectangle rectText = rectTabOrigin; - rectText.X += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; - rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; - rectText = RtlTransform(GetTransformedRectangle(dockState, rectText), dockState); - - Color textColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.TextColor; - - if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) - g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabVertical); - else - g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabHorizontal); - - // Set rotate back - g.Transform = matrixRotate; - } - - private Rectangle GetLogicalTabStripRectangle(DockState dockState) - { - return GetLogicalTabStripRectangle(dockState, false); - } - - private Rectangle GetLogicalTabStripRectangle(DockState dockState, bool transformed) - { - if (!DockHelper.IsDockStateAutoHide(dockState)) - return Rectangle.Empty; - - int leftPanes = GetPanes(DockState.DockLeftAutoHide).Count; - int rightPanes = GetPanes(DockState.DockRightAutoHide).Count; - int topPanes = GetPanes(DockState.DockTopAutoHide).Count; - int bottomPanes = GetPanes(DockState.DockBottomAutoHide).Count; - - int x, y, width, height; - - height = MeasureHeight(); - if (dockState == DockState.DockLeftAutoHide && leftPanes > 0) - { - x = 0; - y = (topPanes == 0) ? 0 : height; - width = Height - (topPanes == 0 ? 0 : height) - (bottomPanes == 0 ? 0 :height); - } - else if (dockState == DockState.DockRightAutoHide && rightPanes > 0) - { - x = Width - height; - if (leftPanes != 0 && x < height) - x = height; - y = (topPanes == 0) ? 0 : height; - width = Height - (topPanes == 0 ? 0 : height) - (bottomPanes == 0 ? 0 :height); - } - else if (dockState == DockState.DockTopAutoHide && topPanes > 0) - { - x = leftPanes == 0 ? 0 : height; - y = 0; - width = Width - (leftPanes == 0 ? 0 : height) - (rightPanes == 0 ? 0 : height); - } - else if (dockState == DockState.DockBottomAutoHide && bottomPanes > 0) - { - x = leftPanes == 0 ? 0 : height; - y = Height - height; - if (topPanes != 0 && y < height) - y = height; - width = Width - (leftPanes == 0 ? 0 : height) - (rightPanes == 0 ? 0 : height); - } - else - return Rectangle.Empty; - - if (!transformed) - return new Rectangle(x, y, width, height); - else - return GetTransformedRectangle(dockState, new Rectangle(x, y, width, height)); - } - - private Rectangle GetTabRectangle(TabVS2005 tab) - { - return GetTabRectangle(tab, false); - } - - private Rectangle GetTabRectangle(TabVS2005 tab, bool transformed) - { - DockState dockState = tab.Content.DockHandler.DockState; - Rectangle rectTabStrip = GetLogicalTabStripRectangle(dockState); - - if (rectTabStrip.IsEmpty) - return Rectangle.Empty; - - int x = tab.TabX; - int y = rectTabStrip.Y + - (dockState == DockState.DockTopAutoHide || dockState == DockState.DockRightAutoHide ? - 0 : TabGapTop); - int width = tab.TabWidth; - int height = rectTabStrip.Height - TabGapTop; - - if (!transformed) - return new Rectangle(x, y, width, height); - else - return GetTransformedRectangle(dockState, new Rectangle(x, y, width, height)); - } - - private Rectangle GetTransformedRectangle(DockState dockState, Rectangle rect) - { - if (dockState != DockState.DockLeftAutoHide && dockState != DockState.DockRightAutoHide) - return rect; - - PointF[] pts = new PointF[1]; - // the center of the rectangle - pts[0].X = (float)rect.X + (float)rect.Width / 2; - pts[0].Y = (float)rect.Y + (float)rect.Height / 2; - Rectangle rectTabStrip = GetLogicalTabStripRectangle(dockState); - Matrix matrix = new Matrix(); - matrix.RotateAt(90, new PointF((float)rectTabStrip.X + (float)rectTabStrip.Height / 2, - (float)rectTabStrip.Y + (float)rectTabStrip.Height / 2)); - matrix.TransformPoints(pts); - - return new Rectangle((int)(pts[0].X - (float)rect.Height / 2 + .5F), - (int)(pts[0].Y - (float)rect.Width / 2 + .5F), - rect.Height, rect.Width); - } - - protected override IDockContent HitTest(Point ptMouse) - { - foreach(DockState state in DockStates) - { - Rectangle rectTabStrip = GetLogicalTabStripRectangle(state, true); - if (!rectTabStrip.Contains(ptMouse)) - continue; - - foreach(Pane pane in GetPanes(state)) - { - DockState dockState = pane.DockPane.DockState; - foreach(TabVS2005 tab in pane.AutoHideTabs) - { - GraphicsPath path = GetTabOutline(tab, true, true); - if (path.IsVisible(ptMouse)) - return tab.Content; - } - } - } - - return null; - } - - protected internal override int MeasureHeight() - { - return Math.Max(ImageGapBottom + - ImageGapTop + ImageHeight, - TextFont.Height) + TabGapTop; - } - - protected override void OnRefreshChanges() - { - CalculateTabs(); - Invalidate(); - } - - protected override AutoHideStripBase.Tab CreateTab(IDockContent content) - { - return new TabVS2005(content); - } - } -} diff --git a/src/DockPanel/Docking/VS2005DockPaneCaption.cs b/src/DockPanel/Docking/VS2005DockPaneCaption.cs deleted file mode 100644 index fd000d3..0000000 --- a/src/DockPanel/Docking/VS2005DockPaneCaption.cs +++ /dev/null @@ -1,478 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Windows.Forms; -using System.ComponentModel; -using System.Windows.Forms.VisualStyles; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal class VS2005DockPaneCaption : DockPaneCaptionBase - { - private sealed class InertButton : InertButtonBase - { - private Bitmap m_image, m_imageAutoHide; - - public InertButton(VS2005DockPaneCaption dockPaneCaption, Bitmap image, Bitmap imageAutoHide) - : base() - { - m_dockPaneCaption = dockPaneCaption; - m_image = image; - m_imageAutoHide = imageAutoHide; - RefreshChanges(); - } - - private VS2005DockPaneCaption m_dockPaneCaption; - private VS2005DockPaneCaption DockPaneCaption - { - get { return m_dockPaneCaption; } - } - - public bool IsAutoHide - { - get { return DockPaneCaption.DockPane.IsAutoHide; } - } - - public override Bitmap Image - { - get { return IsAutoHide ? m_imageAutoHide : m_image; } - } - - protected override void OnRefreshChanges() - { - if (DockPaneCaption.DockPane.DockPanel != null) - { - if (DockPaneCaption.TextColor != ForeColor) - { - ForeColor = DockPaneCaption.TextColor; - Invalidate(); - } - } - } - } - - #region consts - private const int _TextGapTop = 2; - private const int _TextGapBottom = 0; - private const int _TextGapLeft = 3; - private const int _TextGapRight = 3; - private const int _ButtonGapTop = 2; - private const int _ButtonGapBottom = 1; - private const int _ButtonGapBetween = 1; - private const int _ButtonGapLeft = 1; - private const int _ButtonGapRight = 2; - #endregion - - private static Bitmap _imageButtonClose; - private static Bitmap ImageButtonClose - { - get - { - if (_imageButtonClose == null) - _imageButtonClose = Resources.DockPane_Close; - - return _imageButtonClose; - } - } - - private InertButton m_buttonClose; - private InertButton ButtonClose - { - get - { - if (m_buttonClose == null) - { - m_buttonClose = new InertButton(this, ImageButtonClose, ImageButtonClose); - m_toolTip.SetToolTip(m_buttonClose, ToolTipClose); - m_buttonClose.Click += new EventHandler(Close_Click); - Controls.Add(m_buttonClose); - } - - return m_buttonClose; - } - } - - private static Bitmap _imageButtonAutoHide; - private static Bitmap ImageButtonAutoHide - { - get - { - if (_imageButtonAutoHide == null) - _imageButtonAutoHide = Resources.DockPane_AutoHide; - - return _imageButtonAutoHide; - } - } - - private static Bitmap _imageButtonDock; - private static Bitmap ImageButtonDock - { - get - { - if (_imageButtonDock == null) - _imageButtonDock = Resources.DockPane_Dock; - - return _imageButtonDock; - } - } - - private InertButton m_buttonAutoHide; - private InertButton ButtonAutoHide - { - get - { - if (m_buttonAutoHide == null) - { - m_buttonAutoHide = new InertButton(this, ImageButtonDock, ImageButtonAutoHide); - m_toolTip.SetToolTip(m_buttonAutoHide, ToolTipAutoHide); - m_buttonAutoHide.Click += new EventHandler(AutoHide_Click); - Controls.Add(m_buttonAutoHide); - } - - return m_buttonAutoHide; - } - } - - private static Bitmap _imageButtonOptions; - private static Bitmap ImageButtonOptions - { - get - { - if (_imageButtonOptions == null) - _imageButtonOptions = Resources.DockPane_Option; - - return _imageButtonOptions; - } - } - - private InertButton m_buttonOptions; - private InertButton ButtonOptions - { - get - { - if (m_buttonOptions == null) - { - m_buttonOptions = new InertButton(this, ImageButtonOptions, ImageButtonOptions); - m_toolTip.SetToolTip(m_buttonOptions, ToolTipOptions); - m_buttonOptions.Click += new EventHandler(Options_Click); - Controls.Add(m_buttonOptions); - } - return m_buttonOptions; - } - } - - private IContainer m_components; - private IContainer Components - { - get { return m_components; } - } - - private ToolTip m_toolTip; - - public VS2005DockPaneCaption(DockPane pane) : base(pane) - { - SuspendLayout(); - - m_components = new Container(); - m_toolTip = new ToolTip(Components); - - ResumeLayout(); - } - - protected override void Dispose(bool disposing) - { - if (disposing) - Components.Dispose(); - base.Dispose(disposing); - } - - private static int TextGapTop - { - get { return _TextGapTop; } - } - - private static Font TextFont - { - get { return SystemInformation.MenuFont; } - } - - private static int TextGapBottom - { - get { return _TextGapBottom; } - } - - private static int TextGapLeft - { - get { return _TextGapLeft; } - } - - private static int TextGapRight - { - get { return _TextGapRight; } - } - - private static int ButtonGapTop - { - get { return _ButtonGapTop; } - } - - private static int ButtonGapBottom - { - get { return _ButtonGapBottom; } - } - - private static int ButtonGapLeft - { - get { return _ButtonGapLeft; } - } - - private static int ButtonGapRight - { - get { return _ButtonGapRight; } - } - - private static int ButtonGapBetween - { - get { return _ButtonGapBetween; } - } - - private static string _toolTipClose; - private static string ToolTipClose - { - get - { - if (_toolTipClose == null) - _toolTipClose = Strings.DockPaneCaption_ToolTipClose; - return _toolTipClose; - } - } - - private static string _toolTipOptions; - private static string ToolTipOptions - { - get - { - if (_toolTipOptions == null) - _toolTipOptions = Strings.DockPaneCaption_ToolTipOptions; - - return _toolTipOptions; - } - } - - private static string _toolTipAutoHide; - private static string ToolTipAutoHide - { - get - { - if (_toolTipAutoHide == null) - _toolTipAutoHide = Strings.DockPaneCaption_ToolTipAutoHide; - return _toolTipAutoHide; - } - } - - private static Blend _activeBackColorGradientBlend; - private static Blend ActiveBackColorGradientBlend - { - get - { - if (_activeBackColorGradientBlend == null) - { - Blend blend = new Blend(2); - - blend.Factors = new float[]{0.5F, 1.0F}; - blend.Positions = new float[]{0.0F, 1.0F}; - _activeBackColorGradientBlend = blend; - } - - return _activeBackColorGradientBlend; - } - } - - private Color TextColor - { - get - { - if (DockPane.IsActivated) - return DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.ActiveCaptionGradient.TextColor; - else - return DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.InactiveCaptionGradient.TextColor; - } - } - - private static TextFormatFlags _textFormat = - TextFormatFlags.SingleLine | - TextFormatFlags.EndEllipsis | - TextFormatFlags.VerticalCenter; - private TextFormatFlags TextFormat - { - get - { - if (RightToLeft == RightToLeft.No) - return _textFormat; - else - return _textFormat | TextFormatFlags.RightToLeft | TextFormatFlags.Right; - } - } - - protected internal override int MeasureHeight() - { - int height = TextFont.Height + TextGapTop + TextGapBottom; - - if (height < ButtonClose.Image.Height + ButtonGapTop + ButtonGapBottom) - height = ButtonClose.Image.Height + ButtonGapTop + ButtonGapBottom; - - return height; - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint (e); - DrawCaption(e.Graphics); - } - - private void DrawCaption(Graphics g) - { - if (ClientRectangle.Width == 0 || ClientRectangle.Height == 0) - return; - - if (DockPane.IsActivated) - { - Color startColor = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.ActiveCaptionGradient.StartColor; - Color endColor = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.ActiveCaptionGradient.EndColor; - LinearGradientMode gradientMode = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.ActiveCaptionGradient.LinearGradientMode; - using (LinearGradientBrush brush = new LinearGradientBrush(ClientRectangle, startColor, endColor, gradientMode)) - { - brush.Blend = ActiveBackColorGradientBlend; - g.FillRectangle(brush, ClientRectangle); - } - } - else - { - Color startColor = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.InactiveCaptionGradient.StartColor; - Color endColor = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.InactiveCaptionGradient.EndColor; - LinearGradientMode gradientMode = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.InactiveCaptionGradient.LinearGradientMode; - using (LinearGradientBrush brush = new LinearGradientBrush(ClientRectangle, startColor, endColor, gradientMode)) - { - g.FillRectangle(brush, ClientRectangle); - } - } - - Rectangle rectCaption = ClientRectangle; - - Rectangle rectCaptionText = rectCaption; - rectCaptionText.X += TextGapLeft; - rectCaptionText.Width -= TextGapLeft + TextGapRight; - rectCaptionText.Width -= ButtonGapLeft + ButtonClose.Width + ButtonGapRight; - if (ShouldShowAutoHideButton) - rectCaptionText.Width -= ButtonAutoHide.Width + ButtonGapBetween; - if (HasTabPageContextMenu) - rectCaptionText.Width -= ButtonOptions.Width + ButtonGapBetween; - rectCaptionText.Y += TextGapTop; - rectCaptionText.Height -= TextGapTop + TextGapBottom; - - Color colorText; - if (DockPane.IsActivated) - colorText = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.ActiveCaptionGradient.TextColor; - else - colorText = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.InactiveCaptionGradient.TextColor; - - TextRenderer.DrawText(g, DockPane.CaptionText, TextFont, DrawHelper.RtlTransform(this, rectCaptionText), colorText, TextFormat); - } - - protected override void OnLayout(LayoutEventArgs levent) - { - SetButtonsPosition(); - base.OnLayout (levent); - } - - protected override void OnRefreshChanges() - { - SetButtons(); - Invalidate(); - } - - private bool CloseButtonEnabled - { - get { return (DockPane.ActiveContent != null)? DockPane.ActiveContent.DockHandler.CloseButton : false; } - } - - /// - /// Determines whether the close button is visible on the content - /// - private bool CloseButtonVisible - { - get { return (DockPane.ActiveContent != null) ? DockPane.ActiveContent.DockHandler.CloseButtonVisible : false; } - } - - private bool ShouldShowAutoHideButton - { - get { return !DockPane.IsFloat; } - } - - private void SetButtons() - { - ButtonClose.Enabled = CloseButtonEnabled; - ButtonClose.Visible = CloseButtonVisible; - ButtonAutoHide.Visible = ShouldShowAutoHideButton; - ButtonOptions.Visible = HasTabPageContextMenu; - ButtonClose.RefreshChanges(); - ButtonAutoHide.RefreshChanges(); - ButtonOptions.RefreshChanges(); - - SetButtonsPosition(); - } - - private void SetButtonsPosition() - { - // set the size and location for close and auto-hide buttons - Rectangle rectCaption = ClientRectangle; - int buttonWidth = ButtonClose.Image.Width; - int buttonHeight = ButtonClose.Image.Height; - int height = rectCaption.Height - ButtonGapTop - ButtonGapBottom; - if (buttonHeight < height) - { - buttonWidth = buttonWidth * (height / buttonHeight); - buttonHeight = height; - } - Size buttonSize = new Size(buttonWidth, buttonHeight); - int x = rectCaption.X + rectCaption.Width - 1 - ButtonGapRight - m_buttonClose.Width; - int y = rectCaption.Y + ButtonGapTop; - Point point = new Point(x, y); - ButtonClose.Bounds = DrawHelper.RtlTransform(this, new Rectangle(point, buttonSize)); - - // If the close button is not visible draw the auto hide button overtop. - // Otherwise it is drawn to the left of the close button. - if (CloseButtonVisible) - point.Offset(-(buttonWidth + ButtonGapBetween), 0); - - ButtonAutoHide.Bounds = DrawHelper.RtlTransform(this, new Rectangle(point, buttonSize)); - if (ShouldShowAutoHideButton) - point.Offset(-(buttonWidth + ButtonGapBetween), 0); - ButtonOptions.Bounds = DrawHelper.RtlTransform(this, new Rectangle(point, buttonSize)); - } - - private void Close_Click(object sender, EventArgs e) - { - DockPane.CloseActiveContent(); - } - - private void AutoHide_Click(object sender, EventArgs e) - { - DockPane.DockState = DockHelper.ToggleAutoHideState(DockPane.DockState); - if (DockHelper.IsDockStateAutoHide(DockPane.DockState)) - DockPane.DockPanel.ActiveAutoHideContent = null; - - } - - private void Options_Click(object sender, EventArgs e) - { - ShowTabPageContextMenu(PointToClient(Control.MousePosition)); - } - - protected override void OnRightToLeftChanged(EventArgs e) - { - base.OnRightToLeftChanged(e); - PerformLayout(); - } - } -} diff --git a/src/DockPanel/Docking/VS2005DockPaneStrip.cs b/src/DockPanel/Docking/VS2005DockPaneStrip.cs deleted file mode 100644 index ee2ade6..0000000 --- a/src/DockPanel/Docking/VS2005DockPaneStrip.cs +++ /dev/null @@ -1,1479 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Windows.Forms; -using System.ComponentModel; -using System.Collections; -using System.Collections.Generic; - -namespace WeifenLuo.WinFormsUI.Docking -{ - internal class VS2005DockPaneStrip : DockPaneStripBase - { - private class TabVS2005 : Tab - { - public TabVS2005(IDockContent content) - : base(content) - { - } - - private int m_tabX; - public int TabX - { - get { return m_tabX; } - set { m_tabX = value; } - } - - private int m_tabWidth; - public int TabWidth - { - get { return m_tabWidth; } - set { m_tabWidth = value; } - } - - private int m_maxWidth; - public int MaxWidth - { - get { return m_maxWidth; } - set { m_maxWidth = value; } - } - - private bool m_flag; - protected internal bool Flag - { - get { return m_flag; } - set { m_flag = value; } - } - } - - protected internal override DockPaneStripBase.Tab CreateTab(IDockContent content) - { - return new TabVS2005(content); - } - - private sealed class InertButton : InertButtonBase - { - private Bitmap m_image0, m_image1; - - public InertButton(Bitmap image0, Bitmap image1) - : base() - { - m_image0 = image0; - m_image1 = image1; - } - - private int m_imageCategory = 0; - public int ImageCategory - { - get { return m_imageCategory; } - set - { - if (m_imageCategory == value) - return; - - m_imageCategory = value; - Invalidate(); - } - } - - public override Bitmap Image - { - get { return ImageCategory == 0 ? m_image0 : m_image1; } - } - } - - #region consts - private const int _ToolWindowStripGapTop = 0; - private const int _ToolWindowStripGapBottom = 1; - private const int _ToolWindowStripGapLeft = 0; - private const int _ToolWindowStripGapRight = 0; - private const int _ToolWindowImageHeight = 16; - private const int _ToolWindowImageWidth = 16; - private const int _ToolWindowImageGapTop = 3; - private const int _ToolWindowImageGapBottom = 1; - private const int _ToolWindowImageGapLeft = 2; - private const int _ToolWindowImageGapRight = 0; - private const int _ToolWindowTextGapRight = 3; - private const int _ToolWindowTabSeperatorGapTop = 3; - private const int _ToolWindowTabSeperatorGapBottom = 3; - - private const int _DocumentStripGapTop = 0; - private const int _DocumentStripGapBottom = 1; - private const int _DocumentTabMaxWidth = 200; - private const int _DocumentButtonGapTop = 4; - private const int _DocumentButtonGapBottom = 4; - private const int _DocumentButtonGapBetween = 0; - private const int _DocumentButtonGapRight = 3; - private const int _DocumentTabGapTop = 3; - private const int _DocumentTabGapLeft = 3; - private const int _DocumentTabGapRight = 3; - private const int _DocumentIconGapBottom = 2; - private const int _DocumentIconGapLeft = 8; - private const int _DocumentIconGapRight = 0; - private const int _DocumentIconHeight = 16; - private const int _DocumentIconWidth = 16; - private const int _DocumentTextGapRight = 3; - #endregion - - private static Bitmap _imageButtonClose; - private static Bitmap ImageButtonClose - { - get - { - if (_imageButtonClose == null) - _imageButtonClose = Resources.DockPane_Close; - - return _imageButtonClose; - } - } - - private InertButton m_buttonClose; - private InertButton ButtonClose - { - get - { - if (m_buttonClose == null) - { - m_buttonClose = new InertButton(ImageButtonClose, ImageButtonClose); - m_toolTip.SetToolTip(m_buttonClose, ToolTipClose); - m_buttonClose.Click += new EventHandler(Close_Click); - Controls.Add(m_buttonClose); - } - - return m_buttonClose; - } - } - - private static Bitmap _imageButtonWindowList; - private static Bitmap ImageButtonWindowList - { - get - { - if (_imageButtonWindowList == null) - _imageButtonWindowList = Resources.DockPane_Option; - - return _imageButtonWindowList; - } - } - - private static Bitmap _imageButtonWindowListOverflow; - private static Bitmap ImageButtonWindowListOverflow - { - get - { - if (_imageButtonWindowListOverflow == null) - _imageButtonWindowListOverflow = Resources.DockPane_OptionOverflow; - - return _imageButtonWindowListOverflow; - } - } - - private InertButton m_buttonWindowList; - private InertButton ButtonWindowList - { - get - { - if (m_buttonWindowList == null) - { - m_buttonWindowList = new InertButton(ImageButtonWindowList, ImageButtonWindowListOverflow); - m_toolTip.SetToolTip(m_buttonWindowList, ToolTipSelect); - m_buttonWindowList.Click += new EventHandler(WindowList_Click); - Controls.Add(m_buttonWindowList); - } - - return m_buttonWindowList; - } - } - - private static GraphicsPath GraphicsPath - { - get { return VS2005AutoHideStrip.GraphicsPath; } - } - - private IContainer m_components; - private ToolTip m_toolTip; - private IContainer Components - { - get { return m_components; } - } - - #region Customizable Properties - private static int ToolWindowStripGapTop - { - get { return _ToolWindowStripGapTop; } - } - - private static int ToolWindowStripGapBottom - { - get { return _ToolWindowStripGapBottom; } - } - - private static int ToolWindowStripGapLeft - { - get { return _ToolWindowStripGapLeft; } - } - - private static int ToolWindowStripGapRight - { - get { return _ToolWindowStripGapRight; } - } - - private static int ToolWindowImageHeight - { - get { return _ToolWindowImageHeight; } - } - - private static int ToolWindowImageWidth - { - get { return _ToolWindowImageWidth; } - } - - private static int ToolWindowImageGapTop - { - get { return _ToolWindowImageGapTop; } - } - - private static int ToolWindowImageGapBottom - { - get { return _ToolWindowImageGapBottom; } - } - - private static int ToolWindowImageGapLeft - { - get { return _ToolWindowImageGapLeft; } - } - - private static int ToolWindowImageGapRight - { - get { return _ToolWindowImageGapRight; } - } - - private static int ToolWindowTextGapRight - { - get { return _ToolWindowTextGapRight; } - } - - private static int ToolWindowTabSeperatorGapTop - { - get { return _ToolWindowTabSeperatorGapTop; } - } - - private static int ToolWindowTabSeperatorGapBottom - { - get { return _ToolWindowTabSeperatorGapBottom; } - } - - private static string _toolTipClose; - private static string ToolTipClose - { - get - { - if (_toolTipClose == null) - _toolTipClose = Strings.DockPaneStrip_ToolTipClose; - return _toolTipClose; - } - } - - private static string _toolTipSelect; - private static string ToolTipSelect - { - get - { - if (_toolTipSelect == null) - _toolTipSelect = Strings.DockPaneStrip_ToolTipWindowList; - return _toolTipSelect; - } - } - - private TextFormatFlags ToolWindowTextFormat - { - get - { - TextFormatFlags textFormat = TextFormatFlags.EndEllipsis | - TextFormatFlags.HorizontalCenter | - TextFormatFlags.SingleLine | - TextFormatFlags.VerticalCenter; - if (RightToLeft == RightToLeft.Yes) - return textFormat | TextFormatFlags.RightToLeft | TextFormatFlags.Right; - else - return textFormat; - } - } - - private static int DocumentStripGapTop - { - get { return _DocumentStripGapTop; } - } - - private static int DocumentStripGapBottom - { - get { return _DocumentStripGapBottom; } - } - - private TextFormatFlags DocumentTextFormat - { - get - { - TextFormatFlags textFormat = TextFormatFlags.EndEllipsis | - TextFormatFlags.SingleLine | - TextFormatFlags.VerticalCenter | - TextFormatFlags.HorizontalCenter; - if (RightToLeft == RightToLeft.Yes) - return textFormat | TextFormatFlags.RightToLeft; - else - return textFormat; - } - } - - private static int DocumentTabMaxWidth - { - get { return _DocumentTabMaxWidth; } - } - - private static int DocumentButtonGapTop - { - get { return _DocumentButtonGapTop; } - } - - private static int DocumentButtonGapBottom - { - get { return _DocumentButtonGapBottom; } - } - - private static int DocumentButtonGapBetween - { - get { return _DocumentButtonGapBetween; } - } - - private static int DocumentButtonGapRight - { - get { return _DocumentButtonGapRight; } - } - - private static int DocumentTabGapTop - { - get { return _DocumentTabGapTop; } - } - - private static int DocumentTabGapLeft - { - get { return _DocumentTabGapLeft; } - } - - private static int DocumentTabGapRight - { - get { return _DocumentTabGapRight; } - } - - private static int DocumentIconGapBottom - { - get { return _DocumentIconGapBottom; } - } - - private static int DocumentIconGapLeft - { - get { return _DocumentIconGapLeft; } - } - - private static int DocumentIconGapRight - { - get { return _DocumentIconGapRight; } - } - - private static int DocumentIconWidth - { - get { return _DocumentIconWidth; } - } - - private static int DocumentIconHeight - { - get { return _DocumentIconHeight; } - } - - private static int DocumentTextGapRight - { - get { return _DocumentTextGapRight; } - } - - private static Pen PenToolWindowTabBorder - { - get { return SystemPens.GrayText; } - } - - private static Pen PenDocumentTabActiveBorder - { - get { return SystemPens.ControlDarkDark; } - } - - private static Pen PenDocumentTabInactiveBorder - { - get { return SystemPens.GrayText; } - } - #endregion - - public VS2005DockPaneStrip(DockPane pane) : base(pane) - { - SetStyle(ControlStyles.ResizeRedraw | - ControlStyles.UserPaint | - ControlStyles.AllPaintingInWmPaint | - ControlStyles.OptimizedDoubleBuffer, true); - - SuspendLayout(); - - m_components = new Container(); - m_toolTip = new ToolTip(Components); - m_selectMenu = new ContextMenuStrip(Components); - - ResumeLayout(); - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - Components.Dispose(); - if (m_boldFont != null) - { - m_boldFont.Dispose(); - m_boldFont = null; - } - } - base.Dispose (disposing); - } - - private static Font TextFont - { - get { return SystemInformation.MenuFont; } - } - - private Font m_font; - private Font m_boldFont; - private Font BoldFont - { - get - { - if (IsDisposed) - return null; - - if (m_boldFont == null) - { - m_font = TextFont; - m_boldFont = new Font(TextFont, FontStyle.Bold); - } - else if (m_font != TextFont) - { - m_boldFont.Dispose(); - m_font = TextFont; - m_boldFont = new Font(TextFont, FontStyle.Bold); - } - - return m_boldFont; - } - } - - private int m_startDisplayingTab = 0; - private int StartDisplayingTab - { - get { return m_startDisplayingTab; } - set - { - m_startDisplayingTab = value; - Invalidate(); - } - } - - private int m_endDisplayingTab = 0; - private int EndDisplayingTab - { - get { return m_endDisplayingTab; } - set { m_endDisplayingTab = value; } - } - - private int m_firstDisplayingTab = 0; - private int FirstDisplayingTab - { - get { return m_firstDisplayingTab; } - set { m_firstDisplayingTab = value; } - } - - private bool m_documentTabsOverflow = false; - private bool DocumentTabsOverflow - { - set - { - if (m_documentTabsOverflow == value) - return; - - m_documentTabsOverflow = value; - if (value) - ButtonWindowList.ImageCategory = 1; - else - ButtonWindowList.ImageCategory = 0; - } - } - - protected internal override int MeasureHeight() - { - if (Appearance == DockPane.AppearanceStyle.ToolWindow) - return MeasureHeight_ToolWindow(); - else - return MeasureHeight_Document(); - } - - private int MeasureHeight_ToolWindow() - { - if (DockPane.IsAutoHide || Tabs.Count <= 1) - return 0; - - int height = Math.Max(TextFont.Height, ToolWindowImageHeight + ToolWindowImageGapTop + ToolWindowImageGapBottom) - + ToolWindowStripGapTop + ToolWindowStripGapBottom; - - return height; - } - - private int MeasureHeight_Document() - { - int height = Math.Max(TextFont.Height + DocumentTabGapTop, - ButtonClose.Height + DocumentButtonGapTop + DocumentButtonGapBottom) - + DocumentStripGapBottom + DocumentStripGapTop; - - return height; - } - - protected override void OnPaint(PaintEventArgs e) - { - Rectangle rect = TabsRectangle; - - if (Appearance == DockPane.AppearanceStyle.Document) - { - rect.X -= DocumentTabGapLeft; - - // Add these values back in so that the DockStrip color is drawn - // beneath the close button and window list button. - rect.Width += DocumentTabGapLeft + - DocumentTabGapRight + - DocumentButtonGapRight + - ButtonClose.Width + - ButtonWindowList.Width; - - // It is possible depending on the DockPanel DocumentStyle to have - // a Document without a DockStrip. - if (rect.Width > 0 && rect.Height > 0) - { - Color startColor = DockPane.DockPanel.Skin.DockPaneStripSkin.DocumentGradient.DockStripGradient.StartColor; - Color endColor = DockPane.DockPanel.Skin.DockPaneStripSkin.DocumentGradient.DockStripGradient.EndColor; - LinearGradientMode gradientMode = DockPane.DockPanel.Skin.DockPaneStripSkin.DocumentGradient.DockStripGradient.LinearGradientMode; - using (LinearGradientBrush brush = new LinearGradientBrush(rect, startColor, endColor, gradientMode)) - { - e.Graphics.FillRectangle(brush, rect); - } - } - } - else - { - Color startColor = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.DockStripGradient.StartColor; - Color endColor = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.DockStripGradient.EndColor; - LinearGradientMode gradientMode = DockPane.DockPanel.Skin.DockPaneStripSkin.ToolWindowGradient.DockStripGradient.LinearGradientMode; - using (LinearGradientBrush brush = new LinearGradientBrush(rect, startColor, endColor, gradientMode)) - { - e.Graphics.FillRectangle(brush, rect); - } - } - base.OnPaint (e); - CalculateTabs(); - if (Appearance == DockPane.AppearanceStyle.Document && DockPane.ActiveContent != null) - { - if (EnsureDocumentTabVisible(DockPane.ActiveContent, false)) - CalculateTabs(); - } - - DrawTabStrip(e.Graphics); - } - - protected override void OnRefreshChanges() - { - SetInertButtons(); - Invalidate(); - } - - protected internal override GraphicsPath GetOutline(int index) - { - - if (Appearance == DockPane.AppearanceStyle.Document) - return GetOutline_Document(index); - else - return GetOutline_ToolWindow(index); - - } - - private GraphicsPath GetOutline_Document(int index) - { - Rectangle rectTab = GetTabRectangle(index); - rectTab.X -= rectTab.Height / 2; - rectTab.Intersect(TabsRectangle); - rectTab = RectangleToScreen(DrawHelper.RtlTransform(this, rectTab)); - Rectangle rectPaneClient = DockPane.RectangleToScreen(DockPane.ClientRectangle); - - GraphicsPath path = new GraphicsPath(); - GraphicsPath pathTab = GetTabOutline_Document(Tabs[index], true, true, true); - path.AddPath(pathTab, true); - - if (DockPane.DockPanel.DocumentTabStripLocation == DocumentTabStripLocation.Bottom) - { - path.AddLine(rectTab.Right, rectTab.Top, rectPaneClient.Right, rectTab.Top); - path.AddLine(rectPaneClient.Right, rectTab.Top, rectPaneClient.Right, rectPaneClient.Top); - path.AddLine(rectPaneClient.Right, rectPaneClient.Top, rectPaneClient.Left, rectPaneClient.Top); - path.AddLine(rectPaneClient.Left, rectPaneClient.Top, rectPaneClient.Left, rectTab.Top); - path.AddLine(rectPaneClient.Left, rectTab.Top, rectTab.Right, rectTab.Top); - } - else - { - path.AddLine(rectTab.Right, rectTab.Bottom, rectPaneClient.Right, rectTab.Bottom); - path.AddLine(rectPaneClient.Right, rectTab.Bottom, rectPaneClient.Right, rectPaneClient.Bottom); - path.AddLine(rectPaneClient.Right, rectPaneClient.Bottom, rectPaneClient.Left, rectPaneClient.Bottom); - path.AddLine(rectPaneClient.Left, rectPaneClient.Bottom, rectPaneClient.Left, rectTab.Bottom); - path.AddLine(rectPaneClient.Left, rectTab.Bottom, rectTab.Right, rectTab.Bottom); - } - return path; - } - - private GraphicsPath GetOutline_ToolWindow(int index) - { - Rectangle rectTab = GetTabRectangle(index); - rectTab.Intersect(TabsRectangle); - rectTab = RectangleToScreen(DrawHelper.RtlTransform(this, rectTab)); - int y = rectTab.Top; - Rectangle rectPaneClient = DockPane.RectangleToScreen(DockPane.ClientRectangle); - - GraphicsPath path = new GraphicsPath(); - GraphicsPath pathTab = GetTabOutline(Tabs[index], true, true); - path.AddPath(pathTab, true); - path.AddLine(rectTab.Left, rectTab.Top, rectPaneClient.Left, rectTab.Top); - path.AddLine(rectPaneClient.Left, rectTab.Top, rectPaneClient.Left, rectPaneClient.Top); - path.AddLine(rectPaneClient.Left, rectPaneClient.Top, rectPaneClient.Right, rectPaneClient.Top); - path.AddLine(rectPaneClient.Right, rectPaneClient.Top, rectPaneClient.Right, rectTab.Top); - path.AddLine(rectPaneClient.Right, rectTab.Top, rectTab.Right, rectTab.Top); - return path; - } - - private void CalculateTabs() - { - if (Appearance == DockPane.AppearanceStyle.ToolWindow) - CalculateTabs_ToolWindow(); - else - CalculateTabs_Document(); - } - - private void CalculateTabs_ToolWindow() - { - if (Tabs.Count <= 1 || DockPane.IsAutoHide) - return; - - Rectangle rectTabStrip = TabStripRectangle; - - // Calculate tab widths - int countTabs = Tabs.Count; - foreach (TabVS2005 tab in Tabs) - { - tab.MaxWidth = GetMaxTabWidth(Tabs.IndexOf(tab)); - tab.Flag = false; - } - - // Set tab whose max width less than average width - bool anyWidthWithinAverage = true; - int totalWidth = rectTabStrip.Width - ToolWindowStripGapLeft - ToolWindowStripGapRight; - int totalAllocatedWidth = 0; - int averageWidth = totalWidth / countTabs; - int remainedTabs = countTabs; - for (anyWidthWithinAverage=true; anyWidthWithinAverage && remainedTabs>0;) - { - anyWidthWithinAverage = false; - foreach (TabVS2005 tab in Tabs) - { - if (tab.Flag) - continue; - - if (tab.MaxWidth <= averageWidth) - { - tab.Flag = true; - tab.TabWidth = tab.MaxWidth; - totalAllocatedWidth += tab.TabWidth; - anyWidthWithinAverage = true; - remainedTabs--; - } - } - if (remainedTabs != 0) - averageWidth = (totalWidth - totalAllocatedWidth) / remainedTabs; - } - - // If any tab width not set yet, set it to the average width - if (remainedTabs > 0) - { - int roundUpWidth = (totalWidth - totalAllocatedWidth) - (averageWidth * remainedTabs); - foreach (TabVS2005 tab in Tabs) - { - if (tab.Flag) - continue; - - tab.Flag = true; - if (roundUpWidth > 0) - { - tab.TabWidth = averageWidth + 1; - roundUpWidth --; - } - else - tab.TabWidth = averageWidth; - } - } - - // Set the X position of the tabs - int x = rectTabStrip.X + ToolWindowStripGapLeft; - foreach (TabVS2005 tab in Tabs) - { - tab.TabX = x; - x += tab.TabWidth; - } - } - - private bool CalculateDocumentTab(Rectangle rectTabStrip, ref int x, int index) - { - bool overflow = false; - - TabVS2005 tab = Tabs[index] as TabVS2005; - tab.MaxWidth = GetMaxTabWidth(index); - int width = Math.Min(tab.MaxWidth, DocumentTabMaxWidth); - if (x + width < rectTabStrip.Right || index == StartDisplayingTab) - { - tab.TabX = x; - tab.TabWidth = width; - EndDisplayingTab = index; - } - else - { - tab.TabX = 0; - tab.TabWidth = 0; - overflow = true; - } - x += width; - - return overflow; - } - - /// - /// Calculate which tabs are displayed and in what order. - /// - private void CalculateTabs_Document() - { - if (m_startDisplayingTab >= Tabs.Count) - m_startDisplayingTab = 0; - - Rectangle rectTabStrip = TabsRectangle; - - int x = rectTabStrip.X + rectTabStrip.Height / 2; - bool overflow = false; - - // Originally all new documents that were considered overflow - // (not enough pane strip space to show all tabs) were added to - // the far left (assuming not right to left) and the tabs on the - // right were dropped from view. If StartDisplayingTab is not 0 - // then we are dealing with making sure a specific tab is kept in focus. - if (m_startDisplayingTab > 0) - { - int tempX = x; - TabVS2005 tab = Tabs[m_startDisplayingTab] as TabVS2005; - tab.MaxWidth = GetMaxTabWidth(m_startDisplayingTab); - int width = Math.Min(tab.MaxWidth, DocumentTabMaxWidth); - - // Add the active tab and tabs to the left - for (int i = StartDisplayingTab; i >= 0; i--) - CalculateDocumentTab(rectTabStrip, ref tempX, i); - - // Store which tab is the first one displayed so that it - // will be drawn correctly (without part of the tab cut off) - FirstDisplayingTab = EndDisplayingTab; - - tempX = x; // Reset X location because we are starting over - - // Start with the first tab displayed - name is a little misleading. - // Loop through each tab and set its location. If there is not enough - // room for all of them overflow will be returned. - for (int i = EndDisplayingTab; i < Tabs.Count; i++) - overflow = CalculateDocumentTab(rectTabStrip, ref tempX, i); - - // If not all tabs are shown then we have an overflow. - if (FirstDisplayingTab != 0) - overflow = true; - } - else - { - for (int i = StartDisplayingTab; i < Tabs.Count; i++) - overflow = CalculateDocumentTab(rectTabStrip, ref x, i); - for (int i = 0; i < StartDisplayingTab; i++) - overflow = CalculateDocumentTab(rectTabStrip, ref x, i); - - FirstDisplayingTab = StartDisplayingTab; - } - - if (!overflow) - { - m_startDisplayingTab = 0; - FirstDisplayingTab = 0; - x = rectTabStrip.X + rectTabStrip.Height / 2; - foreach (TabVS2005 tab in Tabs) - { - tab.TabX = x; - x += tab.TabWidth; - } - } - DocumentTabsOverflow = overflow; - } - - protected internal override void EnsureTabVisible(IDockContent content) - { - if (Appearance != DockPane.AppearanceStyle.Document || !Tabs.Contains(content)) - return; - - CalculateTabs(); - EnsureDocumentTabVisible(content, true); - } - - private bool EnsureDocumentTabVisible(IDockContent content, bool repaint) - { - int index = Tabs.IndexOf(content); - TabVS2005 tab = Tabs[index] as TabVS2005; - if (tab.TabWidth != 0) - return false; - - StartDisplayingTab = index; - if (repaint) - Invalidate(); - - return true; - } - - private int GetMaxTabWidth(int index) - { - if (Appearance == DockPane.AppearanceStyle.ToolWindow) - return GetMaxTabWidth_ToolWindow(index); - else - return GetMaxTabWidth_Document(index); - } - - private int GetMaxTabWidth_ToolWindow(int index) - { - IDockContent content = Tabs[index].Content; - Size sizeString = TextRenderer.MeasureText(content.DockHandler.TabText, TextFont); - return ToolWindowImageWidth + sizeString.Width + ToolWindowImageGapLeft - + ToolWindowImageGapRight + ToolWindowTextGapRight; - } - - private int GetMaxTabWidth_Document(int index) - { - IDockContent content = Tabs[index].Content; - - int height = GetTabRectangle_Document(index).Height; - - Size sizeText = TextRenderer.MeasureText(content.DockHandler.TabText, BoldFont, new Size(DocumentTabMaxWidth, height), DocumentTextFormat); - - if (DockPane.DockPanel.ShowDocumentIcon) - return sizeText.Width + DocumentIconWidth + DocumentIconGapLeft + DocumentIconGapRight + DocumentTextGapRight; - else - return sizeText.Width + DocumentIconGapLeft + DocumentTextGapRight; - } - - private void DrawTabStrip(Graphics g) - { - if (Appearance == DockPane.AppearanceStyle.Document) - DrawTabStrip_Document(g); - else - DrawTabStrip_ToolWindow(g); - } - - private void DrawTabStrip_Document(Graphics g) - { - int count = Tabs.Count; - if (count == 0) - return; - - Rectangle rectTabStrip = TabStripRectangle; - - // Draw the tabs - Rectangle rectTabOnly = TabsRectangle; - Rectangle rectTab = Rectangle.Empty; - TabVS2005 tabActive = null; - g.SetClip(DrawHelper.RtlTransform(this, rectTabOnly)); - for (int i=0; iExpand all  "); - } - if (showCollapseAll) - { - sb.Append(@"Collapse all"); - } - - sb.Append(@""); - //sb.Append(@""); - - sb.Append(GenerateColumnHeaderHtml()); - - for (int i = 0; i < this.Nodes.Count; i++) - { - sb.Append(GenerateRowHtml(tableName,i, this.Nodes[i])); - } - sb.Append(@"
"); - - bool startExpanded = false; - if (!startExpanded) - { - sb.Append(@""); - } - return sb.ToString(); - } - private string GenerateColumnHeaderHtml() - { - StringBuilder sb = new StringBuilder(); - //sb.Append(@""); - //sb.Append(@""); - //sb.Append(@""); - //sb.Append(@""); - - sb.Append(""); - for(int i=0;i"); - sb.Append(this.Columns[i].HeaderText); - sb.Append(""); - } - sb.Append(""); - return sb.ToString(); - } - private string GenerateRowHtml(string parentName, int index, TreeGridNode node) - { - string id = parentName + "_" + index; - StringBuilder sb = new StringBuilder(); - - sb.Append(@"" + Environment.NewLine); - string spaces = "    "; - string indent = ""; - TreeGridNode t = node.Parent.Parent; - while(t!=null) - { - indent = indent + spaces; - t = t.Parent; - } - for (int i = 0; i < node.Cells.Count; i++) - { - if (i == 0) - { - sb.Append(@""); - sb.Append(indent); - if (node.Nodes.Count>0) - { - sb.Append(@"" + node.Cells[i].Value.ToString() + @""); - } - else - { - sb.Append(node.Cells[i].Value.ToString()); - } - sb.Append(@"" + Environment.NewLine); - } - else - { - sb.Append(""); - sb.Append(node.Cells[i].Value.ToString()); - sb.Append(@""); - sb.Append(Environment.NewLine); - } - } - sb.Append(@"" + Environment.NewLine); - - for (int i = 0; i < node.Nodes.Count; i++) - { - sb.Append(GenerateRowHtml(id,i,node.Nodes[i])); - } - - return sb.ToString(); - } - #endregion - - #region Public properties - [Category("Data"), - Description("The collection of root nodes in the treelist."), - DesignerSerializationVisibility(DesignerSerializationVisibility.Content), - Editor(typeof(CollectionEditor), typeof(UITypeEditor))] - public TreeGridNodeCollection Nodes - { - get - { - return this._root.Nodes; - } - } - - public new TreeGridNode CurrentRow - { - get - { - return base.CurrentRow as TreeGridNode; - } - } - - [DefaultValue(false), - Description("Causes nodes to always show as expandable. Use the NodeExpanding event to add nodes.")] - public bool VirtualNodes - { - get { return _virtualNodes; } - set { _virtualNodes = value; } - } - - public TreeGridNode CurrentNode - { - get - { - return this.CurrentRow; - } - } - - [DefaultValue(true)] - public bool ShowLines - { - get { return this._showLines; } - set { - if (value != this._showLines) { - this._showLines = value; - this.Invalidate(); - } - } - } - - public ImageList ImageList - { - get { return this._imageList; } - set { - this._imageList = value; - //TODO: should we invalidate cell styles when setting the image list? - - } - } - - public new int RowCount - { - get { return this.Nodes.Count; } - set - { - for (int i = 0; i < value; i++) - this.Nodes.Add(new TreeGridNode()); - - } - } - - #endregion - - #region Site nodes and collapse/expand support - protected override void OnRowsAdded(DataGridViewRowsAddedEventArgs e) - { - base.OnRowsAdded(e); - // Notify the row when it is added to the base grid - int count = e.RowCount - 1; - TreeGridNode row; - while (count >= 0) - { - row = base.Rows[e.RowIndex + count] as TreeGridNode; - if (row != null) - { - row.Sited(); - } - count--; - } - } - - internal protected void UnSiteAll() - { - this.UnSiteNode(this._root); - } - - internal protected virtual void UnSiteNode(TreeGridNode node) - { - if (node.IsSited || node.IsRoot) - { - // remove child rows first - foreach (TreeGridNode childNode in node.Nodes) - { - this.UnSiteNode(childNode); - } - - // now remove this row except for the root - if (!node.IsRoot) - { - base.Rows.Remove(node); - // Row isn't sited in the grid anymore after remove. Note that we cannot - // Use the RowRemoved event since we cannot map from the row index to - // the index of the expandable row/node. - node.UnSited(); - } - } - } - - internal protected virtual bool CollapseNode(TreeGridNode node) - { - if (node.IsExpanded) - { - CollapsingEventArgs exp = new CollapsingEventArgs(node); - this.OnNodeCollapsing(exp); - - if (!exp.Cancel) - { - this.LockVerticalScrollBarUpdate(true); - this.SuspendLayout(); - _inExpandCollapse = true; - node.IsExpanded = false; - - foreach (TreeGridNode childNode in node.Nodes) - { - Debug.Assert(childNode.RowIndex != -1, "Row is NOT in the grid."); - this.UnSiteNode(childNode); - } - - CollapsedEventArgs exped = new CollapsedEventArgs(node); - this.OnNodeCollapsed(exped); - //TODO: Convert this to a specific NodeCell property - _inExpandCollapse = false; - this.LockVerticalScrollBarUpdate(false); - this.ResumeLayout(true); - this.InvalidateCell(node.Cells[0]); - - } - - return !exp.Cancel; - } - else - { - // row isn't expanded, so we didn't do anything. - return false; - } - } - - internal protected virtual void SiteNode(TreeGridNode node) - { - //TODO: Raise exception if parent node is not the root or is not sited. - int rowIndex = -1; - TreeGridNode currentRow; - node._grid = this; - - if (node.Parent != null && node.Parent.IsRoot == false) - { - // row is a child - Debug.Assert(node.Parent != null && node.Parent.IsExpanded == true); - - if (node.Index > 0) - { - currentRow = node.Parent.Nodes[node.Index - 1]; - } - else - { - currentRow = node.Parent; - } - } - else - { - // row is being added to the root - if (node.Index > 0) - { - currentRow = node.Parent.Nodes[node.Index - 1]; - } - else - { - currentRow = null; - } - - } - - if (currentRow != null) - { - while (currentRow.Level >= node.Level) - { - if (currentRow.RowIndex < base.Rows.Count - 1) - { - currentRow = base.Rows[currentRow.RowIndex + 1] as TreeGridNode; - Debug.Assert(currentRow != null); - } - else - // no more rows, site this node at the end. - break; - - } - if (currentRow == node.Parent) - rowIndex = currentRow.RowIndex + 1; - else if (currentRow.Level < node.Level) - rowIndex = currentRow.RowIndex; - else - rowIndex = currentRow.RowIndex + 1; - } - else - rowIndex = 0; - - - Debug.Assert(rowIndex != -1); - this.SiteNode(node, rowIndex); - - Debug.Assert(node.IsSited); - if (node.IsExpanded) - { - // add all child rows to display - foreach (TreeGridNode childNode in node.Nodes) - { - //TODO: could use the more efficient SiteRow with index. - this.SiteNode(childNode); - } - } - } - - - internal protected virtual void SiteNode(TreeGridNode node, int index) - { - if (index < base.Rows.Count) - { - base.Rows.Insert(index, node); - } - else - { - // for the last item. - base.Rows.Add(node); - } - } - - internal protected virtual bool ExpandNode(TreeGridNode node) - { - if (!node.IsExpanded || this._virtualNodes) - { - ExpandingEventArgs exp = new ExpandingEventArgs(node); - this.OnNodeExpanding(exp); - - if (!exp.Cancel) - { - this.LockVerticalScrollBarUpdate(true); - this.SuspendLayout(); - _inExpandCollapse = true; - node.IsExpanded = true; - - //TODO Convert this to a InsertRange - foreach (TreeGridNode childNode in node.Nodes) - { - Debug.Assert(childNode.RowIndex == -1, "Row is already in the grid."); - - this.SiteNode(childNode); - //this.BaseRows.Insert(rowIndex + 1, childRow); - //TODO : remove -- just a test. - //childNode.Cells[0].Value = "child"; - } - - ExpandedEventArgs exped = new ExpandedEventArgs(node); - this.OnNodeExpanded(exped); - //TODO: Convert this to a specific NodeCell property - _inExpandCollapse = false; - this.LockVerticalScrollBarUpdate(false); - this.ResumeLayout(true); - this.InvalidateCell(node.Cells[0]); - } - - return !exp.Cancel; - } - else - { - // row is already expanded, so we didn't do anything. - return false; - } - } - - protected override void OnMouseUp(MouseEventArgs e) - { - // used to keep extra mouse moves from selecting more rows when collapsing - base.OnMouseUp(e); - this._inExpandCollapseMouseCapture = false; - } - protected override void OnMouseMove(MouseEventArgs e) - { - // while we are expanding and collapsing a node mouse moves are - // supressed to keep selections from being messed up. - if (!this._inExpandCollapseMouseCapture) - base.OnMouseMove(e); - - } - #endregion - - #region Collapse/Expand events - public event ExpandingEventHandler NodeExpanding; - public event ExpandedEventHandler NodeExpanded; - public event CollapsingEventHandler NodeCollapsing; - public event CollapsedEventHandler NodeCollapsed; - - protected virtual void OnNodeExpanding(ExpandingEventArgs e) - { - if (this.NodeExpanding != null) - { - NodeExpanding(this, e); - } - } - protected virtual void OnNodeExpanded(ExpandedEventArgs e) - { - if (this.NodeExpanded != null) - { - NodeExpanded(this, e); - } - } - protected virtual void OnNodeCollapsing(CollapsingEventArgs e) - { - if (this.NodeCollapsing != null) - { - NodeCollapsing(this, e); - } - - } - protected virtual void OnNodeCollapsed(CollapsedEventArgs e) - { - if (this.NodeCollapsed != null) - { - NodeCollapsed(this, e); - } - } - #endregion - - #region Helper methods - protected override void Dispose(bool disposing) - { - //this._disposing = true; - base.Dispose(Disposing); - this.UnSiteAll(); - } - - protected override void OnHandleCreated(EventArgs e) - { - base.OnHandleCreated(e); - - // this control is used to temporarly hide the vertical scroll bar - hideScrollBarControl = new Control(); - hideScrollBarControl.Visible = false; - hideScrollBarControl.Enabled = false; - hideScrollBarControl.TabStop = false; - // control is disposed automatically when the grid is disposed - this.Controls.Add(hideScrollBarControl); - } - - protected override void OnRowEnter(DataGridViewCellEventArgs e) - { - // ensure full row select - base.OnRowEnter(e); - //if (this.SelectionMode == DataGridViewSelectionMode.CellSelect || - // (this.SelectionMode == DataGridViewSelectionMode.FullRowSelect && - // base.Rows[e.RowIndex].Selected == false)) - //{ - // this.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - // base.Rows[e.RowIndex].Selected = true; - //} - } - protected override void OnRowHeaderMouseClick(DataGridViewCellMouseEventArgs e) - { - this.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect; - base.OnRowHeaderMouseClick(e); - } - protected override void OnCellClick(DataGridViewCellEventArgs e) - { - this.SelectionMode = DataGridViewSelectionMode.CellSelect; - base.OnCellClick(e); - } - - - private void LockVerticalScrollBarUpdate(bool lockUpdate/*, bool delayed*/) - { - // Temporarly hide/show the vertical scroll bar by changing its parent - if (!this._inExpandCollapse) - { - if (lockUpdate) - { - this.VerticalScrollBar.Parent = hideScrollBarControl; - } - else - { - this.VerticalScrollBar.Parent = this; - } - } - } - - protected override void OnColumnAdded(DataGridViewColumnEventArgs e) - { - if (typeof(TreeGridColumn).IsAssignableFrom(e.Column.GetType())) - { - if (_expandableColumn == null) - { - // identify the expanding column. - _expandableColumn = (TreeGridColumn)e.Column; - } - else - { - // this.Columns.Remove(e.Column); - //throw new InvalidOperationException("Only one TreeGridColumn per TreeGridView is supported."); - } - } - - // Expandable Grid doesn't support sorting. This is just a limitation of the sample. - e.Column.SortMode = DataGridViewColumnSortMode.NotSortable; - - base.OnColumnAdded(e); - } - - private static class Win32Helper - { - public const int WM_SYSKEYDOWN = 0x0104, - WM_KEYDOWN = 0x0100, - WM_SETREDRAW = 0x000B; - - [System.Runtime.InteropServices.DllImport("USER32.DLL", CharSet = System.Runtime.InteropServices.CharSet.Auto)] - public static extern IntPtr SendMessage(System.Runtime.InteropServices.HandleRef hWnd, int msg, IntPtr wParam, IntPtr lParam); - - [System.Runtime.InteropServices.DllImport("USER32.DLL", CharSet = System.Runtime.InteropServices.CharSet.Auto)] - public static extern IntPtr SendMessage(System.Runtime.InteropServices.HandleRef hWnd, int msg, int wParam, int lParam); - - [System.Runtime.InteropServices.DllImport("USER32.DLL", CharSet = System.Runtime.InteropServices.CharSet.Auto)] - public static extern bool PostMessage(System.Runtime.InteropServices.HandleRef hwnd, int msg, IntPtr wparam, IntPtr lparam); - - } - #endregion - - - } -} diff --git a/src/VisualSail/UI/GdiCameraMan.cs b/src/VisualSail/UI/GdiCameraMan.cs index d2283c2..267ce9e 100644 --- a/src/VisualSail/UI/GdiCameraMan.cs +++ b/src/VisualSail/UI/GdiCameraMan.cs @@ -4,7 +4,6 @@ using System.Text; using AmphibianSoftware.VisualSail.Data; -using AmphibianSoftware.VisualSail.PostBuild; using Microsoft.Xna.Framework; //using Microsoft.Xna.Framework.Content; diff --git a/src/VisualSail/UI/GdiRenderer.cs b/src/VisualSail/UI/GdiRenderer.cs index a48630b..a9d663c 100644 --- a/src/VisualSail/UI/GdiRenderer.cs +++ b/src/VisualSail/UI/GdiRenderer.cs @@ -12,7 +12,6 @@ using Microsoft.Xna.Framework; using AmphibianSoftware.VisualSail.Data; -using AmphibianSoftware.Video; using AmphibianSoftware.VisualSail.Library; using AmphibianSoftware.VisualSail.Data.Statistics; diff --git a/src/VisualSail/UI/GraphForm.cs b/src/VisualSail/UI/GraphForm.cs index 2c42244..3dfa294 100644 --- a/src/VisualSail/UI/GraphForm.cs +++ b/src/VisualSail/UI/GraphForm.cs @@ -9,7 +9,6 @@ using System.Threading; using AmphibianSoftware.VisualSail.Data.Statistics; -using AmphibianSoftware.VisualSail.PostBuild; using ZedGraph; using WeifenLuo.WinFormsUI.Docking; @@ -25,7 +24,6 @@ public partial class GraphForm : DockContent private static int _defaultAutoScrollSize = 120; private int? _autoScrollSize = _defaultAutoScrollSize; private Thread _painter; - [DoNotObfuscate()] private enum StatisticGroupType { Boat, Leg, Tack }; private Replay _replay; private string _statisticName; diff --git a/src/VisualSail/UI/Import/.svn/entries b/src/VisualSail/UI/Import/.svn/entries deleted file mode 100644 index 21275a2..0000000 --- a/src/VisualSail/UI/Import/.svn/entries +++ /dev/null @@ -1,34 +0,0 @@ -9 - -dir -1212 -svn://coruscant.universe/projects/visualsail/visualsail/VisualSail/UI/Import -svn://coruscant.universe - - - -2009-01-27T06:00:51.513271Z -1109 -brook - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -c2fb2e58-5b16-0410-a9db-ebc6cca997dd - -NMEA -dir - -CSV -dir - diff --git a/src/VisualSail/UI/Import/.svn/format b/src/VisualSail/UI/Import/.svn/format deleted file mode 100644 index ec63514..0000000 --- a/src/VisualSail/UI/Import/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/src/VisualSail/UI/Import/CSV/.svn/entries b/src/VisualSail/UI/Import/CSV/.svn/entries deleted file mode 100644 index 62c42bd..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/entries +++ /dev/null @@ -1,232 +0,0 @@ -9 - -dir -1212 -svn://coruscant.universe/projects/visualsail/visualsail/VisualSail/UI/Import/CSV -svn://coruscant.universe - - - -2009-01-27T06:00:51.513271Z -1109 -brook - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -c2fb2e58-5b16-0410-a9db-ebc6cca997dd - -ColumnFilter.resx -file - - - - -2010-03-07T17:45:43.344046Z -32a9f8db6987c2d0d6bb55fc487be5e8 -2008-03-14T03:56:57.324251Z -741 -brook - - - - - - - - - - - - - - - - - - - - - -5814 - -ColumnAssignment.resx -file - - - - -2010-03-07T17:45:43.346000Z -32a9f8db6987c2d0d6bb55fc487be5e8 -2008-03-12T06:21:07.534413Z -737 -brook - - - - - - - - - - - - - - - - - - - - - -5814 - -ColumnFilter.Designer.cs -file - - - - -2010-03-07T17:45:43.349906Z -1db25c4eb84f508f5da58b46b3e8960e -2009-01-27T06:00:51.513271Z -1109 -brook - - - - - - - - - - - - - - - - - - - - - -4633 - -ColumnFilter.cs -file - - - - -2010-03-07T17:45:43.358695Z -72fdc64f63bde37e3ec6faf816f6d187 -2008-06-15T05:46:20.993507Z -830 -brook - - - - - - - - - - - - - - - - - - - - - -5364 - -ColumnAssignment.Designer.cs -file - - - - -2010-03-07T17:45:43.359671Z -7228da594e13b20f014b837e5757012a -2008-09-27T01:42:33.923746Z -979 -brook - - - - - - - - - - - - - - - - - - - - - -7039 - -ColumnAssignment.cs -file - - - - -2010-03-07T17:45:43.361625Z -7a70fd571aed7f67d62def8d7215a4bb -2009-01-27T06:00:51.513271Z -1109 -brook - - - - - - - - - - - - - - - - - - - - - -4796 - diff --git a/src/VisualSail/UI/Import/CSV/.svn/format b/src/VisualSail/UI/Import/CSV/.svn/format deleted file mode 100644 index ec63514..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.Designer.cs.svn-base b/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.Designer.cs.svn-base deleted file mode 100644 index d9be5e0..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.Designer.cs.svn-base +++ /dev/null @@ -1,145 +0,0 @@ -namespace AmphibianSoftware.VisualSail.UI.Import.CSV -{ - partial class ColumnAssignment - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.fileGV = new System.Windows.Forms.DataGridView(); - this.label1 = new System.Windows.Forms.Label(); - this.skipFirstRowCB = new System.Windows.Forms.CheckBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.okBTN = new System.Windows.Forms.Button(); - this.headerGV = new System.Windows.Forms.DataGridView(); - ((System.ComponentModel.ISupportInitialize)(this.fileGV)).BeginInit(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.headerGV)).BeginInit(); - this.SuspendLayout(); - // - // fileGV - // - this.fileGV.AllowUserToAddRows = false; - this.fileGV.AllowUserToDeleteRows = false; - this.fileGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.fileGV.ColumnHeadersVisible = false; - this.fileGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.fileGV.Location = new System.Drawing.Point(0, 77); - this.fileGV.Name = "fileGV"; - this.fileGV.ReadOnly = true; - this.fileGV.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; - this.fileGV.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal; - this.fileGV.Size = new System.Drawing.Size(793, 112); - this.fileGV.TabIndex = 0; - this.fileGV.Scroll += new System.Windows.Forms.ScrollEventHandler(this.fileGV_Scroll); - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Fill; - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(638, 30); - this.label1.TabIndex = 1; - this.label1.Text = "Map Columns in the file to the appropriate heading below. Check \"Filter\" if you w" + - "ant to limit which values in that column are imported"; - // - // skipFirstRowCB - // - this.skipFirstRowCB.AutoSize = true; - this.skipFirstRowCB.Checked = true; - this.skipFirstRowCB.CheckState = System.Windows.Forms.CheckState.Checked; - this.skipFirstRowCB.Dock = System.Windows.Forms.DockStyle.Right; - this.skipFirstRowCB.Location = new System.Drawing.Point(638, 0); - this.skipFirstRowCB.Name = "skipFirstRowCB"; - this.skipFirstRowCB.Size = new System.Drawing.Size(155, 30); - this.skipFirstRowCB.TabIndex = 2; - this.skipFirstRowCB.Text = "Column Names in First Row"; - this.skipFirstRowCB.UseVisualStyleBackColor = true; - // - // panel1 - // - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.skipFirstRowCB); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(793, 30); - this.panel1.TabIndex = 3; - // - // okBTN - // - this.okBTN.Dock = System.Windows.Forms.DockStyle.Bottom; - this.okBTN.Location = new System.Drawing.Point(0, 189); - this.okBTN.Name = "okBTN"; - this.okBTN.Size = new System.Drawing.Size(793, 23); - this.okBTN.TabIndex = 4; - this.okBTN.Text = "Ok"; - this.okBTN.UseVisualStyleBackColor = true; - this.okBTN.Click += new System.EventHandler(this.okBTN_Click); - // - // headerGV - // - this.headerGV.AllowUserToAddRows = false; - this.headerGV.AllowUserToDeleteRows = false; - this.headerGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.headerGV.Dock = System.Windows.Forms.DockStyle.Top; - this.headerGV.Location = new System.Drawing.Point(0, 30); - this.headerGV.Name = "headerGV"; - this.headerGV.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; - this.headerGV.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.headerGV.Size = new System.Drawing.Size(793, 47); - this.headerGV.TabIndex = 5; - // - // ColumnAssignment - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(793, 212); - this.Controls.Add(this.fileGV); - this.Controls.Add(this.headerGV); - this.Controls.Add(this.okBTN); - this.Controls.Add(this.panel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; - this.Name = "ColumnAssignment"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Import CSV File"; - ((System.ComponentModel.ISupportInitialize)(this.fileGV)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.headerGV)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.DataGridView fileGV; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.CheckBox skipFirstRowCB; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button okBTN; - private System.Windows.Forms.DataGridView headerGV; - } -} \ No newline at end of file diff --git a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.cs.svn-base b/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.cs.svn-base deleted file mode 100644 index e8f92ae..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.cs.svn-base +++ /dev/null @@ -1,144 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -using AmphibianSoftware.VisualSail.Data.Import; -using System.IO; - -namespace AmphibianSoftware.VisualSail.UI.Import.CSV -{ - public partial class ColumnAssignment : Form - { - List _mappings; - List _filters; - public ColumnAssignment(List initialMapping,string path) - { - _mappings = initialMapping; - InitializeComponent(); - FileInfo fi = new FileInfo(path); - this.Text = this.Text + " - " + fi.Name; - PopulateHeaderRow(); - PopulateDataRows(path); - } - private void PopulateHeaderRow() - { - List possibleMappings = FileImporter.AllowedColumns; - DataTable dt = new DataTable(); - for (int i = 0; i < _mappings.Count;i++ ) - { - DataGridViewComboBoxColumn cc = new DataGridViewComboBoxColumn(); - cc.DisplayMember = "Column "+(i+1); - cc.ValueMember = "column"+i; - cc.DataPropertyName = "column"+i; - cc.HeaderText = "Map to"; - cc.Items.Add(""); - cc.Width = 150; - foreach (string s in possibleMappings) - { - cc.Items.Add(s); - } - headerGV.Columns.Add(cc); - - DataGridViewCheckBoxColumn filter = new DataGridViewCheckBoxColumn(); - filter.DataPropertyName = "filter" + i; - filter.HeaderText = "Filter"; - filter.Width = 50; - headerGV.Columns.Add(filter); - - dt.Columns.Add("column" + i); - dt.Columns.Add("filter" + i,typeof(bool)); - } - DataRow dr = dt.NewRow(); - for (int i = 0; i < _mappings.Count; i++) - { - dr[i*2] = _mappings[i]; - dr[(i*2)+1] = false; - } - dt.Rows.Add(dr); - headerGV.DataSource = dt; - } - private void PopulateDataRows(string path) - { - DataTable dt = new DataTable(); - for (int i = 0; i < _mappings.Count; i++) - { - fileGV.Columns.Add("column" + i, "Column " + (i + 1)); - fileGV.Columns[fileGV.Columns.Count - 1].DataPropertyName = "column" + i; - fileGV.Columns[fileGV.Columns.Count - 1].Width = 200; - DataColumn dc = new DataColumn("column" + i); - dt.Columns.Add(dc); - } - StreamReader reader = new StreamReader(path); - int s = 0; - char[] splitter = new char[] { ',' }; - while (!reader.EndOfStream && s < 10) - { - string line = reader.ReadLine(); - string[] parts = line.Split(splitter); - DataRow dr = dt.NewRow(); - for (int c = 0; c < _mappings.Count;c++ ) - { - if (c < parts.Length) - { - dr[c] = parts[c]; - } - else - { - dr[c] = ""; - } - } - dt.Rows.Add(dr); - s++; - } - reader.Close(); - fileGV.DataSource = dt; - } - public List ColumnMappings - { - get - { - return _mappings; - } - } - public List Filters - { - get - { - return _filters; - } - } - public bool SkipFirstRow - { - get - { - return skipFirstRowCB.Checked; - } - } - - private void fileGV_Scroll(object sender, ScrollEventArgs e) - { - headerGV.HorizontalScrollingOffset = fileGV.HorizontalScrollingOffset; - - } - - private void okBTN_Click(object sender, EventArgs e) - { - List newMappings = new List(); - List newFilters = new List(); - DataRow dr = ((DataTable)headerGV.DataSource).Rows[0]; - for (int i = 0; i < dr.Table.Columns.Count; i=i+2) - { - newMappings.Add((string)dr[i]); - newFilters.Add((bool)dr[i + 1]); - } - _mappings = newMappings; - _filters = newFilters; - this.Close(); - } - } -} diff --git a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.resx.svn-base b/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.resx.svn-base deleted file mode 100644 index 19dc0dd..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnAssignment.resx.svn-base +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.Designer.cs.svn-base b/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.Designer.cs.svn-base deleted file mode 100644 index a6a7c22..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.Designer.cs.svn-base +++ /dev/null @@ -1,112 +0,0 @@ -namespace AmphibianSoftware.VisualSail.UI.Import.CSV -{ - partial class ColumnFilter - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.columnLB = new System.Windows.Forms.ListBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.okBTN = new System.Windows.Forms.Button(); - this.valuesCLB = new System.Windows.Forms.CheckedListBox(); - this.SuspendLayout(); - // - // columnLB - // - this.columnLB.FormattingEnabled = true; - this.columnLB.Location = new System.Drawing.Point(12, 25); - this.columnLB.Name = "columnLB"; - this.columnLB.Size = new System.Drawing.Size(120, 277); - this.columnLB.TabIndex = 0; - this.columnLB.SelectedIndexChanged += new System.EventHandler(this.columnLB_SelectedIndexChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(42, 13); - this.label1.TabIndex = 1; - this.label1.Text = "Column"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(139, 9); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(83, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Values to Import"; - // - // okBTN - // - this.okBTN.Location = new System.Drawing.Point(12, 308); - this.okBTN.Name = "okBTN"; - this.okBTN.Size = new System.Drawing.Size(302, 23); - this.okBTN.TabIndex = 4; - this.okBTN.Text = "Ok"; - this.okBTN.UseVisualStyleBackColor = true; - this.okBTN.Click += new System.EventHandler(this.okBTN_Click); - // - // valuesCLB - // - this.valuesCLB.CheckOnClick = true; - this.valuesCLB.FormattingEnabled = true; - this.valuesCLB.Location = new System.Drawing.Point(142, 25); - this.valuesCLB.Name = "valuesCLB"; - this.valuesCLB.Size = new System.Drawing.Size(172, 274); - this.valuesCLB.TabIndex = 5; - this.valuesCLB.SelectedValueChanged += new System.EventHandler(this.valuesCLB_SelectedValueChanged); - // - // ColumnFilter - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(327, 340); - this.Controls.Add(this.valuesCLB); - this.Controls.Add(this.okBTN); - this.Controls.Add(this.label2); - this.Controls.Add(this.columnLB); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.Name = "ColumnFilter"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Column Filters"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ListBox columnLB; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button okBTN; - private System.Windows.Forms.CheckedListBox valuesCLB; - } -} \ No newline at end of file diff --git a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.cs.svn-base b/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.cs.svn-base deleted file mode 100644 index 096eae9..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.cs.svn-base +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace AmphibianSoftware.VisualSail.UI.Import.CSV -{ - public partial class ColumnFilter : Form - { - Dictionary> _possibleFilters; - Dictionary> _selectedFilters; - Dictionary _columnNames; - public ColumnFilter(List filteredColumns,string path,bool skipFirstRow) - { - InitializeComponent(); - _possibleFilters = new Dictionary>(); - _selectedFilters = new Dictionary>(); - _columnNames = new Dictionary(); - - bool hasFilters = false; - - for (int i = 0; i < filteredColumns.Count; i++) - { - if (filteredColumns[i]) - { - _possibleFilters[i] = new List(); - _selectedFilters[i] = new List(); - hasFilters = true; - } - } - - //if there's no filters, there's no need to do this - //so we'll skip it to speed things up - if (hasFilters) - { - StreamReader reader = new StreamReader(path); - bool isFirst = true; - char[] splitter = new char[] { ',' }; - while (!reader.EndOfStream) - { - string line = reader.ReadLine(); - string[] parts = line.Split(splitter); - - if ((skipFirstRow && !isFirst) || !skipFirstRow) - { - if (!skipFirstRow && isFirst) - { - for (int i = 0; i < filteredColumns.Count; i++) - { - if (filteredColumns[i]) - { - _columnNames[i] = "Column " + i; - } - } - } - - for (int i = 0; i < _possibleFilters.Keys.Count; i++) - { - if (!_possibleFilters[_possibleFilters.Keys.ElementAt(i)].Contains(parts[_possibleFilters.Keys.ElementAt(i)])) - { - _possibleFilters[_possibleFilters.Keys.ElementAt(i)].Add(parts[_possibleFilters.Keys.ElementAt(i)]); - _selectedFilters[_possibleFilters.Keys.ElementAt(i)].Add(parts[_possibleFilters.Keys.ElementAt(i)]); - } - } - } - else if(skipFirstRow && isFirst) - { - isFirst = false; - for (int i = 0; i < filteredColumns.Count; i++) - { - if (filteredColumns[i]) - { - _columnNames[i] = parts[i]; - } - } - } - } - PopulateColumnList(); - columnLB.SelectedIndex = 0; - this.ShowDialog(); - } - } - - private void PopulateColumnList() - { - int selectedColumn = columnLB.SelectedIndex; - columnLB.Items.Clear(); - foreach (int i in _possibleFilters.Keys) - { - columnLB.Items.Add(_columnNames[i]); - } - if (selectedColumn >= 0) - { - columnLB.SelectedIndex = selectedColumn; - } - } - private void PopulateFilterList() - { - if (columnLB.SelectedIndex >= 0) - { - valuesCLB.Items.Clear(); - foreach (string s in _possibleFilters[_possibleFilters.Keys.ElementAt(columnLB.SelectedIndex)]) - { - bool check = _selectedFilters[_possibleFilters.Keys.ElementAt(columnLB.SelectedIndex)].Contains(s); - valuesCLB.Items.Add(s, check); - } - } - } - - private void columnLB_SelectedIndexChanged(object sender, EventArgs e) - { - PopulateFilterList(); - } - - private void valuesCLB_SelectedValueChanged(object sender, EventArgs e) - { - if (columnLB.SelectedIndex >= 0) - { - _selectedFilters[_selectedFilters.Keys.ElementAt(columnLB.SelectedIndex)] = new List(); - foreach (object o in valuesCLB.CheckedItems) - { - _selectedFilters[_selectedFilters.Keys.ElementAt(columnLB.SelectedIndex)].Add((string)o); - } - } - } - - private void okBTN_Click(object sender, EventArgs e) - { - this.Close(); - } - - public Dictionary> FilterValues - { - get - { - return _selectedFilters; - } - } - } -} diff --git a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.resx.svn-base b/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.resx.svn-base deleted file mode 100644 index 19dc0dd..0000000 --- a/src/VisualSail/UI/Import/CSV/.svn/text-base/ColumnFilter.resx.svn-base +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/src/VisualSail/UI/Import/NMEA/.svn/entries b/src/VisualSail/UI/Import/NMEA/.svn/entries deleted file mode 100644 index c67c455..0000000 --- a/src/VisualSail/UI/Import/NMEA/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -9 - -dir -1212 -svn://coruscant.universe/projects/visualsail/visualsail/VisualSail/UI/Import/NMEA -svn://coruscant.universe - - - -2009-01-12T01:32:20.340255Z -1084 -brook - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -c2fb2e58-5b16-0410-a9db-ebc6cca997dd - -NmeaOptions.Designer.cs -file - - - - -2010-03-07T17:45:43.274711Z -6b0ceb9fa8812c5978c962562c04b3ae -2009-01-12T01:32:20.340255Z -1084 -brook - - - - - - - - - - - - - - - - - - - - - -3658 - -NmeaOptions.cs -file - - - - -2010-03-07T17:45:43.275687Z -dfdd386307d12b9a21c36e0677e3d4a8 -2008-06-15T05:46:20.993507Z -830 -brook - - - - - - - - - - - - - - - - - - - - - -672 - -NmeaOptions.resx -file - - - - -2010-03-07T17:45:43.292289Z -32a9f8db6987c2d0d6bb55fc487be5e8 -2008-06-13T06:41:10.940611Z -826 -brook - - - - - - - - - - - - - - - - - - - - - -5814 - diff --git a/src/VisualSail/UI/Import/NMEA/.svn/format b/src/VisualSail/UI/Import/NMEA/.svn/format deleted file mode 100644 index ec63514..0000000 --- a/src/VisualSail/UI/Import/NMEA/.svn/format +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.Designer.cs.svn-base b/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.Designer.cs.svn-base deleted file mode 100644 index 389bd13..0000000 --- a/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.Designer.cs.svn-base +++ /dev/null @@ -1,90 +0,0 @@ -namespace AmphibianSoftware.VisualSail.UI.Import.NMEA -{ - partial class NmeaOptions - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.defaultDateDP = new System.Windows.Forms.DateTimePicker(); - this.okBTN = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // defaultDateDP - // - this.defaultDateDP.CustomFormat = "MM/dd/yyyy"; - this.defaultDateDP.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.defaultDateDP.Location = new System.Drawing.Point(15, 62); - this.defaultDateDP.Name = "defaultDateDP"; - this.defaultDateDP.Size = new System.Drawing.Size(196, 20); - this.defaultDateDP.TabIndex = 0; - // - // okBTN - // - this.okBTN.Location = new System.Drawing.Point(114, 93); - this.okBTN.Name = "okBTN"; - this.okBTN.Size = new System.Drawing.Size(100, 23); - this.okBTN.TabIndex = 2; - this.okBTN.Text = "Ok"; - this.okBTN.UseVisualStyleBackColor = true; - this.okBTN.Click += new System.EventHandler(this.okBTN_Click); - // - // label2 - // - this.label2.Location = new System.Drawing.Point(12, 9); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(202, 50); - this.label2.TabIndex = 3; - this.label2.Text = "The importer cannot determine the date that records in this file were created, pl" + - "ease specify what date."; - // - // NmeaOptions - // - this.AcceptButton = this.okBTN; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(226, 128); - this.ControlBox = false; - this.Controls.Add(this.label2); - this.Controls.Add(this.okBTN); - this.Controls.Add(this.defaultDateDP); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "NmeaOptions"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Nmea File Import"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.DateTimePicker defaultDateDP; - private System.Windows.Forms.Button okBTN; - private System.Windows.Forms.Label label2; - } -} \ No newline at end of file diff --git a/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.cs.svn-base b/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.cs.svn-base deleted file mode 100644 index 6397f13..0000000 --- a/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.cs.svn-base +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace AmphibianSoftware.VisualSail.UI.Import.NMEA -{ - public partial class NmeaOptions : Form - { - public NmeaOptions() - { - InitializeComponent(); - } - - private void okBTN_Click(object sender, EventArgs e) - { - this.Close(); - } - - public DateTime SelectedDate - { - get - { - return defaultDateDP.Value; - } - } - } -} diff --git a/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.resx.svn-base b/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.resx.svn-base deleted file mode 100644 index 19dc0dd..0000000 --- a/src/VisualSail/UI/Import/NMEA/.svn/text-base/NmeaOptions.resx.svn-base +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/src/VisualSail/UI/LicenseForm.Designer.cs b/src/VisualSail/UI/LicenseForm.Designer.cs deleted file mode 100644 index c84486f..0000000 --- a/src/VisualSail/UI/LicenseForm.Designer.cs +++ /dev/null @@ -1,166 +0,0 @@ -#if !NOLICENSE -namespace AmphibianSoftware.VisualSail.UI -{ - partial class LicenseForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LicenseForm)); - this.onlineRB = new System.Windows.Forms.RadioButton(); - this.fileRB = new System.Windows.Forms.RadioButton(); - this.demoRB = new System.Windows.Forms.RadioButton(); - this.cancelBTN = new System.Windows.Forms.Button(); - this.okBTN = new System.Windows.Forms.Button(); - this.demoInfoLBL = new System.Windows.Forms.Label(); - this.fileInfoLBL = new System.Windows.Forms.LinkLabel(); - this.label3 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // onlineRB - // - this.onlineRB.AutoSize = true; - this.onlineRB.Location = new System.Drawing.Point(15, 69); - this.onlineRB.Name = "onlineRB"; - this.onlineRB.Size = new System.Drawing.Size(118, 17); - this.onlineRB.TabIndex = 1; - this.onlineRB.TabStop = true; - this.onlineRB.Text = "Activate online now"; - this.onlineRB.UseVisualStyleBackColor = true; - // - // fileRB - // - this.fileRB.AutoSize = true; - this.fileRB.Location = new System.Drawing.Point(15, 92); - this.fileRB.Name = "fileRB"; - this.fileRB.Size = new System.Drawing.Size(181, 17); - this.fileRB.TabIndex = 2; - this.fileRB.TabStop = true; - this.fileRB.Text = "Activate via email and license file"; - this.fileRB.UseVisualStyleBackColor = true; - // - // demoRB - // - this.demoRB.AutoSize = true; - this.demoRB.Enabled = false; - this.demoRB.Location = new System.Drawing.Point(15, 46); - this.demoRB.Name = "demoRB"; - this.demoRB.Size = new System.Drawing.Size(126, 17); - this.demoRB.TabIndex = 3; - this.demoRB.TabStop = true; - this.demoRB.Text = "Continue using Demo"; - this.demoRB.UseVisualStyleBackColor = true; - // - // cancelBTN - // - this.cancelBTN.Image = global::AmphibianSoftware.VisualSail.Properties.Resources.cancel; - this.cancelBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.cancelBTN.Location = new System.Drawing.Point(242, 115); - this.cancelBTN.Name = "cancelBTN"; - this.cancelBTN.Size = new System.Drawing.Size(100, 22); - this.cancelBTN.TabIndex = 4; - this.cancelBTN.Text = "Cancel"; - this.cancelBTN.UseVisualStyleBackColor = true; - this.cancelBTN.Click += new System.EventHandler(this.cancelBTN_Click); - // - // okBTN - // - this.okBTN.Image = global::AmphibianSoftware.VisualSail.Properties.Resources.accept; - this.okBTN.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.okBTN.Location = new System.Drawing.Point(136, 115); - this.okBTN.Name = "okBTN"; - this.okBTN.Size = new System.Drawing.Size(100, 22); - this.okBTN.TabIndex = 5; - this.okBTN.Text = "Ok"; - this.okBTN.UseVisualStyleBackColor = true; - this.okBTN.Click += new System.EventHandler(this.okBTN_Click); - // - // demoInfoLBL - // - this.demoInfoLBL.AutoSize = true; - this.demoInfoLBL.Location = new System.Drawing.Point(147, 48); - this.demoInfoLBL.Name = "demoInfoLBL"; - this.demoInfoLBL.Size = new System.Drawing.Size(70, 13); - this.demoInfoLBL.TabIndex = 6; - this.demoInfoLBL.Text = "demoInfoLBL"; - // - // fileInfoLBL - // - this.fileInfoLBL.AutoSize = true; - this.fileInfoLBL.Location = new System.Drawing.Point(194, 94); - this.fileInfoLBL.Name = "fileInfoLBL"; - this.fileInfoLBL.Size = new System.Drawing.Size(52, 13); - this.fileInfoLBL.TabIndex = 7; - this.fileInfoLBL.TabStop = true; - this.fileInfoLBL.Text = "More Info"; - this.fileInfoLBL.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.fileInfoLBL_LinkClicked); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 9); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(319, 13); - this.label3.TabIndex = 9; - this.label3.Text = "To Purchase and Activate this software please visit VisualSail.com"; - // - // LicenseForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(345, 144); - this.Controls.Add(this.label3); - this.Controls.Add(this.fileInfoLBL); - this.Controls.Add(this.demoInfoLBL); - this.Controls.Add(this.okBTN); - this.Controls.Add(this.cancelBTN); - this.Controls.Add(this.demoRB); - this.Controls.Add(this.fileRB); - this.Controls.Add(this.onlineRB); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "LicenseForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "VisualSail Activation"; - this.Load += new System.EventHandler(this.LicenseForm_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RadioButton onlineRB; - private System.Windows.Forms.RadioButton fileRB; - private System.Windows.Forms.RadioButton demoRB; - private System.Windows.Forms.Button cancelBTN; - private System.Windows.Forms.Button okBTN; - private System.Windows.Forms.Label demoInfoLBL; - private System.Windows.Forms.LinkLabel fileInfoLBL; - private System.Windows.Forms.Label label3; - } -} -#endif \ No newline at end of file diff --git a/src/VisualSail/UI/LicenseForm.cs b/src/VisualSail/UI/LicenseForm.cs deleted file mode 100644 index 108f442..0000000 --- a/src/VisualSail/UI/LicenseForm.cs +++ /dev/null @@ -1,140 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.IO; - -using AmphibianSoftware.VisualSail.Licensing; -using AmphibianSoftware.VisualSail.WebServices; - -#if !NOLICENSE -using License; - -namespace AmphibianSoftware.VisualSail.UI -{ - public partial class LicenseForm : Form - { - public string _activatedLicensePath; - - ActivationForm _activationForm; - public LicenseForm(string activatedLicensePath) - { - _activatedLicensePath = activatedLicensePath; - InitializeComponent(); - _activationForm = new ActivationForm(); - } - - private void LicenseForm_Load(object sender, EventArgs e) - { - if (Status.Evaluation_Lock_Enabled) - { - if (Status.Evaluation_Time_Current <= Status.Evaluation_Time) - { - demoRB.Enabled = true; - demoRB.Checked = true; - demoInfoLBL.Text = "Day " + Status.Evaluation_Time_Current + " of " + Status.Evaluation_Time; - } - else - { - demoInfoLBL.Text = "Trial Period Expired"; - demoInfoLBL.ForeColor = Color.Red; - onlineRB.Checked = true; - } - } - else - { - demoInfoLBL.Text = ""; - onlineRB.Checked = true; - } - } - - private void okBTN_Click(object sender, EventArgs e) - { - if (demoRB.Checked) - { - this.DialogResult = DialogResult.OK; - this.Close(); - } - else if (onlineRB.Checked) - { - this.Enabled = false; - if (_activationForm.ShowDialog() == DialogResult.OK) - { - FileStream fs = null; - try - { - ActivationService activator = new ActivationService(); - //activator.Url = "http://localhost:6422/Services/ActivationService.asmx"; - string hardwareId = Status.HardwareID; - - AmphibianSoftware.VisualSail.WebServices.ActivationResponse response = - activator.RequestActivation(hardwareId, - "VISUALSAIL1", - _activationForm.GoogleOrderNumber, - _activationForm.SerialNumber, - _activationForm.Email, - _activationForm.FirstName, - _activationForm.LastName, - _activationForm.BoatClass, - _activationForm.HomePort); - - if (response.License != null && response.License.Length > 0) - { - fs = new FileStream(_activatedLicensePath, FileMode.OpenOrCreate,FileAccess.Write); - fs.Write(response.License, 0, response.License.Length); - fs.Flush(); - fs.Close(); - this.DialogResult = DialogResult.OK; - this.Close(); - } - else - { - MessageBox.Show(response.Message); - } - } - catch(Exception ex) - { - MessageBox.Show("Online Activation Unavailible at this time, please try again later."+Environment.NewLine+ex.Message); - } - } - this.Enabled = true; - } - else if (fileRB.Checked) - { - OpenFileDialog ofd = new OpenFileDialog(); - ofd.Filter = "License Files|*.license"; - if (ofd.ShowDialog() == DialogResult.OK) - { - bool exeptionOccured = false; - try - { - FileInfo fi = new FileInfo(ofd.FileName); - fi.CopyTo(_activatedLicensePath,true); - this.DialogResult = DialogResult.OK; - this.Close(); - } - catch (Exception ex) - { - MessageBox.Show("License could not be loaded"); - } - } - } - } - - private void cancelBTN_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - - private void fileInfoLBL_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - MessageBox.Show("When requesting a license file, you will need to provide the following information..."+Environment.NewLine+"Email Address"+Environment.NewLine+"Google Order Number"+Environment.NewLine+"Serial Number"+Environment.NewLine+"Hardware ID: "+Status.HardwareID+Environment.NewLine+Environment.NewLine+"Email this information to Support@AmphibianSoftware.com", "File Activation Information"); - } - } -} -#endif \ No newline at end of file diff --git a/src/VisualSail/UI/LicenseForm.resx b/src/VisualSail/UI/LicenseForm.resx deleted file mode 100644 index 8f20584..0000000 --- a/src/VisualSail/UI/LicenseForm.resx +++ /dev/null @@ -1,904 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAEAamoAAAEAIABYtgAAFgAAACgAAABqAAAA1AAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8AA3ry//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AAN68v8DevL/A3ry/wN78/8De/P//AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wADe/P/A3vz/wN78/8De/P/A3vz/wN78/8De/P/A3vz//wA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AA3vz/wN78/8De/T/A3v0/wN79P8De/T/A3v0/wN7 - 9P8De/T/A3v0/wN79P8De/T//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AAN79P8De/T/A3v0/wN79P8De/T/A3v0/wN7 - 9P8De/T/A3v0/wN79P8De/T/A3v0/wN79P8CfPX/Anz1//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wADe/T/A3v0/wN79P8De/T/A3v0/wJ8 - 9f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89f8CfPX//AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wACfPX/Anz1/wJ8 - 9f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89v8CfPb/Anz2/wJ8 - 9v8CfPb/Anz2//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8AAnz1/wJ89f8CfPX/Anz1/wJ89f8CfPX/Anz1/wJ89v8CfPb/Anz2/wJ89v8CfPb/Anz2/wJ8 - 9v8CfPb/Anz3/wJ89/8CfPf/Anz3/wJ89//8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wACfPb/Anz2/wJ89v8CfPb/Anz2/wJ89v8CfPf/Anz3/wJ8 - 9/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf//AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AAnz3/wJ89/8CfPf/Anz3/wJ8 - 9/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf/An34/wJ9+P8Cffj/An34/wJ9+P8Cffj/An34//wA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AAJ9 - +P8Cffj/An34/wJ9+P8Cffj/QdL//z/Q//8+zf//Pcz//z3L//88yv//PMn//zvI//87x///Osb//zrF - //8Cffj/An34/wJ9+P8Cffn//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8APcz//0DQ//8/z///P87//z7O//8+zf//Pcz//z3L//88yv//O8n//zvH - //86xv//OcX//znD//84wv//N8H//zfA//82v///Nr7///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8AOcL//0PX//9C1P//QdP//0HR//9A0P//QdD//0HP//9Azv//QM3//z/L - //89yf//PMf//zvF//86xP//OcL//zjB//82v///Nr7//zW9//81vP//Nbz//zS7//80uv//M7n//zO5 - //8zuP///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AA0Gy/8NBsv//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AHLl//+C7v//ctr//4fz//+V////v////9D///9e3P//Wtb//1bP - //9Syf//UMb//07C//+c////z/////j///////////////////+w////R8L//z/A//85vv//Nrz//zS6 - //8zuP//Mrj//zK3//8ytv//Mbb//zG1//8xtP///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wANBsz/DQbM/w0GzP8NBsz/DQbM/w0GzP/8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wBnxf//pP///17C//927P//evr//3T4//9t6f//V8j//1K9 - //9PuP//TbT//0y3//9LuP//Sbb//0i2//9Htv//R7X//0a0//9Fsv//RLH//0Sw//9Dr///Q63//0Kt - //9CrP//Qav//0Gq///Q////////////////////SLv//zW0//8wsv//L7L//y+x//8vsP///AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8ADQbM/w0GzP8NBsz/DAbM/wwGzP8MBsz/DAbM/wwGzP8MBs3//AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AXrn7/4n1//9Qrf7/Vb3//+T/////////+v///+z/ - ///g////0f///8H///+v////lv///3vg//9s0P//aM3//2DF//9YvP//Urb//1C1//9Os///TbL//0qv - //9Hrf//Q6v//0Co//9AqP//QKj//0Co//9AqP//Qaj//0Go//9BqP//Qqj//0Ko//+j/////AD/APwA - /wD8AP8ANq7//yyr//8sq////AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AAwGzP8MBsz/DAbM/wwGzf8MBs3/DAbN/wwGzf8MBs3/DAbN/wwG - zf8MBs3/DAXN/wwFzv/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AYr///0+p+v+Swt7/kL/b/468 - 1/+LudP/rf///6T///+b////k/n//43z//+B5///ddv//2rP//9cwP//Wb3//1W5//9Qtf//T7T//06z - //9Nsv//TLH//0yw//9LsP//S6///0qv//9Kr///Sa7//0mu//9HrP//RKr//0Op//9Dqf//Q6n//0Sp - //9Eqf//Rar//0Wq//9Gqv//Rqv///wA/wD8AP8AivL//yqk///8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wAMBs3/DAbN/wwGzf8MBs3/DAbN/wwGzf8MBs3/DAbN/wwG - zf8MBs7/DAbO/wwGzv8MBs7/DAXO/wwFzv8MBc7/DAXO//wA/wD8AP8A/AD/ACSD3P9lw///lcbh/5PE - 4P+QwNv/jr3Y/4y61P+JttD/h7PN/4Wwyf+DrcX/garC/3vg//9w1P//Zsr//13B//9Wu///U7j//1C1 - //9Ps///TrL//0yx//9Msf//S7D//0uw//9Kr///Sq///0qv//9Krv//Sq7//0qu//9Krv//Sq7//0mu - //9Jrf//Sa3//0es//9Gq///Rqv//0er//9Hq///SKz//0ms//9KrP//Sq3///wA/wD8AP8AJJn9//wA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wAMBs3/DAbN/wwGzf8MBs7/DAbO/wwG - zv8MBs7/DAbO/wwGzv8MBs7/DAbO/wwGzv8MBs7/DAXO/wwFzv8MBc7/DAXO/wwFzv9ryv//FHPP/23M - //+Wx+H/lMXh/5HB3f+Ovdn/jLrV/4q30f+ItM7/hbHK/4Ouxv+BqsP/f6e//32ku/953///c9n//2vQ - //9fw///Vbn//1K2//9QtP//TrL//0yw//9LsP//Sq///0qv//9Kr///Sq7//0qu//9Krv//Sq7//0qu - //9Krv//Sq7//0qu//9Krv//Sq7//0qu//9Lrv//S63//0qt//9Krf//S63//0ut//9Mrv//Ta7//06v - ///8AP8A/AD/AB2Q9//8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8ADAbO/wwG - zv8MBs7/DAbO/wwGzv8MBs7/DAXP/wwFz/8MBc//DAXP/wwFz/8LBc//CwXP/wsFz/8LBc//CwXP/4Tm - ///l////C27M/5fI4v+VxuL/ksPe/4++2v+Mu9b/irjS/4i1z/+Gscv/hK7H/4Grw/9/qMD/faW8/3uh - uP94nrT/dpux/3SYrf9ylKn////////////////////////////A////k/z//2vQ//9Ps///TLD//0qu - //9Krv//Sq7//0qu//9Krv//Sq7//0uu//9Lrv//S67//0yu//9Mrv//Ta7//06v//9Or///Tq///0+v - //9QsP//UrH//1Oy//9VtP///AD/AGDD///8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wAMBc//DAXP/wwFz/8LBdD/CwXQ/wsF0P8LBdD/CwXQ/wsF0P8LBdD/CwXQ/wsF - 0f8LBdH/CwXR//////8OdNT/l8nj/5bH4/+TxOD/kMDc/4y81/+KuNP/iLXP/4ayzP+Er8j/gqzE/3+p - wf99pb3/e6K5/3mftf93nLL/dJiu/3KVqv9wkqb/bY+i//D////F//////////////////////////// - ////////5P///6X////T////ULL//02w//9Lrv//S67//0yu//9Nrv//Ta///06v//9Pr///ULD//1Gw - //9Ssf//U7L//1W0//9Xtf//Wbj//1y7//+V////of////wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AAsF0f8LBdH/CwXR/wsF0f8LBdH/CwXR/wsF - 0f8LBdH/CwXR/wsF0f8LBdH//////5nK5P+YyeT/l8jk/5TF4f+Rwd3/jr3Z/4q51P+IttD/hrPN/4Sw - yf+CrMX/gKnB/36mvv97o7r/eaC2/3ecsv91ma//cpar/3CTp/9uj6P/eN7//5L6//+4////5v////// - ///s////qP///3DS//9kyP//aM///37p//+T////lv///5T///+z////UrL//0+w//9QsP//UbH//1Kx - //9Usv//VbT//1e2//9Zuf//Xr3//2nL//9/5f///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8ACwXR/wsF - 0f8LBdH/CwXR/wsF0f8LBdH/CwXR/wsF0v8LBdL/msvk/5nK5f+YyeX/lcbi/5PD3v+Pv9r/jLrV/4i2 - 0f+Gs83/hLDK/4Ktxv+AqsL/fqe//3yju/95oLf/d52z/3WasP9zl6z/cJOo/26QpP9KrP//VLb//2jN - //9t0P//et///2rP//9o0P//fOf//4z7//+R////lv///5D///+H////fvv//3j3//9z8///sf///1e2 - //9Xtf//Wbn//1y8//9oyv//hez//57///8Af/3/AH/9/wB//f8Af/3/AH/9//wA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AAsF0v8LBdL/CwXS/wsF0v8LBdL/CwXS/wsF0v+bzOX/msvl/5jK5v+Wx+P/lMTg/5HA - 3P+NvNf/ibjS/4a0zv+Escv/gq7H/4Crw/9+p7//fKS8/3qhuP94nrT/dZqw/3OXrf9xlKn/b5Gl/zmf - /P89o/7/Qaj//1G6//+G8///kP///5D///+W////j////4f///+A/f//evn//3X3//9y9///cff//2/1 - //9Yyv//rP///57///+e////nP///wB//f8Af/3/AH/9/wB//f8Bf/z/AX/8/wF//P8Bf/z/AX/8/wF/ - /P8Bf/z//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8ACwXT/wsF0/8LBdP/nc7m/5zN5v+bzOb/mcvm/5fI - 5P+VxeH/ksLd/46+2f+LudT/h7XP/4Sxy/+Crsj/gKvE/36owP98pb3/eqK5/3ietf92m7H/c5iu/3GV - qv9vkab/N6P//zyp//9Mvf//sP///5v///+P////h////4D+//96+v//dfj//3P4//9x+P//cPj//3D3 - //9izP//nf///53///+b////AH/9/wB//f8Bf/z/AX/8/wF//P8Bf/z/AX/8/wF//P8Bf/z/AX/8/wF/ - /P8Bf/z/AX/8/wF++/8Bfvv/AX77/wF++//8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AAsF1P+ez+f/nc7n/5zN - 5/+ay+f/mMnl/5bG4v+Tw97/kL/a/4y71v+IttH/hbLM/4OvyP+BrMX/fqnB/3ylvv96orr/eJ+2/3ac - sv90ma7/cZWr/zan//87rf//Rrv//6r///+O////gf///3r7//91+P//c/j//3H4//9w+f//cfj//2DI - //+d////nf///5r////8AP8A/AD/APwA/wD8AP8AAX/8/wF//P8Bfvv/AX77/wF++/8Bfvv/AX77/4vD - 4/8Bfvv/AX77/wF++/8Bfvv/AX77/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76//wA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AJ/Q - 5/+ez+f/nM7o/5vM6P+Zyub/l8fj/5TE4P+RwNz/jbzX/4q40/+Gs87/g6/J/4Gsxv9/qcL/faa+/3qj - u/94oLf/dpyz/3SZr/9ylqz/Oa7//z+2//9n6f//hf///5/a9v+e2fX/ndj0/5zX8/+b1vL/mtXy/5rU - 8f+Z0/D/mNLv/5fR7v+W0O7/lc/t/5TO7P+Uzev/k8zq/5LL6v+Ryun/kMno/4/I5/+Ox+b/jsbl/43F - 5f+Mw+T/i8Lj/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76/wF+ - +v8Bfvr//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8AoNHo/5/Q6P+dz+n/nM3p/5rL5/+YyOT/lcXh/5LC3f+Pvtn/i7rU/4i10P+EsMv/ga3G/3+q - w/99p7//e6O8/3iguP92nbT/dJqw/3KXrf+i3fn/odz4/6Db9/+f2vb/n9n2/57Y9f+d1/T/nNbz/5vV - 8v+a1PL/mdPx/5nS8P+Y0e//l9Du/5bP7v+Vzu3/lM3s/5PM6/+Ty+r/ksrp/5HJ6f+QyOj/j8fn/47G - 5v+NxeX/jcTk/4zD5P8Bfvr/AX76/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76/wF+ - +v8Bfvr/AX76/wF++v8Bffn/AX35/wF9+f/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AKHT6f+g0un/n9Hp/57Q6f+dzur/m8zo/5nJ5f+WxuL/k8Pe/5C/2v+Nu9b/ibfR/4Wy - zP+Brsf/f6rD/32nwP97pLz/eaG5/3aetf90m7H/cpet/6Ld+f+h3Pj/oNv3/5/a9v+f2fb/ntj1/53X - 9P+c1vP/m9Xy/5rU8f+Z0/H/mdLw/5jR7/+X0O7/ls/t/5XO7f+Uzez/k8zr/5PL6v+Syun/kcnp/5DI - 6P+Px+f/jsbm/43F5f+MxOT/jMPk//wA/wD8AP8AAX76/wF++v8Bfvr/AX76/wF++v8Bfvr/AX76/wF+ - +v8Cffn/An35/wJ9+f8Cffn/An35/wF9+f8Cffj/An34/wJ9+P8Cffj//AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8AotTp/6HT6f+g0ur/n9Hq/53P6/+czen/msrm/5fI4/+UxOD/kcDc/469 - 1/+KuNP/h7TO/4Ovyf9/q8T/fajB/3ukvf95obn/d562/3Wbsv9ymK7/ot35/6Hc+P+g2/f/n9r2/5/Z - 9v+e2PX/ndf0/5zW8/+b1fL/mtTx/5nT8f+Z0vD/mNHv/5fQ7v+Wz+3/lc7t/5TN7P+TzOv/ksvq/5LK - 6f+Ryen/kMjo/4/H5/+Oxub/jcXl/4zE5P+Mw+T//AD/APwA/wD8AP8A/AD/APwA/wACffn/An35/wJ9 - +f8Cffn/An35/wJ9+P8Cffj/An34/wJ9+P8Cffj/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ8 - 9//8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wCj1er/otTq/6HT6v+g0uv/ntDs/53O6v+ay+f/mMnk/5XF - 4f+Swt3/j77Z/4y61P+IttD/hLHL/4Csxv99qMH/e6W+/3miuv93n7f/dZyz/6Pe+v+i3fn/odz4/6Db - 9/+f2vb/n9n2/57Y9f+d1/T/nNbz/5vV8v+a1PL/mdPx/5nS8P+Y0e//l9Du/5bP7f+Vzu3/lM3s/5PM - 6/+Sy+r/ksrp/5HJ6f+QyOj/j8fn/47G5v+NxeX/jMTk//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AAJ9+P8Cffj/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ8 - 9/8CfPf/Anz3/wJ89/8CfPf//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Apdbr/6TW6/+j1ev/otTr/6HT7P+f0ez/nc/r/5vM - 6P+ZyuX/lsfi/5PD3v+Qv9r/jbvW/4m30v+Gs83/gq7I/36pw/97pr//eaK7/3eft/91nLT/o9/6/6Ld - +f+h3Pj/oNv3/5/a9/+f2fb/ntj1/53X9P+c1vP/m9Xy/5rU8v+Z0/H/mdLw/5jR7/+X0O7/ls/u/5XO - 7f+Uzez/k8zr/5LL6v+Syun/kcnp/5DI6P+Px+f/jsbm/43F5f+MxOT//AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wACfPf/Anz3/wJ89/8CfPf/Anz3/wJ89/8CfPf/Anz3/wJ8 - 9/8CfPb/Anz2/wJ89v8CfPb/Anz2/wJ89v/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wCm2Oz/pdfs/6TW7P+j1ez/odPt/6DS - 7f+e0Oz/nM3p/5rL5v+XyOP/lMTg/5HB3P+Ovdj/i7nT/4e0z/+DsMr/gKvF/3ynwP95o7z/d6C4/3Wd - tP+j3/r/ot76/6Hd+f+g3Pj/oNr3/5/Z9v+e2PX/ndf0/5zW8/+b1fP/mtTy/5nT8f+Z0vD/mNHv/5fQ - 7v+Wz+7/lc7t/5TN7P+TzOv/k8vq/5LK6f+Ryen/kMjo/4/H5/+Oxub/jcXl//wA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AAJ89v8CfPb/Anz2/wJ8 - 9v8CfPb/Anz2/wJ89v8CfPb/Anz2/wJ89v8CfPX//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AKfZ7P+m2Oz/pdfs/6TW - 7f+i1O3/odPu/5/R7f+dzur/m8zn/5jJ5P+WxeH/k8Ld/4++2f+MutX/ibbQ/4Wxy/+Brcf/fajC/3qk - vf93oLn/pOD8/6Pf+/+i3vr/od35/6Hc+P+g2/f/n9r2/57Y9f+d1/T/nNb0/5vV8/+a1PL/mtPx/5nS - 8P+Y0e//l9Dv/5bP7v+Vzu3/lM3s/5PM6/+Ty+r/ksrq/5HJ6f+QyOj/j8fn/47G5v+NxeX//AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wACfPX/Anz1/wJ89f8CfPX/Anz1/wJ89f8CfPX/Anz1//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AqNrt/6fZ - 7f+m2O3/pNfu/6PV7v+i1O//oNLu/57P6/+czej/mcrl/5fH4v+Uw97/kb/a/4271v+Kt9L/hrPN/4Ov - yP9/qsP/e6W+/3ihuv+k4Pz/pN/7/6Pe+v+i3fn/odz4/6Db9/+f2vb/ntn2/53Y9f+c1vT/m9Xz/5rU - 8v+a0/H/mdLw/5jR8P+X0O//ls/u/5XO7f+Uzez/k8zr/5PL6/+Syur/kcnp/5DI6P+Px+f/jsbm/43F - 5f/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AAJ89f8CfPX/Anz1/wN79P/8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AKnb - 7v+p2+7/qNru/6fZ7v+l2O7/pNbv/6PU8P+h0+//n9Ds/53O6v+ay+b/mMjj/5XE4P+Swdz/j73Y/4u5 - 0/+Itc//hLDK/4Csxf98p8D/puL+/6Xg/f+k3/z/o977/6Ld+v+h3Pn/oNv4/5/a9/+e2fb/ndj1/5zX - 9P+b1vP/m9Xy/5rT8f+Z0vH/mNHw/5fQ7/+Wz+7/lc7t/5TN7P+UzOz/k8vr/5LK6v+Ryen/kMjo/4/H - 5/+Oxub/CATd/wgE3f8IBN3//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8Aqtzu/6rc7v+o2+7/p9rv/6bY7/+l1/D/o9Xw/6LT7/+g0e3/ns/r/5vM6P+ZyeT/lsbh/5PC - 3f+Qvtn/jLrV/4m20P+Fssz/gq3H/36pwv+m4v7/peH9/6Tg/P+j3/v/ot36/6Hc+f+g2/j/n9r3/57Z - 9v+d2PX/ndf0/5zW8/+b1fP/mtTy/5nT8f+Y0fD/l9Dv/5bP7v+Vzu3/lM3t/5TM7P+Ty+v/ksrq/5HJ - 6f+QyOj/j8fn/47G5/8IBN7/CATe/wgE3v8IBN7/CATe/wgE3v/8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wCr3u//qt3v/6nc7/+o2+//p9nw/6bY8P+k1vH/otTw/6HS7v+f0Oz/nM3p/5rK - 5f+Xx+L/lMPe/5G/2v+OvNb/irjS/4ezzf+Dr8n/p+P//6bi//+l4f3/pOD8/6Pf+/+i3vr/odz5/6Db - +P+f2vf/n9n3/57Y9v+d1/X/nNb0/5vV8/+a1PL/mdPx/5jS8P+X0e//ls/u/5XO7v+Vze3/lMzs/5PL - 6/+Syur/kcnp/5DI6P+Px+j/CATf/wgE3/8IA9//CAPf/wgD3/8IA9//CAPf/wgD3/8IA9///AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8Ard/w/6zf8P+r3vD/qt3w/6nc8P+o2vH/p9nx/6XX8v+j1fH/odPv/5/R - 7f+dzur/m8vn/5jI4/+VxN//ksHc/4+92P+LudP/iLXP/4Sxyv+n5P//puL//6Xh/v+k4P3/o9/8/6Le - +/+i3fr/odz5/6Da+P+f2ff/ntj2/53X9f+c1vT/m9Xz/5rU8v+Z0/H/mNLw/5fR8P+W0O//ls/u/5XO - 7f+UzOz/k8vr/5LK6v+Ryen/kMjp/4/H6P8HA+D/BwPg/wcD4P8HA+D/BwPg/wcD4P8HA+D/BwPg/wcD - 4P8HA+D/BwPg/wcD4f/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wCu4PD/rd/w/6zf8P+r3vH/qtzx/6nb8f+n2vL/ptjz/6TW - 8v+i1PD/oNLu/57P6/+czOj/mcnk/5bG4f+Twt3/kL7Z/4261f+JttD/qOX//6jk//+n4///puL+/6Xg - /f+k3/z/o977/6Ld+v+h3Pn/oNv4/5/a9/+e2Pb/ndf1/5zW9P+b1fP/mtTz/5nT8v+Y0vH/mNHw/5fQ - 7/+Wz+7/lc7t/5TN7P+TzOv/ksrr/5HJ6v+QyOn/BwPg/wcD4P8HA+D/BwPg/wcD4P8HA+D/BwPg/wcD - 4f8HA+H/BwPh/wcD4f8HA+H/BwPh/wcD4f8HA+H//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AK/h8f+u4PH/reDx/6zf8f+r3fL/qtzy/6jb - 8/+n2fT/pdfz/6PV8f+h0+7/n9Ds/53N6f+ayuX/l8fi/5TD3v+RwNr/jrzW/4u40v+p5f//qOT//6fj - //+m4v//peH+/6Tf/f+j3vz/ot37/6Hc+v+g2/n/n9r4/57Z9/+d2Pb/nNb1/5vV9P+a1PP/mtPy/5nS - 8f+Y0fD/l9Dv/5bP7v+Vzu3/lM3t/5PM7P+Sy+v/kcrq/5DI6f/8AP8A/AD/AAcD4f8HA+H/BwPh/wcD - 4f8HA+H/BwPh/wcD4f8HA+L/BwPi/wcD4v8HA+L/BwPi/wcD4v8HA+L/BwPi//wA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AsOLy/6/h8v+u4PL/rd/y/6ze - 8/+q3fP/qdz0/6ja9P+m2PT/pNby/6LU7/+g0e3/ns7q/5vL5/+YyOP/lcXf/5LB3P+Pvdj/qub//6nl - //+o5P//p+P//6bi//+l4f7/pOD9/6Pf/P+i3fv/odz6/6Db+f+f2vj/ntn3/53Y9v+d1/X/nNb0/5vU - 8/+a0/L/mdLx/5jR8P+X0O//ls/v/5XO7v+Uze3/k8zs/5LL6/+Ryur//AD/APwA/wD8AP8A/AD/APwA - /wAHA+L/BwPi/wcD4v8HA+L/BwPi/wcD4v8HA+L/BwPj/wcD4/8HA+P/BwPj/wcD4/8HA+P/BwPj/wcD - 4//8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/ALHk8/+x4/P/sOLz/6/h - 8/+u4PP/rd/z/6ve9P+q3fT/qNv1/6fZ9f+l1/P/o9Xw/6HS7v+ez+v/nMzo/5nJ5P+WxuH/k8Ld/6vo - //+q5///qeb//6jk//+n4///puL//6Xh//+k4P7/o9/9/6Le+/+h3fr/oNv5/6Da+P+f2ff/ntj2/53X - 9f+c1vT/m9X0/5rT8/+Z0vL/mNHx/5fQ8P+Wz+//lc7u/5TN7f+TzOz/k8vr/5LK6v/8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AAcD4/8HA+P/BwPj/wcD4//8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8As+Xz/7Lk - 8/+x4/P/sOLz/6/h9P+t4PT/rN/1/6vd9f+p3Pb/qNr2/6bY9P+k1vH/otPv/5/Q7P+dzen/msrl/5fH - 4v+Uw97/q+j//6rn//+p5v//qOX//6fk//+n4///puH//6Xg/v+k3/3/o978/6Ld+/+h3Pr/oNr5/5/Z - +P+e2Pf/ndf2/5zW9f+b1fT/mtTz/5nT8v+Y0fH/l9Dw/5bP7/+Vzu7/lc3t/5TM7P+Ty+z//AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wCz5vT/s+X0/7Lk9P+w4/T/r+L1/67h9f+t4PX/rN72/6rd9/+o2/f/p9n1/6XW8v+j1PD/oNHt/57O - 6v+by+f/mMjj/6zp//+r6P//quf//6nm//+p5f//qOT//6fj//+m4v//peD+/6Tf/f+j3vz/ot37/6Hc - +v+g2/n/n9r4/57Y9/+d1/b/nNb1/5vV9P+a1PP/mdPy/5jS8f+X0fD/l8/v/5bO7/+Vze7/lMzt/5PL - 7P/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8Atef1/7Tn9f+z5vX/suX1/7Hk9f+w4/X/r+L2/67h9v+s3/f/q974/6nc9/+o2vb/ptfz/6PV - 8f+h0u7/n8/r/5zN6P+t6v//rOn//6vo//+r5///qub//6nl//+o5P//p+P//6bi//+l4f//pOD+/6Pe - /f+i3fz/odz7/6Db+v+f2vn/ntn4/53Y9/+c1vb/m9X1/5rU9P+a0/P/mdLy/5jR8f+X0PD/ls/v/5XO - 7v+UzO3//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wC26fX/tej1/7Tn9f+z5vb/suX2/7Hk9v+w4/f/r+L3/63g+P+s3vj/qt34/6jb - 9/+m2PT/pNby/6LT7/+g0ez/nc7p/63q//+s6f//rOj//6vn//+q5v//qeX//6jk//+n4///puL//6Xh - //+k4P7/o9/9/6Le/P+h3Pv/oNv6/5/a+f+f2fj/ntj3/53X9v+c1vX/m9T0/5rT8/+Z0vL/mNHx/5fQ - 8P+Wz+//lc7u//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/ALfq9v+26fb/tej2/7Tn9v+z5vf/suX3/7Hk9/+v4vj/ruH4/63f - +f+r3vn/qdz4/6fZ9f+l1/P/o9Tw/6HS7f+u6///rer//6zp//+s6f//q+j//6rn//+p5v//qOX//6fj - //+m4v//puH//6Xg//+k3/7/o979/6Ld/P+h3Pv/oNr6/5/Z+P+e2Pf/ndf2/5zW9f+b1fT/mtPz/5nS - 8/+Y0fL/l9Dx/5bP8P+Vzu///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AuOv3/7fq9/+26ff/tej3/7Tn9/+z5vj/suX4/7Dj - +f+v4vn/reD6/6ze+v+q3Pj/qNr2/6bY9P+k1fH/r+z//67r//+t6v//rer//6zp//+r6P//quf//6nm - //+p5f//qOT//6fj//+m4f//peD//6Tf/v+j3v3/ot38/6Hc+/+g2/r/n9n5/57Y+P+d1/f/nNb2/5vV - 9f+a1PT/mdPz/5jR8v+X0PH/ls/w//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/ALns+P+57Pj/uOv4/7fq+P+26fj/tej4/7Tn - +P+y5vn/seT5/7Dj+v+u4fv/rd/7/6vd+f+p2/f/p9n1/6/t//+v7P//ruv//63r//+t6v//rOn//6vo - //+q5///qub//6nl//+o5P//p+P//6bi//+l4f//pN/+/6Pe/f+i3fz/odz7/6Db+v+f2vn/ntn4/53X - 9/+c1vb/m9X1/5rU9P+Z0/P/mNLy/5jR8f/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Au+34/7rt+P+57Pj/uOv4/7fq - +f+26fn/tej5/7Pn+v+y5fr/seT7/6/i/P+u4Pz/rN76/6rc+P+o2vb/r+3//6/s//+u6///ruv//63q - //+s6f//q+j//6vn//+q5v//qeX//6jk//+n4///puL//6Xh//+k4P//o9/+/6Ld/f+h3Pz/oNv7/5/a - +v+f2fn/ntj4/53X9/+c1fb/m9T1/5rT9P+Z0vP/mNHy//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wC87/n/u+75/7rt - +f+57Pn/uOv5/7fq+v+16fr/tOj6/7Pm+/+x5fz/sOP8/67h/f+t3/v/q935/7Du//+w7f//r+z//67s - //+u6///rer//6zp//+s6P//q+f//6rm//+p5f//qOT//6fj//+m4v//peH//6Xg//+k3/7/o979/6Ld - /P+h2/v/oNr6/5/Z+f+e2Pj/ndf3/5zW9v+b1PX/mtP0/5nS8//8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AvfD6/73v - +v+87/r/u+76/7rt+v+57Pr/t+v6/7bq+/+16Pv/tOf8/7Lm/P+x5P3/r+L9/67g/P+x7v//sO7//7Dt - //+v7f//r+z//67r//+t6v//rer//6zp//+r6P//quf//6nm//+o5f//qOT//6fi//+m4f//peD//6Tf - //+j3v7/ot39/6Hc/P+g2vv/n9n6/57Y+f+d1/j/nNb3/5vV9v+a1PX//AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wC+8fr/vfD7/7zw+v+77/r/uu77/7nt+/+47Pv/t+v8/7bp/P+16P3/s+b9/7Ll/v+w4/7/se///7Hv - //+w7v//sO3//6/t//+v7P//ruv//67r//+t6v//rOn//6vo//+q5///qub//6nl//+o5P//p+P//6bi - //+l4P//pN///6Pe/v+i3f3/odz8/6Db+/+f2vr/ntj5/53X+P+c1vf/m9X2/5rU9f/8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AL/y+/++8fv/vfH7/7zw+/+77/v/uu78/7nt/P+47Pz/t+r9/7Xp/f+05/7/sub//7Lw - //+y7///se///7Hu//+w7v//sO3//6/s//+u7P//ruv//63q//+s6f//q+j//6vn//+q5v//qeX//6jk - //+n4///puL//6Xh//+k4P//o97+/6Ld/v+h3P3/oNv8/5/a+v+e2fn/ndj4/53W9/+c1fb//AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wDA8/z/wPP8/7/y/P++8vz/vfH8/7zw/P+77/z/uu79/7ns/f+46/7/tur+/7Xo - //+z8P//svD//7Lv//+x7///se7//7Du//+w7f//r+z//6/s//+u6///rer//6zp//+s6P//q+f//6rm - //+p5f//qOT//6fj//+m4v//peH//6Tg//+j3///o97+/6Lc/f+h2/z/oNr7/5/Z+v+e2Pn/ndf4//wA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AMH0/f/B9P3/wPP9/7/z/f++8v3/vfH9/7zw/f+77/3/uu3+/7js - /v+36///s/H//7Pw//+y8P//svD//7Lv//+x7///se7//7Dt//+v7f//r+z//67r//+t6v//ren//6zo - //+r6P//quf//6nl//+o5P//p+P//6fi//+m4f//peD//6Tf//+j3v7/ot39/6Hc/P+g2vv/n9n6/57Y - +f/8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Aw/b9/8L1/f/B9P3/wPT9/7/z/f++8v7/vfH+/7zv - /v+77v//ue3//7js//+z8f//s/H//7Pw//+y8P//su///7Hv//+x7v//sO7//7Dt//+v7P//ruv//67q - //+t6v//rOn//6vo//+q5///qeb//6nl//+o5P//p+P//6bh//+l4P//pN///6Pe//+i3f7/odz9/6Db - /P+f2fv//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDE9/7/w/b+/8L1/v/B9f7/wPT+/7/z - /v++8v//vfD//7vv//+67v//tPL//7Tx//+z8f//s/H//7Lw//+y8P//se///7Hu//+w7v//sO3//6/s - //+u7P//ruv//63q//+s6f//q+j//6vn//+q5v//qeX//6jk//+n4///puL//6Xh//+k3///o97//6Ld - /v+h3P3/oNv8/5/a+//8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Axfj//8X4///E9///w/b//8L2 - ///B9f//wPT//7/z//+98f//vPD//7Ty//+08v//tPL//7Px//+z8f//s/D//7Lw//+y7///se///7Hu - //+w7f//r+3//6/s//+u6///rer//6zp//+s6P//q+f//6rm//+p5f//qOT//6fj//+m4v//peH//6Tg - //+j3///ot3+/6Lc/v+h2/3//AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDG+f//xvn//8X4 - ///E9///w/f//8L2///B9f//v/P//77y//+18///tfP//7Ty//+08v//tPH//7Px//+z8f//svD//7Lv - //+x7///se7//7Dt//+v7f//r+z//67r//+t6v//ren//6zo//+r5///qub//6nl//+o5P//p+P//6bi - //+m4f//peD//6Tf//+j3v//ot3+//wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AMf7 - ///G+v//xfn//8X4///D9///wvf//8H1///A9P//tfP//7Xz//+18///tfP//7Ty//+08v//tPH//7Px - //+z8P//svD//7Lv//+x7v//sO7//7Dt//+v7P//ruv//67q//+t6v//rOn//6vo//+q5///qeb//6nl - //+o4///p+L//6bh//+l4P//pN///6Pe///8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wDI/P//yPz//8f7///G+v//xfn//8T4///D9///wvb//7b0//+29P//tvP//7Xz//+18///tfL//7Ty - //+08v//s/H//7Pw//+y8P//su///7Hv//+w7v//sO3//6/s//+u6///ruv//63q//+s6f//q+j//6rn - //+q5v//qeX//6jk//+n4///puH//6Xg//+k3////AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AMn9///J/f//yPz//8f7///G+v//xfn//8T4//+29f//tvT//7b0//+29P//tfP//7Xz - //+18///tPL//7Ty//+z8f//s/H//7Lw//+y7///se///7Hu//+w7f//r+3//6/s//+u6///rer//6zp - //+s6P//q+f//6rm//+p5f//qOT//6fj//+m4v//peH///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8Ay/7//8r+///J/f//yPz//8f7///G+v//t/X//7f1//+39f//tvT//7b0 - //+29P//tfP//7Xz//+18v//tPL//7Tx//+z8f//s/D//7Lw//+x7///se7//7Du//+v7f//r+z//67r - //+t6v//ren//6zo//+r5///qub//6nl//+o5P//p+P//6bi///8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDM////y////8r+///J/f//yPz//7f2//+39f//t/X//7f1 - //+39f//tvT//7b0//+29P//tfP//7Xz//+08v//tPL//7Px//+z8P//svD//7Lv//+x7v//sO7//7Dt - //+v7P//ruv//67q//+t6f//rOj//6vn//+q5v//qeX//6jk//+o4////AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Azf///83////M////y////8r+//+49v//uPb//7j2 - //+39f//t/X//7f1//+39f//tvT//7b0//+18///tfP//7Xy//+08v//tPH//7Px//+y8P//su///7Hv - //+x7v//sO3//6/s//+u6///rur//63q//+s6f//q+j//6rn//+q5v//qeX///wA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDO////zv///83////M////uPb//7j2 - //+49v//uPb//7j2//+39f//t/X//7f1//+29P//tvT//7b0//+18///tfP//7Ty//+08v//s/H//7Pw - //+y8P//se///7Hu//+w7f//r+z//6/s//+u6///rer//6zp//+r6P//q+f//6rm///8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AM/////P////zv///7n3 - //+59///uff//7j3//+49v//uPb//7j2//+39f//t/X//7f1//+29P//tvT//7Xz//+18///tPL//7Ty - //+z8f//s/D//7Lw//+y7///se7//7Dt//+w7f//r+z//67r//+t6v//rOn//6zo///8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDQ////0P///8// - //+59///uff//7n3//+59///uff//7j3//+49v//uPb//7j2//+39f//t/X//7b1//+29P//tvT//7Xz - //+18///tPL//7Tx//+z8f//svD//7Lv//+x7v//sO7//7Dt//+v7P//ruv//63q//+t6f///AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/ANH/ - //+69///uvf//7r4//+5+P//ufj//7n3//+59///uff//7j3//+49v//uPb//7f2//+39f//t/X//7b0 - //+29P//tfP//7Xz//+08v//tPH//7Px//+z8P//su///7Hv//+x7v//sO3//6/s//+u6///rur///wA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8Auvj//7r4//+6+P//uvj//7r4//+6+P//ufj//7n3//+59///uff//7j3//+49v//uPb//7f1 - //+39f//tvX//7b0//+29P//tfP//7Xy//+08v//s/H//7Pw//+y8P//se///7Hu//+w7f//r+z//6/r - ///8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/ALv4//+7+P//u/j//7r4//+6+f//uvj//7r4//+6+P//ufj//7n4//+59///uff//7j3 - //+49v//uPb//7f1//+39f//tvT//7b0//+18///tfP//7Ty//+08f//s/H//7Lw//+y7///se7//7Dt - ///8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8Au/n//7v5//+7+f//u/n//7v5//+6+f//uvn//7r4//+6+P//ufj//7n3 - //+59///uPf//7j2//+49v//t/X//7f1//+29P//tvT//7Xz//+18///tPL//7Tx//+z8f//svD//7Lv - //+x7v///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/ALv5//+7+f//u/n//7v5//+7+f//u/n//7v5//+6+f//uvn//7r4 - //+6+P//ufj//7n3//+59///uPf//7j2//+49v//t/X//7f1//+29P//tvT//7Xz//+18v//tPL//7Px - //+z8P//su////wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AvPn//7z5//+8+v//u/r//7v6//+7+v//u/n//7v5 - //+6+f//uvn//7r4//+6+P//ufj//7n3//+59///uPb//7j2//+39f//t/X//7b0//+29P//tfP//7Xy - //+08v//tPH///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/ALz6//+8+v//vPr//7z6//+8+v//vPr//7v6 - //+7+v//u/n//7v5//+6+f//uvn//7r4//+6+P//ufj//7n3//+49///uPb//7j2//+39f//t/X//7b0 - //+18///tfP//7Ty///8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Avfr//736//+8+v//vPv//7z7 - //+8+v//vPr//7v6//+7+v//u/n//7v5//+6+f//uvn//7r4//+5+P//uff//7n3//+49v//uPb//7f1 - //+39f//tvT//7b0///8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AL37//+9+///vfv//737 - //+9+///vPv//7z7//+8+///vPr//7v6//+7+v//u/n//7v5//+6+f//uvj//7r4//+5+P//uff//7j3 - //+49v//t/b//7f1//+29P///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wC9+///vfv//737 - //+9+///vfv//737//+9+///vPv//7z7//+8+///vPr//7v6//+7+v//u/n//7v5//+6+f//uvj//7n4 - //+59///uff//7j2//+49v///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/AL77 - //+++///vvz//738//+9/P//vfz//738//+9+///vfv//7z7//+8+///vPr//7v6//+7+v//u/n//7r5 - //+6+P//uvj//7n4//+59////AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wC+/P//vvz//778//++/P//vvz//778//+9/P//vfz//738//+9+///vfv//7z7//+8+///vPr//7v6 - //+7+v//u/n//7r5//+6+P//ufj///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/AL78//++/P//vvz//779//++/f//vv3//778//+9/P//vfz//738//+9+///vfv//7z7 - //+8+///vPr//7v6//+7+f//uvn///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wC//P//v/3//7/9//+//f//v/3//779//++/f//vv3//779//++/P//vfz//738 - //+9+///vPv//7z7//+8+v//u/r///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/AL/9//+//f//v/3//7/9//+//v//v/3//779//++/f//vv3//779 - //++/P//vfz//738//+9+///vPv///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDA/f//wP3//7/+//+//v//v/7//7/+//+//v//v/7//7/9 - //++/f//vv3//779//++/P//vfz///wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8AwP7//8D+///A/v//wP7//8D+//+//v//v/7//7/+ - //+//v//v/7//7/9//++/f///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDA/v//wP7//8D+///A////wP///8D/ - ///A////v/7//7/+//+//v///AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Awf7//8H////B////wf///8D/ - ///A////wP///8D////A/////AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wDB////wf///8H/ - ///B////wf///8H////8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8Awf///8H/ - ///B////wf////wA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wDC/////AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA/wD8AP8A/AD/APwA - /wD8AP8A/////////////////8AAAP/////////////////AAAD/////////////////wAAA//////// - /////////8AAAH/////////////////AAAAH////////////////wAAAAP///////////////8AAAAAP - ///////////////AAAAAAf//////////////wAAAAAAf/////////////8AAAMAAA//////////////A - AAD4AAB/////////////wAAA/4AAD////////////8AAAP/wAAH////////////AAAD//gAAH/////// - ////wAAA///gAAP//////////8AAAP//wAAAB//////////AAAA//8AAAAA/////////wAAAA//AAAAA - Af///////8AAAAB/wAAAAAOP///////AAAAAB/AAAAAADP//////wAAAAABwAAAAAABv/////8AAAMAA - AAAAAAAADf/////AAAD4AAAAAAAAAAF/////wAAA/4AAAAAAAAAAP////8AAAP/4AAAAAAAAAP/////A - AAD//4AAAAAAAAAf////wAAA///wAAAAAAAAAf///8AAAP///wAAAAAAAAAf///AAAD////gAAAAAPAA - Af//wAAA////+AAAAAAAAAAf/8AAAP////wAAAAAAAAAAf/AAAD////8AAAAAAADAAA/wAAA/////gAA - AAAAAfAAA8AAAP////8AAAAAAAH/AABAAAD/////AAAAAAAA/+AAAAAA/////4AAAAAAAP/+AAAAAP// - ///AAAAAAAB//8AAAAD/////4AAAAAAAP//8AAAA/////+AAAAAAAAf//8AAAP/////wAAAAAAAAf//A - AAD/////+AAAAAAAAA//wAAA//////gAAAAAAAAA/8AAAP/////8AAAAAAAAAB/AAAD//////gAAAAAA - BgADwAAA//////8AAAAAAAfAAEAAAP//////AAAAAAAD/D/AAAD//////4AAAAAAA///wAAA///////A - AAAAAAH//8AAAP//////wAAAAAAB///AAAD//////+AAAAAAAf//wAAA///////wAAAAAAD//8AAAP// - ////+AAAAAAA///AAAD///////gAAAAAAP//wAAA///////8AAAAAAB//8AAAP///////gAAAAAAf//A - AAD///////4AAAAAAH//wAAA////////AAAAAAA//8AAAP///////4AAAAAAP//AAAD///////+AAAAA - AD//wAAA////////wAAAAAA//8AAAP///////+AAAAAAP//AAAD////////wAAAAAB//wAAA//////// - 8AAAAAAf/8AAAP////////gAAAAAH//AAAD////////8AAAAAB//wAAA/////////AAAAAAf/8AAAP// - //////4AAAAAH//AAAD/////////AAAAAB//wAAA/////////4AAAAAf/8AAAP////////+AAAAAH//A - AAD/////////wAAAAB//wAAA/////////+AAAAA//8AAAP/////////gAAAAP//AAAD/////////8AAA - AD//wAAA//////////gAAAA//8AAAP/////////4AAAAf//AAAD//////////AAAAH//wAAA//////// - //wAAAB//8AAAP/////////+AAAA///AAAD//////////gAAAP//wAAA//////////8AAAH//8AAAP// - ////////AAAB///AAAD//////////wAAA///wAAA//////////+AAAf//8AAAP//////////gAAH///A - AAD//////////8AAD///wAAA///////////AAB///8AAAP//////////4AA////AAAD//////////+AA - f///wAAA///////////gAf///8AAAP//////////8AP////AAAD///////////AH////wAAA//////// - ///4H////8AAAP//////////+H/////AAAD///////////3/////wAAA/////////////////8AAAP// - ///////////////AAAD/////////////////wAAA/////////////////8AAAP/////////////////A - AAD/////////////////wAAA/////////////////8AAAP/////////////////AAAD///////////// - ////wAAA/////////////////8AAAA== - - - \ No newline at end of file diff --git a/src/VisualSail/UI/NullRenderer.cs b/src/VisualSail/UI/NullRenderer.cs index 576af23..8b84c3e 100644 --- a/src/VisualSail/UI/NullRenderer.cs +++ b/src/VisualSail/UI/NullRenderer.cs @@ -10,7 +10,6 @@ using Microsoft.Xna.Framework; using AmphibianSoftware.VisualSail.Data; -using AmphibianSoftware.Video; using AmphibianSoftware.VisualSail.Library; using AmphibianSoftware.VisualSail.Data.Statistics; diff --git a/src/VisualSail/UI/Replay.cs b/src/VisualSail/UI/Replay.cs index 7c916be..433a11d 100644 --- a/src/VisualSail/UI/Replay.cs +++ b/src/VisualSail/UI/Replay.cs @@ -7,11 +7,9 @@ using System.Data; using System.Threading; -using AmphibianSoftware.Video; using AmphibianSoftware.VisualSail.Library; using AmphibianSoftware.VisualSail.Data; using AmphibianSoftware.VisualSail.Data.Statistics; -using AmphibianSoftware.VisualSail.PostBuild; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; @@ -21,7 +19,6 @@ namespace AmphibianSoftware.VisualSail.UI { - [DoNotObfuscate()] public enum InstrumentDrawing { Line, InwardArrow, OutwardArrow }; public delegate void ShutdownViewPort(IViewPort vp); public class Replay:IDisposable /*: Microsoft.Xna.Framework.Game*/ diff --git a/src/VisualSail/UI/SkipperMDI.cs b/src/VisualSail/UI/SkipperMDI.cs index ac32b69..7855d18 100644 --- a/src/VisualSail/UI/SkipperMDI.cs +++ b/src/VisualSail/UI/SkipperMDI.cs @@ -218,14 +218,10 @@ private void TryLoadFile() } catch (Exception ex) { -#if NOLICENSE - throw; -#else ConfigureMenu(false); _loadedFile = string.Empty; MessageBox.Show("A problem occured loading the file."+Environment.NewLine + ex.Message); ShowGettingStarted(); -#endif } finally { diff --git a/src/VisualSail/UI/XnaCameraMan.cs b/src/VisualSail/UI/XnaCameraMan.cs index e6bf96c..6b1bfa1 100644 --- a/src/VisualSail/UI/XnaCameraMan.cs +++ b/src/VisualSail/UI/XnaCameraMan.cs @@ -4,7 +4,6 @@ using System.Text; using AmphibianSoftware.VisualSail.Data; -using AmphibianSoftware.VisualSail.PostBuild; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; diff --git a/src/VisualSail/UI/XnaRenderer.cs b/src/VisualSail/UI/XnaRenderer.cs index 3090be8..4c7106b 100644 --- a/src/VisualSail/UI/XnaRenderer.cs +++ b/src/VisualSail/UI/XnaRenderer.cs @@ -15,7 +15,6 @@ using Microsoft.Xna.Framework.Storage; using AmphibianSoftware.VisualSail.Data; -using AmphibianSoftware.Video; using AmphibianSoftware.VisualSail.Library; using AmphibianSoftware.VisualSail.Data.Statistics; @@ -50,7 +49,6 @@ public class XnaRenderer:Renderer //xna stuff private Game _game; private BoundingBox _worldBounds; - private XnaAviWriter _xnaAviWriter; private PrimitiveLine _line; private VertexPositionColor[] _gridLines; private VertexPositionTexture[] _skybox; @@ -161,7 +159,7 @@ private void LoadContent() _mouseLeftTexture = _content.Load(ContentHelper.StaticContentPath + "mouse-left"); _mouseRightTexture = _content.Load(ContentHelper.StaticContentPath + "mouse-right"); - _lakeTextureEffect = new BasicEffect(_device, null); + _lakeTextureEffect = new BasicEffect(_device); if (!File.Exists(ContentHelper.DynamicContentPath + SatelliteImageryHelper.GetFileName(this.Race.Lake.North, this.Race.Lake.South, this.Race.Lake.East, this.Race.Lake.West))) { try @@ -195,7 +193,7 @@ private void LoadContent() _lakeTextureAvailible = false; } - _skyBoxEffect = new BasicEffect(_device, null); + _skyBoxEffect = new BasicEffect(_device); _skyBoxEffect.Texture = _skyTexture; _skyBoxEffect.TextureEnabled = true; _skyBoxEffect.FogEnabled = true; @@ -211,7 +209,7 @@ private void LoadContent() //effect = new BasicEffect(device, null); //effect.EnableDefaultLighting(); - _instruments = new BasicEffect(_device, null); + _instruments = new BasicEffect(_device); _instruments.VertexColorEnabled = true; //text = new BasicEffect(device, null); @@ -223,7 +221,7 @@ private void LoadContent() //_photos = Photo.FindInDateRange(this.Race.LocalCountdownStart, this.Race.LocalEnd); _bouyModel = _content.Load(ContentHelper.StaticContentPath + "bouy"); _boatModel = _content.Load(ContentHelper.StaticContentPath + "ship"); - _sailEffect = new BasicEffect(_device, null); + _sailEffect = new BasicEffect(_device); _sailEffect.EnableDefaultLighting(); //System.Drawing.Color c=System.Drawing.Color.FromArgb(_boatData.Color); //_color = new Vector3((float)c.R / 255.0f, (float)c.G / 255.0f, (float)c.B / 255.0f); @@ -231,7 +229,7 @@ private void LoadContent() _sailEffect.DirectionalLight0.SpecularColor = new Vector3(1, 1, 1); //sailEffect.AmbientLightColor = _color; _sailEffect.VertexColorEnabled = true; - _hudEffect = new BasicEffect(_device, null); + _hudEffect = new BasicEffect(_device); _hudEffect.VertexColorEnabled = true; } private void SetUpGridLines() @@ -461,29 +459,9 @@ public override void RenderAll() vp.Record = RecorderState.Disabled; } } - //make sure the recorder is ready to go - if (_xnaAviWriter == null || !_xnaAviWriter.Recording) - { - try - { - _xnaAviWriter = new XnaAviWriter(_device); - _xnaAviWriter.VideoInitialize(recordingViewport.RecordingPath, 25, recordingViewport.RecordingSize.Width, recordingViewport.RecordingSize.Height); - RenderVideoTitle(); - } - catch (Exception message) - { - MessageBox.Show("A problem occured while starting the recording." + Environment.NewLine + message.Message); - recordingViewport.Record = RecorderState.Ready; - } - } } else { - if (_xnaAviWriter != null && _xnaAviWriter.Recording) - { - _xnaAviWriter.Close(); - _xnaAviWriter = null; - } foreach (IViewPort vp in _viewports.Keys) { vp.RecordingPath = null; @@ -496,19 +474,6 @@ public override void RenderAll() Render(vp); if (vp.ScreenshotPath != null && vp.RecordingSize.Width > 0 && vp.RecordingSize.Height > 0) { - try - { - if (_xnaAviWriter == null) - { - _xnaAviWriter = new XnaAviWriter(_device); - } - _xnaAviWriter.ScreenShot(vp.ScreenshotPath, vp.RecordingSize.Width, vp.RecordingSize.Height); - _xnaAviWriter = null; - } - catch - { - MessageBox.Show("The image could not be captured to the specified file"); - } vp.ScreenshotPath = null; } } @@ -850,18 +815,6 @@ private void Render(IViewPort target) //this is hacky, but i can't find a better way to prevent or catch this issue } - if (target.Record == RecorderState.Recording && _xnaAviWriter != null && _xnaAviWriter.Recording) - { - try - { - _xnaAviWriter.AddFrame(); - } - catch - { - MessageBox.Show("The video codec or compression you selected is not compatible with VisualSail"); - target.Record = RecorderState.Ready; - } - } } } public void DrawHUD(ReplayBoat boat, GraphicsDevice device, XnaCameraMan cameraMan, DateTime time, float coordinateDivisor) @@ -1170,7 +1123,7 @@ private Texture2D LoadAndScaleTexture(string texturePath, GraphicsDevice device) TextureInformation ti = Texture2D.GetTextureInformation(texturePath); int bigTexture = ti.Width >= ti.Height ? ti.Width : ti.Height; int smallDevice = device.GraphicsDeviceCapabilities.MaxTextureWidth <= device.GraphicsDeviceCapabilities.MaxTextureHeight ? device.GraphicsDeviceCapabilities.MaxTextureWidth : device.GraphicsDeviceCapabilities.MaxTextureHeight; - + int desiredSize = bigTexture >= smallDevice ? smallDevice : bigTexture; @@ -1604,81 +1557,5 @@ private Color DrawingToXnaColor(System.Drawing.Color from) { return new Color(from.R, from.G, from.B); } - private void RenderVideoTitle() - { - System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(_xnaAviWriter.Buffer); - int width = _xnaAviWriter.Buffer.Width; - int height = _xnaAviWriter.Buffer.Height; - g.FillRectangle(System.Drawing.Brushes.Black, 0, 0, width, height); - - float titleFontSize = 14; - int padding = 5; - System.Drawing.Font italic = new System.Drawing.Font("Arial", titleFontSize, System.Drawing.FontStyle.Italic); - System.Drawing.Font bold = new System.Drawing.Font("Arial", titleFontSize, System.Drawing.FontStyle.Bold); - System.Drawing.Font regular = new System.Drawing.Font("Arial", titleFontSize, System.Drawing.FontStyle.Regular); - System.Drawing.SizeF visualSize = g.MeasureString("visual", italic); - System.Drawing.SizeF sailSize = g.MeasureString("Sail", bold); - System.Drawing.SizeF dotComSize = g.MeasureString(".com", regular); - int titleOffset = (width - (int)(visualSize.Width + sailSize.Width + dotComSize.Width)) / 2; - g.DrawString("visual", italic, System.Drawing.Brushes.White, titleOffset, height - (visualSize.Height + padding)); - g.DrawString("Sail", bold, System.Drawing.Brushes.White, titleOffset + visualSize.Width - padding, height - (visualSize.Height + padding)); - g.DrawString(".com", regular, System.Drawing.Brushes.White, titleOffset + visualSize.Width + sailSize.Width - padding - padding, height - (visualSize.Height + padding)); - - int heightOffset = (int)((double)height * 0.4); - - float raceNameFontSize = 30; - if (Replay.Race.Name != Race.DefaultName) - { - System.Drawing.Font raceNameFont = null; - System.Drawing.SizeF raceNameSize = new System.Drawing.SizeF(); - do - { - raceNameFont = new System.Drawing.Font("Arial", raceNameFontSize, System.Drawing.FontStyle.Regular); - raceNameSize = g.MeasureString(Replay.Race.Name, raceNameFont); - raceNameFontSize = raceNameFontSize - 2; - } - while ((raceNameSize.Width > width) && raceNameFontSize > 16f); - g.DrawString(Replay.Race.Name, raceNameFont, System.Drawing.Brushes.White, (width - (int)raceNameSize.Width) / 2, heightOffset); - heightOffset = heightOffset + (int)raceNameSize.Height + padding; - } - - float lakeNameFontSize = raceNameFontSize / 2; - if (Replay.Race.Lake.Name != Lake.DefaultName) - { - System.Drawing.Font lakeNameFont = null; - System.Drawing.SizeF lakeNameSize = new System.Drawing.SizeF(); - do - { - lakeNameFont = new System.Drawing.Font("Arial", lakeNameFontSize, System.Drawing.FontStyle.Regular); - lakeNameSize = g.MeasureString(Replay.Race.Lake.Name, lakeNameFont); - lakeNameFontSize = lakeNameFontSize - 2; - } - while ((lakeNameSize.Width > width) && lakeNameFontSize > 16f); - g.DrawString(Replay.Race.Lake.Name, lakeNameFont, System.Drawing.Brushes.White, (width - (int)lakeNameSize.Width) / 2, heightOffset); - heightOffset = heightOffset + (int)lakeNameSize.Height + padding; - } - - float raceDateFontSize = lakeNameFontSize; - System.Drawing.Font raceDateFont = null; - System.Drawing.SizeF raceDateSize = new System.Drawing.SizeF(); - do - { - raceDateFont = new System.Drawing.Font("Arial", raceDateFontSize, System.Drawing.FontStyle.Regular); - raceDateSize = g.MeasureString(Replay.Race.LocalStart.ToShortDateString(), raceDateFont); - raceDateFontSize = raceDateFontSize - 2; - } - while ((raceDateSize.Width > width) && raceDateFontSize > 16f); - g.DrawString(Replay.Race.LocalStart.ToShortDateString(), raceDateFont, System.Drawing.Brushes.White, (width - (int)raceDateSize.Width) / 2, heightOffset); - heightOffset = heightOffset + (int)raceDateSize.Height + padding; - - g.Flush(); - _xnaAviWriter.CommitBufferChanges(); - //record for 2 seconds - for (int i = 0; i < _xnaAviWriter.FrameRate * 2; i++) - { - _xnaAviWriter.RepeatBuffer(); - } - - } } } diff --git a/src/VisualSail/VisualSail.csproj b/src/VisualSail/VisualSail.csproj index 0352727..6fd3fff 100644 --- a/src/VisualSail/VisualSail.csproj +++ b/src/VisualSail/VisualSail.csproj @@ -1,5 +1,5 @@  - + Debug Any CPU @@ -10,15 +10,12 @@ Properties AmphibianSoftware.VisualSail VisualSail - v3.0 - Windows - 98186da1-9876-4fe8-ab8c-1cdd6e6b6dc8 3.5 - v3.5 + v4.5 false AmphibianSoftware.VisualSail.Executable.Program Any CPU @@ -82,10 +79,6 @@ x86 false - - C:\Program Files\Eziriz\.NET Reactor\dotNET_Reactor.exe - C:\Users\Brook\Documents\Visual Studio 2008\Projects\VisualSail\VisualSail\debug.nrproj - false true @@ -95,58 +88,32 @@ false - - False - ..\..\..\..\..\..\..\Program Files\Eziriz\.NET Reactor\SDK\Bin\License.dll - - - False - True - - - False - True - - - False + + ..\packages\MonoGame.Framework.WindowsDX.3.4.0.459\lib\net40\MonoGame.Framework.dll - - 3.0 - - - False - - - - 3.5 + + + False + C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.dll + - - 3.0 - - - 3.0 - + False - - 3.5 - False - - - 3.5 - False + + + ..\packages\DockPanelSuite.2.9.0.0\lib\net40\WeifenLuo.WinFormsUI.Docking.dll 3.0 - - False - ..\lib\ZedGraph.dll + + ..\packages\ZedGraph.5.1.7\lib\net35-Client\ZedGraph.dll @@ -216,8 +183,6 @@ - - Form @@ -329,10 +294,6 @@ - - - LicenseForm.cs - Form @@ -408,6 +369,7 @@ True + SettingsSingleFileGenerator Settings.Designer.cs @@ -459,7 +421,6 @@ Code - @@ -497,6 +458,8 @@ + + @@ -544,9 +507,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest @@ -596,10 +556,6 @@ NmeaOptions.cs Designer - - LicenseForm.cs - Designer - NewBookMarkDialog.cs Designer @@ -612,7 +568,6 @@ VideoUploadDialog.cs Designer - @@ -621,53 +576,6 @@ False - - - {169F3316-FF07-4B73-82C6-DA85D69CE38B} - AmphibianSoftware.Video - - - {c75532c4-765b-418e-b09b-46d36b2abdb1} - DockPanel - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 2.0 %28x86%29 - false - - - False - .NET Framework 3.0 %28x86%29 - false - - - False - .NET Framework 3.5 - true - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - False - Microsoft XNA Framework Redistributable 3.0 - true - - False @@ -800,9 +708,24 @@ File - + + + False + Microsoft .NET Framework 4.5 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + - - - diff --git a/src/VisualSail/Content/mouse-left.png b/src/VisualSail/Content/mouse-left.png deleted file mode 100644 index 7b17d31d88f19677d1b3e044b39f877c4c7e7613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1269 zcmVw403CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00db{L_t(|+U=K3Y*j@R z$A2?(@1;-M!lOk^kgE6$U9=)iFvhQ>i7_BCA`uf8D#T!7bmK~QuoJdQBqhdfscuNv zv16s}LlgQ+{77KI#sZ?gw$HwI@5~$*?}L8v;L=yx7$%wAySR7em;X8QKWCJPu$G5r zjgR|)_W@fu1XX!*8)wP6=e1q(-Kh}~5vf!vGCe&lfBktwKKb|~d1wDVDV0i%wY>Lu@0;$Y)0hN6 zxm>21>X}T2&dyE%q9|hBx^-kXZltfTk2sEr<9KT$d^Po3bVwA|TAXuaGMT1d#&O(u zhGB?zjwDF{aL#?0CarXuR0x6qrBqYP@ZJ+eQA0rhZ48-A1`)v+bF!{lJ&Y|m#q~vv zF*xUL`Q0xQ1!gN{PM?8=6UB_C2s|rNc`8u%FyRb%ukeUa2@l_WThZl8zX3)z6tSxG-rC2N;Ef$NP zmCI$;uU}6#n^kRXZH)tSH|i}5u-SoIF4VFBz4wa%ma5yWDvvD*@k+L6|G$=h;k9v| fsV)e0EAsn4K7Tfa67@9z00000NkvXXu0mjf3`b4( diff --git a/src/VisualSail/Content/mouse-right.png b/src/VisualSail/Content/mouse-right.png deleted file mode 100644 index 4520514b2b8c3f77dd44ae01ddecb171926a55c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1259 zcmVWFU8GbZ8({Xk{QrNlj4iWF>9@00d7-L_t(|+U=LmZ&Xzj z$3N%Z_a-yiT1ty9uvKwPyRafnG^YMYNQ?oA5eb;MP$35Y1a${HVXH&~F*Y%p*mTJX zcC55580nPwBY_1QD^1ZU9hiCV-FsZj586`NK02k1;U+hEZ}IN^ymQX|-tQ4rWg`#6 z1|JUq9{@IUD7vu$1=%=&^W{rPlH~rSc<$y4b+j})TaA_opnwOIATYJ(bR$Unf%geX z9CPm6IlX%IDnSqsh9Q+og_f2UDwWC|-^6juj{bi7`ufD$bTN@sH;F3c@=cB&J*sEV zo+Y2pBO-_hs!AA!{4zF5{|hfNHTf4Ek3NQ~a_iPDu1!sG`0!y49r{R8rz_1oKQ^K- z54@y5eE*%^yg92kZWQ(U_3Ju4J*^YJUeG;n?$T$+S#-X4V4s#srN&y`d%X8c?q|}7 z1VFi5MpYRY7$BF+k;~<1Yinck=FN@wyNxJ{h@xm)BYm~#H|dZFNs{24BbUon|ImAk zF&JZN^||~ZaL#?4rmTWAr4R%GB2`dh3^E5yRmtUYOG2tD*4k6`sMSH2isFg^>x)=x zan5n(%o)16x`?6(BLN=87{hN91?=563j(aQR~D|>v7nvT9&18u7+{Pcv;l>Qi)8z=i$<=#_NpV8#1-N==8=b6ICA6&y}iA7 z?};PVNOdLv2||+CgQ;#B7|XYV-!S&`PmL0o3)GYp0|a46k|bm@8J>8&i_R@uKo!(L zW0M3Bz@pS5qp)eyrn+8k6Ok)xa!5oBULa9VIgU^jL=5vifB{TRl%yf>IKQHrd*BDx z1#mq(KeJM}d#Rr_2V6|A?)M0mOX+$=?he2@lgOP=>zQVAJ5qDBc9C184kum_UkBE@ z3v1jETGK$UzN&)i@R}fjMOEFw=h=*QtkZMrxC1#2u;ZW~x52KAotixZ5DjPSU~muc3xea=(Wkeb>H51^uzZ*&>O{>`D?A9CrJ%hpM!&gy1nl?J^uMI z{r8_~)jF6ubxEYEPAA3-`tJS%`r0e6>Yu;=q3Sg?U~sR;|KP!c;uEJ|eSL!S7e?8+ zb0>zRm7kdycoaw|_>>7uKtOF6dIws{^bpnj{IuV)0n9Sp2kHF4NZ5Mtgg^ zWV6}Efw`CHtqO3d1GieJRRQ{1FTC8n-K^`eDJfn{i}wGs{0rO0d7`=?)y=5y{{Tnm VGv*u1;sXEx002ovPDHLkV1i*AP!a$D diff --git a/src/VisualSail/Content/mouse.png b/src/VisualSail/Content/mouse.png deleted file mode 100644 index c006a9183c26523cae1fcfb1a7011ee7617a94d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1330 zcmV-21PG+o03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00fpvL_t(|+U=K3Y*bYg z$A9hj!YYeF;gD+`kad-F%^s7H4KEYAFQ>-~hq%boIHu;nn+s za|uZtbMD+ZxpwUup6B8FKIL+m#>Pg<ZgTkW zVL5yDEZJ-pr4&jjL+x4t${M4p%+% zd~QTu=zm_m|L$A4d2>dlrwcMUIVlqp6EgP81=;=DPWj>Fkcfzs%Vn9Ko|ehKC*+fl zKazL$?UiD&n6BlV!#TI;e!3o$04SA8hzR}t{e)pi7>2a8w9wkxn*MKYZU!I-0yb>e zK&G{oEnBt_MG;XHZBD~iReyyJi6Ti7thIz;SouQd&|0IluI6Xu5JXXw{`$U;vz9oH z0kGD7SWjAc^`wI5c_>u@)mo$GfQblU7~-5G2!d2W0BubAQO1}PHPvdMi>bI|z}h0l z7_7CNIdg{2&Q78zLMso4pta`Lu{^Wo5~og`A_#(tipC?C%i(z*#+a)M*IY3Ll~OeL z0mWjG;o)K0+S-_!nj-KUP)gzZKHc5joESKc(LToa&|2dgkNnt0w)btjqjI&im#ttD zmx<$;=7$?Obm$O0Jv}(*h$EYZI`BYwK1u9AS2p#u;hVv)$^G_+y>4Z`uSRAR5w55slbxX>*2le2Z0Ip@{r?ufII*gL9bKI?H8qjX=Rq{um`drT6xLdtICS*}(OQFO z;wa+El`C|0brFW)>Kb)NM~CX^>0#*PaGIMoPC&qDgHg8%SgkbT9G5PRF)}j3tGjk$ zjH$nctY^B!k{cP7ZCjs}V_$qJ;-oUgiij2GlFGAnV&g=vkN+im_q-|Zzx$p{7pCT~ zwS=CeZot|c92}Ibz0b(e&yUEz|4fL~z{HA8A`!7Nb}27!zqL3h40$l9CEf;E8fUepL-|gOBsq1k?LcE$K o+W)WQU)VOzGt~v5UWxqv52agF$z@5__5c6?07*qoM6N<$f{TKD1^@s6 diff --git a/src/VisualSail/Content/sand.jpg b/src/VisualSail/Content/sand.jpg deleted file mode 100644 index e93e47af71def26cd4729e2acacdec885e6260e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156158 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 diff --git a/src/VisualSail/Content/tahoma.bmp b/src/VisualSail/Content/tahoma.bmp deleted file mode 100644 index f029ce262bc2408ca8df225e5083da8659267984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521910 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 BCHDXT diff --git a/src/VisualSail/Images/heightmap2.bmp b/src/VisualSail/Images/heightmap2.bmp deleted file mode 100644 index 388202af56ad89e9efe34f25650afcd8bd3f6bd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3145782 zcmeF)2fHLoR;Xt#-V5*DV6OxNgBv`9_cL5+BpAH+W`HvwKzQ#22!VdD-rlP_NHS|z zS8vz5Pk-?|Cr?&ZW@N+{E0&9>-QV`kx4+-p-tS3yyZ`?Clamje|Nh(ieae$h%G=)W z<3Hm4uKt_P9U~Bd2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NX zfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn z1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P z5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQH zL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7) z5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDH zKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t( z0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD z2t*(P5r{wpA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wp zA`pQHL?8kYh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kY zh(H7)5P=9pAOaDHKm;NXfe1t(0uhKn1R@ZD2t*(P5r{wpA`pQHL?8kYh(H7)5P=9p zAOaDHKm;NXfe1t(0uhKn1S0V03H-N1dGt-Lff0y61R@ZD2t*(P5s1L^3B3RNzyAk* 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%0DxPPJE5OfJeDGw!Bhq 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%0DfFzyij2Ees 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%0Af0m$e9O-1BI)*_E$4rF+IS6AD z0^E-{$$&^D79>0c;^dgQ%Dh(`B{*hEKVE9W{1JF|!X#p?M_t7geQQmTTPl?)VE*%$ z?Jc6335TKhn|ep#o58!sjIdu01=zjoLOI?UQ<+x=VZf%3qBCR0fI3EuKh*Q> zH$Z0HO3LgJ7}Wj(G-EA5!0J$f6qr@hCoK)lKB{!RLcQ+f4)zheR%BV>o2EnSyDF#U zcAX0V9HveT4!g-uLV2-W0AvIBFaxWvu0=2lXQ2&eHP>cYWpiGWV-m_`o7(@3)8=KN zO$x|kN8|*Luv9{)-YBloaHR=uPV?I|U#Bk({0bTXGTaUJiaSUJfMVO5%eW%As~17( z+?JC*QFzr1DZliY2jOht=PCmML<(V%fA!0+8wCI_e2_oJ|G|Fs4d_wybPDd&&EN() z1h|An9&I>KMv_|o?z8AAW+6hzAvXuwHwtr?#vq1>3I=RRzf5%!=?mWPS1We z5OrMHPRBt9*OQWa`2i!v9yKLUO%E!TYZ=+RD4b5@O;pDcSP>dFtRV7_j{#T;^wJJT zMs>~#&_xJF0CM)uGiSFJvLSk4E;bibl_lVllB}xEI6WeRV?}a3t1J&9#$6b7{bmzX zEHYW3O$@^Ysz$FlW$+*uP#~gm5P<*zW_$ENS4;>eXAjWK8z2fe2tRx?W%{u>0`V}< zAe~x{D>duIX58jx8dE2+eS_=jP(rb-S4OxQ>UO#+laZSmPX{<)&8J-0#bZCNumKhe zlPwS!F)jdWP-Tlv2=ZCOP?-||F8 zB2U~F>rXw+64)~#O^uxk*7g(OWWR0@!717P8ik9DmsaF;{iT7Qr2&=+sF|y}qS$?; z6O5dN<2i~;=qSWMO(%GLUhG)9R|iE3;Q&e)adq3!gMW!u7$X`6Hg6f1$0;({T}1`G z9$!VV(m|*tC}7TtNMf#uSH@hai;G%ro*sw??d3{}RAl!0`g7yv%!`KAf&j?+OTb

ozyDI+5B0 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%0D)qrNeo&1pG?rz+PjxJs0DI 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 z zj?qOov9d^N&D>vf10(T&p&^!7K=&!W3j}VWb9U`;)60a9@_$xj4MYlK|45t@oL zzF`*o5VeN`rrD9-P3&9$X^3N4BJi(HX^jLXy(U>U1P z`wFzhDTr-+Nb3=SexqMsFB-o7QD>6Wy4H`iumsx_2xy!o&^{e)7O*bnxoZO&Hs+7k zqCfz@zi5!OQmaBPN`{D%52+?+W;T|_w20lWw2Vl5MA%{^nwVR}Nha-aK5f%|p;?d; zQsrpgF%xsS1emU*`$$CZVOOtX5_p{n&w=igqp1E znjIpCf|pc9>Pq`L&W4%z>b_se!NOz{mda~9j-V16!l1k?+R_>gnthth+9s=D8zx#4 zN#udw$-b%BQrRTFg!Zd}Gijf$iIfdHNs)qaI=Me%U~l~KIdz|WYJ`IbIlJKw{9<&G z_V=GUun?xg4Cd7=dLa{LK*drgbw%ochwRGk_?<^;IiNS4JPQMz6mYty4PJI8OY)wT zcfClS{44&0S+=3MpcjOPkw6CNr;08wdwNE1l|Uy5iR&7i4UA2?W(FLJZGZdqe?Uic zNHt?qRCk2RKIPi5G$>#Ulr>N=9vUXlCesxQI18tscMT>`tMt~dSINI;0kT6qb}sRx z3kQ*Rb-{_GY*33)IcKkC&ffSPnfr82^6U*9DgJObJ}ac|9l>0*kA8z7TNWHC(X-)I zqcIyhQcQpwjPvR^`;pJz2@{;XVh-$t_u=jA)-Kr6O4s+-V{Bcl+qVmC#8QXN2yWW1 z>97kmI^q6I@!unk2ISWSd+=7(c?rCFz9jIyO8}Cf89WF|2<~DT{D~RniTlrqN03&i z;`mSq#{gC^!GM~etkxm=SJC2kLi0~Q{e(6|W%qzQDL@bnW20&q6ux0qJlFd_plo>2 zRpFZ&SMlP62(HWmB|6UyQXonE-+P|rBNNtLAWkR&4g+C4Yw=I;f2#tv776XW!y^Sy z&@-=i5o=o6sXY>fKqF4ssY;`N%bm;#*;^c<7;Y&-S=eTs`Xm2hoa!YmhdLr`$iD@f znhN&9p`DJ5akKcpi3%A-A0nEz(fiz={$02q|F=i><4-@3Ogh5SEyIksOKSea35iL1|Fs+cK z)NE4>rm{aXUgd-5c#%f#CfqY%Rcj_;qCG#E6oBQRG02ROJt#~g|5VQ-EZgj}k``mX zLZl6v0;_T2z*>|UDUsxf9XoX{;AN+=No&xUA`|5}tkHRjap=Vn211LQF@SX=AAZd? zK#e0m$8G4bk}UmF^l<)*{(txJW)}bV_J2=fFhFUv!%2yPaIj*=>z zW{X$Jp|aH&d`0AVG&7JU=zJAVo}2xnp0XsVC5%Pq7@IIeKB5d|fdcvpHdi!Qjes7x zCrkd<?#8ZwjHI4Y^p8y5RlU`MM0q_Ya%gU;)H)!;8ABLj zDt*fVK>;B3$W?LiDfI!-5PVS+gYh6!p*TZnF4zx{w<(Z^gh18?SEsFd zpPMe${;u6&6`&O}M4<&@{NJA_7(6{!7VFH%B5)=(ms@*NYErV%51&iLCYm95Qw*&%bX zSrm}~DU^M()muCPk?8dj7RB~rS;iz@yvua>o*EtQN^UlYFpEtDwUG%q2(_whI6SVh zQj~oPP!3|(98LCN*;tMJ3V-E&7O=+0u65(l5P*1DzPZp3#&2G#gb(r^yWqd;Y1CMw zxsW1BD*}VZR+sbaW+R{Rm33Jmf0vip0!GKRZGW80Mci-ffd^3>7vn+et67A=032E3 z65PaD2|T1_1FlRmHQ}X3!8s9-bcRT$ z%@{cojsWAOH_Klo)Kv^Mzcf)z>bXi(AtKd-Lp{WsGEbAnwQ(6I%S z05WqB@UdBd(a4IA+nUp>Y7`11PU?AUm5u$3?huYu>7#bU-JWyR_lxT_!b<|*lmrA3 z;NYDNN7&xq7Gi)&6o||08{pD(&>)O-+as8HZwp{AD;OFa_Y)bhEa^Fz6ExKi?(kBFoj;00ZBbtBswl@5EK?|G4eGGmimf8K5OKoMLb6JeeI_{f9?ME z-})PhW)TL_O;M59sR<@4j)^{)q)IZ4thqp1BO;CNYO8qNr(C67`-=H1-H3PCFBA1T zjrVmie}+VuWJR9DMLt@BazT2U`{ap=BYU_mi*<0!;N>Y6#y&eOLiTXiB58XpK(m=z zUkQY8I&@G0HvUxxPN5hkN-W(_mW=!x*0X{m=8uyzP8B?Fk2}h@49;>8m18VD3R&q-XpCR}Ydz&7lLgqIec?icAjObnQx;!l{G3_|k?RS&JlCc! zmiUEJ5i;?XjrIn$5$4|nu;x{#pLET5td^xQJmz6{j__#w%@i)iV8Is;dvh^&@-pn5 zb`bb^HEX3|@;j#(=rMgcBd}`^8f5YadPg;#u*Clv(t+*{HcsimuQU+EaV3h#v--3E zHc2%AMDZViIbend6U|S=HT++}cKE;PNFa~K|4H&2W_LX=10gk!~nGhGh=G{s+ zG@Eg*8t)E$`4!-U3!ni!**yKCkqll_zP4+%CN3lTTy<(gae2YW8JYL=PAY;IuuowN zJvJjhB4@LQ31JK2+lbnN98eVnA|0f7(rN`3r%v!zbTgpn=5e~qW?WYxhZW%W=@2$H zb9_N5pot4~5FiZ)ZWdrw?X=Af+B|n*5ThX;m^`imHVHw=OQ4s&u>^6!_BV6&l%Ke> z6FoU2k2~JZ>(`eA{v;9rO`VCkE2oL3sbxw+u$1zOA@&=y7p zAhc1ONiD--EXj-lndoV?P!SrSK!QGoVAvtyZ$#lj4A2G@PLu$`16YGtf5Sdu5&@$y z;S>Ny!FKT-XOLo4r?NYNX=0X(R^nzCo1e&v#OByqMHi+C7Kl9w9IudA$O=RYL&g0f zK2X(MYej#mr|uN(!dIfx{92pNzPhiE7(~ce6Jte_1v(c%>9I-y zPFQ4q)Taq*8fp9V)l$ig*&sXyiTN{5s&T|GePcXW84Zf*#7HtDG@_euFPe+^3WG8) z8?kW;?@~LmBsmf7s9Z7TAz);}TBc3R!klsGD2Lf^Q3VUILa&Zv3!Wu0@+$5N>C$Zq#ORQ%bjW3_h1 z4+@wH<;tx%xCEK%3C9Y@iCnwGV7R#sKmYvmnw`D5!T-J;&9G-ojHaA15tOZQI)fnp zp_2<=*_GFgq|)mDW?xGm>)H;k2^lsrKQM(dVJRGnsk9QGuC0enl0ST=cOJoO?wZQM zq@LwmbR<=$FFw_z|qq+lhQm=Q>lHjf)T$pPKu zfO1Kt3F{Ge41PJqQ5wn-{1cXWYwBC~$$`JKD?!<$ z{>DLUvIcR1IkDt`blvqs*I^XL1kuE(7DNI-h8DyZJ0%A~*a$Y+y3c(GRv2PGobJ{x zUiV)T_)|%MFNpQZk7y*f67rxB^oaHOthuvq7&Y$(r0@`*;gZII02{Ok8N@6YDAIWW zQXqp2=m!#|7~bnZAR6%QF&uh}>Stf=p(4sLPOl8^N>o*=cgery*@eK-JE*`Jw-G6f zGYtW7C;o$SP_9PHR8Ms7zlD}dt7q5lYwSc%LN+WYCUAU44kb)02T>McNnfh&RHk-E z8WbmUu^!cC6@EONg=j9^!B4~ywA?G}ie^SuxK_23I*}VSkz4F8=@DSfSIw`KE8?T3 z$iJv9G^qR=jnIrNBeMWmfFzOW_VTL5+pO)_AhGOY7V=;Ih!diJX6!uygh89aI|gF* zk`8&RF}aD^iQPmtB^O4sF@N4icP#dn{cP?}3ZP=SNdaa7Yc6nE*V~^YFeEZTU{p$F z(-<-q)Ior4(l6g99NIx;qwY*sg!L{EJ$gxA#>x~8RkKIlN&@IKE^R>4bHYxZ_I1Es zHaq%|uh};4!QZV`+y@sFv~ezm!Dgt29IRO%1QH-nYgB>Ksh$BaW-h?OVFiY1k1IOa zI8h86e2)KHGi+h`a7JZ-g_tgro6j6gUcd!#Dle)zCpzQo2U0a}{9heFDr#{1HMO~# z&UO4>2X3hIdHXz=_vxR^4%m4LS+P$ko}7!yB-i--q-JaEa2;~eINinksT=Szb>UcsJ zwXcFN>l(v$LEtA_QW9cDMC5N@8UUBZQm9ZBVy|O*(4=JkD*oS6+3WtFSpv8^FyT#L z2l$}nTos;t;r*8)uuxbu6c9DnI@Db2&nx*CRD`9f4g0Eyh+`r&7)!^=o!p6K9>IjY zfeDt;doV6E!(L#ktu-7RL&z4*qb@==A4fL8DQ?gGLvjTHG+UUk0I2Jj7!X;Kg<(o? z(xyNJ&SQioHLSr+s=2TL%P@;Dfx&ud$7*rrcjD)y0KiK6BY9a<0I^Ag5~pS*79)7o zE=&9Er3HfWHiFn^@9-asCerhK0N=o_RlgmhR4@sXiA8g*2_MvIg$Rk}g3^gj+`Pn= z-+f>XYtu(hwgHWyu3{I9k{((ub=x?7sl$lil!9H5FvF93qCiME@}@}>)Q|-){pEVb zM?UQu4U;NnCp1M|BQdf{gYNhV>ytAQEXs<6dm&sxXD`?eifdk4U^C`&!G7GdyfJ<| zOdy*eMeMkuB=kT3`48ejYYa7lz4^2rY-)ma_q|_c6WQK}AP}~!y<&pF_ zDFBPLWiDeGEBT-6mZt+Ll}$T9nS%h^#P?7jijaBnQx2=~Ajp6zQGukGiLT?jHlUr7 zGvZ_r0K&A8G%n-uuZ*j57Tg%4vtYVbTi`5oG^WBf;{PN-J2WT<_tzQnAa8R;8zKyu zxNGWTJbD_$P6H)`&;`}oxLKIDT|ZI(FTG+9Jc6Bb95ZSg0>h{Hk>U(=mi34L&=ir9@^=5u=(E z)E%ZyYY-l2C>p2$@LxXebP{q(z;RUh6em(WhH@E<0X=AhhDy=yn9IQdV05xcWtis~ z)TLs@8GIfY<{bhhY$RcF4qW5mnM#8YN$wM7#Pw%QDS^U40#J8jBSbSEMxo(QAHho8kV zu3==m-usR_Z2MLGUlsJaeo0^?089XsLMXlC0R*|=t50+Sdd>LJ6B5Iy!cVj{&ud;mw1BB{{gNY0vR za{>pL)yT&k`juW$jfq?^3C2*A@#{2@yKnvKzW$kqS;Qmx7fl%x88)@Zr8IJqPx%P5H?M_RBnz=qTOf)}G%IfX02;xji1)BK&rS*;b8#e5joNxviaz|`#Vn6okrG?-?hs0&Zto<{_Nx|JUe0TU z{D_lM2M#Rl+7IpyjWA$?V6ZU6fer_MBB^=Kt=6YZ%H_E~%3;mw_BIGoY-Pw#p+sv)$nk%lnmYg%J?{N3#Q|n~;6d261*oAJlhe^1 znHXo#+kp76f&=F*ou4IroeLX>9*O{pf&9^7D>>u@SKILizu1BVkU_Ev=m)7pX9_hMA?y*G`w$CMhrmQZ5uW-w5_rw>lE8N%f%re4 zQi*akMlLK-hVM22;-a38c1>6}nA^=m71_FBtgbYwo1w(1w`_JH4uoi#O zyw2+f)dz%Kg!7PDAXd}EMg(Q?-D^AwJNS=PVU-X@%<@7Ynypr*Y6MPIA%KtS3aEjN z*p9@(*>OQ+(B2fT;lE|5+=348uD~vYSunb~o&5$6?vw%;&Dtsl5jB>A(tAe*moT-x zYnGw49vAMkYg@K3>ld1pK{^B7pSB#VL0IYRn7X|t0aqz;4M_zNP)yhKBEINDw$n|l z(L8di)uB%^tTQ~%oB;K-#?%M3mIJZ@c^M`tzGG!db`m`_mAXkF1GxHmk=7R}MgAvA zq-6ujBg{hktdx<+0>mKpAf^b)_E;oh#>F6OE}9GNEhgFR9Q z_j&WHOXFqk5ERow4tbvpagze1cQ(m*?5=|7dRYpfkuiG7Y->D1dn z3|pQe35Cg!nJe+!8ol@mqWx+wUKrqI6bD7^Nbanb0$K?{s3L^D?+^&XHi+miA@D&65ur+;KuHq_d_|l96i7jzBnVOf#MMvJ$5#&`rRtph z%YodJ`(G7>=)(=UFn?73QaV%jFpEg4@Gf2p)-gH=yl?#k{G-Imu*iwh4W_4t17OiP zHQvAf{qGPG;3$$Szd#R>&MvH3ctvSc_`Ml|1{m-XL*712XJo;}3l+#7@bP{~C6rs+ zxw^+&H*K6`1O;H|y%(5oJywFKh%!S|X8Y@ANhbcU3at+2Xdc~C2oj9Mi}UG;BwSq)0Cu$Q)3fEH6UYgP(oGyZ}Y8#KO&%o`hw_WShJsw{&UY1jsd_scZdzy^g`QTDcNgk&kTGI7p@xfKl;HHpV=t#-{cI z8if39mW0t8k=;uE*b19vV+dF)yQM5d5k&EpG}E7C@6BswIzVeU`&ObjHxgZVSP2eNkg*BV0yo&yT*#X^h^&o&>CZ4g zlkHTrMClQGdVzayFns~))qRK}?aQ6}W9`q_;A_m61ioJh@Fx5p9pz{%|Bun3L%;;# z7f*X}P2%7v_H2^$%NdpZ=$cxt(48H#%5QyfU z5*Glqy0LM90LPb)I57-KEX-Fo?FdkaCL+744!URrK_v3#!juLSKI9`d4q*rfk{@s9 zV5gg(#04pUgHiA$tP>iVQH`;<7E!T`$gK-^EYh#&3a+BCX<;fS3MmT9P!Ta8Od|u^ z&2;;(YBFXQ4S_A0&?Xg^%?*2ZK~Tc3*hJS94NEn#rVDp;sFLsTF5JXpol5hKKSTDFou)FRv`RMN{&&K@O0AZrR^ecliqjbX> ztjZ$oi0G!taWpsELiW5_KU*>aBB2zlNI12}Y{sf)VeU|qDx%rRO+c5RIp_Ke=09qs zapTJwUNQcQJa{&U?=7EgfWPaSMPF%4Z|nQUIEQ<_PP1lv&atP78O zmQBhXxD`uAu1?lPXYn6?fgYfasu0wQ(({)rimBAbo3a_~j=nkt(7&T1>ZWuS3nf&K zc^u>P;G3p@-(;yea3VD3JV^$9D4Y_m92_;}fJ|<~UM#>J-sB9<0Rd*nXL;^NNsOlG z3x~x2QGJ%5+2`HnWx(hqi13Pq0C9%#KE1a1Aps(3rV~MMKc*-sSQx}$oPa{!U3B1O zj5dXGx?gqs_Fq5IsW?I}o|TpgF4&{Z!bvhjKAAV$R(v+TLIm;;f{e^08rk5QFhswG z;sSKUs60p%C+TzrYFP{(?gbU{T!AJ2?+&LETY%pp7rk=_+ovWOlgw0e;VUj7Wz(k^XD`N) zP3YfW%>#47w0ABuEm1&qiIpURxIF%i$l;8vUVUB?_&O5ck4U(1ueh6Be;ZV%!nnvv!ewo;Hrzw0mJ&rAk@W5&!64uTu$Z3N z35V_|lyK6i2$Jf3)qEW?KP4vj^~bW12aSce7I)nAEEW+Uqf*g+#d9y2;8$w$){j$B z6J-h3?V2{zLfroMJnQXS_kFIKqI!=T1UGPGL+_}9jLM6fuU;v3F(S0iU^=Ae)9 z&BEin(V>Qh6_7JKu}*6{NCAe%TRD<%<<#VS1Syp`BmXvz|M=A)EBWt1_bHKn9X+Tt z3gsuM(ZOEc`4dusq!GR|GAm~rG^MRJ!_urg#L%IG05|}AxFJ{o4(wI~AYjCOz+#Y% zO&U{vA(@4W5G_9SbWkiz#;sS6kJ`c;BJb?2JFQyc&LbGoYiu|I>;t>6VQSD zNwYk&sn6(RJItV@fNUB0rnyO&;@TL$YZ7p*fBaYTq)k4cNswg#cLnL_HfZXJZdNka?%T2;g@3A630pQI zFu{4RuzK|Z_j9z0{{Xsy%B!{)1Cf2mYt)FSOwpK%X>ip$wQBS$PGJR_;G(&3$C?p- z4>Ak~^wKv>M$FAH^bx*$$;Ud;QLjnh&k`<55mgZ<61F3IB=(hARajo{bUieirig_= zh)cwmH(`3-QNjFG>M(!&4Jj2CXSHLcHdsS%T-Zh1>{B<*?uyYKNB%KMTW}cUv`Cgg z1(qG3Y~?M?M(oJx0}9QUF&T!ViuF2FlLAByEAjgRI3JVMYRE>#G`3`a$+ zVJtCH9Dxu%xZrMpj*Sui2Jll~kQnAeMMy4zWwcff(~x{ZW|n4=V%UQ6vKK-9)jySvlpa%=rjMIRuf+J{>4lqj~QY7!06PIy-=UoZgUCFq2T6*&b+HlDMQe(O%bDI@R zMO7TtQo+UD!I^yCnyT%u)W|iQ5vqEZM$HPnQMJIGB1=AjTipaK zAwvjuq6c}7(bBKN5Zr^Vd;SlHHLyGZ8mrepyk$v=U>97sSBkfn|5?*m9JWBbLsL9-FabvnDpi__?k@is2Sm^#U#^p2Z z5DPhYoVbpee>A3D*p3Bn+GUqtwplluo&DM@+1iMl5gS1*Vk4|2HDxMsOP_99kDjt% zC(eS-nWOv`0wf zh4UMUutK~P*r}H7^K?dH@mWrvlLgpj4n;D2D!AZQb`2<4EYoGcsss>#-fh++2B~F= z9^|$R#+w-4XFfx;=!knt7QA?ay;!Hmvoyvw%^e20Rxj_?QXVxVE5W_dPG==1G97>6 z+BK`QvBeGT5GMP?Rr3$jQiuh2J`^UMRh z8Cphnz{BGQS&`MS15JcB+@%pG#A_W}a>XT+*h0fn~C!lD(WrU$zb~AvME_{~t z`n;s5ms0?=$zKvBtRhJP5*j{EUc`KvPJ|@<4gzjcOD`rU7R+}90E$qYnvMpws;F`_ zJE%ZVo#Ccw9`V|$^vx=K3docQ|C=U{L;fl(H5aXsGioUd*))PvjKnFK!&C$N!;veAZ-3CRaUMMtGlatudJfhy< z`Bm)ZzH%`F$)Ok| z`OsjMHE>97ifcBkjsP!NU8}Ve$@uCK6&9D_#n9}l5)e9IJa63ycTl%ZOXwwITfsjI zw5*nhGg%xt)H@EO?+~U1!DFwe3D@C&n;MAm$qUeiLI}$1h4d>;yki%S*vPZO9sCT5 zVIS=0AP}s&NoW-SIhw*bL*-%xhhiW(8wtEm_f0S;g}y{`{Twk6=;eB15rfoIQhl=r z!@m5&eMp{RQ0Nr4R$h1UHNQrKbVK_>A|f?^R1jx?G-g#C;;Ooa=tM|yGO3P!T_j{b zIbm^n+X>5=^~qBXB15lzVnccqg2EEhidb-=c#)@MG#xFv=qOoY_1>u-k(?#% z+6$cPv%6(U=l|xvCvtQ8uRTQ`3QqBexa*3pkLcg4b&v z0OxU!k;idHu@2;Ro`^`M!sLQ&0}lJjjLBB--5=?5(g(>FFxJ}_%&XZ~8h8QMU`Qf^ zFa@{2g9bqoSY;bn0Ezt#Cf;Qbh+6przB+JJFLSYwKY7wfVUUh^y|HSou$;2;IPC?| zhQ9-Q0+Hhkcu(og9Rz9&+SjI99L_St3LAOQ3bVc~vIqMb6fMZ`cV0t5FucdHua0=t zo~anW+C(I#2!-thoK!rr?ShuYA7baN{@9uESl{EXZeaq}q%3{6>`%-{$O*r3Q0V)?*5DXAuNCr-ZtDzks$cc$oo)jZ)3rg6Wa^Tf4Zl-6w z10WCL$odFw_s~Tt&mD9kJ}yu@VsQ}*WF=em(gN@a32RuXzXX4ceSH!~{Pn?Tc|%xa z0FC|;60dA&HaaksJ1CJpi>okXfZxi%q$V4gOQSv|ZgxT!GOuSl<~B_>#}Twi9caT^ z^sib#e7syT?jroy53nT!Gw}$x;!#p&1}ckQ@<$K7NCBcfN>I*9^#DmgVr9nAi(;0+ zG?0oxKbcku;Mpv<1nM)cu^e*NlVn{3{$l}2jqC?^cvR-7cR&%F5++#1_{scDp7_4W z^84Cy#3nd|7s9EEp*5a0f4_iQl(Q}pChGIBe`b1+X1N}vYpb$kh^tETeJp(ZDYlIO z22c1HXMPN9xEqVYHG9kUQsR0|EVL<{pN zflkSqmzj^Sl{KA9ymHb)`fzdXG0+>eW^6@Wtl4aDUv?M`$v+!5g&^(v`E zyyHl|lEffIbxl_;KrGHLR54!25tP TDQOleJ!}BVo=(BSnMaaB}Y2XNseU+|9|X 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

  • V0KV>-dt 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