ReturnFromDrag() public method

The return from drag.
public ReturnFromDrag ( Vector2 position ) : void
position Vector2 /// The position. ///
return void
Exemplo n.º 1
0
        /// <summary>
        ///     The handle priority icon.
        /// </summary>
        /// <param name="icon">
        ///     The icon.
        /// </param>
        /// <param name="mousePosition">
        ///     The mouse position.
        /// </param>
        /// <param name="priority">
        ///     The priority.
        /// </param>
        /// <param name="move">
        ///     The move.
        /// </param>
        /// <param name="menuItem">
        ///     The menu Item.
        /// </param>
        private void HandlePriorityIcon(
            PriorityIcon icon,
            Vector2 mousePosition,
            uint priority,
            float move,
            MenuItem menuItem)
        {
            var wasHovered = icon.Hovered;

            icon.Hovered = Utils.IsUnderRectangle(
                mousePosition,
                icon.Position.X,
                icon.Position.Y,
                icon.Size.X,
                icon.Size.Y);
            var onHover   = !wasHovered && icon.Hovered;
            var onUnHover = wasHovered && !icon.Hovered;

            if (onHover)
            {
                icon.Hover.Start(0, 40);
            }

            if (onUnHover)
            {
                icon.ReturnFromDrag(
                    icon.Position
                    + new Vector2((icon.Size.X - this.IconSize.X) / 2, (icon.Size.Y - this.IconSize.Y) / 2));
                icon.Hover.Start(0, 40);
            }

            var alpha      = icon.Hovered ? icon.Hover.GetValue() : 40 - icon.Hover.GetValue();
            var brightness = (float)priority / this.Count * 10;

            icon.Color = icon.Enabled
                             ? System.Drawing.Color.FromArgb(
                (int)Math.Max(Math.Min(210 + alpha, 255), 0),
                (int)
                Math.Max(
                    Math.Min(
                        Menu.Root.SelectedTheme.TogglerEnabledColor.R / 10 * 4 + alpha
                        + brightness * 18,
                        255),
                    0),
                (int)
                Math.Max(
                    Math.Min(
                        Menu.Root.SelectedTheme.TogglerEnabledColor.G / 10 * 4 + alpha
                        + brightness * 12,
                        255),
                    0),
                (int)
                Math.Max(
                    Math.Min(
                        Menu.Root.SelectedTheme.TogglerEnabledColor.B / 10 + alpha + brightness,
                        255),
                    0)).ToSharpDxColor()
                             : System.Drawing.Color.FromArgb(
                (int)Math.Max(Math.Min(210 + alpha, 255), 0),
                (int)
                Math.Max(
                    Math.Min(
                        Menu.Root.SelectedTheme.TogglerDisabledColor.R / 10 + alpha + brightness * 5,
                        255),
                    0),
                (int)
                Math.Max(
                    Math.Min(
                        Menu.Root.SelectedTheme.TogglerDisabledColor.G / 10 + alpha + brightness * 5,
                        255),
                    0),
                (int)
                Math.Max(
                    Math.Min(
                        Menu.Root.SelectedTheme.TogglerDisabledColor.B / 10 + alpha + brightness * 5,
                        255),
                    0)).ToSharpDxColor();

            if (icon.Moving)
            {
                icon.Position = new Vector2(
                    mousePosition.X - this.MousePositionDifference.X,
                    this.BasePosition.Y - icon.Size.Y / 20);
                icon.IconPosition = icon.Position
                                    + new Vector2(
                    icon.Size.X / 2 - icon.IconSize.X / 2,
                    icon.Size.Y / 2 - icon.IconSize.Y / 2);
                this.CheckMovingIconPosition(icon, menuItem, mousePosition);
                return;
            }

            if (!icon.Hovered || icon.FixedPosition != this.BasePosition - new Vector2(move, 0) ||
                this.MovingIcon != null && (!this.MovingIcon.Moving || !this.MovingIcon.Equals(icon)))
            {
                icon.Position = this.BasePosition - new Vector2(move, 0);
            }

            icon.Height       = this.Height;
            icon.IconSize     = this.textureIconSize;
            icon.Size         = this.iconSize;
            icon.IconPosition = icon.Position
                                + new Vector2(
                icon.Size.X / 2 - icon.IconSize.X / 2,
                icon.Size.Y / 2 - icon.IconSize.Y / 2);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     The handle priority icon.
        /// </summary>
        /// <param name="icon">
        ///     The icon.
        /// </param>
        /// <param name="mousePosition">
        ///     The mouse position.
        /// </param>
        /// <param name="priority">
        ///     The priority.
        /// </param>
        /// <param name="move">
        ///     The move.
        /// </param>
        /// <param name="menuItem">
        ///     The menu Item.
        /// </param>
        private void HandlePriorityIcon(
            PriorityIcon icon, 
            Vector2 mousePosition, 
            uint priority, 
            float move, 
            MenuItem menuItem)
        {
            var wasHovered = icon.Hovered;
            icon.Hovered = Utils.IsUnderRectangle(
                mousePosition, 
                icon.Position.X, 
                icon.Position.Y, 
                icon.Size.X, 
                icon.Size.Y);
            var onHover = !wasHovered && icon.Hovered;
            var onUnHover = wasHovered && !icon.Hovered;

            if (onHover)
            {
                icon.Hover.Start(0, 40);
            }

            if (onUnHover)
            {
                icon.ReturnFromDrag(
                    icon.Position
                    + new Vector2((icon.Size.X - this.IconSize.X) / 2, (icon.Size.Y - this.IconSize.Y) / 2));
                icon.Hover.Start(0, 40);
            }

            var alpha = icon.Hovered ? icon.Hover.GetValue() : 40 - icon.Hover.GetValue();
            var brightness = (float)priority / this.Count * 10;
            icon.Color = icon.Enabled
                             ? System.Drawing.Color.FromArgb(
                                 (int)Math.Max(Math.Min(210 + alpha, 255), 0), 
                                 (int)
                                 Math.Max(
                                     Math.Min(
                                         Menu.Root.SelectedTheme.TogglerEnabledColor.R / 10 * 4 + alpha
                                         + brightness * 18, 
                                         255), 
                                     0), 
                                 (int)
                                 Math.Max(
                                     Math.Min(
                                         Menu.Root.SelectedTheme.TogglerEnabledColor.G / 10 * 4 + alpha
                                         + brightness * 12, 
                                         255), 
                                     0), 
                                 (int)
                                 Math.Max(
                                     Math.Min(
                                         Menu.Root.SelectedTheme.TogglerEnabledColor.B / 10 + alpha + brightness, 
                                         255), 
                                     0)).ToSharpDxColor()
                             : System.Drawing.Color.FromArgb(
                                 (int)Math.Max(Math.Min(210 + alpha, 255), 0), 
                                 (int)
                                 Math.Max(
                                     Math.Min(
                                         Menu.Root.SelectedTheme.TogglerDisabledColor.R / 10 + alpha + brightness * 5, 
                                         255), 
                                     0), 
                                 (int)
                                 Math.Max(
                                     Math.Min(
                                         Menu.Root.SelectedTheme.TogglerDisabledColor.G / 10 + alpha + brightness * 5, 
                                         255), 
                                     0), 
                                 (int)
                                 Math.Max(
                                     Math.Min(
                                         Menu.Root.SelectedTheme.TogglerDisabledColor.B / 10 + alpha + brightness * 5, 
                                         255), 
                                     0)).ToSharpDxColor();

            if (icon.Moving)
            {
                icon.Position = new Vector2(
                    mousePosition.X - this.MousePositionDifference.X, 
                    this.BasePosition.Y - icon.Size.Y / 20);
                icon.IconPosition = icon.Position
                                    + new Vector2(
                                          icon.Size.X / 2 - icon.IconSize.X / 2, 
                                          icon.Size.Y / 2 - icon.IconSize.Y / 2);
                this.CheckMovingIconPosition(icon, menuItem, mousePosition);
                return;
            }

            if (!icon.Hovered || icon.FixedPosition != this.BasePosition - new Vector2(move, 0)
                || (this.MovingIcon != null && (!this.MovingIcon.Moving || !this.MovingIcon.Equals(icon))))
            {
                icon.Position = this.BasePosition - new Vector2(move, 0);
            }

            icon.Height = this.Height;
            icon.IconSize = this.textureIconSize;
            icon.Size = this.iconSize;
            icon.IconPosition = icon.Position
                                + new Vector2(
                                      icon.Size.X / 2 - icon.IconSize.X / 2, 
                                      icon.Size.Y / 2 - icon.IconSize.Y / 2);
        }