public virtual void ScaleUnitSquareToSize(NSSize newSize)
{
if (newSize.Width != 1.0 || newSize.Height != 1.0)
{
if (newSize.Width < 0)
{
//NSWarnMLog(@"given negative width", 0);
newSize.Width = 0;
}
if (newSize.Height < 0)
{
//NSWarnMLog(@"given negative height", 0);
newSize.Height = 0;
}
if (_boundsMatrix == null)
{
_boundsMatrix = (NSAffineTransform)NSAffineTransform.Alloc().Init();
}
_boundsMatrix.ScaleXByYBy(newSize.Width, newSize.Height);
// Adjust bounds
_bounds.Origin = NS.MakePoint(_bounds.Origin.X / newSize.Width, _bounds.Origin.Y / newSize.Height);
_bounds.Size = NS.MakeSize(_bounds.Size.Width / newSize.Width, _bounds.Size.Height / newSize.Height);
//_bounds.Origin.X = _bounds.Origin.X / newSize.Width;
//_bounds.Origin.Y = _bounds.Origin.Y / newSize.Height;
//_bounds.Size.Width = _bounds.Size.Width / newSize.Width;
//_bounds.Size.Height = _bounds.Size.Height / newSize.Height;
_is_rotated_or_scaled_from_base = true;
if (_coordinates_valid)
{
//FIXME
//(*invalidateImp)(self, invalidateSel);
}
this.ResetCursorRects();
if (_post_bounds_changes)
{
//[nc postNotificationName: NSViewBoundsDidChangeNotification object: self];
}
}
}