From 1a9b06522f8b0fd13043bf990866b27f936b8ba6 Mon Sep 17 00:00:00 2001 From: "gtm.daemon" Date: Fri, 23 Apr 2010 17:06:12 +0000 Subject: [Author: altse] Add GTMRoundedRectPath to draw rounded rectangles on iPhone. R=thomasvl DELTA=72 (72 added, 0 deleted, 0 changed) --- iPhone/GTMRoundedRectPath.h | 22 ++++++++++++++++++++ iPhone/GTMRoundedRectPath.m | 50 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 iPhone/GTMRoundedRectPath.h create mode 100644 iPhone/GTMRoundedRectPath.m (limited to 'iPhone') diff --git a/iPhone/GTMRoundedRectPath.h b/iPhone/GTMRoundedRectPath.h new file mode 100644 index 0000000..1bc8a08 --- /dev/null +++ b/iPhone/GTMRoundedRectPath.h @@ -0,0 +1,22 @@ +// +// GTMRoundedRectPath.h +// +// Copyright 2010 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import + +// Allocates a new rounded corner rectangle path. +CGPathRef GTMCreateRoundedRectPath(CGRect rect, CGFloat radius); diff --git a/iPhone/GTMRoundedRectPath.m b/iPhone/GTMRoundedRectPath.m new file mode 100644 index 0000000..194f53e --- /dev/null +++ b/iPhone/GTMRoundedRectPath.m @@ -0,0 +1,50 @@ +// +// GTMRoundedRectPath.m +// +// Copyright 2010 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// +#include "GTMRoundedRectPath.h" + +CGPathRef GTMCreateRoundedRectPath(CGRect rect, CGFloat radius) { + CGMutablePathRef path = CGPathCreateMutable(); + + CGPoint topLeft = CGPointMake(CGRectGetMinX(rect), CGRectGetMinY(rect)); + CGPoint topRight = CGPointMake(CGRectGetMaxX(rect), CGRectGetMinY(rect)); + CGPoint bottomRight = CGPointMake(CGRectGetMaxX(rect), CGRectGetMaxY(rect)); + CGPoint bottomLeft = CGPointMake(CGRectGetMinX(rect), CGRectGetMaxY(rect)); + + CGPathMoveToPoint(path, NULL, CGRectGetMidX(rect), CGRectGetMinY(rect)); + CGPathAddArcToPoint(path, NULL, + topLeft.x, topLeft.y, + bottomLeft.x, bottomLeft.y, + radius); + CGPathAddArcToPoint(path, NULL, + bottomLeft.x, bottomLeft.y, + bottomRight.x, bottomRight.y, + radius); + CGPathAddArcToPoint(path, NULL, + bottomRight.x, bottomRight.y, + topRight.x, topRight.y, + radius); + CGPathAddArcToPoint(path, NULL, + topRight.x, topRight.y, + topLeft.x, topLeft.y, + radius); + CGPathCloseSubpath(path); + + CGPathRef immutablePath = CGPathCreateCopy(path); + CGPathRelease(path); + return immutablePath; +} -- cgit v1.2.3