/// <summary> /// The view wants us to return a list of menu descriptions for the /// main menu. /// </summary> private void PopulateMainMenu() { List <MenuDescriptionArgs> descriptions = new List <MenuDescriptionArgs>(); // Go look for all [UserInterfaceAction] foreach (MethodInfo method in typeof(MainMenu).GetMethods()) { MainMenuAttribute mainMenuName = ReflectionUtilities.GetAttribute(method, typeof(MainMenuAttribute), false) as MainMenuAttribute; if (mainMenuName != null) { MenuDescriptionArgs desc = new MenuDescriptionArgs(); desc.Name = mainMenuName.MenuName; desc.ResourceNameForImage = "ApsimNG.Resources.MenuImages." + desc.Name + ".png"; EventHandler handler = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), this.mainMenu, method); desc.OnClick = handler; descriptions.Add(desc); } } // Show version label at right side of toolstrip MenuDescriptionArgs versionItem = new MenuDescriptionArgs(); versionItem.Name = "Custom Build"; versionItem.RightAligned = true; Version version = Assembly.GetExecutingAssembly().GetName().Version; if (version.Major > 0) { versionItem.Name = "Official Build"; versionItem.ToolTip = "Version: " + version.ToString(); } view.ToolStrip.Populate(descriptions); }
/// <summary> /// Fetch hotkey metadata from the main menu. /// </summary> public IEnumerable <IHotkey> GetHotkeys() { Type menuType = typeof(MainMenu); BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance; foreach (MethodInfo method in menuType.GetMethods(flags)) { MainMenuAttribute attribute = method.GetCustomAttribute <MainMenuAttribute>(); if (attribute == null) { continue; } yield return(new Hotkey(attribute.Hotkey, attribute.MenuName)); } }
/// <summary> /// The view wants us to return a list of menu descriptions for the /// main menu. /// </summary> private void PopulateMainMenu() { List <MenuDescriptionArgs> descriptions = new List <MenuDescriptionArgs>(); // Go look for all [UserInterfaceAction] foreach (MethodInfo method in typeof(MainMenu).GetMethods()) { MainMenuAttribute mainMenuName = ReflectionUtilities.GetAttribute(method, typeof(MainMenuAttribute), false) as MainMenuAttribute; if (mainMenuName != null) { MenuDescriptionArgs desc = new MenuDescriptionArgs(); desc.Name = mainMenuName.MenuName; desc.ResourceNameForImage = "UserInterface.Resources.MenuImages." + desc.Name + ".png"; EventHandler handler = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), this.mainMenu, method); desc.OnClick = handler; descriptions.Add(desc); } } this.view.PopulateMainToolStrip(descriptions); string labelText = "Custom Build"; string labelToolTip = null; // Get assembly title. object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); if (attributes.Length > 0) { AssemblyTitleAttribute titleAttribute = attributes[0] as AssemblyTitleAttribute; string[] titleBits = titleAttribute.Title.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (titleBits.Length == 2 && titleBits[1] != "0") { Version version = new Version(Application.ProductVersion); labelText = "Official Build"; labelToolTip = "Version: " + version.Major + "." + version.Minor + "." + version.Build; labelToolTip += "\nGIT hash: " + titleBits[1]; } } this.view.PopulateLabel(labelText, labelToolTip); }
/// <summary> /// The view wants us to return a list of menu descriptions for the /// main menu. /// </summary> private void PopulateMainMenu() { List <MenuDescriptionArgs> descriptions = new List <MenuDescriptionArgs>(); // Go look for all [UserInterfaceAction] foreach (MethodInfo method in typeof(MainMenu).GetMethods()) { MainMenuAttribute mainMenuName = ReflectionUtilities.GetAttribute(method, typeof(MainMenuAttribute), false) as MainMenuAttribute; if (mainMenuName != null) { MenuDescriptionArgs desc = new MenuDescriptionArgs(); desc.Name = mainMenuName.MenuName; desc.ResourceNameForImage = "ApsimNG.Resources.MenuImages." + desc.Name + ".png"; EventHandler handler = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), this.mainMenu, method); desc.OnClick = handler; descriptions.Add(desc); } } this.view.PopulateMainToolStrip(descriptions); string labelText = "Custom Build"; string labelToolTip = null; // Get assembly title. Version version = Assembly.GetExecutingAssembly().GetName().Version; if (version.Major > 0) { labelText = "Official Build"; labelToolTip = "Version: " + version.ToString(); } this.view.PopulateLabel(labelText, labelToolTip); }