Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 static extern void CGRectDivide(CGRect rect, out CGRect slice, out CGRect remainder, nfloat amount, NSRectEdge edge);
Beispiel #4
0
 public NSTextBlockValueType WidthValueTypeForLayeredge(NSTextBlockLayer layer, NSRectEdge edge)
 {
     return(WidthValueTypeForLayer(layer, edge));
 }
Beispiel #5
0
 static unsafe extern CGRect DrawTiledRects(CGRect aRect, CGRect clipRect, NSRectEdge* sides, nfloat* grays, nint count);
Beispiel #6
0
 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);
     }
 }
Beispiel #7
0
        /// <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");
            }
        }
Beispiel #8
0
 public NSTextBlockValueType WidthValueTypeForLayeredge(NSTextBlockLayer layer, NSRectEdge edge)
 {
     return WidthValueTypeForLayer (layer, edge);
 }