Make(cnet) ver(4.04 build 185) Add(EntryPoint,2953706,21,105) { Width=666 Height=402 IsMdiContainer=0 Platform=1 Unsafe=0 link(onCreate,16650517:doShow,[]) link(onError,10264603:doShow,[(65,118)(65,160)]) } Add(DockContainer,16650517,77,105) { } BEGIN_SDK Add(EditMultiEx,12918130,21,21) { WorkCount=#6:doShow| Width=181 Height=151 link(doShow,9346689:doEvent1,[(39,27)(39,76)]) } Add(DockPanel,9718394,35,126) { Width=300 Height=200 Dock=5 Point(doShow) } Add(Hub,9346689,56,70) { OutCount=3 link(onEvent1,5212926:doFor,[(84,76)(84,41)]) link(onEvent2,6019743:doShow,[]) link(onEvent3,6828259:doFor,[(84,90)(84,132)]) } Add(ChildDockContent,287786,154,28) { } BEGIN_SDK Add(EditMultiEx,338744,21,21) { WorkCount=#6:doShow|5:##add| VarCount=#10:##instance|6:##type| Width=209 Height=165 Point(##add) Point(##instance) Point(##type) link(doShow,4431978:doShow3,[(163,27)(163,83)]) link(##add,11478811:doEvent1,[(42,34)(42,90)]) link(##instance,5379468:Control,[(27,127)(82,127)]) link(##type,2784199:TypeName,[(34,176)(90,176)]) } Add(DockContent,4431978,175,77) { Dock=3 Name="dc_left" DockAreas=7 TabText="Left" Point(doTabText) Point(onDoubleClick) Point(dockState) link(dockState,3341106:DockState,[]) } Add(Button,5379468,76,84) { Text="1" Dock=1 Point(onClick) Point(doConstructor) Point(Control) Point(doText) link(onClick,3747017:doGetMethod,[]) } Add(Hub,11478811,49,84) { link(onEvent1,5379468:doConstructor,[]) link(onEvent2,5379468:doText,[]) } Add(EventArgs,3747017,126,84) { Point(onSender) link(onSender,4431978:doTabText,[]) } Add(DockState,3341106,175,35) { DockState=8 } Add(Type,2784199,77,133) { TypeName="Button" Point(TypeName) } END_SDK Add(ChildDockContent,6019743,154,77) { } BEGIN_SDK Add(EditMultiEx,4239919,21,21) { WorkCount=#6:doShow| Width=139 Height=102 link(doShow,8993443:doShow3,[(31,27)(31,76)]) } Add(DockContent,8993443,42,70) { Dock=5 Name="dc_doc" DockAreas=33 TabText="Document" Point(dockState) link(dockState,6346730:DockState,[]) } Add(TextBox,1148313,84,70) { Left=145 Top=105 Text="History\r\n\r\nMicrosoft first introduced the docking panel layout in Visual Studio .NET (2002), and soon it became popular in application design. Many commercial .NET component vendors started to provide docking libraries initially, but there was no good free and open source alternative, until WeiFen Luo released DockPanel Suite (DPS for short) on SourceForge.net in 2006.\r\n\r\nhttp://sourceforge.net/projects/dockpanelsuite\r\n\r\nWeiFen Luo's Efforts and Early Years\r\n\r\nIts 1.0 release was available on Feb 13, 2006, one day before the Valentine's day [1]. From the SVN repository we could no longer find the commits earlier than Mar 2, 2007. Therefore, we don't know exactly when WeiFen decided to implement this docking library and the day he started. This release has been downloaded more than 57,000 times on SF.net alone (binaries + source package), which is a huge success.\r\n\r\nAfter that, WeiFen published several new releases. Release 2.0 RC was available on Mar 02, 2007. Release 2.0 followed on Apr 02, while release 2.2 was available on Nov 04, 2007 (more than 68,000 downloads)[2]\r\n\r\nDanilo Corallo wrote an article titled "A Visual Studio 2005-like Interface"[4] on CodeProject.com initially on Jun 06, 2006 to introduce this library for broader audience. The article has been reviewed for more than 586,000 times with an average rate of 4.89. This article was last updated on 22 Jan, 2007, so it only targets DPS 1.0. However, DPS 2.0 and above do contains breaking changes, so the sample of this article does not work with newer DPS releases.\r\n\r\nSharpDevelop [5], the open source C#/VB.NET IDE, has chosen DPS as its docking library for years (till SD 4.0 migrates to WPF and uses AvalonDock [6] instead of DPS). It is interesting that from SD code base, DPS source files appeared as early as Jan 04, 2005 [7].\r\n\r\nOn Aug 16, 2009, WeiFen wrote in a discussion thread, that he would like to move this project to CodePlex.com [8]. However, this move was never carried out. But in this thread WeiFen linked one of his important blog posts on DPS [9], which documented his ideas on why WPF based docking library is better. WeiFen's interest has been moved to WPF side product called WPF Docking [10].\r\n\r\nExtended Maintenance by Steve Overton and Others\r\n\r\nSteve Overton and other contributors stepped up and started to maintain this library in 2009 [11]. He managed to release 2.3 on May 08, 2009 (more than 68,000 downloads)[3][23]. 2.4 Followed on Oct 30, 2010 with a few new patches [12]. For the first time, DPS is released with binaries/source code/release notes. This release has been downloaded over 8000 times. Soon release 2.5.0 (with RC1 flag) was available on Nov 25 the same year with more patches included [13]. This is the last stable release that can be found on SF.net with accumulated downloads of 61,000.\r\n\r\nSidenote on Mono Port\r\n\r\nLex Li uses a DockPanel Suite in his open source project #SNMP [14]. His main interest is how to use it on Mono and other operating systems. The attempt was initialized in May 2010 [15], and finalized in Feb 2012 [16].\r\n\r\nThis patch, as well as many other patches of DPS, has not been reviewed or merged to the trunk, which makes it again difficult for users to make use of them.\r\n\r\nSidenote on New Implementation\r\n\r\nThere is a new implementation published on CodePlex for DPS [17]. It claims that with the changes it resolves many DPS known issues. But whether its changes can be ported back to DPS is still under investigation.\r\n" Dock=5 Lines=[] Multiline=0 ScrollBars=3 Point(doText) Point(Text) Point(Data) } Add(DockState,6346730,42,28) { DockState=6 } END_SDK Add(ChildDockContent,12442703,154,119) { } BEGIN_SDK Add(EditMultiEx,15771951,21,21) { WorkCount=#6:doShow|5:##add| VarCount=#10:##instance|6:##type| Width=181 Height=179 Point(##add) Point(##instance) Point(##type) link(doShow,8415673:doShow3,[(139,27)(139,76)]) link(##add,11507942:doEvent1,[(31,34)(31,83)]) link(##instance,14126372:Control,[(27,120)(83,120)]) link(##type,10344620:TypeName,[(34,179)(83,179)]) } Add(DockContent,8415673,154,70) { Dock=4 DockAreas=7 TabText="Right" Point(doTabText) Point(dockState) link(dockState,4704854:DockState,[]) } Add(CheckBox,14126372,70,77) { Left=110 Top=60 Text="1" Dock=1 Point(doConstructor) Point(doText) Point(Control) link(onCheckStateChanged,8002115:doGetMethod,[]) } Add(EventArgs,8002115,112,77) { Point(onSender) link(onSender,8415673:doTabText,[]) } Add(Hub,11507942,42,77) { link(onEvent1,14126372:doConstructor,[]) link(onEvent2,14126372:doText,[]) } Add(DockState,4704854,154,28) { DockState=10 } Add(Type,10344620,70,126) { TypeName="CheckBox" Point(TypeName) } END_SDK Add(For,5212926,98,35) { Start=2 End=10 link(onEvent,287786:##add,[]) link(onStop,287786:doShow,[(142,48)(142,34)]) } Add(For,6828259,98,126) { Start=2 End=10 link(onEvent,12442703:##add,[]) link(onStop,12442703:doShow,[(142,139)(142,125)]) } END_SDK Add(MessageBox,10264603,77,154) { }