示例#1
0
        public MyGuiControlMultilineText(
            Vector2?position                        = null,
            Vector2?size                            = null,
            Vector4?backgroundColor                 = null,
            MyFontEnum font                         = MyFontEnum.Blue,
            float textScale                         = MyGuiConstants.DEFAULT_TEXT_SCALE,
            MyGuiDrawAlignEnum textAlign            = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
            StringBuilder contents                  = null,
            bool drawScrollbar                      = true,
            MyGuiDrawAlignEnum textBoxAlign         = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER,
            int?visibleLinesCount                   = null,
            bool selectable                         = false,
            bool showTextShadow                     = false,
            MyGuiCompositeTexture backgroundTexture = null,
            MyGuiBorderThickness?textPadding        = null
            )
            : base(position: position,
                   size: size,
                   colorMask: backgroundColor,
                   toolTip: null,
                   backgroundTexture: backgroundTexture)
        {
            Font            = font;
            TextScale       = textScale;
            m_drawScrollbar = drawScrollbar;
            TextColor       = new Color(Vector4.One);
            TextBoxAlign    = textBoxAlign;
            m_selectable    = selectable;

            m_textPadding   = textPadding ?? new MyGuiBorderThickness(0, 0, 0, 0);
            m_scrollbar     = new MyVScrollbar(this);
            m_scrollbarSize = new Vector2(0.0334f, MyGuiConstants.COMBOBOX_VSCROLLBAR_SIZE.Y);
            m_scrollbarSize = MyGuiConstants.COMBOBOX_VSCROLLBAR_SIZE;
            float minLineHeight = MyGuiManager.MeasureString(Font, m_lineHeightMeasure, TextScaleWithLanguage).Y;

            m_label = new MyRichLabel(this, ComputeRichLabelWidth(), minLineHeight, visibleLinesCount)
            {
                ShowTextShadow = showTextShadow
            };
            m_label.AdjustingScissorRectangle += AdjustScissorRectangleLabel;
            m_label.TextAlign = textAlign;
            m_text            = new StringBuilder();
            m_selection       = new MyGuiControlMultilineSelection();

            if (contents != null && contents.Length > 0)
            {
                Text = contents;
            }

            m_keyThrottler = new MyKeyThrottler();
        }
        static MyGuiControlTextbox()
        {
            m_styles = new StyleDefinition[MyUtils.GetMaxValueFromEnum<MyGuiControlTextboxStyleEnum>() + 1];
            m_styles[(int)MyGuiControlTextboxStyleEnum.Default] = new StyleDefinition()
            {
                NormalTexture = MyGuiConstants.TEXTURE_TEXTBOX,
                HighlightTexture = MyGuiConstants.TEXTURE_TEXTBOX_HIGHLIGHT,
                NormalFont = MyFontEnum.Blue,
                HighlightFont = MyFontEnum.White,
            };

            m_styles[(int)MyGuiControlTextboxStyleEnum.Debug] = new StyleDefinition()
            {
                NormalTexture = MyGuiConstants.TEXTURE_TEXTBOX,
                HighlightTexture = MyGuiConstants.TEXTURE_TEXTBOX_HIGHLIGHT,
                NormalFont = MyFontEnum.Debug,
                HighlightFont = MyFontEnum.Debug
            };

            m_keyThrottler = new MyKeyThrottler();
        }
        static MyGuiControlTextbox()
        {
            m_styles = new StyleDefinition[MyUtils.GetMaxValueFromEnum <MyGuiControlTextboxStyleEnum>() + 1];
            m_styles[(int)MyGuiControlTextboxStyleEnum.Default] = new StyleDefinition()
            {
                NormalTexture    = MyGuiConstants.TEXTURE_TEXTBOX,
                HighlightTexture = MyGuiConstants.TEXTURE_TEXTBOX_HIGHLIGHT,
                NormalFont       = MyFontEnum.Blue,
                HighlightFont    = MyFontEnum.White,
            };

            m_styles[(int)MyGuiControlTextboxStyleEnum.Debug] = new StyleDefinition()
            {
                NormalTexture    = MyGuiConstants.TEXTURE_TEXTBOX,
                HighlightTexture = MyGuiConstants.TEXTURE_TEXTBOX_HIGHLIGHT,
                NormalFont       = MyFontEnum.Debug,
                HighlightFont    = MyFontEnum.Debug
            };

            m_keyThrottler = new MyKeyThrottler();
        }
        public MyGuiControlMultilineText(
            Vector2? position = null,
            Vector2? size = null,
            Vector4? backgroundColor = null,
            MyFontEnum font = MyFontEnum.Blue,
            float textScale = MyGuiConstants.DEFAULT_TEXT_SCALE,
            MyGuiDrawAlignEnum textAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP,
            StringBuilder contents = null,
            bool drawScrollbar = true,
            MyGuiDrawAlignEnum textBoxAlign = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER,
            int? visibleLinesCount = null,
            bool selectable = false,
            bool showTextShadow = false
        )
            : base(position: position,
                    size: size,
                    colorMask: backgroundColor,
                    toolTip: null)
        {
            Font = font;
            TextScale = textScale;
            m_drawScrollbar = drawScrollbar;
            TextColor = new Color(Vector4.One);
            TextBoxAlign = textBoxAlign;
            m_selectable = selectable;

            m_scrollbar = new MyVScrollbar(this);
            m_scrollbarSize = new Vector2(0.0334f, MyGuiConstants.COMBOBOX_VSCROLLBAR_SIZE.Y);
            m_scrollbarSize = MyGuiConstants.COMBOBOX_VSCROLLBAR_SIZE;
            float minLineHeight = MyGuiManager.MeasureString(Font, m_lineHeightMeasure, TextScaleWithLanguage).Y;
            m_label = new MyRichLabel(this, ComputeRichLabelWidth(), minLineHeight, visibleLinesCount) { ShowTextShadow = showTextShadow };
            m_label.AdjustingScissorRectangle += AdjustScissorRectangleLabel;
            m_label.TextAlign = textAlign;
            m_text = new StringBuilder();
            m_selection = new MyGuiControlMultilineSelection();

            if (contents != null && contents.Length > 0)
                Text = contents;

            m_keyThrottler = new MyKeyThrottler();
        }