// // CWTweetTextField.m // QuickTweet // // Created by Floyd Price on 10/09/2009. // Copyright 2009 Component Workshop Ltd. All rights reserved. // #import "CWTweetTextView.h" @implementation CWTweetTextView - (void)drawRect:(CGRect)rect { // OK (where to start!) // We are drawing a rounded rect to give the text view a nice border, but we are also cutting out the shape of the info button // then we do it all again to give the border a nice thin white inner edge. // What a lot of work ey! CGContextRef context = UIGraphicsGetCurrentContext(); CGRect rrect = [self bounds]; rrect.size.height = rrect.size.height - 2; rrect.size.width = rrect.size.width - 2; rrect.origin.x = rrect.origin.x + (2/2); rrect.origin.y = rrect.origin.y + (2/2); CGContextSetAllowsAntialiasing(context, true); CGContextSetLineWidth(context,2); CGColorRef c = [[UIColor colorWithRed:0.886 green:0.886 blue:0.886 alpha:1] CGColor]; CGContextSetFillColorWithColor(context, c); CGColorRef bc = [[UIColor colorWithRed:0.114 green:0.141 blue:0.173 alpha:1] CGColor]; CGContextSetStrokeColorWithColor(context, bc); CGFloat radius = 8.0; CGFloat minx = CGRectGetMinX(rrect), midx = CGRectGetMidX(rrect), maxx = CGRectGetMaxX(rrect); CGFloat miny = CGRectGetMinY(rrect), midy = CGRectGetMidY(rrect), maxy = CGRectGetMaxY(rrect); CGContextMoveToPoint(context, minx, midy); CGContextAddArcToPoint(context, minx, miny, midx, miny, radius); CGContextAddLineToPoint(context, maxx - 17, miny); CGContextAddCurveToPoint(context, maxx - 18, miny + 11, maxx - 11 , miny +18, maxx, miny + 17); CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius); CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius); CGContextClosePath(context); CGContextDrawPath(context, kCGPathFillStroke); minx +=2; miny +=2; midx +=1; midy +=1; maxx -=2; maxy -=2; radius = 6.0; c = [[UIColor greenColor] CGColor]; CGContextSetFillColorWithColor(context, c); bc = [[UIColor whiteColor] CGColor]; CGContextSetStrokeColorWithColor(context, bc); CGContextSetLineWidth(context,1); CGContextMoveToPoint(context, minx, midy); CGContextAddArcToPoint(context, minx, miny, midx, miny, radius); CGContextAddLineToPoint(context, maxx - 17, miny); CGContextAddCurveToPoint(context, maxx - 16, miny + 11, maxx - 11 , miny +17, maxx, miny + 17); CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius); CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius); CGContextClosePath(context); CGContextDrawPath(context, kCGPathStroke); UIGraphicsEndImageContext(); } @end