/// <summary> /// Divides this rectangle into two new rectangles. /// </summary> public void DivideRect(ref NSRect slice, ref NSRect remainder, CGFloat amount, NSRectEdge edge) { NSDivideRect(this, ref slice, ref remainder, amount, edge); }
public static void Divide(this CGRect self, nfloat amount, NSRectEdge edge, out CGRect slice, out CGRect remainder) { CGRectDivide(self, out slice, out remainder, amount, edge); }
static extern void CGRectDivide(CGRect rect, out CGRect slice, out CGRect remainder, nfloat amount, NSRectEdge edge);
public NSTextBlockValueType WidthValueTypeForLayeredge(NSTextBlockLayer layer, NSRectEdge edge) { return(WidthValueTypeForLayer(layer, edge)); }
static unsafe extern CGRect DrawTiledRects(CGRect aRect, CGRect clipRect, NSRectEdge* sides, nfloat* grays, nint count);
public static CGRect DrawTiledRects(CGRect aRect, CGRect clipRect, NSRectEdge[] sides, nfloat[] grays) { if (sides == null) throw new ArgumentNullException ("sides"); if (grays == null) throw new ArgumentNullException ("grays"); if (sides.Length != grays.Length) throw new ArgumentOutOfRangeException ("grays", "Both array parameters must have the same length"); unsafe { fixed (NSRectEdge *ptr = &sides [0]) fixed (nfloat *ptr2 = &grays [0]) return DrawTiledRects (aRect, clipRect, ptr, ptr2, sides.Length); } }
/// <summary> /// Divides a rectangle into two new rectangles. /// </summary> /// <remarks>Original declaration is : void NSDivideRect(NSRect inRect, NSRect *slice, NSRect *remainder, float amount, NSRectEdge edge)</remarks> public static void NSDivideRect(NSRect inRect, ref NSRect slice, ref NSRect remainder, CGFloat amount, NSRectEdge edge) { if (NSIsEmptyRect(inRect)) { slice = NSZeroRect; remainder = NSZeroRect; } switch (edge) { case NSRectEdge.NSMinXEdge: { float delta = amount; if (amount > inRect.size.width) { delta = inRect.size.width; } slice = NSMakeRect(inRect.origin.x, inRect.origin.y, delta, inRect.size.height); remainder = NSMakeRect(inRect.origin.x + delta, inRect.origin.y, inRect.size.width - delta, inRect.size.height); } break; case NSRectEdge.NSMinYEdge: { float delta = amount; if (amount > inRect.size.height) { delta = inRect.size.height; } slice = NSMakeRect(inRect.origin.x, inRect.origin.y, inRect.size.width, delta); remainder = NSMakeRect(inRect.origin.x, inRect.origin.y + delta, inRect.size.width, inRect.size.height - delta); } break; case NSRectEdge.NSMaxXEdge: { float delta = amount; if (amount > inRect.size.width) { delta = inRect.size.width; } slice = NSMakeRect(inRect.origin.x + inRect.size.width - delta, inRect.origin.y, delta, inRect.size.height); remainder = NSMakeRect(inRect.origin.x, inRect.origin.y, inRect.size.width - delta, inRect.size.height); } break; case NSRectEdge.NSMaxYEdge: { float delta = amount; if (amount > inRect.size.height) { delta = inRect.size.height; } slice = NSMakeRect(inRect.origin.x, inRect.origin.y + inRect.size.height - delta, inRect.size.width, delta); remainder = NSMakeRect(inRect.origin.x, inRect.origin.y, inRect.size.width, inRect.size.height - delta); } break; default: throw new ArgumentOutOfRangeException("edge"); } }
public NSTextBlockValueType WidthValueTypeForLayeredge(NSTextBlockLayer layer, NSRectEdge edge) { return WidthValueTypeForLayer (layer, edge); }