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;
}