Exemplo n.º 1
0
        protected Rectangle ClampRect(Rectangle r)
        {
            if (parent == null || !ClampMouseRectToParent)
            {
                return(r);
            }
            Rectangle parentRect = parent.ClampRect(parent.rect);

            if (parentRect.Width <= 0 || parentRect.Height <= 0)
            {
                return(Rectangle.Empty);
            }
            if (parentRect.X > r.X)
            {
                int diff = parentRect.X - r.X;
                r.X      = parentRect.X;
                r.Width -= diff;
            }
            if (parentRect.Y > r.Y)
            {
                int diff = parentRect.Y - r.Y;
                r.Y       = parentRect.Y;
                r.Height -= diff;
            }
            if (parentRect.X + parentRect.Width < r.X + r.Width)
            {
                int diff = (r.X + r.Width) - (parentRect.X + parentRect.Width);
                r.Width -= diff;
            }
            if (parentRect.Y + parentRect.Height < r.Y + r.Height)
            {
                int diff = (r.Y + r.Height) - (parentRect.Y + parentRect.Height);
                r.Height -= diff;
            }
            if (r.Width <= 0 || r.Height <= 0)
            {
                return(Rectangle.Empty);
            }
            return(r);
        }