public bool Initialize(int xPos, int yPos, int width, int height, bool wrapText, bool allowScrollbar, string name, Random r, out string reason) { //If using scrollbar, then shrink the actual width by 16 to allow for scrollbar, even if it's not visible _x = xPos; _y = yPos; _maxWidth = width; Width = width; Height = height == 0 ? 1 : height; _wrapText = wrapText; _scrollbarVisible = false; _textScrollBar = new BBScrollBarNoArrows(); _allowScrollbar = allowScrollbar; if (_allowScrollbar) { if (_wrapText) { if (!_textScrollBar.Initialize(xPos + _maxWidth - 5, yPos, Height, Height, 1, false, false, r, out reason)) { return false; } _wrapView = new Viewport(0, 0, _maxWidth - 5, Height); _target = new RenderImage(name + "render", _maxWidth - 5, Height, ImageBufferFormats.BufferRGB888A8); } else { if (!_textScrollBar.Initialize(xPos, yPos + Height - 5, _maxWidth, _maxWidth, 1, true, false, r, out reason)) { return false; } _wrapView = new Viewport(0, 0, _maxWidth, Height - 5); _target = new RenderImage(name + "render", _maxWidth, Height - 5, ImageBufferFormats.BufferRGB888A8); } } else { _wrapView = new Viewport(0, 0, _maxWidth, Height); _target = new RenderImage(name + "render", _maxWidth, Height, ImageBufferFormats.BufferRGB888A8); } _textSprite = new TextSprite(name, string.Empty, FontManager.GetDefaultFont()); _textSprite.WordWrap = _wrapText; if (_allowScrollbar || _wrapText) { _textSprite.Bounds = _wrapView; } _target.BlendingMode = BlendingModes.Modulated; reason = null; return true; }