Example #1
0
        private void ValidateMenuBeforeStarting(Menu menu)
        {
            //Can't start a menu if there's no activity running.
            if (!HasActivityRunning())
            {
                throw new Exception("Unable to start Menu : no Activity is currently running.");
            }

            //Can't start a menu if it's allways visible
            if (menu.IsAlwaysVisible())
            {
                throw new Exception("Unable to start Menu : it is allways visible.");
            }

            //Can't start menu if it's not part of the current activity.
            StackedActivity currentActivity = GetCurrentActivity();
            StackedMenu     stackedMenu     = currentActivity.GetMenu(menu);

            if (stackedMenu == null)
            {
                throw new Exception("Unable to start Menu : it is not part of the current Activity.");
            }

            //Can't start menu if it's allready started
            if (menuStack.Contains(stackedMenu))
            {
                throw new Exception("Unable to start Menu : it is already running.");
            }
        }
        private void PushMenu(Menu menu, object[] parameters)
        {
            if (menu.IsAlwaysVisible())
            {
                throw new ArgumentException("Unable to start Menu : menu is allways visible.");
            }
            if (!HasActivityRunning())
            {
                throw new ArgumentException("Unable to start Menu : no activity running.");
            }
            StackedActivity currentActivity = GetCurrentActivity();
            StackedMenu     stackedMenu     = currentActivity.GetMenu(menu);

            if (stackedMenu == null)
            {
                throw new ArgumentException("Unable to start Menu : menu is not part of the current activity.");
            }
            stackedMenu.SetParameters(parameters);
            menuStack.Push(stackedMenu);
        }