Пример #1
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);
            }
        }
Пример #2
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);
        }
Пример #3
0
 public static void Show(
     MyStringId text,
     MyStringId caption         = default(MyStringId),
     MyMessageBoxStyleEnum type = MyMessageBoxStyleEnum.Error)
 {
     AddScreen(
         CreateMessageBox(
             styleEnum: type,
             messageText: MyTexts.Get(text),
             messageCaption: MyTexts.Get(caption)));
 }
Пример #4
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(
            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);
            }
        }