private void CalculateClientRectangle(float offsetX, float offsetY)
{
_drawRect = _rect.Data;
if((_flags & WindowFlags.InvertRectangle) == WindowFlags.InvertRectangle)
{
_drawRect.X = _rect.X - _rect.Width;
_drawRect.Y = _rect.Y - _rect.Height;
}
if(((_flags & (WindowFlags.HorizontalCenter | WindowFlags.VerticalCenter)) != 0) && (_parent != null))
{
// in this case treat xofs and yofs as absolute top left coords
// and ignore the original positioning
if((_flags & WindowFlags.HorizontalCenter) == WindowFlags.HorizontalCenter)
{
_drawRect.X = (_parent.Rectangle.Width - _rect.Width) / 2;
}
else
{
_drawRect.Y = (_parent.Rectangle.Height - _rect.Height) / 2;
}
}
_drawRect.X += offsetX;
_drawRect.Y += offsetY;
_clientRect = _drawRect;
if((_rect.Height > 0.0f) && (_rect.Width > 0.0f))
{
if(((_flags & WindowFlags.Border) == WindowFlags.Border) && (_borderSize != 0.0f))
{
_clientRect.X += _borderSize;
_clientRect.Y += _borderSize;
_clientRect.Width -= _borderSize;
_clientRect.Height -= _borderSize;
}
_textRect = _clientRect;
_textRect.X += 2;
_textRect.Y += 2;
_textRect.Width -= 2;
_textRect.Height -= 2;
_textRect.X += _textAlignX;
_textRect.Y += _textAlignY;
}
_origin = new Vector2(_rect.X + (_rect.Width / 2), _rect.Y + (_rect.Height / 2));
}