예제 #1
0
 /// <summary>
 /// Set the dialogs start position when given.
 /// Otherwise center the dialog on the current screen.
 /// </summary>
 /// <param name="flexibleMessageBoxForm">The FlexibleMessageBox dialog.</param>
 /// <param name="owner">The owner.</param>
 private static void SetDialogStartPosition(FlexibleMessageBoxForm flexibleMessageBoxForm, IWin32Window owner)
 {
     //If no owner given: Center on current screen
     if (owner == null)
     {
         var screen = Screen.FromPoint(Cursor.Position);
         flexibleMessageBoxForm.StartPosition = FormStartPosition.Manual;
         flexibleMessageBoxForm.Left          = screen.Bounds.Left + screen.Bounds.Width / 2 - flexibleMessageBoxForm.Width / 2;
         flexibleMessageBoxForm.Top           = screen.Bounds.Top + screen.Bounds.Height / 2 - flexibleMessageBoxForm.Height / 2;
     }
 }
예제 #2
0
        /// <summary>
        /// Set dialog buttons visibilities and texts.
        /// Also set a default button.
        /// </summary>
        /// <param name="flexibleMessageBoxForm">The FlexibleMessageBox dialog.</param>
        /// <param name="buttons">The buttons.</param>
        /// <param name="defaultButton">The default button.</param>
        private static void SetDialogButtons(FlexibleMessageBoxForm flexibleMessageBoxForm, MessageBoxButtons buttons, MessageBoxDefaultButton defaultButton)
        {
            //Set the buttons visibilities and texts
            switch (buttons)
            {
            case MessageBoxButtons.AbortRetryIgnore:
                flexibleMessageBoxForm.visibleButtonsCount = 3;

                flexibleMessageBoxForm.button1.Visible      = true;
                flexibleMessageBoxForm.button1.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.ABORT);
                flexibleMessageBoxForm.button1.DialogResult = DialogResult.Abort;

                flexibleMessageBoxForm.button2.Visible      = true;
                flexibleMessageBoxForm.button2.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.RETRY);
                flexibleMessageBoxForm.button2.DialogResult = DialogResult.Retry;

                flexibleMessageBoxForm.button3.Visible      = true;
                flexibleMessageBoxForm.button3.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.IGNORE);
                flexibleMessageBoxForm.button3.DialogResult = DialogResult.Ignore;

                flexibleMessageBoxForm.ControlBox = false;
                break;

            case MessageBoxButtons.OKCancel:
                flexibleMessageBoxForm.visibleButtonsCount = 2;

                flexibleMessageBoxForm.button1.Visible = false;

                flexibleMessageBoxForm.button2.Visible      = true;
                flexibleMessageBoxForm.button2.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.OK);
                flexibleMessageBoxForm.button2.DialogResult = DialogResult.OK;
                flexibleMessageBoxForm.button2.Image        = global::MediboxAssistant.Properties.Resources.Apply_32x32;

                flexibleMessageBoxForm.button3.Visible      = true;
                flexibleMessageBoxForm.button3.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.CANCEL);
                flexibleMessageBoxForm.button3.DialogResult = DialogResult.Cancel;
                flexibleMessageBoxForm.button3.Image        = global::MediboxAssistant.Properties.Resources.Delete_32x32;

                flexibleMessageBoxForm.CancelButton = flexibleMessageBoxForm.button3;
                break;

            case MessageBoxButtons.RetryCancel:
                flexibleMessageBoxForm.visibleButtonsCount = 2;

                flexibleMessageBoxForm.button1.Visible = false;

                flexibleMessageBoxForm.button2.Visible      = true;
                flexibleMessageBoxForm.button2.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.RETRY);
                flexibleMessageBoxForm.button2.DialogResult = DialogResult.Retry;
                flexibleMessageBoxForm.button2.Image        = global::MediboxAssistant.Properties.Resources.Apply_32x32;

                flexibleMessageBoxForm.button3.Visible      = true;
                flexibleMessageBoxForm.button3.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.CANCEL);
                flexibleMessageBoxForm.button3.DialogResult = DialogResult.Cancel;
                flexibleMessageBoxForm.button3.Image        = global::MediboxAssistant.Properties.Resources.Delete_32x32;

                flexibleMessageBoxForm.CancelButton = flexibleMessageBoxForm.button3;
                break;

            case MessageBoxButtons.YesNo:
                flexibleMessageBoxForm.visibleButtonsCount = 2;

                flexibleMessageBoxForm.button1.Visible = false;

                flexibleMessageBoxForm.button2.Visible      = true;
                flexibleMessageBoxForm.button2.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.YES);
                flexibleMessageBoxForm.button2.DialogResult = DialogResult.Yes;
                flexibleMessageBoxForm.button2.Image        = global::MediboxAssistant.Properties.Resources.Apply_32x32;

                flexibleMessageBoxForm.button3.Visible      = true;
                flexibleMessageBoxForm.button3.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.NO);
                flexibleMessageBoxForm.button3.DialogResult = DialogResult.No;
                flexibleMessageBoxForm.button3.Image        = global::MediboxAssistant.Properties.Resources.Delete_32x32;

                flexibleMessageBoxForm.ControlBox = false;
                break;

            case MessageBoxButtons.YesNoCancel:
                flexibleMessageBoxForm.visibleButtonsCount = 3;

                flexibleMessageBoxForm.button1.Visible      = true;
                flexibleMessageBoxForm.button1.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.YES);
                flexibleMessageBoxForm.button1.DialogResult = DialogResult.Yes;
                flexibleMessageBoxForm.button1.Image        = global::MediboxAssistant.Properties.Resources.Apply_32x32;

                flexibleMessageBoxForm.button2.Visible      = true;
                flexibleMessageBoxForm.button2.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.NO);
                flexibleMessageBoxForm.button2.DialogResult = DialogResult.No;
                flexibleMessageBoxForm.button2.Image        = global::MediboxAssistant.Properties.Resources.Delete_32x32;

                flexibleMessageBoxForm.button3.Visible      = true;
                flexibleMessageBoxForm.button3.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.CANCEL);
                flexibleMessageBoxForm.button3.DialogResult = DialogResult.Cancel;
                flexibleMessageBoxForm.button3.Image        = global::MediboxAssistant.Properties.Resources.Delete_32x32;

                flexibleMessageBoxForm.CancelButton = flexibleMessageBoxForm.button3;
                break;

            case MessageBoxButtons.OK:
            default:
                flexibleMessageBoxForm.visibleButtonsCount  = 1;
                flexibleMessageBoxForm.button3.Visible      = true;
                flexibleMessageBoxForm.button3.Text         = flexibleMessageBoxForm.GetButtonText(ButtonID.OK);
                flexibleMessageBoxForm.button3.DialogResult = DialogResult.OK;
                flexibleMessageBoxForm.button3.Image        = global::MediboxAssistant.Properties.Resources.Apply_32x32;

                flexibleMessageBoxForm.button1.Visible = false;
                flexibleMessageBoxForm.button2.Visible = false;

                flexibleMessageBoxForm.CancelButton = flexibleMessageBoxForm.button3;
                break;
            }

            //Set default button (used in FlexibleMessageBoxForm_Shown)
            flexibleMessageBoxForm.defaultButton = defaultButton;
        }
예제 #3
0
        /// <summary>
        /// Calculate the dialogs start size (Try to auto-size width to show longest text row).
        /// Also set the maximum dialog size.
        /// </summary>
        /// <param name="flexibleMessageBoxForm">The FlexibleMessageBox dialog.</param>
        /// <param name="text">The text (the longest text row is used to calculate the dialog width).</param>
        /// <param name="text">The caption (this can also affect the dialog width).</param>
        private static void SetDialogSizes(FlexibleMessageBoxForm flexibleMessageBoxForm, string text, string caption)
        {
            //First set the bounds for the maximum dialog size
            flexibleMessageBoxForm.MaximumSize = new Size(Convert.ToInt32(SystemInformation.WorkingArea.Width * FlexibleMessageBoxForm.GetCorrectedWorkingAreaFactor(SanitaMessageBox.MAX_WIDTH_FACTOR)),
                                                          Convert.ToInt32(SystemInformation.WorkingArea.Height * FlexibleMessageBoxForm.GetCorrectedWorkingAreaFactor(SanitaMessageBox.MAX_HEIGHT_FACTOR)));

            //Get rows. Exit if there are no rows to render...
            var stringRows = GetStringRows(text);

            if (stringRows == null)
            {
                return;
            }

            //Calculate whole text height
            var textHeight = TextRenderer.MeasureText(text, SanitaMessageBox.FONT).Height;

            //Calculate width for longest text line
            const int SCROLLBAR_WIDTH_OFFSET = 15;
            var       longestTextRowWidth    = stringRows.Max(textForRow => TextRenderer.MeasureText(textForRow, SanitaMessageBox.FONT).Width);
            var       captionWidth           = TextRenderer.MeasureText(caption, SystemFonts.CaptionFont).Width;
            var       textWidth = Math.Max(longestTextRowWidth + SCROLLBAR_WIDTH_OFFSET, captionWidth);

            //Calculate margins
            var marginWidth  = flexibleMessageBoxForm.Width - flexibleMessageBoxForm.richTextBoxMessage.Width;
            var marginHeight = flexibleMessageBoxForm.Height - flexibleMessageBoxForm.richTextBoxMessage.Height;

            //Set calculated dialog size (if the calculated values exceed the maximums, they were cut by windows forms automatically)
            flexibleMessageBoxForm.Size = new Size(textWidth + marginWidth,
                                                   textHeight + marginHeight);
        }
예제 #4
0
 /// <summary>
 /// Shows the specified message box.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="caption">The caption.</param>
 /// <param name="buttons">The buttons.</param>
 /// <param name="icon">The icon.</param>
 /// <returns></returns>
 public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
 {
     return(FlexibleMessageBoxForm.Show(null, text, caption, buttons, icon, MessageBoxDefaultButton.Button1));
 }
예제 #5
0
 /// <summary>
 /// Shows the specified message box.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <returns>The dialog result.</returns>
 public static DialogResult Show(string text)
 {
     return(FlexibleMessageBoxForm.Show(null, text, "Message", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1));
 }