public static void AddRoundedRect (this CGContext c, RectangleF b, float r)
{
c.MoveTo (b.Left, b.Top + r);
c.AddLineToPoint (b.Left, b.Bottom - r);
c.AddArc (b.Left + r, b.Bottom - r, r, (float)(Math.PI), (float)(Math.PI / 2), true);
c.AddLineToPoint (b.Right - r, b.Bottom);
c.AddArc (b.Right - r, b.Bottom - r, r, (float)(-3 * Math.PI / 2), (float)(0), true);
c.AddLineToPoint (b.Right, b.Top + r);
c.AddArc (b.Right - r, b.Top + r, r, (float)(0), (float)(-Math.PI / 2), true);
c.AddLineToPoint (b.Left + r, b.Top);
c.AddArc (b.Left + r, b.Top + r, r, (float)(-Math.PI / 2), (float)(Math.PI), true);
}