From 44f25db836f3784fbc054afd4c2a93580c896be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 16 Nov 2022 00:33:09 +0100 Subject: [PATCH] Hide menu items that are null --- PowerControl/Menu.cs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/PowerControl/Menu.cs b/PowerControl/Menu.cs index 8a03370..1f5ec4f 100644 --- a/PowerControl/Menu.cs +++ b/PowerControl/Menu.cs @@ -46,6 +46,42 @@ namespace PowerControl public abstract void SelectPrev(); }; + public class MenuItemSeparator : MenuItem + { + private ToolStripItem toolStripItem; + + public MenuItemSeparator() + { + Selectable = false; + } + + public override void CreateMenu(ToolStripItemCollection collection) + { + if (toolStripItem != null) + return; + + toolStripItem = new ToolStripSeparator(); + collection.Add(toolStripItem); + } + + public override string Render(MenuItem selected) + { + return Color("---", Colors.Blue); + } + + public override void SelectNext() + { + } + + public override void SelectPrev() + { + } + + public override void Update() + { + } + } + public class MenuItemWithOptions : MenuItem { public delegate object CurrentValueDelegate(); @@ -68,13 +104,21 @@ namespace PowerControl { this.Selectable = true; } + public override void Update() { if (CurrentValue != null) { var result = CurrentValue(); if (result != null) + { ActiveOption = result; + Visible = true; + } + else + { + Visible = false; + } } if (OptionsValues != null)