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)); } }
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); }
/// <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)); }
/// <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); }
public void SetButtons(Class cname, ButtonsPosition buttons) { _classes[cname].Buttons = buttons; }
public ClassPositionsData(double x, double y, ButtonsPosition buttons) { Position = new Point(x, y); Buttons = buttons; }
public ClassPositionsData(ClassPositionsData origin) { Position = new Point(origin.Position.X, origin.Position.Y); Buttons = origin.Buttons; }