public bool Initialize(int xPos, int yPos, int length, int amountOfVisibleItems, int amountOfItems, bool isHorizontal, bool isSlider, Random r, out string reason)
{
_xPos = xPos;
_yPos = yPos;
_scroll = new BBUniStretchButton();
_amountOfItems = amountOfItems;
_amountVisible = amountOfVisibleItems;
_isSlider = isSlider;
_isHorizontal = isHorizontal;
_scrollBarLength = length;
if (!isSlider)
{
_scrollButtonLength = (int)(((float)amountOfVisibleItems / amountOfItems) * _scrollBarLength);
if (!isHorizontal)
{
if (!_scroll.Initialize(new List<string> { "TinyScrollVerticalBGButton1", "TinyScrollVerticalBGButton2", "TinyScrollVerticalBGButton3" },
new List<string> { "TinyScrollVerticalFGButton1", "TinyScrollVerticalFGButton2", "TinyScrollVerticalFGButton3" },
isHorizontal, "", ButtonTextAlignment.LEFT, xPos, yPos, 5, _scrollButtonLength, 3, 1, r, out reason))
{
return false;
}
_scrollBar = SpriteManager.GetSprite("TinyScrollVerticalBar", r);
if (_scrollBar == null)
{
reason = "\"TinyScrollVerticalBar\" sprite does not exist";
return false;
}
}
else
{
if (!_scroll.Initialize(new List<string> { "TinyScrollHorizontalBGButton1", "TinyScrollHorizontalBGButton2", "TinyScrollHorizontalBGButton3" },
new List<string> { "TinyScrollHorizontalFGButton1", "TinyScrollHorizontalFGButton2", "TinyScrollHorizontalFGButton3" },
isHorizontal, "", ButtonTextAlignment.LEFT, xPos, yPos, _scrollButtonLength, 5, 3, 1, r, out reason))
{
return false;
}
_scrollBar = SpriteManager.GetSprite("TinyScrollHorizontalBar", r);
if (_scrollBar == null)
{
reason = "\"TinyScrollHorizontalBar\" sprite does not exist";
return false;
}
}
}
else
{
_scrollButtonLength = 16;
if (!_scroll.Initialize(new List<string> { "TinySliderHorizontalBGButton1", "TinySliderHorizontalBGButton2", "TinySliderHorizontalBGButton3" },
new List<string> { "TinySliderHorizontalFGButton1", "TinySliderHorizontalFGButton2", "TinySliderHorizontalFGButton3" },
true, "", ButtonTextAlignment.LEFT, xPos, yPos, _scrollButtonLength, 5, 3, 1, r, out reason))
{
return false;
}
_scrollBar = SpriteManager.GetSprite("TinySliderBGBar", r);
if (_scrollBar == null)
{
reason = "\"TinySliderBGBar\" sprite does not exist";
return false;
}
_highlightedScrollBar = SpriteManager.GetSprite("TinySliderFGBar", r);
if (_highlightedScrollBar == null)
{
reason = "\"SliderFGBar\" sprite does not exist";
return false;
}
}
_topIndex = 0;
_scrollPos = 0; //relative to the scrollbar itself
_scrollSelected = false;
_isEnabled = true;
reason = null;
return true;
}