Пример #1
0
        private static void SetUpViewModel(string title, object content, ModalButtons buttons)
        {
            var vm = (IModalViewModel)ModalView.DataContext;

            vm.ModalTitle   = title;
            vm.ModalContent = content;
            vm.Buttons      = buttons;
        }
Пример #2
0
        /// <summary>
        /// Shows the modal to the main window.
        /// </summary>
        /// <param name="title">Modal title.</param>
        /// <param name="content">Modal content.</param>
        /// <param name="buttons">Modal buttons to be shown.</param>
        /// <returns>Modal dialog result.</returns>
        public static async Task <ModalResult> Show(string title, object content, ModalButtons buttons)
        {
            await WaitForClose();

            _open = true;
            SetUpViewModel(title, content, buttons);

            await Dispatcher.UIThread.InvokeAsync(async() =>
            {
                ModalAttacher.Attach(ModalView);
                await WaitForClose();
            });

            return(((IModalViewModel)ModalView.DataContext).CurrentResult);
        }
Пример #3
0
 public void ShowDialog(string text, ModalButtons mb)
 {
     isActive = true;
     Text     = text;
     Buttons  = mb;
 }
Пример #4
0
 public void ShowDialog(string text)
 {
     isActive = true;
     Text     = text;
     Buttons  = ModalButtons.OK;
 }
Пример #5
0
        /// <summary>
        /// Shows a MessageBox on screen.
        /// </summary>
        /// <param name="message">Message</param>
        /// <param name="title">Title</param>
        /// <param name="buttons">MessageBoxButtons constant.</param>
        /// <returns></returns>
        public ModalResult Show(string message, string title, ModalButtons buttons)
        {
            _window     = Glide.MainWindow;
            _result     = ModalResult.None;
            _resetEvent = new ManualResetEvent(false);

            while (_msgBox.NumChildren > 0)
            {
                _msgBox.RemoveChildAt(0);
            }

            Update(message, title);

            Button abortBtn, okBtn, cancelBtn, retryBtn, ignoreBtn, yesBtn, noBtn;
            int    startX;
            int    buttonY = _msgBox.Height - 32 - 10;

            switch (buttons)
            {
            case ModalButtons.Ok:
                okBtn           = new Button("okBtn", 255, (_msgBox.Width - 50) / 2, buttonY, 50, 32);
                okBtn.Text      = "Ok";
                okBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                okBtn.TapEvent += new OnTap(okBtn_TapEvent);
                _msgBox.AddChild(okBtn);
                break;

            case ModalButtons.OkCancel:
                startX = (_msgBox.Width - (50 + 5 + 70)) / 2;

                okBtn           = new Button("okBtn", 255, startX, buttonY, 50, 32);
                okBtn.Text      = "Ok";
                okBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                okBtn.TapEvent += new OnTap(okBtn_TapEvent);
                _msgBox.AddChild(okBtn);

                cancelBtn           = new Button("cancelBtn", 255, okBtn.X + okBtn.Width + 5, buttonY, 70, 32);
                cancelBtn.Text      = "Cancel";
                cancelBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                cancelBtn.TapEvent += new OnTap(cancelBtn_TapEvent);
                _msgBox.AddChild(cancelBtn);
                break;

            case ModalButtons.RetryCancel:
                startX = (_msgBox.Width - (60 + 5 + 70)) / 2;

                retryBtn           = new Button("retryBtn", 255, startX, buttonY, 60, 32);
                retryBtn.Text      = "Retry";
                retryBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                retryBtn.TapEvent += new OnTap(retryBtn_TapEvent);
                _msgBox.AddChild(retryBtn);

                cancelBtn           = new Button("cancelBtn", 255, retryBtn.X + retryBtn.Width + 5, buttonY, 70, 32);
                cancelBtn.Text      = "Cancel";
                cancelBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                cancelBtn.TapEvent += new OnTap(cancelBtn_TapEvent);
                _msgBox.AddChild(cancelBtn);
                break;

            case ModalButtons.AbortRetryIgnore:
                startX = (_msgBox.Width - (60 + 5 + 60 + 5 + 70)) / 2;

                abortBtn           = new Button("abortBtn", 255, startX, buttonY, 60, 32);
                abortBtn.Text      = "Abort";
                abortBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                abortBtn.TapEvent += new OnTap(abortBtn_TapEvent);
                _msgBox.AddChild(abortBtn);

                retryBtn           = new Button("retryBtn", 255, abortBtn.X + abortBtn.Width + 5, buttonY, 60, 32);
                retryBtn.Text      = "Retry";
                retryBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                retryBtn.TapEvent += new OnTap(retryBtn_TapEvent);
                _msgBox.AddChild(retryBtn);

                ignoreBtn           = new Button("ignoreBtn", 255, retryBtn.X + retryBtn.Width + 5, buttonY, 70, 32);
                ignoreBtn.Text      = "Ignore";
                ignoreBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                ignoreBtn.TapEvent += new OnTap(ignoreBtn_TapEvent);
                _msgBox.AddChild(ignoreBtn);
                break;

            case ModalButtons.YesNo:
                startX = (_msgBox.Width - (55 + 5 + 60)) / 2;

                yesBtn           = new Button("yesBtn", 255, startX, buttonY, 55, 32);
                yesBtn.Text      = "Yes";
                yesBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                yesBtn.TapEvent += new OnTap(yesBtn_TapEvent);
                _msgBox.AddChild(yesBtn);

                noBtn           = new Button("noBtn", 255, yesBtn.X + yesBtn.Width + 5, buttonY, 50, 32);
                noBtn.Text      = "No";
                noBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                noBtn.TapEvent += new OnTap(noBtn_TapEvent);
                _msgBox.AddChild(noBtn);
                break;

            case ModalButtons.YesNoCancel:
                startX = (_msgBox.Width - (55 + 5 + 50 + 5 + 70)) / 2;

                yesBtn           = new Button("yesBtn", 255, startX, buttonY, 55, 32);
                yesBtn.Text      = "Yes";
                yesBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                yesBtn.TapEvent += new OnTap(yesBtn_TapEvent);
                _msgBox.AddChild(yesBtn);

                noBtn           = new Button("noBtn", 255, yesBtn.X + yesBtn.Width + 5, buttonY, 50, 32);
                noBtn.Text      = "No";
                noBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                noBtn.TapEvent += new OnTap(noBtn_TapEvent);
                _msgBox.AddChild(noBtn);

                cancelBtn           = new Button("cancelBtn", 255, noBtn.X + noBtn.Width + 5, buttonY, 70, 32);
                cancelBtn.Text      = "Cancel";
                cancelBtn.Font      = FontManager.GetFont(FontManager.FontType.droid_reg11);
                cancelBtn.TapEvent += new OnTap(cancelBtn_TapEvent);
                _msgBox.AddChild(cancelBtn);
                break;
            }

            _forceClose           = false;
            _touchThread          = new Thread(TouchThread);
            _touchThread.Priority = ThreadPriority.AboveNormal;
            _touchThread.Start();

            Open();

            _resetEvent.WaitOne();

            Close();

            return(_result);
        }
Пример #6
0
        /// <summary>
        /// Shows a MessageBox on screen.
        /// </summary>
        /// <param name="message">Message</param>
        /// <param name="title">Title</param>
        /// <param name="buttons">MessageBoxButtons constant.</param>
        /// <returns></returns>
        public ModalResult Show(string message, string title, ModalButtons buttons)
        {
            _window = Glide.MainWindow;
            _result = ModalResult.None;
            _resetEvent = new ManualResetEvent(false);

            while (_msgBox.NumChildren > 0)
                _msgBox.RemoveChildAt(0);

            Update(message, title);

            Button abortBtn, okBtn, cancelBtn, retryBtn, ignoreBtn, yesBtn, noBtn;
            int startX;
            int buttonY = _msgBox.Height - 32 - 10;

            switch (buttons)
            {
                case ModalButtons.Ok:
                    okBtn = new Button("okBtn", 255, (_msgBox.Width - 50) / 2, buttonY, 50, 32);
                    okBtn.Text = "Ok";
                    okBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    okBtn.TapEvent += new OnTap(okBtn_TapEvent);
                    _msgBox.AddChild(okBtn);
                    break;

                case ModalButtons.OkCancel:
                    startX = (_msgBox.Width - (50 + 5 + 70)) / 2;

                    okBtn = new Button("okBtn", 255, startX, buttonY, 50, 32);
                    okBtn.Text = "Ok";
                    okBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    okBtn.TapEvent += new OnTap(okBtn_TapEvent);
                    _msgBox.AddChild(okBtn);

                    cancelBtn = new Button("cancelBtn", 255, okBtn.X + okBtn.Width + 5, buttonY, 70, 32);
                    cancelBtn.Text = "Cancel";
                    cancelBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    cancelBtn.TapEvent += new OnTap(cancelBtn_TapEvent);
                    _msgBox.AddChild(cancelBtn);
                    break;

                case ModalButtons.RetryCancel:
                    startX = (_msgBox.Width - (60 + 5 + 70)) / 2;

                    retryBtn = new Button("retryBtn", 255, startX, buttonY, 60, 32);
                    retryBtn.Text = "Retry";
                    retryBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    retryBtn.TapEvent += new OnTap(retryBtn_TapEvent);
                    _msgBox.AddChild(retryBtn);

                    cancelBtn = new Button("cancelBtn", 255, retryBtn.X + retryBtn.Width + 5, buttonY, 70, 32);
                    cancelBtn.Text = "Cancel";
                    cancelBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    cancelBtn.TapEvent += new OnTap(cancelBtn_TapEvent);
                    _msgBox.AddChild(cancelBtn);
                    break;

                case ModalButtons.AbortRetryIgnore:
                    startX = (_msgBox.Width - (60 + 5 + 60 + 5 + 70)) / 2;

                    abortBtn = new Button("abortBtn", 255, startX, buttonY, 60, 32);
                    abortBtn.Text = "Abort";
                    abortBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    abortBtn.TapEvent += new OnTap(abortBtn_TapEvent);
                    _msgBox.AddChild(abortBtn);

                    retryBtn = new Button("retryBtn", 255, abortBtn.X + abortBtn.Width + 5, buttonY, 60, 32);
                    retryBtn.Text = "Retry";
                    retryBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    retryBtn.TapEvent += new OnTap(retryBtn_TapEvent);
                    _msgBox.AddChild(retryBtn);

                    ignoreBtn = new Button("ignoreBtn", 255, retryBtn.X + retryBtn.Width + 5, buttonY, 70, 32);
                    ignoreBtn.Text = "Ignore";
                    ignoreBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    ignoreBtn.TapEvent += new OnTap(ignoreBtn_TapEvent);
                    _msgBox.AddChild(ignoreBtn);
                    break;

                case ModalButtons.YesNo:
                    startX = (_msgBox.Width - (55 + 5 + 60)) / 2;

                    yesBtn = new Button("yesBtn", 255, startX, buttonY, 55, 32);
                    yesBtn.Text = "Yes";
                    yesBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    yesBtn.TapEvent += new OnTap(yesBtn_TapEvent);
                    _msgBox.AddChild(yesBtn);

                    noBtn = new Button("noBtn", 255, yesBtn.X + yesBtn.Width + 5, buttonY, 50, 32);
                    noBtn.Text = "No";
                    noBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    noBtn.TapEvent += new OnTap(noBtn_TapEvent);
                    _msgBox.AddChild(noBtn);
                    break;

                case ModalButtons.YesNoCancel:
                    startX = (_msgBox.Width - (55 + 5 + 50 + 5 + 70)) / 2;

                    yesBtn = new Button("yesBtn", 255, startX, buttonY, 55, 32);
                    yesBtn.Text = "Yes";
                    yesBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    yesBtn.TapEvent += new OnTap(yesBtn_TapEvent);
                    _msgBox.AddChild(yesBtn);

                    noBtn = new Button("noBtn", 255, yesBtn.X + yesBtn.Width + 5, buttonY, 50, 32);
                    noBtn.Text = "No";
                    noBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    noBtn.TapEvent += new OnTap(noBtn_TapEvent);
                    _msgBox.AddChild(noBtn);

                    cancelBtn = new Button("cancelBtn", 255, noBtn.X + noBtn.Width + 5, buttonY, 70, 32);
                    cancelBtn.Text = "Cancel";
                    cancelBtn.Font = FontManager.GetFont(FontManager.FontType.droid_reg11);
                    cancelBtn.TapEvent += new OnTap(cancelBtn_TapEvent);
                    _msgBox.AddChild(cancelBtn);
                    break;
            }

            _forceClose = false;
            _touchThread = new Thread(TouchThread);
            _touchThread.Priority = ThreadPriority.AboveNormal;
            _touchThread.Start();

            Open();

            _resetEvent.WaitOne();

            Close();

            return _result;
        }