aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/DockingView.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-02-07 07:43:48 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-02-07 07:43:48 +0100
commit158bc472eff0771479d48e5bd74a8141d62ab60a (patch)
tree492f2d255de49b5c04ebba237ecb40b265bd6534 /src/GraphicObjects/DockingView.cs
parenta330b907a9c9252c480ea352606d961bdc7c3ecb (diff)
:book: , renames, move some controls to other project file
Diffstat (limited to 'src/GraphicObjects/DockingView.cs')
-rw-r--r--src/GraphicObjects/DockingView.cs166
1 files changed, 0 insertions, 166 deletions
diff --git a/src/GraphicObjects/DockingView.cs b/src/GraphicObjects/DockingView.cs
deleted file mode 100644
index db11c08d..00000000
--- a/src/GraphicObjects/DockingView.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-// DockingView.cs
-//
-// Author:
-// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-using System;
-
-namespace Crow
-{
- public class DockingView : Window
- {
- #region CTOR
- public DockingView () : base ()
- {
- }
- #endregion
-
- bool isDocked = false;
- Alignment docking = Alignment.Center;
-
- 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;
-
- public DocksView docker;
-
- public override void OnLayoutChanges (LayoutingType layoutType)
- {
- base.OnLayoutChanges (layoutType);
-
- if (isDocked)
- return;
-
- if (docker == null)
- return;
-
- Rectangle dvCliRect = docker.ClientRectangle;
-
- if (layoutType == LayoutingType.X) {
- if (Slot.X < docker.DockingThreshold)
- dock (Alignment.Left);
- else if (Slot.Right > dvCliRect.Width - docker.DockingThreshold)
- dock (Alignment.Right);
- }else if (layoutType == LayoutingType.Y) {
- if (Slot.Y < docker.DockingThreshold)
- dock (Alignment.Top);
- else if (Slot.Bottom > dvCliRect.Height - docker.DockingThreshold)
- dock (Alignment.Bottom);
- }
- }
-
- public override void onMouseMove (object sender, MouseMoveEventArgs e)
- {
- lastMousePos = e.Position;
-
- if (this.HasFocus && e.Mouse.IsButtonDown (MouseButton.Left) && isDocked) {
- if (docking == Alignment.Left) {
- if (lastMousePos.X - undockingMousePosOrig.X > docker.DockingThreshold)
- undock ();
- } else if (docking == Alignment.Right) {
- if (undockingMousePosOrig.X - lastMousePos.X > docker.DockingThreshold)
- undock ();
- } else if (docking == Alignment.Top) {
- if (lastMousePos.Y - undockingMousePosOrig.Y > docker.DockingThreshold)
- undock ();
- } else if (docking == Alignment.Bottom) {
- if (undockingMousePosOrig.Y - lastMousePos.Y > docker.DockingThreshold)
- undock ();
- }
- return;
- }
-
- base.onMouseMove (sender, e);
- }
- public override void onMouseDown (object sender, MouseButtonEventArgs e)
- {
- base.onMouseDown (sender, e);
-
- if (this.HasFocus && isDocked && e.Button == MouseButton.Left)
- undockingMousePosOrig = lastMousePos;
- }
-
-// protected override void onBorderMouseEnter (object sender, MouseMoveEventArgs e)
-// {
-// base.onBorderMouseEnter (sender, e);
-//
-// if (isDocked) {
-// switch (docking) {
-// case Alignment.Top:
-// if (this.currentDirection != Window.Direction.S)
-// onBorderMouseLeave (this, null);
-// break;
-// case Alignment.Left:
-// if (this.currentDirection != Window.Direction.E)
-// onBorderMouseLeave (this, null);
-// break;
-// case Alignment.TopLeft:
-// break;
-// case Alignment.Right:
-// if (this.currentDirection != Window.Direction.W)
-// onBorderMouseLeave (this, null);
-// break;
-// case Alignment.TopRight:
-// break;
-// case Alignment.Bottom:
-// if (this.currentDirection != Window.Direction.N)
-// onBorderMouseLeave (this, null);
-// break;
-// case Alignment.BottomLeft:
-// break;
-// case Alignment.BottomRight:
-// break;
-// case Alignment.Center:
-// break;
-// default:
-// break;
-// }
-// }
-// }
-
- void undock () {
- docker.Undock(this);
-
- this.Left = savedSlot.Left;
- this.Top = savedSlot.Top;
- this.Width = savedSlot.Width;
- this.Height = savedSlot.Height;
-
- isDocked = false;
- Resizable = wasResizable;
- }
- void dock (Alignment align){
- this.Left = this.Top = 0;
- isDocked = true;
- docking = align;
- undockingMousePosOrig = lastMousePos;
- savedSlot = this.LastPaintedSlot;
- wasResizable = Resizable;
- Resizable = false;
-
- docker.Dock (this, align);
- }
- }
-}
-