|
// |
|
// ButtonStyling.m |
|
// |
|
// Created by Ian Levesque on 3/29/10. |
|
// |
|
|
|
#import "ButtonStyling.h" |
|
|
|
static UIImage * ConcatenateButtonImages(UIImage *leftImage, UIImage *middleImage, UIImage *rightImage) { |
|
UIGraphicsBeginImageContext(CGSizeMake([leftImage size].width + [middleImage size].width + [rightImage size].width, |
|
[leftImage size].height)); |
|
|
|
[leftImage drawInRect:CGRectMake(0, 0, [leftImage size].width, [leftImage size].height)]; |
|
|
|
[middleImage drawInRect:CGRectMake([leftImage size].width, 0, |
|
[middleImage size].width, [leftImage size].height)]; |
|
|
|
[rightImage drawInRect:CGRectMake([leftImage size].width + [middleImage size].width, 0, |
|
[rightImage size].width, [leftImage size].height)]; |
|
|
|
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); |
|
UIGraphicsEndImageContext(); |
|
|
|
return [newImage stretchableImageWithLeftCapWidth:[leftImage size].width topCapHeight:0]; |
|
} |
|
|
|
@implementation UIImage(ButtonStyling) |
|
|
|
+ (UIImage *) buttonImageNamed:(NSString *)buttonPrefix { |
|
UIImage *leftImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_left"]]; |
|
UIImage *middleImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_middle"]]; |
|
UIImage *rightImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_right"]]; |
|
|
|
return ConcatenateButtonImages(leftImage, middleImage, rightImage); |
|
} |
|
|
|
+ (UIImage *) buttonClickedImageNamed:(NSString *)buttonPrefix { |
|
UIImage *leftImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_left_clicked"]]; |
|
UIImage *middleImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_middle_clicked"]]; |
|
UIImage *rightImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_right_clicked"]]; |
|
|
|
return ConcatenateButtonImages(leftImage, middleImage, rightImage); |
|
} |
|
|
|
@end |