protected void LoadDialogSettings() { // Some models persist settings, this is an optional feature IDialogSettings modelSettings = this as IDialogSettings; IVisualStudioIntegration visualStudioIntegration = Context.Items.GetProperty <IVisualStudioIntegration>(typeof(IVisualStudioIntegration)); if (modelSettings != null && visualStudioIntegration != null) { // The project settings will be null if the project doesn't implement settings (project systems are // extensible). IProjectSettings projectSettings = visualStudioIntegration.GetProjectSettings(Context.ActiveProject); if (projectSettings != null) { try { modelSettings.LoadDialogSettings(projectSettings); } catch (Exception ex) { // We don't want to make it a blocking issue if we're unable to load settings. Debug.Fail("Failed to load settings\r\n" + ex.Message); } } } }
public async Task HideDialogAsync(object context, IDialogInstance dialog, IDialogSettings settings = null) { // Get the current dialog var metroDialog = await Instance.GetCurrentDialogAsync <BaseMetroDialog>(context); // Perform a very simply check to see if the correct dialog is returned, then hide it if (metroDialog is not null && metroDialog.Title == dialog.Title) { await Instance.HideMetroDialogAsync(context, metroDialog, settings?.ToMetroDialogSettings()); } }
public AGSDialogFactory(Resolver resolver, IGameState gameState, IUIFactory ui, IObjectFactory obj, IBrushLoader brushloader, IFontFactory fontLoader, IDialogSettings defaults) { _resolver = resolver; _brushLoader = brushloader; _fontLoader = fontLoader; _gameState = gameState; _ui = ui; _object = obj; _defaults = defaults; }
protected virtual IDictionary <string, object> ConvertToDictionary(IDialogSettings settings) { var dictionary = new Dictionary <string, object>(); // Only add non-default values to the dictionary AddNonDefault(nameof(Window.Width), settings.Width, dictionary); AddNonDefault(nameof(Window.MinWidth), settings.MinWidth, dictionary); AddNonDefault(nameof(Window.Height), settings.Height, dictionary); AddNonDefault(nameof(Window.MinHeight), settings.MinHeight, dictionary); dictionary.Add(nameof(Window.ResizeMode), settings.ResizeMode); dictionary.Add(nameof(Window.WindowStartupLocation), settings.WindowStartupLocation); return(dictionary); }
/// <summary> /// Convert <see cref="IDialogSettings"/> to <see cref="MetroDialogSettings"/> /// </summary> /// <param name="value"></param> /// <returns>An equivalent <see cref="MetroDialogSettings"/> instance</returns> internal static MetroDialogSettings ToMetroDialogSettings(this IDialogSettings value) { return(new MetroDialogSettings() { AffirmativeButtonText = value.AffirmativeButtonText, AnimateHide = value.AnimateHide, AnimateShow = value.AnimateShow, CancellationToken = value.CancellationToken, DefaultButtonFocus = value.DefaultButtonFocus.ToMetroDialogResult(), DefaultText = value.DefaultText, DialogMessageFontSize = value.DialogMessageFontSize, DialogResultOnCancel = value.DialogResultOnCancel.ToMetroDialogResult(), DialogTitleFontSize = value.DialogTitleFontSize, FirstAuxiliaryButtonText = value.FirstAuxiliaryButtonText, MaximumBodyHeight = value.MaximumBodyHeight, NegativeButtonText = value.NegativeButtonText, SecondAuxiliaryButtonText = value.SecondAuxiliaryButtonText }); }
protected void SaveDialogSettings() { IDialogSettings dialogSetting = this as IDialogSettings; IVisualStudioIntegration property = this.Context.Items.GetProperty <IVisualStudioIntegration>(typeof(IVisualStudioIntegration)); if (dialogSetting != null && property != null) { IProjectSettings projectSettings = property.GetProjectSettings(this.Context.ActiveProject); if (projectSettings != null) { try { dialogSetting.SaveDialogSettings(projectSettings); } catch (Exception exception) { } } } }
/// <inheritdoc cref="DialogManager.ShowMessageAsync(object, string, string, DialogStyle, IDialogSettings)"/> /// <param name="timeout">The time, in millseconds, until the dialog is automatically closed</param> /// <returns>The <see cref="DialogResult"/> selected by the user, or <see cref="DialogResult.Canceled"/> /// if the dialog is closed by <see cref="CancellationToken"/></returns> public static async Task <DialogResult> ShowMessageWithTimeoutAsync( this IDialogManager value, object context, string title, string message, DialogStyle style = DialogStyle.Affirmative, IDialogSettings settings = null, int timeout = 5000) { using (var linkedSource = CancellationTokenSource.CreateLinkedTokenSource(settings.CancellationToken)) { settings.CancellationToken = linkedSource.Token; linkedSource.CancelAfter(timeout); // Supplying a CancellationToken to DialogSettings currently results in threading access error // See: https://github.com/MahApps/MahApps.Metro/issues/3214 // For the time being the token must be removed, it will therefore be unable to close the dialog settings.CancellationToken = default; return(await value.ShowMessageAsync(context, title, message, style, settings)); } }
public AGSDefaultsSettings(IDefaultFonts fonts, IDialogSettings dialog) { Fonts = fonts; Dialog = dialog; }
public void TestInitialize() { _modals = Substitute.For <IModals>(); _settings = Substitute.For <IDialogSettings>(); }
public bool?ShowQuestion(IDialogSettings settings) { _questionViewModel.ApplySettings(settings); return(_modals.Show <QuestionModalViewModel>()); }
public virtual Task <bool?> ShowDialog <TChoice>(IDialogViewModel <TChoice> dialogViewModel, IDialogSettings settings) { OnUIThread(async() => await _windowManager.ShowDialogAsync(dialogViewModel, null, ConvertToDictionary(settings))); return(Task.FromResult(dialogViewModel.DialogResult)); }
public DialogResult ShowModalMessageExternal(object context, string title, string message, DialogStyle style = DialogStyle.Affirmative, IDialogSettings settings = null) => Instance.ShowModalMessageExternal( context, title, message, style.ToMetroDialogStyle(), settings?.ToMetroDialogSettings()).ToDialogResult();
public async Task <DialogResult> ShowMessageAsync(object context, string title, string message, DialogStyle style = DialogStyle.Affirmative, IDialogSettings settings = null) { var result = await Instance.ShowMessageAsync( context, title, message, style.ToMetroDialogStyle(), settings?.ToMetroDialogSettings()); return(result.ToDialogResult()); }
public string ShowModalInputExternal(object context, string title, string message, IDialogSettings settings = null) => Instance.ShowModalInputExternal(context, title, message, settings?.ToMetroDialogSettings());
public Task <string> ShowInputAsync(object context, string title, string message, IDialogSettings settings = null) => Instance.ShowInputAsync(context, title, message, settings?.ToMetroDialogSettings());
/// <summary> /// Initializes a new <see cref="DialogInstance"/>. /// </summary> /// <param name="settings">The settings for the message dialog.</param> public DialogInstance(IDialogSettings settings) => DialogSettings = settings;