Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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());
            }
        }
Пример #3
0
 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;
 }
Пример #4
0
        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);
        }
Пример #5
0
 /// <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
     });
 }
Пример #6
0
        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)
                    {
                    }
                }
            }
        }
Пример #7
0
        /// <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));
            }
        }
Пример #8
0
 public AGSDefaultsSettings(IDefaultFonts fonts, IDialogSettings dialog)
 {
     Fonts  = fonts;
     Dialog = dialog;
 }
Пример #9
0
 public void TestInitialize()
 {
     _modals   = Substitute.For <IModals>();
     _settings = Substitute.For <IDialogSettings>();
 }
Пример #10
0
 public bool?ShowQuestion(IDialogSettings settings)
 {
     _questionViewModel.ApplySettings(settings);
     return(_modals.Show <QuestionModalViewModel>());
 }
Пример #11
0
        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));
        }
Пример #12
0
 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();
Пример #13
0
        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());
        }
Пример #14
0
 public string ShowModalInputExternal(object context, string title, string message, IDialogSettings settings = null)
 => Instance.ShowModalInputExternal(context, title, message, settings?.ToMetroDialogSettings());
Пример #15
0
 public Task <string> ShowInputAsync(object context, string title, string message, IDialogSettings settings = null)
 => Instance.ShowInputAsync(context, title, message, settings?.ToMetroDialogSettings());
Пример #16
0
 /// <summary>
 /// Initializes a new <see cref="DialogInstance"/>.
 /// </summary>
 /// <param name="settings">The settings for the message dialog.</param>
 public DialogInstance(IDialogSettings settings)
 => DialogSettings = settings;