public void Handle(MessageBoxEvent message)
        {
            // Check, if we need to dispatch
            if (!Application.Current.Dispatcher.CheckAccess())
            {
                var waitHandle = new AutoResetEvent(false);
                Application.Current.Dispatcher.Invoke(() =>
                {
                    Handle(message);
                    waitHandle.Set();
                });

                waitHandle.WaitOne();
                return;
            }

            var topWindow = Application.Current.Windows.Count - 1;

            message.MessageBoxResult = MessageBox.Show(
                Application.Current.Windows[topWindow],
                message.MessageText,
                message.MessageTitle,
                message.Buttons,
                message.Icon);
        }
 private void AdjustEventContent(MessageBoxEvent boxEvent)
 {
     boxEvent.EventContent =
         boxEventTypeRegistry.IsSupportedEventType(boxEvent.EventType)
             ? Serializer.NormalizeDeserializedObjectToType(boxEvent.EventContent, boxEventTypeRegistry.GetEventContentType(boxEvent.EventType))
             : null;
 }
Beispiel #3
0
    public void AddMessageBox(string text, float messageSpeed)
    {
        var e = new MessageBoxEvent(text);

        if (gameEvents.Count > 0)
            gameEvents.Peek().NextEvent = e;

        gameEvents.Enqueue(e);
    }
Beispiel #4
0
 void OnSureUpdateClick(MessageBoxEvent evt)
 {
     if (evt == MessageBoxEvent.Ok)
     {
         StartCoroutine(GoToUpdateResource(CachUpdateInfo, CachCheckData));
     }
     else
     {
         Application.Quit();
     }
 }
Beispiel #5
0
        private static void ShowMessageBox(MessageBoxEvent messageBox)
        {
            var result = MessageBox.Show(
                owner: messageBox.Owner as Window,
                messageBoxText: messageBox.MessageBoxText,
                caption: messageBox.Caption,
                button: messageBox.MessageBoxButton,
                icon: messageBox.MessageBoxImage
                );

            messageBox.Result = result;
        }
Beispiel #6
0
        private void viewModel_ShowMessageBox(object sender, DataEventArgs <MessageBoxEvent> e)
        {
            if (e == null)
            {
                throw new ArgumentNullException("e");
            }

            MessageBoxEvent messageBoxEvent = e.Data;

            messageBoxEvent.Owner = this;

            _viewModel.EventAggregator.Publish(messageBoxEvent);
        }
Beispiel #7
0
        /// <summary>Shows a message box.</summary>
        /// <param name="messageBoxText">The message box text.</param>
        /// <param name="caption">The caption.</param>
        /// <param name="buttons">The buttons.</param>
        /// <param name="image">The image.</param>
        /// <returns>The message box result.</returns>
        protected MessageBoxResult MessageBox(
            string messageBoxText,
            string caption,
            MessageBoxButton buttons,
            MessageBoxImage image
            )
        {
            MessageBoxEvent messageBox = new MessageBoxEvent
            {
                MessageBoxText   = messageBoxText,
                Caption          = caption,
                MessageBoxButton = buttons,
                MessageBoxImage  = image
            };

            return(MessageBox(messageBox));
        }
Beispiel #8
0
        public async Task UnloadedAsync()
        {
            if (UnitOfWork.HasChanges())
            {
                var messageBoxEvent = new MessageBoxEvent("Question", "Save changes?", "Yes", "No");
                await EventAggregator.PublishAsync(messageBoxEvent);

                if (messageBoxEvent.Result)
                {
                    await SaveChangesAsync();
                }
                else
                {
                    await OnDoNotSaveChangesAsync();
                }
            }

            await OnUnloadedAsync();
        }
Beispiel #9
0
        /// <summary>Messages the box.</summary>
        /// <param name="messageBoxEvent">The message box event.</param>
        /// <returns>The message box result.</returns>
        protected MessageBoxResult MessageBox(MessageBoxEvent messageBoxEvent)
        {
            if (messageBoxEvent == null)
            {
                throw new ArgumentException("messageBoxEvent");
            }

            var handler = ShowMessageBox;

            if (handler != null)
            {
                handler(this, new DataEventArgs <MessageBoxEvent>(messageBoxEvent));
            }
            else
            {
                throw new Exception("'ShowMessageBox' event is not subscribed to.");
            }

            return(messageBoxEvent.Result);
        }
Beispiel #10
0
        /// <summary>
        /// Determines whether the specified set of <see cref="MessageBoxButtons" /> can raise the specified <see cref="MessageBoxEvent" />.
        /// </summary>
        /// <param name="buttons">A <see cref="MessageBoxButtons" /> value.</param>
        /// <param name="e">A <see cref="MessageBoxEvent" /> event.</param>
        /// <returns>
        /// <see langword="true" />, if the specified set of <see cref="MessageBoxButtons" /> can raise the specified <see cref="MessageBoxEvent" />;
        /// otherwise, <see langword="false" />.
        /// </returns>
        public static bool HasEvent(MessageBoxButtons buttons, MessageBoxEvent e)
        {
            switch (e)
            {
            case MessageBoxEvent.Ok: return(CSharp.EqualsAny(buttons, MessageBoxButtons.Ok, MessageBoxButtons.OkCancel));

            case MessageBoxEvent.Cancel: return(CSharp.EqualsAny(buttons, MessageBoxButtons.OkCancel, MessageBoxButtons.YesNoCancel, MessageBoxButtons.RetryCancel));

            case MessageBoxEvent.Yes: return(CSharp.EqualsAny(buttons, MessageBoxButtons.YesNo, MessageBoxButtons.YesNoCancel));

            case MessageBoxEvent.No: return(CSharp.EqualsAny(buttons, MessageBoxButtons.YesNo, MessageBoxButtons.YesNoCancel));

            case MessageBoxEvent.Abort: return(CSharp.EqualsAny(buttons, MessageBoxButtons.AbortRetryIgnore));

            case MessageBoxEvent.Retry: return(CSharp.EqualsAny(buttons, MessageBoxButtons.AbortRetryIgnore, MessageBoxButtons.RetryCancel));

            case MessageBoxEvent.Ignore: return(CSharp.EqualsAny(buttons, MessageBoxButtons.AbortRetryIgnore));

            default: throw new InvalidEnumArgumentException();
            }
        }
Beispiel #11
0
        private async Task OnMessageBoxEvent(MessageBoxEvent obj)
        {
            var result = await DisplayAlert(obj.Title, obj.Message, obj.Accept, obj.Cancel);

            obj.Result = result;
        }
Beispiel #12
0
 public static void InvokeMessageBoxEvent(MessageBoxEventArgs args)
 {
     MessageBoxEvent?.Invoke(args);
 }
Beispiel #13
0
        private static void ShowMessageBox(MessageBoxEvent messageBox)
        {
            var result = MessageBox.Show(
                owner: messageBox.Owner as Window,
                messageBoxText: messageBox.MessageBoxText,
                caption: messageBox.Caption,
                button: messageBox.MessageBoxButton,
                icon: messageBox.MessageBoxImage
            );

            messageBox.Result = result;
        }
Beispiel #14
0
 public static void Add(string appendStr)
 {
     MessageBuilder = appendStr;
     MessageBoxEvent?.Invoke();
 }
Beispiel #15
0
        private bool ValidateProfileName()
        {
            string message;

            if (!Profile.ValidateProfileName(out message))
            {
                MessageBoxEvent messageBoxEvent = new MessageBoxEvent
                {
                    MessageBoxText   = message,
                    Caption          = "New profile",
                    MessageBoxButton = MessageBoxButton.OK,
                    MessageBoxImage  = MessageBoxImage.Information
                };

                MessageBox(messageBoxEvent);
                return(false);
            }

            // Check if file exists
            string fileName = Profile.GetProfileFileName();

            if (File.Exists(fileName) && !_confirmedOverwrite)
            {
                // TODO: Localize
                MessageBoxEvent messageBoxEvent = new MessageBoxEvent
                {
                    MessageBoxText   = string.Format("'{0}' exists. Overwrite?", fileName),
                    Caption          = "New profile",
                    MessageBoxButton = MessageBoxButton.YesNo,
                    MessageBoxImage  = MessageBoxImage.Question
                };

                var result = MessageBox(messageBoxEvent);

                if (result != MessageBoxResult.Yes)
                {
                    return(false);
                }

                _confirmedOverwrite = true;
            }

            // Check if able to create file
            if (!File.Exists(fileName))
            {
                try
                {
                    File.WriteAllBytes(fileName, new byte[0]);
                }
                catch
                {
                    // TODO: Localize
                    MessageBoxEvent messageBoxEvent = new MessageBoxEvent
                    {
                        MessageBoxText   = string.Format("'{0}' cannot be created.", fileName),
                        Caption          = "New profile",
                        MessageBoxButton = MessageBoxButton.OK,
                        MessageBoxImage  = MessageBoxImage.Information
                    };

                    MessageBox(messageBoxEvent);

                    return(false);
                }

                File.Delete(fileName);
            }

            return(true);
        }