aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/DockWindow.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-03-07 15:06:30 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-03-07 15:06:30 +0100
commit6f303fb67fcc7843ed564c676d12e86b034cfe0a (patch)
tree01832b4b99c0dbcdbdb1743f073dd93e6f975149 /src/GraphicObjects/DockWindow.cs
parent5f98acc7dac6255fceb81da2b8f7e37ffcbec1e8 (diff)
Height and Width of GO major change for stacking, docker improvement and simplification
Diffstat (limited to 'src/GraphicObjects/DockWindow.cs')
-rw-r--r--src/GraphicObjects/DockWindow.cs28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/GraphicObjects/DockWindow.cs b/src/GraphicObjects/DockWindow.cs
index f333f6c4..34290a2e 100644
--- a/src/GraphicObjects/DockWindow.cs
+++ b/src/GraphicObjects/DockWindow.cs
@@ -39,7 +39,6 @@ namespace Crow
bool isDocked = false;
Alignment docking = Alignment.Undefined;
- Point lastMousePos; //last known mouse pos in this control
Point undockingMousePosOrig; //mouse pos when docking was donne, use for undocking on mouse move
Rectangle savedSlot; //last undocked slot recalled when view is undocked
bool wasResizable;
@@ -89,13 +88,14 @@ namespace Crow
public override void onMouseMove (object sender, MouseMoveEventArgs e)
{
- lastMousePos = e.Position;
+// if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && IsDocked) {
+// if (Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10 ||
+// Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10)
+// Undock ();
+// }
- if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && IsDocked) {
- if (Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10 ||
- Math.Abs (e.Position.X - undockingMousePosOrig.X) > 10)
- Undock ();
- }
+ if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && IsDocked)
+ CheckUndock (e.Position);
base.onMouseMove (sender, e);
}
@@ -107,6 +107,8 @@ namespace Crow
undockingMousePosOrig = e.Position;
}
public bool CheckUndock (Point mousePos) {
+ if (DockingPosition == Alignment.Center)
+ return false;
if (Math.Abs (mousePos.X - undockingMousePosOrig.X) < undockThreshold ||
Math.Abs (mousePos.X - undockingMousePosOrig.X) < undockThreshold)
return false;
@@ -143,10 +145,8 @@ namespace Crow
Resizable = wasResizable;
}
}
+
void dock (DockStack target){
- if (RootDock.CenterDockedObj is DockWindow && DockingPosition == Alignment.Center)
- return;
-
lock (IFace.UpdateMutex) {
IsDocked = true;
//undockingMousePosOrig = lastMousePos;
@@ -156,17 +156,23 @@ namespace Crow
LastSlots = LastPaintedSlot = Slot = default(Rectangle);
Left = Top = 0;
- RootDock.RemoveChild (this);
+ Group g = Parent as Group;
+ g.RemoveChild (this);
target.Dock (this);
}
}
+
protected override void close ()
{
if (isDocked)
Undock ();
base.close ();
}
+
+ public string ExportWinConfigs () {
+ return string.Format ("{0};{1};{2}", this.Name, DockingPosition, savedSlot);
+ }
}
}