コード例 #1
0
ファイル: RootButton.cs プロジェクト: asd34278/PoeHud
        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;
        }
コード例 #2
0
ファイル: MenuItem.cs プロジェクト: benjy3gg/PoeHud
 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);
 }
コード例 #3
0
ファイル: MenuItem.cs プロジェクト: hunkiller/PoeHud
 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);
 }
コード例 #4
0
ファイル: RootButton.cs プロジェクト: asd34278/PoeHud
 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);
 }
コード例 #5
0
ファイル: MenuItem.cs プロジェクト: sbradno/PoeHud
 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);
 }
コード例 #6
0
ファイル: ToggleButton.cs プロジェクト: TomTer/PoeHud
 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;
     }
 }
コード例 #7
0
ファイル: MenuItem.cs プロジェクト: sbradno/PoeHud
 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;
     }
 }
コード例 #8
0
ファイル: MenuItem.cs プロジェクト: hunkiller/PoeHud
 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);
         }
     }
 }
コード例 #9
0
ファイル: MenuPlugin.cs プロジェクト: krfshft/PoeHud-Sunbeam
        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);
        }
コード例 #10
0
ファイル: MenuPlugin.cs プロジェクト: krfshft/PoeHud-Sunbeam
        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);
        }
コード例 #11
0
ファイル: MenuPlugin.cs プロジェクト: krfshft/PoeHud-Sunbeam
        private static void AddChild(MenuItem parent, string text, ColorNode node)
        {
            var item = new ColorButton(text, node);

            parent.AddChild(item);
        }