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); }