project_files/HedgewarsMobile/MGSplitCornersView.m
changeset 6659 a6030b32b222
parent 6658 2cccf6b2b89d
child 6660 99ecc7e17c4f
--- a/project_files/HedgewarsMobile/MGSplitCornersView.m	Thu Feb 09 18:59:46 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,241 +0,0 @@
-//
-//  MGSplitCornersView.m
-//  MGSplitView
-//
-//  Created by Matt Gemmell on 28/07/2010.
-//  Copyright 2010 Instinctive Code.
-//
-
-#import "MGSplitCornersView.h"
-
-
-@implementation MGSplitCornersView
-
-
-#pragma mark -
-#pragma mark Setup and teardown
-
-
-- (id)initWithFrame:(CGRect)frame
-{
-    if ((self = [super initWithFrame:frame])) {
-		self.contentMode = UIViewContentModeRedraw;
-		self.userInteractionEnabled = NO;
-		self.opaque = NO;
-		self.backgroundColor = [UIColor clearColor];
-		cornerRadius = 0.0; // actual value is set by the splitViewController.
-		cornersPosition = MGCornersPositionLeadingVertical;
-    }
-	
-    return self;
-}
-
-
-- (void)dealloc
-{
-	self.cornerBackgroundColor = nil;
-	
-	[super dealloc];
-}
-
-
-#pragma mark -
-#pragma mark Geometry helpers
-
-
-double deg2Rad(double degrees)
-{
-	// Converts degrees to radians.
-	return degrees * (M_PI / 180.0);
-}
-
-
-double rad2Deg(double radians)
-{
-	// Converts radians to degrees.
-	return radians * (180 / M_PI);
-}
-
-
-#pragma mark -
-#pragma mark Drawing
-
-
-- (void)drawRect:(CGRect)rect
-{
-	// Draw two appropriate corners, with cornerBackgroundColor behind them.
-	if (cornerRadius > 0) {
-		if (NO) { // just for debugging.
-			[[UIColor redColor] set];
-			UIRectFill(self.bounds);
-		}
-		
-		float maxX = CGRectGetMaxX(self.bounds);
-		float maxY = CGRectGetMaxY(self.bounds);
-		UIBezierPath *path = [UIBezierPath bezierPath];
-		CGPoint pt = CGPointZero;
-		switch (cornersPosition) {
-			case MGCornersPositionLeadingVertical: // top of screen for a left/right split
-				[path moveToPoint:pt];
-				pt.y += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(90) endAngle:0 clockwise:YES]];
-				pt.x += cornerRadius;
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path addLineToPoint:CGPointZero];
-				[path closePath];
-				
-				pt.x = maxX - cornerRadius;
-				pt.y = 0;
-				[path moveToPoint:pt];
-				pt.y = maxY;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(180) endAngle:deg2Rad(90) clockwise:YES]];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			case MGCornersPositionTrailingVertical: // bottom of screen for a left/right split
-				pt.y = maxY;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(270) endAngle:deg2Rad(360) clockwise:NO]];
-				pt.x += cornerRadius;
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				pt.x = maxX - cornerRadius;
-				pt.y = maxY;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(180) endAngle:deg2Rad(270) clockwise:NO]];
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			case MGCornersPositionLeadingHorizontal: // left of screen for a top/bottom split
-				pt.x = 0;
-				pt.y = cornerRadius;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(180) endAngle:deg2Rad(270) clockwise:NO]];
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				pt.x = 0;
-				pt.y = maxY - cornerRadius;
-				[path moveToPoint:pt];
-				pt.y = maxY;
-				[path addLineToPoint:pt];
-				pt.x += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(180) endAngle:deg2Rad(90) clockwise:YES]];
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			case MGCornersPositionTrailingHorizontal: // right of screen for a top/bottom split
-				pt.y = cornerRadius;
-				[path moveToPoint:pt];
-				pt.y -= cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(270) endAngle:deg2Rad(360) clockwise:NO]];
-				pt.x += cornerRadius;
-				pt.y += cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				pt.y = maxY - cornerRadius;
-				[path moveToPoint:pt];
-				pt.y += cornerRadius;
-				[path appendPath:[UIBezierPath bezierPathWithArcCenter:pt radius:cornerRadius startAngle:deg2Rad(90) endAngle:0 clockwise:YES]];
-				pt.x += cornerRadius;
-				pt.y -= cornerRadius;
-				[path addLineToPoint:pt];
-				pt.x -= cornerRadius;
-				[path addLineToPoint:pt];
-				[path closePath];
-				
-				break;
-				
-			default:
-				break;
-		}
-		
-		[self.cornerBackgroundColor set];
-		[path fill];
-	}
-}
-
-
-#pragma mark -
-#pragma mark Accessors and properties
-
-
-- (void)setCornerRadius:(float)newRadius
-{
-	if (newRadius != cornerRadius) {
-		cornerRadius = newRadius;
-		[self setNeedsDisplay];
-	}
-}
-
-
-- (void)setSplitViewController:(MGSplitViewController *)theController
-{
-	if (theController != splitViewController) {
-		splitViewController = theController;
-		[self setNeedsDisplay];
-	}
-}
-
-
-- (void)setCornersPosition:(MGCornersPosition)posn
-{
-	if (cornersPosition != posn) {
-		cornersPosition = posn;
-		[self setNeedsDisplay];
-	}
-}
-
-
-- (void)setCornerBackgroundColor:(UIColor *)color
-{
-	if (color != cornerBackgroundColor) {
-		[cornerBackgroundColor release];
-		cornerBackgroundColor = [color retain];
-		[self setNeedsDisplay];
-	}
-}
-
-
-@synthesize cornerRadius;
-@synthesize splitViewController;
-@synthesize cornersPosition;
-@synthesize cornerBackgroundColor;
-
-
-@end