public bool OnMouseEvent(MouseEventID id, Vector2 pos) { if (currentHover != null && currentHover.TestHit(pos)) { currentHover.OnEvent(id, pos); return id != MouseEventID.MouseMove; } if (id == MouseEventID.MouseMove) { MenuItem button = Children.FirstOrDefault(b => b.TestHit(pos)); if (button != null) { if (currentHover != null) { currentHover.SetHovered(false); } currentHover = button; button.SetHovered(true); } return false; } if (Bounds.Contains(pos) && id == MouseEventID.LeftButtonDown) { visible = !visible; currentHover = null; Children.ForEach(button => button.SetVisible(visible)); return true; } return false; }
public void AddChild(MenuItem item) { int x = this.Bounds.X + this.Bounds.W; int num = this.Bounds.Y + this.children.Sum(current => current.Bounds.H); item.Bounds = new Rect(x, num, item.Width, item.Height); this.children.Add(item); }
public virtual void AddChild(MenuItem item) { float x = Bounds.X + Bounds.Width; float y = Bounds.Y + Children.Sum(current => current.Bounds.Height); item.Bounds = new RectangleF(x, y, item.DesiredWidth, item.DesiredHeight); Children.Add(item); }
public override void AddChild(MenuItem item) { base.AddChild(item); float x = item.Bounds.X - DesiredWidth; float y = item.Bounds.Y + DesiredHeight; item.Bounds = new RectangleF(x, y, item.Bounds.Width, item.Bounds.Height); }
public void AddChild(MenuItem item) { int num = this.Bounds.Y; int x = this.Bounds.X + this.Bounds.W; foreach (MenuItem current in this.children) { num += current.Bounds.H; } item.Bounds = new Rect(x, num, item.DesiredWidth, item.DesiredHeight); this.children.Add(item); }
public ToggleButton(MenuItem parent, string name, ToggleNode node, string key, Func<MenuItem, bool> hide) { Name = name; this.node = node; this.key = key; this.parent = parent; this.hide = hide; if (hide != null) { node.OnValueChanged = Hide; } }
public void OnEvent(MouseEventID id, Vec2 pos) { if (id == MouseEventID.MouseMove) { if (this.TestBounds(pos)) { this.HandleEvent(id, pos); if (this.currentHover != null) { this.currentHover.SetHovered(false); this.currentHover = null; } return; } if (this.currentHover != null) { if (this.currentHover.TestHit(pos)) { this.currentHover.OnEvent(id, pos); return; } this.currentHover.SetHovered(false); } MenuItem childAt = this.GetChildAt(pos); if (childAt != null) { childAt.SetHovered(true); this.currentHover = childAt; return; } this.currentHover = null; return; } else { if (this.TestBounds(pos)) { this.HandleEvent(id, pos); return; } if (this.currentHover != null) { this.currentHover.OnEvent(id, pos); } return; } }
public void OnEvent(MouseEventID id, Vector2 pos) { if (id == MouseEventID.MouseMove) { if (TestBounds(pos)) { HandleEvent(id, pos); if (currentHover != null) { currentHover.SetHovered(false); currentHover = null; } return; } if (currentHover != null) { if (currentHover.TestHit(pos)) { currentHover.OnEvent(id, pos); return; } currentHover.SetHovered(false); } MenuItem childAt = Children.FirstOrDefault(current => current.TestHit(pos)); if (childAt != null) { childAt.SetHovered(true); currentHover = childAt; return; } currentHover = null; } else { if (TestBounds(pos)) { HandleEvent(id, pos); } else { currentHover?.OnEvent(id, pos); } } }
private void CreateMenu() { root = new RootButton(new Vector2(Settings.X, Settings.Y)); // Health bars HealthBarSettings healthBarPlugin = settingsHub.HealthBarSettings; MenuItem healthMenu = AddChild(root, "Health bars", healthBarPlugin.Enable); MenuItem playersMenu = AddChild(healthMenu, "Players", healthBarPlugin.Players.Enable); MenuItem enemiesMenu = AddChild(healthMenu, "Enemies", healthBarPlugin.ShowEnemies); MenuItem minionsMenu = AddChild(healthMenu, "Minions", healthBarPlugin.Minions.Enable); AddChild(healthMenu, "Show ES", healthBarPlugin.ShowES); AddChild(healthMenu, "Show in town", healthBarPlugin.ShowInTown); AddChild(playersMenu, "Print percents", healthBarPlugin.Players.ShowPercents); AddChild(playersMenu, "Print health text", healthBarPlugin.Players.ShowHealthText); AddChild(playersMenu, "Width", healthBarPlugin.Players.Width); AddChild(playersMenu, "Height", healthBarPlugin.Players.Height); AddChild(minionsMenu, "Print percents", healthBarPlugin.Minions.ShowPercents); AddChild(minionsMenu, "Print health text", healthBarPlugin.Minions.ShowHealthText); AddChild(minionsMenu, "Width", healthBarPlugin.Minions.Width); AddChild(minionsMenu, "Height", healthBarPlugin.Minions.Height); MenuItem whiteEnemyMenu = AddChild(enemiesMenu, "White", healthBarPlugin.NormalEnemy.Enable); AddChild(whiteEnemyMenu, "Print percents", healthBarPlugin.NormalEnemy.ShowPercents); AddChild(whiteEnemyMenu, "Print health text", healthBarPlugin.NormalEnemy.ShowHealthText); AddChild(whiteEnemyMenu, "Width", healthBarPlugin.NormalEnemy.Width); AddChild(whiteEnemyMenu, "Height", healthBarPlugin.NormalEnemy.Height); MenuItem magicEnemyMenu = AddChild(enemiesMenu, "Magic", healthBarPlugin.MagicEnemy.Enable); AddChild(magicEnemyMenu, "Print percents", healthBarPlugin.MagicEnemy.ShowPercents); AddChild(magicEnemyMenu, "Print health text", healthBarPlugin.MagicEnemy.ShowHealthText); AddChild(magicEnemyMenu, "Width", healthBarPlugin.MagicEnemy.Width); AddChild(magicEnemyMenu, "Height", healthBarPlugin.MagicEnemy.Height); MenuItem rareEnemyMenu = AddChild(enemiesMenu, "Rare", healthBarPlugin.RareEnemy.Enable); AddChild(rareEnemyMenu, "Print percents", healthBarPlugin.RareEnemy.ShowPercents); AddChild(rareEnemyMenu, "Print health text", healthBarPlugin.RareEnemy.ShowHealthText); AddChild(rareEnemyMenu, "Width", healthBarPlugin.RareEnemy.Width); AddChild(rareEnemyMenu, "Height", healthBarPlugin.RareEnemy.Height); MenuItem uniquesEnemyMenu = AddChild(enemiesMenu, "Uniques", healthBarPlugin.UniqueEnemy.Enable); AddChild(uniquesEnemyMenu, "Print percents", healthBarPlugin.UniqueEnemy.ShowPercents); AddChild(uniquesEnemyMenu, "Print health text", healthBarPlugin.UniqueEnemy.ShowHealthText); AddChild(uniquesEnemyMenu, "Width", healthBarPlugin.UniqueEnemy.Width); AddChild(uniquesEnemyMenu, "Height", healthBarPlugin.UniqueEnemy.Height); // Map icons MenuItem mapIconsMenu = AddChild(root, "Map icons", settingsHub.MapIconsSettings.Enable); AddChild(mapIconsMenu, "Icons on minimap", settingsHub.MapIconsSettings.IconsOnMinimap); AddChild(mapIconsMenu, "Icons on large map", settingsHub.MapIconsSettings.IconsOnLargeMap); AddChild(mapIconsMenu, "Precious items", settingsHub.ItemAlertSettings.ShowItemOnMap); AddChild(mapIconsMenu, "Monsters", settingsHub.MonsterTrackerSettings.Monsters); AddChild(mapIconsMenu, "Minions", settingsHub.MonsterTrackerSettings.Minions); AddChild(mapIconsMenu, "Strongboxes", settingsHub.PoiTrackerSettings.Strongboxes); AddChild(mapIconsMenu, "Chests", settingsHub.PoiTrackerSettings.Chests); AddChild(mapIconsMenu, "Masters", settingsHub.PoiTrackerSettings.Masters); // Item Alert MenuItem itemAlertMenu = AddChild(root, "Item alert", settingsHub.ItemAlertSettings.Enable); AddChild(itemAlertMenu, "Rares", settingsHub.ItemAlertSettings.Rares); AddChild(itemAlertMenu, "Uniques", settingsHub.ItemAlertSettings.Uniques); AddChild(itemAlertMenu, "Currency", settingsHub.ItemAlertSettings.Currency); AddChild(itemAlertMenu, "Maps", settingsHub.ItemAlertSettings.Maps); AddChild(itemAlertMenu, "RGB", settingsHub.ItemAlertSettings.Rgb); AddChild(itemAlertMenu, "Crafting bases", settingsHub.ItemAlertSettings.Crafting); QualityItemsSettings qualityItemsSettings = settingsHub.ItemAlertSettings.QualityItems; MenuItem qualityMenu = AddChild(itemAlertMenu, "Show quality items", qualityItemsSettings.Enable); MenuItem qualityWeaponMenu = AddChild(qualityMenu, "Weapons", qualityItemsSettings.Weapon.Enable); AddChild(qualityWeaponMenu, "Min. quality", qualityItemsSettings.Weapon.MinQuality); MenuItem qualityArmourMenu = AddChild(qualityMenu, "Armours", qualityItemsSettings.Armour.Enable); AddChild(qualityArmourMenu, "Min. quality", qualityItemsSettings.Armour.MinQuality); MenuItem qualityFlaskMenu = AddChild(qualityMenu, "Flasks", qualityItemsSettings.Flask.Enable); AddChild(qualityFlaskMenu, "Min. quality", qualityItemsSettings.Flask.MinQuality); MenuItem qualitySkillGemMenu = AddChild(qualityMenu, "Skill gems", qualityItemsSettings.SkillGem.Enable); AddChild(qualitySkillGemMenu, "Min. quality", qualityItemsSettings.SkillGem.MinQuality); AddChild(itemAlertMenu, "Play sound", settingsHub.ItemAlertSettings.PlaySound); MenuItem alertTextMenu = AddChild(itemAlertMenu, "Show text", settingsHub.ItemAlertSettings.ShowText); AddChild(alertTextMenu, "Font size", settingsHub.ItemAlertSettings.TextSize); BorderSettings borderSettings = settingsHub.ItemAlertSettings.BorderSettings; MenuItem showBorderMenu = AddChild(itemAlertMenu, "Show border", borderSettings.Enable); AddChild(showBorderMenu, "Border width", borderSettings.BorderWidth); AddChild(showBorderMenu, "Border color:", borderSettings.BorderColor); AddChild(showBorderMenu, "Cn't pck up brd color:", borderSettings.CantPickUpBorderColor); AddChild(showBorderMenu, "Not my item brd color:", borderSettings.NotMyItemBorderColor); AddChild(showBorderMenu, "Show timer", borderSettings.ShowTimer); AddChild(showBorderMenu, "Timer text size", borderSettings.TimerTextSize); // Advanced tooltip AdvancedTooltipSettings tooltipSettings = settingsHub.AdvancedTooltipSettings; MenuItem tooltipMenu = AddChild(root, "Adv. tooltip", tooltipSettings.Enable); MenuItem itemLevelMenu = AddChild(tooltipMenu, "Item level", tooltipSettings.ItemLevel.Enable); AddChild(itemLevelMenu, "Font size", tooltipSettings.ItemLevel.TextSize); MenuItem itemModsMenu = AddChild(tooltipMenu, "Item mods", tooltipSettings.ItemMods.Enable); AddChild(itemModsMenu, "Mods size", tooltipSettings.ItemMods.ModTextSize); MenuItem weaponDpsMenu = AddChild(tooltipMenu, "Weapon DPS", tooltipSettings.WeaponDps.Enable); AddChild(weaponDpsMenu, "DPS size", tooltipSettings.WeaponDps.DpsTextSize); AddChild(weaponDpsMenu, "DPS name size", tooltipSettings.WeaponDps.DpsNameTextSize); // Boss warnings MenuItem bossWarningsMenu = AddChild(root, "Boss warnings", settingsHub.MonsterTrackerSettings.Enable); AddChild(bossWarningsMenu, "Sound warning", settingsHub.MonsterTrackerSettings.PlaySound); MenuItem warningTextMenu = AddChild(bossWarningsMenu, "Text warning", settingsHub.MonsterTrackerSettings.ShowText); AddChild(warningTextMenu, "Font size", settingsHub.MonsterTrackerSettings.TextSize); AddChild(warningTextMenu, "Background color:", settingsHub.MonsterTrackerSettings.BackgroundColor); AddChild(warningTextMenu, "Position X", settingsHub.MonsterTrackerSettings.TextPositionX); AddChild(warningTextMenu, "Position Y", settingsHub.MonsterTrackerSettings.TextPositionY); // Xph Display MenuItem xpRateMenu = AddChild(root, "Xph Display", settingsHub.XpRateSettings.Enable); AddChild(xpRateMenu, "Font size", settingsHub.XpRateSettings.TextSize); AddChild(xpRateMenu, "Background color:", settingsHub.XpRateSettings.BackgroundColor); // Preload Alert MenuItem preloadMenu = AddChild(root, "Preload Alert", settingsHub.PreloadAlertSettings.Enable); AddChild(preloadMenu, "Font size", settingsHub.PreloadAlertSettings.TextSize); AddChild(preloadMenu, "Background color:", settingsHub.PreloadAlertSettings.BackgroundColor); // Show DPS MenuItem showDpsMenu = AddChild(root, "Show DPS", settingsHub.DpsMeterSettings.Enable); AddChild(showDpsMenu, "DPS font size", settingsHub.DpsMeterSettings.DpsTextSize); AddChild(showDpsMenu, "Peak DPS font size", settingsHub.DpsMeterSettings.PeakDpsTextSize); AddChild(showDpsMenu, "Background color:", settingsHub.DpsMeterSettings.BackgroundColor); // Show monster kills MenuItem showMonsterKillsMenu = AddChild(root, "Show MK", settingsHub.KillsCounterSettings.Enable); AddChild(showMonsterKillsMenu, "Show details", settingsHub.KillsCounterSettings.ShowDetail); // show Item-Drop-Counter // doesnt work yet //MenuItem showItemDropMenu = AddChild(root, "Show ItemDrops", settingsHub.ItemCounterSettings.Enable); //AddChild(showItemDropMenu, "Show details", settingsHub.ItemCounterSettings.ShowDetail); // Show inventory preview MenuItem showInventoryPreviewMenu = AddChild(root, "Show inv preview", settingsHub.InventoryPreviewSettings.Enable); AddChild(showInventoryPreviewMenu, "Free cell color", settingsHub.InventoryPreviewSettings.CellFreeColor); AddChild(showInventoryPreviewMenu, "Used cell color", settingsHub.InventoryPreviewSettings.CellUsedColor); }
private static void AddChild <T>(MenuItem parent, string text, RangeNode <T> node) where T : struct { var item = new Picker <T>(text, node); parent.AddChild(item); }
private static void AddChild(MenuItem parent, string text, ColorNode node) { var item = new ColorButton(text, node); parent.AddChild(item); }