Example #1
0
        /// <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);
        }
Example #2
0
        /// <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));
            }
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }