diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-03-04 22:26:24 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-03-04 22:26:24 +0100 |
| commit | 8a535547c868dfeb38143e5836b02f9ac4f56354 (patch) | |
| tree | 91915fcc7307d77653b15673ab9d88bb43a99a41 /src/GraphicObjects/DockStack.cs | |
| parent | a31ef5c25faab8bb10fd458eac1a9be86a1a1aee (diff) | |
docker debug
Diffstat (limited to 'src/GraphicObjects/DockStack.cs')
| -rw-r--r-- | src/GraphicObjects/DockStack.cs | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/src/GraphicObjects/DockStack.cs b/src/GraphicObjects/DockStack.cs index 2c99a8b6..79643b47 100644 --- a/src/GraphicObjects/DockStack.cs +++ b/src/GraphicObjects/DockStack.cs @@ -113,13 +113,14 @@ namespace Crow dw.DockingPosition = Alignment.Top; else if (lm.Y > r.Bottom - vTreshold) dw.DockingPosition = Alignment.Bottom; - else { + else if (this.Children.Contains (rootDock.CenterDockedObj) && !(rootDock.CenterDockedObj is DockWindow)) { r.Inflate (-r.Width / 3, -r.Height / 3); - if (r.ContainsOrIsEqual(lm)) + if (r.ContainsOrIsEqual (lm)) dw.DockingPosition = Alignment.Center; else dw.DockingPosition = Alignment.Undefined; - } + } else + dw.DockingPosition = Alignment.Undefined; if (curDockPos != dw.DockingPosition) RegisterForGraphicUpdate (); @@ -213,7 +214,7 @@ namespace Crow RemoveChild(dw); if (rootDock.CenterDockedObj == dw) { - rootDock.CenterDockedObj = new GraphicObject (IFace) { IsEnabled = false, Background = Color.AmberSaeEce.AdjustAlpha(0.3) }; + rootDock.CenterDockedObj = new GraphicObject (IFace) { IsEnabled = false }; InsertChild (idx, rootDock.CenterDockedObj); SubStack = rootDock.CenterDockedObj; }else if (dw.DockingPosition == Alignment.Left || dw.DockingPosition == Alignment.Top) @@ -234,27 +235,6 @@ namespace Crow dsp.InsertChild (idx, SubStack); dsp.SubStack = SubStack; return; - -// Docker dk = Parent as Docker; -// dk.RemoveChild (this); -// dk.AddChild (SubStack); -// dk.SubStack = SubStack; - -// if (SubStack is DockStack) { -// Docker dk = Parent as Docker; -// dk.RemoveChild (this); -// dk.InsertChild (0, SubStack); -// dk.SubStack = SubStack as DockStack; -// } -// SubStack = null; -// return; -// } -// GraphicObject g = Children [0]; -// RemoveChild (g); -// int i = dsp.Children.IndexOf (this); -// dsp.RemoveChild (this); -// dsp.InsertChild (i, g); -// dsp.SubStack = g; } public void Dock(DockWindow dw){ Splitter splitter = instSplit.CreateInstance<Splitter> (); @@ -264,21 +244,41 @@ namespace Crow int hTreshold = r.Width / dockingDiv; DockStack activeStack = this; - + Console.WriteLine ("******* Dockingtack {0}", this.Name); if (Children.Count == 1) { activeStack = this; Orientation = dw.DockingPosition.GetOrientation (); - }else if (dw.DockingPosition.GetOrientation() != Orientation) { - int i = Children.IndexOf (rootDock.CenterDockedObj); - RemoveChild (rootDock.CenterDockedObj); + }else if (dw.DockingPosition.GetOrientation() != Orientation) { activeStack = instStack.CreateInstance<DockStack> (); - activeStack.SubStack = rootDock.CenterDockedObj; - SubStack = activeStack; - InsertChild(i, activeStack); - activeStack.AddChild (rootDock.CenterDockedObj); + int ci = Children.IndexOf (rootDock.CenterDockedObj); + if (ci <0 ){ + DockStack dsp = Parent as DockStack; + if (dsp != null) { + int idx = dsp.Children.IndexOf (this); + dsp.RemoveChild (this); + dsp.SubStack = activeStack; + dsp.InsertChild (idx, activeStack); + activeStack.SubStack = this; + activeStack.AddChild (this); + } else { + Docker dk = Parent as Docker; + dk.RemoveChild (this); + dk.InsertChild (0, activeStack); + dk.SubStack = activeStack; + activeStack.AddChild (this); + activeStack.SubStack = this; + } + }else{ + int i = Children.IndexOf (SubStack); + RemoveChild (SubStack); + activeStack.SubStack = SubStack; + SubStack = activeStack; + InsertChild(i, activeStack); + activeStack.AddChild (activeStack.SubStack); + } activeStack.Orientation = dw.DockingPosition.GetOrientation (); } - + Console.WriteLine ("Docking {0} in {1}", dw.Name, activeStack.Name); switch (dw.DockingPosition) { case Alignment.Top: dw.Height = vTreshold; |