Flood.GUI.Util.ClampRectToRect C# (CSharp) Method

ClampRectToRect() public static method

public static ClampRectToRect ( Rectangle inside, Rectangle outside, bool clampSize = false ) : Rectangle
inside Rectangle
outside Rectangle
clampSize bool
return Rectangle
        public static Rectangle ClampRectToRect(Rectangle inside, Rectangle outside, bool clampSize = false)
        {
            if (inside.X < outside.X)
                inside.X = outside.X;

            if (inside.Y < outside.Y)
                inside.Y = outside.Y;

            if (inside.GetRight() > outside.GetRight())
            {
                if (clampSize)
                    inside.Width = outside.Width;
                else
                    inside.X = outside.GetRight() - inside.Width;
            }
            if (inside.GetBottom() > outside.GetBottom())
            {
                if (clampSize)
                    inside.Height = outside.Height;
                else
                    inside.Y = outside.GetBottom() - inside.Height;
            }

            return inside;
        }

Usage Example

示例#1
0
        /// <summary>
        /// Renders the currently visible tooltip.
        /// </summary>
        /// <param name="skin"></param>
        public static void RenderToolTip(Skins.Skin skin)
        {
            if (null == g_ToolTip)
            {
                return;
            }

            Renderers.Renderer render = skin.Renderer;

            var oldRenderOffset = render.RenderOffset;
            var mousePos        = Input.InputHandler.MousePosition;
            var bounds          = g_ToolTip.ToolTip.Bounds;

            var offset = Util.FloatRect(mousePos.X - bounds.Width * 0.5f, mousePos.Y - bounds.Height - 10,
                                        bounds.Width, bounds.Height);

            offset = Util.ClampRectToRect(offset, g_ToolTip.GetCanvas().Bounds);

            //Calculate offset on screen bounds
            render.AddRenderOffset(offset);
            render.EndClip();

            skin.DrawToolTip(g_ToolTip.ToolTip);
            g_ToolTip.ToolTip.DoRender(skin);

            render.RenderOffset = oldRenderOffset;
        }