예제 #1
0
        public Boolean hover(Point mouseLocation)
        {
            Boolean isHovering = false;
            _direction = resizeDirection.none;

            if (nW.Contains(mouseLocation))
            {
                isHovering = true;
                _direction = resizeDirection.nW;
            }
            else if (nE.Contains(mouseLocation))
            {
                isHovering = true;
                _direction = resizeDirection.nE;
            }
            else if (sW.Contains(mouseLocation))
            {
                isHovering = true;
                _direction = resizeDirection.sW;
            }
            else if (sE.Contains(mouseLocation))
            {
                isHovering = true;
                _direction = resizeDirection.sE;
            }
            else if (contains(mouseLocation))
            {
                isHovering = true;
            }

      
            return (isHovering);
        }
예제 #2
0
 protected void resizeWindow(object sender, resizeDirection direction)
 {
     IntPtr handle = new WindowInteropHelper(get(sender)).Handle;
     SendMessage(handle, 0x112, (IntPtr)(0xF000 + direction), IntPtr.Zero);
     SendMessage(handle, 514, IntPtr.Zero, IntPtr.Zero);
 }
예제 #3
0
        private void ODockWindow_MouseMove(object sender, MouseEventArgs e)
        {
            if (isResize)
            {
                int diffX = Cursor.Position.X - dragStart.X;
                int diffY = Cursor.Position.Y - dragStart.Y;

                container.SuspendDrawing();

                switch (resizeDir)
                {
                    case resizeDirection.topLeft: // \ Top Left
                        Cursor.Current = Cursors.SizeNWSE;
                        Width = Math.Max(originalSize.Width - diffX, minimumWidth);
                        Height = Math.Max(originalSize.Height - diffY, minimumHeight);
                        Left = (originalLocation.X + originalSize.Width) - Width;
                        Top = (originalLocation.Y + originalSize.Height) - Height;
                        break;
                    case resizeDirection.topRight: // / Top Right
                        Cursor.Current = Cursors.SizeNESW;
                        Width = Math.Max(originalSize.Width + diffX, minimumWidth);
                        Height = Math.Max(originalSize.Height - diffY, minimumHeight);
                        Top = (originalLocation.Y + originalSize.Height) - Height;
                        break;
                    case resizeDirection.bottomLeft: // / Bottom Left
                        Cursor.Current = Cursors.SizeNESW;
                        Width = Math.Max(originalSize.Width - diffX, minimumWidth);
                        Height = Math.Max(originalSize.Height + diffY, minimumHeight);
                        Left = (originalLocation.X + originalSize.Width) - Width;
                        break;
                    case resizeDirection.bottomRight: // \ Bottom Right
                        Cursor.Current = Cursors.SizeNWSE;
                        Width = Math.Max(originalSize.Width + diffX, minimumWidth);
                        Height = Math.Max(originalSize.Height + diffY, minimumHeight);
                        break;
                    case resizeDirection.left: // — Left
                        Cursor.Current = Cursors.SizeWE;
                        Width = Math.Max(originalSize.Width - diffX, minimumWidth);
                        Left = (originalLocation.X + originalSize.Width) - Width;
                        break;
                    case resizeDirection.right: // — Right
                        Cursor.Current = Cursors.SizeWE;
                        Width = Math.Max(originalSize.Width + diffX, minimumWidth);
                        break;
                    case resizeDirection.top: // | Top
                        Cursor.Current = Cursors.SizeNS;
                        Height = Math.Max(originalSize.Height - diffY, minimumHeight);
                        Top = (originalLocation.Y + originalSize.Height) - Height;
                        break;
                    case resizeDirection.bottom: // | Bottom
                        Cursor.Current = Cursors.SizeNS;
                        Height = Math.Max(originalSize.Height + diffY, minimumHeight);
                        break;
                }

                container.ResumeDrawing();
            }
            else
            {
                if (e.X < gripSize && e.Y < gripSize)
                {
                    Cursor.Current = Cursors.SizeNWSE;
                    resizeDir = resizeDirection.topLeft;
                }
                else if (e.X >= ClientSize.Width - gripSize && e.Y < gripSize)
                {
                    Cursor.Current = Cursors.SizeNESW;
                    resizeDir = resizeDirection.topRight;
                }
                else if (e.X < gripSize && e.Y >= ClientSize.Height - gripSize)
                {
                    Cursor.Current = Cursors.SizeNESW;
                    resizeDir = resizeDirection.bottomLeft;
                }
                else if (e.X >= ClientSize.Width - gripSize && e.Y >= ClientSize.Height - gripSize)
                {
                    Cursor.Current = Cursors.SizeNWSE;
                    resizeDir = resizeDirection.bottomRight;
                }
                else if (e.X < gripSize)
                {
                    Cursor.Current = Cursors.SizeWE;
                    resizeDir = resizeDirection.left;
                }
                else if (e.X >= ClientSize.Width - gripSize)
                {
                    Cursor.Current = Cursors.SizeWE;
                    resizeDir = resizeDirection.right;
                }
                else if (e.Y < gripSize)
                {
                    Cursor.Current = Cursors.SizeNS;
                    resizeDir = resizeDirection.top;
                }
                else if (e.Y >= ClientSize.Height - gripSize)
                {
                    Cursor.Current = Cursors.SizeNS;
                    resizeDir = resizeDirection.bottom;
                }
            }
        }