wiki:TestTest

Version 17 (modified by Boris Ioffe, 8 years ago) (diff)

--


Barackula from mark mannschreck on Vimeo.
for(NSString* family in [UIFont familyNames]){
		Debug(@"%@ %@",family, [UIFont fontNamesForFamilyName:family]);

	}
#import "MATCAlertView.h"


@implementation MATCAlertView

#pragma mark -
#pragma mark Initialization and teardown

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
    }
    return self;
}


- (void)dealloc {
    [super dealloc];
}

#pragma mark -
#pragma mark Drawing methods

+ (CGColorSpaceRef)genericRGBSpace;
{ 
	static CGColorSpaceRef space = NULL; 
	if (space == NULL) 
	{ 
		space = CGColorSpaceCreateDeviceRGB();
	} 
	return space; 
} 

+ (CGColorRef)whiteColor; 
{ 
	static CGColorRef white = NULL; 
	if (white == NULL) 
	{ 
		CGFloat values[4] = {1.0, 1.0, 1.0, 1.0}; 
		white = CGColorCreate([self genericRGBSpace], values); 
	} 
	return white; 
} 

+ (CGColorRef)shadowColor; 
{ 
	static CGColorRef shadowColor = NULL; 
	if (shadowColor == NULL) 
	{ 
		CGFloat values[4] = {0.0, 0.0, 0.0, 0.5}; 
		shadowColor = CGColorCreate([self genericRGBSpace], values); 
	} 
	return shadowColor; 
} 


+ (CGColorRef)translucentBlueColor; 
{ 
	static CGColorRef translucentBlue = NULL; 
	if (translucentBlue == NULL) 
	{ 
		CGFloat values[4] = {0.13, 0.24, 0.44, 0.7}; 
		translucentBlue = CGColorCreate([self genericRGBSpace], values); 
	} 
	return translucentBlue; 
} 

- (void)drawRect:(CGRect)rect 
{
	CGFloat shadowRadius = 4.0f;
	CGContextRef context = UIGraphicsGetCurrentContext();
    CGRect currentBounds = self.bounds;

	CGContextSaveGState(context);
	// Set up the shadow around the view, which requires a slight inset on the view
	CGContextSetShadowWithColor( context, CGSizeMake(0.0f, -shadowRadius), shadowRadius, [MATCAlertView shadowColor] );   

	// Draw the blue background rectangle and border
	CGContextSetLineWidth(context, 2.0f);
	CGContextSetStrokeColorWithColor(context, [MATCAlertView whiteColor]);
	CGContextSetFillColorWithColor(context, [MATCAlertView translucentBlueColor]);
	
	CGFloat cornerRadius = 5.0f;
	CGRect actualViewRect = CGRectMake(shadowRadius + 0.5, 1.5f, currentBounds.size.width - shadowRadius * 2.0f, currentBounds.size.height - shadowRadius*2.5f);

	CGContextBeginPath(context);
	CGContextMoveToPoint(context, CGRectGetMinX(actualViewRect) + cornerRadius + 0.5, CGRectGetMinY(actualViewRect) + 0.5);
    CGContextAddArc(context, CGRectGetMaxX(actualViewRect) - cornerRadius + 0.5, CGRectGetMinY(actualViewRect) + cornerRadius + 0.5, cornerRadius, 3 * M_PI / 2, 0, 0);
    CGContextAddArc(context, CGRectGetMaxX(actualViewRect) - cornerRadius + 0.5, CGRectGetMaxY(actualViewRect) - cornerRadius + 0.5, cornerRadius, 0, M_PI / 2, 0);
    CGContextAddArc(context, CGRectGetMinX(actualViewRect) + cornerRadius + 0.5, CGRectGetMaxY(actualViewRect) - cornerRadius + 0.5, cornerRadius, M_PI / 2, M_PI, 0);
    CGContextAddArc(context, CGRectGetMinX(actualViewRect) + cornerRadius + 0.5, CGRectGetMinY(actualViewRect) + cornerRadius + 0.5, cornerRadius, M_PI, 3 * M_PI / 2, 0);	
    CGContextClosePath(context);
	CGContextDrawPath(context, kCGPathFillStroke);
    CGContextRestoreGState(context);
//
//	// Clip the gloss clipping path to the rounded rectangle
//	CGContextBeginPath(context);
//	CGContextMoveToPoint(context, CGRectGetMinX(actualViewRect) + cornerRadius + 0.5, CGRectGetMinY(actualViewRect) + 0.5);
//    CGContextAddArc(context, CGRectGetMaxX(actualViewRect) - cornerRadius + 0.5, CGRectGetMinY(actualViewRect) + cornerRadius + 0.5, cornerRadius, 3 * M_PI / 2, 0, 0);
//    CGContextAddArc(context, CGRectGetMaxX(actualViewRect) - cornerRadius + 0.5, CGRectGetMaxY(actualViewRect) - cornerRadius + 0.5, cornerRadius, 0, M_PI / 2, 0);
//    CGContextAddArc(context, CGRectGetMinX(actualViewRect) + cornerRadius + 0.5, CGRectGetMaxY(actualViewRect) - cornerRadius + 0.5, cornerRadius, M_PI / 2, M_PI, 0);
//    CGContextAddArc(context, CGRectGetMinX(actualViewRect) + cornerRadius + 0.5, CGRectGetMinY(actualViewRect) + cornerRadius + 0.5, cornerRadius, M_PI, 3 * M_PI / 2, 0);	
//    CGContextClosePath(context);
//	CGContextClip(context);	
//	
//	// Set up a clipping path for the gloss gradient
//	CGFloat glossRadius = 600.0f;
//	CGPoint glossCenterPoint = CGPointMake(CGRectGetMidX(currentBounds), 30.0 - glossRadius);
//	CGContextBeginPath(context);
//	CGContextMoveToPoint(context, glossCenterPoint.x, glossCenterPoint.y);
//	CGContextAddArc(context, glossCenterPoint.x, glossCenterPoint.y, glossRadius, 0.0, M_PI, 0
//					);
//	CGContextClosePath(context);
//	CGContextClip(context);	
//
//	// Draw the gloss gradient	
    CGGradientRef glossGradient;
    CGFloat locations[2] = { 0.0, 1.0 };
    CGFloat components[8] = { 1.0, 1.0, 1.0, 0.65,  // Start color
		1.0, 1.0, 1.0, 0.06 }; // End color
    glossGradient = CGGradientCreateWithColorComponents([MATCAlertView genericRGBSpace], components, locations, 2);
	CGPoint topCenter = CGPointMake(CGRectGetMidX(currentBounds), 0.0f);
    CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), 30.0f);
    CGContextDrawLinearGradient(context, glossGradient, topCenter, midCenter, 0);
    CGGradientRelease(glossGradient);	
}




@end