Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 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)
 {
 }
Пример #6
0
        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();
            }
        }
Пример #7
0
 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);
            }
        }