public void CloseQuitGameDialog() { if (quitGameDialogControl == null) { return; } quitGameDialogControl.CloseDialog(); quitGameDialogControl = null; // Must not immediately focus next button or it will trigger as well StartCoroutine(CoroutineUtils.ExecuteAfterDelayInFrames(1, () => quitButton.Focus())); }
public void OpenQuitGameDialog() { if (quitGameDialogControl != null) { return; } VisualElement visualElement = quitGameDialogUi.CloneTree(); visualElement.AddToClassList("overlay"); uiDocument.rootVisualElement.Add(visualElement); quitGameDialogControl = injector .WithRootVisualElement(visualElement) .CreateAndInject <MessageDialogControl>(); quitGameDialogControl.Title = TranslationManager.GetTranslation(R.Messages.mainScene_quitDialog_title); quitGameDialogControl.Message = TranslationManager.GetTranslation(R.Messages.mainScene_quitDialog_message); quitGameDialogControl.AddButton(TranslationManager.GetTranslation(R.Messages.no), () => CloseQuitGameDialog()); Button yesButton = quitGameDialogControl.AddButton(TranslationManager.GetTranslation(R.Messages.yes), () => ApplicationUtils.QuitOrStopPlayMode()); yesButton.Focus(); }