diff options
author | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2010-04-23 17:06:12 +0000 |
---|---|---|
committer | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2010-04-23 17:06:12 +0000 |
commit | 1a9b06522f8b0fd13043bf990866b27f936b8ba6 (patch) | |
tree | 2a107cd982bf4cf87ecfb110952693baaf2aeeab /iPhone | |
parent | 4992915e0719e9a058976a32a3b89a75a7824b8c (diff) |
[Author: altse]
Add GTMRoundedRectPath to draw rounded rectangles on iPhone.
R=thomasvl
DELTA=72 (72 added, 0 deleted, 0 changed)
Diffstat (limited to 'iPhone')
-rw-r--r-- | iPhone/GTMRoundedRectPath.h | 22 | ||||
-rw-r--r-- | iPhone/GTMRoundedRectPath.m | 50 |
2 files changed, 72 insertions, 0 deletions
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 <CoreGraphics/CoreGraphics.h> + +// 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; +} |