private void UpdateMenu(bool beforeMenuOpening) { List <ICommand> ChangedCommandList = PluginManager.GetChangedCommands(beforeMenuOpening); foreach (ICommand Command in ChangedCommandList) { // Update changed menus with their new state. bool MenuIsVisible = PluginManager.GetMenuIsVisible(Command); if (MenuIsVisible) { TaskbarIcon.SetMenuIsVisible(Command, true); TaskbarIcon.SetMenuHeader(Command, PluginManager.GetMenuHeader(Command)); TaskbarIcon.SetMenuIsEnabled(Command, PluginManager.GetMenuIsEnabled(Command)); Bitmap MenuIcon = PluginManager.GetMenuIcon(Command); if (MenuIcon != null) { TaskbarIcon.SetMenuIsChecked(Command, false); TaskbarIcon.SetMenuIcon(Command, MenuIcon); } else { TaskbarIcon.SetMenuIsChecked(Command, PluginManager.GetMenuIsChecked(Command)); } } else { TaskbarIcon.SetMenuIsVisible(Command, false); } } }