Esempio n. 1
0
 public ClassPositions(double x, double y, ButtonsPosition buttons)
 {
     _classes = new Dictionary <Class, ClassPositionsData>();
     foreach (Class cl in Class.GetValues(typeof(Class)))
     {
         _classes.Add(cl, new ClassPositionsData(x, y, buttons));
     }
 }
Esempio n. 2
0
        private static void SetButtonsPosition(FlexibleMaterialForm fMF, ButtonsPosition buttonsPosition)
        {
            const int padding             = 10;
            int       visibleButtonsWidth = 0;

            switch (buttonsPosition)
            {
            case ButtonsPosition.Center:
                switch (fMF.visibleButtonsCount)
                {
                case 3:
                    fMF.middleButton.Left = fMF.Width / 2 - fMF.middleButton.Width / 2;
                    fMF.leftButton.Left   = fMF.middleButton.Left - fMF.leftButton.Width - padding * 2;
                    fMF.rightButton.Left  = fMF.middleButton.Right + padding * 2;
                    visibleButtonsWidth   = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6;
                    break;

                case 2:
                    fMF.middleButton.Left = fMF.Width / 2 - fMF.middleButton.Width - padding;
                    fMF.rightButton.Left  = fMF.Width / 2 + padding;
                    visibleButtonsWidth   = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4;
                    break;

                case 1:
                    fMF.rightButton.Left = fMF.Width / 2 - fMF.rightButton.Width / 2;
                    visibleButtonsWidth  = fMF.rightButton.Width + padding * 2;
                    break;

                default:
                    break;
                }
                break;

            case ButtonsPosition.Left:
                switch (fMF.visibleButtonsCount)
                {
                case 3:
                    fMF.leftButton.Left   = padding;
                    fMF.middleButton.Left = fMF.leftButton.Right + padding * 2;
                    fMF.rightButton.Left  = fMF.middleButton.Right + padding * 2;
                    visibleButtonsWidth   = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6;
                    break;

                case 2:
                    fMF.middleButton.Left = padding;
                    fMF.rightButton.Left  = fMF.middleButton.Right + padding * 2;
                    visibleButtonsWidth   = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4;
                    break;

                case 1:
                    fMF.rightButton.Left = padding;
                    visibleButtonsWidth  = fMF.rightButton.Width + padding * 2;
                    break;

                default:
                    break;
                }
                break;

            case ButtonsPosition.Right:
                // This alignment is simplest, in this alignment doesn't care how many buttons are visible.
                // Always the buttons visibility order is right, right + middle, right + middle + left
                fMF.rightButton.Left  = fMF.Width - fMF.rightButton.Width - padding;
                fMF.middleButton.Left = fMF.rightButton.Left - fMF.middleButton.Width - padding * 2;
                fMF.leftButton.Left   = fMF.middleButton.Left - fMF.leftButton.Width - padding * 2;
                switch (fMF.visibleButtonsCount)
                {
                case 3:
                    visibleButtonsWidth = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6;
                    break;

                case 2:
                    visibleButtonsWidth = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4;
                    break;

                case 1:
                    visibleButtonsWidth = fMF.rightButton.Width + padding * 2;
                    break;

                default:
                    break;
                }
                break;

            case ButtonsPosition.Fill:
                switch (fMF.visibleButtonsCount)
                {
                case 3:
                    fMF.leftButton.Left   = padding;
                    fMF.middleButton.Left = fMF.Width / 2 - fMF.middleButton.Width / 2;
                    fMF.rightButton.Left  = fMF.Width - fMF.rightButton.Width - padding * 2;
                    visibleButtonsWidth   = fMF.leftButton.Width + fMF.middleButton.Width + fMF.rightButton.Width + padding * 6;
                    break;

                case 2:
                    fMF.middleButton.Left = padding;
                    fMF.rightButton.Left  = fMF.Width - fMF.rightButton.Width - padding * 2;
                    visibleButtonsWidth   = fMF.middleButton.Width + fMF.rightButton.Width + padding * 4;
                    break;

                case 1:
                    fMF.rightButton.Left = fMF.Width / 2 - fMF.middleButton.Width / 2;
                    visibleButtonsWidth  = fMF.rightButton.Width + padding * 2;
                    break;

                default:
                    break;
                }
                break;
            }
            fMF.Width = Math.Max(fMF.Width, visibleButtonsWidth);
        }
Esempio n. 3
0
        /// <summary>
        /// Shows the specified message box.
        /// </summary>
        /// <param name="owner">The owner.</param>
        /// <param name="text">The text.</param>
        /// <param name="caption">The caption.</param>
        /// <param name="buttons">The buttons.</param>
        /// <param name="icon">The icon.</param>
        /// <param name="defaultButton">The default button.</param>
        /// <returns>The dialog result.</returns>
        public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, bool UseRichTextBox = true, ButtonsPosition buttonsPosition = ButtonsPosition.Right)
        {
            //Create a new instance of the FlexibleMessageBox form
            var FlexibleMaterialForm = new FlexibleMaterialForm();

            FlexibleMaterialForm.ShowInTaskbar = false;
            FlexibleMaterialForm.Sizable       = false;

            //Bind the caption and the message text
            FlexibleMaterialForm.CaptionText = caption;
            FlexibleMaterialForm.MessageText = text;
            FlexibleMaterialForm.FlexibleMaterialFormBindingSource.DataSource = FlexibleMaterialForm;


            //Set the dialogs icon. When no icon is used: Correct placement and width of rich text box.
            SetDialogIcon(FlexibleMaterialForm, icon);

            //Set the font for all controls
            FlexibleMaterialForm.Font = FONT;
            FlexibleMaterialForm.richTextBoxMessage.Font    = FONT;
            FlexibleMaterialForm.richTextBoxMessage.Visible = UseRichTextBox;
            FlexibleMaterialForm.materialLabel1.Font        = FONT;
            FlexibleMaterialForm.materialLabel1.Visible     = !UseRichTextBox;

            //Calculate the dialogs start size (Try to auto-size width to show longest text row). Also set the maximum dialog size.
            SetDialogSizes(FlexibleMaterialForm, text, caption);

            //Set the dialogs start position when given. Otherwise center the dialog on the current screen.
            SetDialogStartPosition(FlexibleMaterialForm, owner);


            //Set the buttons visibilities and texts. Also set a default button.
            //Moved after SetDialogSizes() because it needs Dialog.Width property set.
            SetDialogButtons(FlexibleMaterialForm, buttons, defaultButton, buttonsPosition);
            //Show the dialog
            return(FlexibleMaterialForm.ShowDialog(owner));
        }
Esempio n. 4
0
        /// <summary>
        /// Set dialog buttons visibilities and texts.
        /// Also set a default button.
        /// </summary>
        /// <param name="FlexibleMaterialForm">The FlexibleMessageBox dialog.</param>
        /// <param name="buttons">The buttons.</param>
        /// <param name="defaultButton">The default button.</param>
        private static void SetDialogButtons(FlexibleMaterialForm FlexibleMaterialForm, MessageBoxButtons buttons, MessageBoxDefaultButton defaultButton, ButtonsPosition buttonsPosition)
        {
            //Set the buttons visibilities and texts
            switch (buttons)
            {
            case MessageBoxButtons.AbortRetryIgnore:
                FlexibleMaterialForm.visibleButtonsCount = 3;

                FlexibleMaterialForm.leftButton.Visible      = true;
                FlexibleMaterialForm.leftButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.ABORT);
                FlexibleMaterialForm.leftButton.DialogResult = DialogResult.Abort;

                FlexibleMaterialForm.middleButton.Visible      = true;
                FlexibleMaterialForm.middleButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.RETRY);
                FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Retry;

                FlexibleMaterialForm.rightButton.Visible      = true;
                FlexibleMaterialForm.rightButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.IGNORE);
                FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Ignore;

                FlexibleMaterialForm.ControlBox = false;
                break;

            case MessageBoxButtons.OKCancel:
                FlexibleMaterialForm.visibleButtonsCount = 2;

                FlexibleMaterialForm.middleButton.Visible      = true;
                FlexibleMaterialForm.middleButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL);
                FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Cancel;

                FlexibleMaterialForm.rightButton.Visible      = true;
                FlexibleMaterialForm.rightButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.OK);
                FlexibleMaterialForm.rightButton.DialogResult = DialogResult.OK;

                FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.middleButton;
                break;

            case MessageBoxButtons.RetryCancel:
                FlexibleMaterialForm.visibleButtonsCount = 2;

                FlexibleMaterialForm.middleButton.Visible      = true;
                FlexibleMaterialForm.middleButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL);
                FlexibleMaterialForm.middleButton.DialogResult = DialogResult.Cancel;

                FlexibleMaterialForm.rightButton.Visible      = true;
                FlexibleMaterialForm.rightButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.RETRY);
                FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Retry;

                FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.middleButton;
                break;

            case MessageBoxButtons.YesNo:
                FlexibleMaterialForm.visibleButtonsCount = 2;

                FlexibleMaterialForm.middleButton.Visible      = true;
                FlexibleMaterialForm.middleButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.NO);
                FlexibleMaterialForm.middleButton.DialogResult = DialogResult.No;

                FlexibleMaterialForm.rightButton.Visible      = true;
                FlexibleMaterialForm.rightButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.YES);
                FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes;

                //FlexibleMaterialForm.ControlBox = false;
                break;

            case MessageBoxButtons.YesNoCancel:
                FlexibleMaterialForm.visibleButtonsCount = 3;

                FlexibleMaterialForm.rightButton.Visible      = true;
                FlexibleMaterialForm.rightButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.YES);
                FlexibleMaterialForm.rightButton.DialogResult = DialogResult.Yes;

                FlexibleMaterialForm.middleButton.Visible      = true;
                FlexibleMaterialForm.middleButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.NO);
                FlexibleMaterialForm.middleButton.DialogResult = DialogResult.No;

                FlexibleMaterialForm.leftButton.Visible      = true;
                FlexibleMaterialForm.leftButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.CANCEL);
                FlexibleMaterialForm.leftButton.DialogResult = DialogResult.Cancel;

                FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.leftButton;
                break;

            case MessageBoxButtons.OK:
            default:
                FlexibleMaterialForm.visibleButtonsCount      = 1;
                FlexibleMaterialForm.rightButton.Visible      = true;
                FlexibleMaterialForm.rightButton.Text         = FlexibleMaterialForm.GetButtonText(ButtonID.OK);
                FlexibleMaterialForm.rightButton.DialogResult = DialogResult.OK;

                FlexibleMaterialForm.CancelButton = FlexibleMaterialForm.rightButton;
                break;
            }

            //Set default button (used in FlexibleMaterialForm_Shown)
            FlexibleMaterialForm.defaultButton = defaultButton;

            SetButtonsPosition(FlexibleMaterialForm, buttonsPosition);
        }
Esempio n. 5
0
 public void SetButtons(Class cname, ButtonsPosition buttons)
 {
     _classes[cname].Buttons = buttons;
 }
Esempio n. 6
0
 public ClassPositionsData(double x, double y, ButtonsPosition buttons)
 {
     Position = new Point(x, y);
     Buttons  = buttons;
 }
Esempio n. 7
0
 public ClassPositionsData(ClassPositionsData origin)
 {
     Position = new Point(origin.Position.X, origin.Position.Y);
     Buttons  = origin.Buttons;
 }