/// <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); }
/// <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); }
/// <summary> /// The check moving icon position. /// </summary> /// <param name="icon"> /// The icon. /// </param> /// <param name="menuItem"> /// The menu item. /// </param> /// <param name="mousePosition"> /// The mouse position. /// </param> private void CheckMovingIconPosition(PriorityIcon icon, MenuItem menuItem, Vector2 mousePosition) { if (this.usingAbilityToggler && icon.Position.X > this.BasePosition.X) { icon.Enabled = false; this.abilityToggler.SValuesDictionary[this.MovingIcon.Name] = false; this.abilityToggler.Dictionary[this.MovingIcon.Name] = false; return; } var dict = new Dictionary <PriorityIcon, uint>(this.PriorityIconsDictionary); foreach (var u2 in dict) { if (!(Utils.SleepCheck(u2.Key.Name + "DragAndDropChangePriority") && u2.Key.Name != icon.Name)) { continue; } if ((u2.Key.DictionaryPosition == icon.DictionaryPosition - 1 || this.usingAbilityToggler && !u2.Key.Enabled && u2.Key.DictionaryPosition > icon.DictionaryPosition) && mousePosition.X > u2.Key.FixedPosition.X) { if (!u2.Key.Enabled) { icon.Enabled = false; u2.Key.DictionaryPosition = icon.DictionaryPosition; icon.DictionaryPosition = u2.Key.DictionaryPosition; this.abilityToggler.SValuesDictionary[this.MovingIcon.Name] = false; this.abilityToggler.Dictionary[this.MovingIcon.Name] = false; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } var menuItemDict = menuItem.GetValue <PriorityChanger>().Dictionary; menuItemDict[u2.Key.Name] = icon.Priority; menuItemDict[icon.Name] = u2.Key.Priority; var menuItemDict2 = menuItem.GetValue <PriorityChanger>().SValuesDictionary; menuItemDict2[u2.Key.Name] = icon.Priority; menuItemDict2[icon.Name] = u2.Key.Priority; this.PriorityIconsDictionary[u2.Key] = icon.Priority; this.PriorityIconsDictionary[icon] = u2.Key.Priority; u2.Key.DictionaryPosition = icon.Priority; icon.DictionaryPosition = u2.Key.Priority; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } if ((u2.Key.DictionaryPosition == icon.DictionaryPosition + 1 || this.usingAbilityToggler && !icon.Enabled && u2.Key.DictionaryPosition > icon.DictionaryPosition) && mousePosition.X < u2.Key.FixedPosition.X + u2.Key.Size.X / 1.2) { { if (!icon.Enabled) { icon.Enabled = u2.Key.Enabled; u2.Key.DictionaryPosition = icon.DictionaryPosition; icon.DictionaryPosition = u2.Key.DictionaryPosition; this.abilityToggler.SValuesDictionary[this.MovingIcon.Name] = true; this.abilityToggler.Dictionary[this.MovingIcon.Name] = true; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } var menuItemDict = menuItem.GetValue <PriorityChanger>().Dictionary; menuItemDict[u2.Key.Name] = icon.Priority; menuItemDict[icon.Name] = u2.Key.Priority; var menuItemDict2 = menuItem.GetValue <PriorityChanger>().SValuesDictionary; menuItemDict2[u2.Key.Name] = icon.Priority; menuItemDict2[icon.Name] = u2.Key.Priority; this.PriorityIconsDictionary[u2.Key] = icon.Priority; this.PriorityIconsDictionary[icon] = u2.Key.Priority; u2.Key.DictionaryPosition = icon.Priority; icon.DictionaryPosition = u2.Key.Priority; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } } } }
/// <summary> /// The check moving icon position. /// </summary> /// <param name="icon"> /// The icon. /// </param> /// <param name="menuItem"> /// The menu item. /// </param> /// <param name="mousePosition"> /// The mouse position. /// </param> private void CheckMovingIconPosition(PriorityIcon icon, MenuItem menuItem, Vector2 mousePosition) { if (this.usingAbilityToggler && icon.Position.X > this.BasePosition.X) { icon.Enabled = false; this.abilityToggler.SValuesDictionary[this.MovingIcon.Name] = false; this.abilityToggler.Dictionary[this.MovingIcon.Name] = false; return; } var dict = new Dictionary<PriorityIcon, uint>(this.PriorityIconsDictionary); foreach (var u2 in dict) { if (!(Utils.SleepCheck(u2.Key.Name + "DragAndDropChangePriority") && u2.Key.Name != icon.Name)) { continue; } if ((u2.Key.DictionaryPosition == icon.DictionaryPosition - 1 || (this.usingAbilityToggler && !u2.Key.Enabled && u2.Key.DictionaryPosition > icon.DictionaryPosition)) && mousePosition.X > u2.Key.FixedPosition.X) { if (!u2.Key.Enabled) { icon.Enabled = false; u2.Key.DictionaryPosition = icon.DictionaryPosition; icon.DictionaryPosition = u2.Key.DictionaryPosition; this.abilityToggler.SValuesDictionary[this.MovingIcon.Name] = false; this.abilityToggler.Dictionary[this.MovingIcon.Name] = false; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } var menuItemDict = menuItem.GetValue<PriorityChanger>().Dictionary; menuItemDict[u2.Key.Name] = icon.Priority; menuItemDict[icon.Name] = u2.Key.Priority; var menuItemDict2 = menuItem.GetValue<PriorityChanger>().SValuesDictionary; menuItemDict2[u2.Key.Name] = icon.Priority; menuItemDict2[icon.Name] = u2.Key.Priority; this.PriorityIconsDictionary[u2.Key] = icon.Priority; this.PriorityIconsDictionary[icon] = u2.Key.Priority; u2.Key.DictionaryPosition = icon.Priority; icon.DictionaryPosition = u2.Key.Priority; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } if ((u2.Key.DictionaryPosition == icon.DictionaryPosition + 1 || (this.usingAbilityToggler && !icon.Enabled && u2.Key.DictionaryPosition > icon.DictionaryPosition)) && mousePosition.X < u2.Key.FixedPosition.X + u2.Key.Size.X / 1.2) { { if (!icon.Enabled) { icon.Enabled = u2.Key.Enabled; u2.Key.DictionaryPosition = icon.DictionaryPosition; icon.DictionaryPosition = u2.Key.DictionaryPosition; this.abilityToggler.SValuesDictionary[this.MovingIcon.Name] = true; this.abilityToggler.Dictionary[this.MovingIcon.Name] = true; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } var menuItemDict = menuItem.GetValue<PriorityChanger>().Dictionary; menuItemDict[u2.Key.Name] = icon.Priority; menuItemDict[icon.Name] = u2.Key.Priority; var menuItemDict2 = menuItem.GetValue<PriorityChanger>().SValuesDictionary; menuItemDict2[u2.Key.Name] = icon.Priority; menuItemDict2[icon.Name] = u2.Key.Priority; this.PriorityIconsDictionary[u2.Key] = icon.Priority; this.PriorityIconsDictionary[icon] = u2.Key.Priority; u2.Key.DictionaryPosition = icon.Priority; icon.DictionaryPosition = u2.Key.Priority; Utils.Sleep(500, u2.Key.Name + "DragAndDropChangePriority"); break; } } } }