private UISliderLayout CalculateLayout()
{
if (Orientation == 0)
{ //horizontal
var trackWidth = (int)(((float)m_Texture.Width) * 0.75);
var thumbSize = m_Texture.Width - trackWidth;
var oneThird = (int)(trackWidth / 3);
return new UISliderLayout
{
TrackStartFrom = new Rectangle(0, 0, oneThird, m_Texture.Height),
TrackMiddleFrom = new Rectangle(oneThird, 0, oneThird, m_Texture.Height),
TrackEndFrom = new Rectangle(trackWidth - oneThird, 0, oneThird, m_Texture.Height),
TrackStartTo = LocalPoint(Vector2.Zero),
TrackMiddleTo = LocalPoint(new Vector2(oneThird, 0)),
TrackEndTo = LocalPoint(new Vector2(m_Width - oneThird, 0)),
TrackMiddleScale = _Scale * new Vector2((m_Width - (oneThird * 2)) / oneThird, 1),
ThumbFrom = new Rectangle(m_Texture.Width - thumbSize, 0, thumbSize, m_Texture.Height)
};
}
else
{ //vertical
var trackHeight = (int)(((float)m_Texture.Height) * 0.75);
var thumbSize = m_Texture.Height - trackHeight;
var oneThird = (int)(trackHeight / 3);
return new UISliderLayout
{
TrackStartFrom = new Rectangle(0, 0, m_Texture.Width, oneThird),
TrackMiddleFrom = new Rectangle(0, oneThird, m_Texture.Width, oneThird),
TrackEndFrom = new Rectangle(0, trackHeight - oneThird, m_Texture.Width, oneThird),
TrackStartTo = LocalPoint(Vector2.Zero),
TrackMiddleTo = LocalPoint(new Vector2(0, oneThird)),
TrackEndTo = LocalPoint(new Vector2(0, m_Height - oneThird)),
TrackMiddleScale = _Scale * new Vector2(1, (m_Height - (oneThird * 2)) / oneThird),
ThumbFrom = new Rectangle(0, m_Texture.Height - thumbSize, m_Texture.Width, thumbSize)
};
}
}