public static MyGuiScreenMessageBox CreateMessageBox( MyMessageBoxStyleEnum styleEnum = MyMessageBoxStyleEnum.Error, MyMessageBoxButtonsType buttonType = MyMessageBoxButtonsType.OK, StringBuilder messageText = null, StringBuilder messageCaption = null, MyStringId?okButtonText = null, MyStringId?cancelButtonText = null, MyStringId?yesButtonText = null, MyStringId?noButtonText = null, Action <MyGuiScreenMessageBox.ResultEnum> callback = null, int timeoutInMiliseconds = 0, MyGuiScreenMessageBox.ResultEnum focusedResult = MyGuiScreenMessageBox.ResultEnum.YES, bool canHideOthers = true, Vector2?size = null, bool useOpacity = true, Vector2?position = null, bool focusable = true, bool canBeHidden = false, Action onClosing = null) { int num1 = (int)styleEnum; int num2 = (int)buttonType; StringBuilder messageText1 = messageText; StringBuilder messageCaption1 = messageCaption; MyStringId? nullable = okButtonText; MyStringId okButtonText1 = nullable ?? MyCommonTexts.Ok; nullable = cancelButtonText; MyStringId cancelButtonText1 = nullable ?? MyCommonTexts.Cancel; nullable = yesButtonText; MyStringId yesButtonText1 = nullable ?? MyCommonTexts.Yes; nullable = noButtonText; MyStringId noButtonText1 = nullable ?? MyCommonTexts.No; Action <MyGuiScreenMessageBox.ResultEnum> callback1 = callback; int timeoutInMiliseconds1 = timeoutInMiliseconds; int num3 = (int)focusedResult; int num4 = canHideOthers ? 1 : 0; Vector2?size1 = size; double num5 = useOpacity ? (double)MySandboxGame.Config.UIBkOpacity : 1.0; double num6 = useOpacity ? (double)MySandboxGame.Config.UIOpacity : 1.0; Vector2?position1 = position; int num7 = focusable ? 1 : 0; int num8 = canBeHidden ? 1 : 0; Action onClosing1 = onClosing; var dlg = new MyGuiScreenMessageBox((MyMessageBoxStyleEnum)num1, (MyMessageBoxButtonsType)num2, messageText1, messageCaption1, okButtonText1, cancelButtonText1, yesButtonText1, noButtonText1, callback1, timeoutInMiliseconds1, (MyGuiScreenMessageBox.ResultEnum)num3, num4 != 0, size1, (float)num5, (float)num6, position1, num7 != 0, num8 != 0, onClosing1); if (dlg.Controls.GetControlByName("MyGuiControlMultilineText") is MyGuiControlMultilineText text) { text.TextAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER; } return(dlg); }
public MyGuiScreenMessageBox( MyMessageBoxStyleEnum styleEnum, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyStringId okButtonText, MyStringId cancelButtonText, MyStringId yesButtonText, MyStringId noButtonText, Action <ResultEnum> callback, int timeoutInMiliseconds, ResultEnum focusedResult, bool canHideOthers) : base(position: new Vector2(0.5f, 0.5f), backgroundColor: null, size: null, isTopMostScreen: true, backgroundTexture: null) { InstantClose = true; m_style = m_styles[(int)styleEnum]; m_focusedResult = focusedResult; m_backgroundColor = Vector4.One; m_backgroundTexture = m_style.BackgroundTexture.Texture; EnabledBackgroundFade = true; m_buttonType = buttonType; m_okButtonText = okButtonText; m_cancelButtonText = cancelButtonText; m_yesButtonText = yesButtonText; m_noButtonText = noButtonText; ResultCallback = callback; m_drawEvenWithoutFocus = true; CanBeHidden = false; CanHideOthers = canHideOthers; // Size of the message box is given by its background. m_size = m_style.BackgroundTexture.SizeGui; m_messageText = messageText; m_messageCaption = messageCaption ?? new StringBuilder(); RecreateControls(true); if (buttonType == MyMessageBoxButtonsType.YES_NO_TIMEOUT || buttonType == MyMessageBoxButtonsType.NONE_TIMEOUT) { m_timeoutStartedTimeInMiliseconds = MyGuiManager.TotalTimeInMilliseconds; m_timeoutInMiliseconds = timeoutInMiliseconds; m_formatText = messageText.ToString(); m_formattedCache = new StringBuilder(m_formatText.Length); } }
public static MyGuiScreenMessageBox CreateMessageBox( MyMessageBoxStyleEnum styleEnum = MyMessageBoxStyleEnum.Error, MyMessageBoxButtonsType buttonType = MyMessageBoxButtonsType.OK, StringBuilder messageText = null, StringBuilder messageCaption = null, MyStringId?okButtonText = null, MyStringId?cancelButtonText = null, MyStringId?yesButtonText = null, MyStringId?noButtonText = null, Action <MyGuiScreenMessageBox.ResultEnum> callback = null, int timeoutInMiliseconds = 0, MyGuiScreenMessageBox.ResultEnum focusedResult = MyGuiScreenMessageBox.ResultEnum.YES, bool canHideOthers = true ) { return(new MyGuiScreenMessageBox( styleEnum, buttonType, messageText, messageCaption, okButtonText ?? MySpaceTexts.Ok, cancelButtonText ?? MySpaceTexts.Cancel, yesButtonText ?? MySpaceTexts.Yes, noButtonText ?? MySpaceTexts.No, callback, timeoutInMiliseconds, focusedResult, canHideOthers)); }
public MyGuiScreenMessageBox(MyMessageBoxType type, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum? okButtonText, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback, bool enableCheckBox, Vector2 buttonSize) : base(new Vector2(0.5f, 0.5f), null, null, true, null) { InstantClose = true; MyMessageBoxConfiguration config = m_typesConfiguration[(int)type]; m_backgroundColor = config.BackgroundColor; m_backgroundTexture = config.Texture; m_textColor = config.TextColor; m_interferenceVideoColor = config.InterferenceVideoColor; m_enableBackgroundFade = true; m_buttonType = buttonType; m_okButtonText = okButtonText; m_yesButtonText = yesButtonText; m_noButtonText = noButtonText; m_callback = callback; m_drawEvenWithoutFocus = true; m_screenCanHide = false; m_buttonSize = buttonSize; // Recalculate heigh of message box screen, so it will auto-adapt to message size and maybe make split it on more lines Vector2 textSize = MyGuiManager.GetNormalizedSize(config.Font, messageText, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE); Vector2 captionSize = MyGuiManager.GetNormalizedSize(config.Font, messageCaption, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE); m_size = new Vector2(Math.Max(2f * m_buttonSize.X + 0.1f, textSize.X) + MyGuiConstants.MESSAGE_BOX_BORDER_AREA_X, 3 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y + captionSize.Y + textSize.Y + MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE.Y)+ new Vector2(); //if (type == MyMessageBoxType.MESSAGE) m_size = m_size + new Vector2(0.1f, 0.1f); //m_size. =m_size.Value.Y * 1.1f; if (enableCheckBox) { m_size = new Vector2(m_size.Value.X, m_size.Value.Y + 0.05f); } // Message box caption MyGuiControlLabel captionLabel = new MyGuiControlLabel(this, new Vector2(0, -m_size.Value.Y / 2.0f + captionSize.Y / 2.0f + MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), null, messageCaption, m_textColor, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER,config.Font); Controls.Add(captionLabel); // Message box text m_messageBoxText = new MyGuiControlLabel(this, new Vector2(0f, captionLabel.GetPosition().Y + textSize.Y / 2.0f + 1.0f * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), null, messageText, m_textColor, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, config.Font); Controls.Add(m_messageBoxText); float deltaY = 0; if (enableCheckBox) { const float CHECKBOX_DELTA_Y = 0.01f; // CheckBox to not show again this message box m_showAgainCheckBox = new MyGuiControlCheckbox(this, new Vector2(-0.02f, m_messageBoxText.GetPosition().Y + CHECKBOX_DELTA_Y + textSize.Y / 2.0f + 2 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), true, config.ButtonColor); Controls.Add(m_showAgainCheckBox); Controls.Add(new MyGuiControlLabel(this, new Vector2(0f, m_messageBoxText.GetPosition().Y + CHECKBOX_DELTA_Y + textSize.Y / 2.0f + 2 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y) + 0 * MyGuiConstants.CONTROLS_DELTA, null, MyTextsWrapper.Get(MyTextsWrapperEnum.DecreaseVideoSettingsCheckBox), m_textColor, MyGuiConstants.LABEL_TEXT_SCALE * 0.75f, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER, config.Font)); } // Buttons Vector2 buttonDelta = new Vector2(0.05f, m_size.Value.Y / 2.0f - MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y - m_buttonSize.Y / 2.0f); if (m_buttonType == MyMessageBoxButtonsType.OK) { //Controls.Add(new MyGuiControlButton(this, new Vector2(0, deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor, //null,null,null, //m_okButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, //true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true)); var okButton = new MyGuiControlButton(this, new Vector2(0, deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL, config.ButtonColor, config.ButtonTexture, null, null, m_okButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true); Controls.Add(okButton); } else if ((m_buttonType == MyMessageBoxButtonsType.YES_NO) || (m_buttonType == MyMessageBoxButtonsType.YES_NO_TIMEOUT)) { var okButton = new MyGuiControlButton(this, new Vector2(-(buttonDelta.X + m_buttonSize.X / 2f), deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL, config.ButtonColor, config.ButtonTexture, null, null, m_yesButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true); Controls.Add(okButton); var noButton = new MyGuiControlButton(this, new Vector2(+buttonDelta.X + m_buttonSize.X / 2f, deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL, config.ButtonColor, config.ButtonTexture, null, null, m_noButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnNoClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true); Controls.Add(noButton); //Controls.Add(new MyGuiControlButton(this, new Vector2(-(buttonDelta.X + m_buttonSize.X / 2f), deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor, // null,null,null, // m_yesButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true)); //Controls.Add(new MyGuiControlButton(this, new Vector2(+buttonDelta.X + m_buttonSize.X / 2f, deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor, // null,null,null, // m_noButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnNoClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true)); } else if (m_buttonType == MyMessageBoxButtonsType.NONE) { } else { throw new MyMwcExceptionApplicationShouldNotGetHere(); } }
private MyGuiScreenMessageBox(MyMessageBoxType type, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum? okButtonText, MyTextsWrapperEnum? yesButtonText, MyTextsWrapperEnum? noButtonText, MessageBoxCallback callback, bool enableCheckBox) : this(type, buttonType, messageText, messageCaption, okButtonText, yesButtonText, noButtonText, callback, enableCheckBox, MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE) { }
public MyGuiScreenMessageBox(MyMessageBoxType type, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum?okButtonText, MyTextsWrapperEnum?yesButtonText, MyTextsWrapperEnum?noButtonText, MessageBoxCallback callback, bool enableCheckBox, Vector2 buttonSize) : base(new Vector2(0.5f, 0.5f), null, null, true, null) { InstantClose = true; MyMessageBoxConfiguration config = m_typesConfiguration[(int)type]; m_backgroundColor = config.BackgroundColor; m_backgroundTexture = config.Texture; m_textColor = config.TextColor; m_interferenceVideoColor = config.InterferenceVideoColor; m_enableBackgroundFade = true; m_buttonType = buttonType; m_okButtonText = okButtonText; m_yesButtonText = yesButtonText; m_noButtonText = noButtonText; m_callback = callback; m_drawEvenWithoutFocus = true; m_screenCanHide = false; m_buttonSize = buttonSize; // Recalculate heigh of message box screen, so it will auto-adapt to message size and maybe make split it on more lines Vector2 textSize = MyGuiManager.GetNormalizedSize(config.Font, messageText, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE); Vector2 captionSize = MyGuiManager.GetNormalizedSize(config.Font, messageCaption, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE); m_size = new Vector2(Math.Max(2f * m_buttonSize.X + 0.1f, textSize.X) + MyGuiConstants.MESSAGE_BOX_BORDER_AREA_X, 3 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y + captionSize.Y + textSize.Y + MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE.Y) + new Vector2(); //if (type == MyMessageBoxType.MESSAGE) m_size = m_size + new Vector2(0.1f, 0.1f); //m_size. =m_size.Value.Y * 1.1f; if (enableCheckBox) { m_size = new Vector2(m_size.Value.X, m_size.Value.Y + 0.05f); } // Message box caption MyGuiControlLabel captionLabel = new MyGuiControlLabel(this, new Vector2(0, -m_size.Value.Y / 2.0f + captionSize.Y / 2.0f + MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), null, messageCaption, m_textColor, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, config.Font); Controls.Add(captionLabel); // Message box text m_messageBoxText = new MyGuiControlLabel(this, new Vector2(0f, captionLabel.GetPosition().Y + textSize.Y / 2.0f + 1.0f * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), null, messageText, m_textColor, MyGuiConstants.MESSAGE_BOX_TEXT_SCALE, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, config.Font); Controls.Add(m_messageBoxText); float deltaY = 0; if (enableCheckBox) { const float CHECKBOX_DELTA_Y = 0.01f; // CheckBox to not show again this message box m_showAgainCheckBox = new MyGuiControlCheckbox(this, new Vector2(-0.02f, m_messageBoxText.GetPosition().Y + CHECKBOX_DELTA_Y + textSize.Y / 2.0f + 2 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y), true, config.ButtonColor); Controls.Add(m_showAgainCheckBox); Controls.Add(new MyGuiControlLabel(this, new Vector2(0f, m_messageBoxText.GetPosition().Y + CHECKBOX_DELTA_Y + textSize.Y / 2.0f + 2 * MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y) + 0 * MyGuiConstants.CONTROLS_DELTA, null, MyTextsWrapper.Get(MyTextsWrapperEnum.DecreaseVideoSettingsCheckBox), m_textColor, MyGuiConstants.LABEL_TEXT_SCALE * 0.75f, MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER, config.Font)); } // Buttons Vector2 buttonDelta = new Vector2(0.05f, m_size.Value.Y / 2.0f - MyGuiConstants.MESSAGE_BOX_BORDER_AREA_Y - m_buttonSize.Y / 2.0f); if (m_buttonType == MyMessageBoxButtonsType.OK) { //Controls.Add(new MyGuiControlButton(this, new Vector2(0, deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor, //null,null,null, //m_okButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, //true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true)); var okButton = new MyGuiControlButton(this, new Vector2(0, deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL, config.ButtonColor, config.ButtonTexture, null, null, m_okButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true); Controls.Add(okButton); } else if ((m_buttonType == MyMessageBoxButtonsType.YES_NO) || (m_buttonType == MyMessageBoxButtonsType.YES_NO_TIMEOUT)) { var okButton = new MyGuiControlButton(this, new Vector2(-(buttonDelta.X + m_buttonSize.X / 2f), deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL, config.ButtonColor, config.ButtonTexture, null, null, m_yesButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true); Controls.Add(okButton); var noButton = new MyGuiControlButton(this, new Vector2(+buttonDelta.X + m_buttonSize.X / 2f, deltaY + buttonDelta.Y), MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE_SMALL, config.ButtonColor, config.ButtonTexture, null, null, m_noButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnNoClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true); Controls.Add(noButton); //Controls.Add(new MyGuiControlButton(this, new Vector2(-(buttonDelta.X + m_buttonSize.X / 2f), deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor, // null,null,null, // m_yesButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnYesClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true)); //Controls.Add(new MyGuiControlButton(this, new Vector2(+buttonDelta.X + m_buttonSize.X / 2f, deltaY + buttonDelta.Y), m_buttonSize, config.ButtonColor, // null,null,null, // m_noButtonText.Value, m_textColor, MyGuiConstants.BUTTON_TEXT_SCALE, MyGuiControlButtonTextAlignment.CENTERED, OnNoClick, true, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, true, true)); } else if (m_buttonType == MyMessageBoxButtonsType.NONE) { } else { throw new MyMwcExceptionApplicationShouldNotGetHere(); } }
private MyGuiScreenMessageBox(MyMessageBoxType type, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyTextsWrapperEnum?okButtonText, MyTextsWrapperEnum?yesButtonText, MyTextsWrapperEnum?noButtonText, MessageBoxCallback callback, bool enableCheckBox) : this(type, buttonType, messageText, messageCaption, okButtonText, yesButtonText, noButtonText, callback, enableCheckBox, MyGuiConstants.MESSAGE_BOX_BUTTON_SIZE) { }
public MyGuiScreenMessageBox( MyMessageBoxStyleEnum styleEnum, MyMessageBoxButtonsType buttonType, StringBuilder messageText, StringBuilder messageCaption, MyStringId okButtonText, MyStringId cancelButtonText, MyStringId yesButtonText, MyStringId noButtonText, Action<ResultEnum> callback, int timeoutInMiliseconds, ResultEnum focusedResult, bool canHideOthers): base(position: new Vector2(0.5f, 0.5f), backgroundColor: null, size: null, isTopMostScreen: true, backgroundTexture: null) { InstantClose = true; m_style = m_styles[(int)styleEnum]; m_focusedResult = focusedResult; m_backgroundColor = Vector4.One; m_backgroundTexture = m_style.BackgroundTexture.Texture; EnabledBackgroundFade = true; m_buttonType = buttonType; m_okButtonText = okButtonText; m_cancelButtonText = cancelButtonText; m_yesButtonText = yesButtonText; m_noButtonText = noButtonText; ResultCallback = callback; m_drawEvenWithoutFocus = true; CanBeHidden = false; CanHideOthers = canHideOthers; // Size of the message box is given by its background. m_size = m_style.BackgroundTexture.SizeGui; m_messageText = messageText; m_messageCaption = messageCaption ?? new StringBuilder(); RecreateControls(true); if (buttonType == MyMessageBoxButtonsType.YES_NO_TIMEOUT || buttonType == MyMessageBoxButtonsType.NONE_TIMEOUT) { m_timeoutStartedTimeInMiliseconds = MyGuiManager.TotalTimeInMilliseconds; m_timeoutInMiliseconds = timeoutInMiliseconds; m_formatText = messageText.ToString(); m_formattedCache = new StringBuilder(m_formatText.Length); } }