Skip to content

Commit

Permalink
Merge branch 'master' of github.com:samsoffes/sstoolkit
Browse files Browse the repository at this point in the history
Conflicts:
	SSCatalog/SSCatalog.xcodeproj/project.pbxproj
  • Loading branch information
soffes committed May 27, 2011
2 parents 3724b07 + 9fd764d commit afa65a1
Show file tree
Hide file tree
Showing 17 changed files with 1,237 additions and 15 deletions.
10 changes: 7 additions & 3 deletions SSCatalog/Classes/SCCollectionViewDemoViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
//

#import "SCCollectionViewDemoViewController.h"
#import "SCImageCollectionViewItem.h"
#import "EGOImageView.h"

@implementation SCCollectionViewDemoViewController

Expand Down Expand Up @@ -56,16 +58,18 @@ - (NSInteger)collectionView:(SSCollectionView *)aCollectionView numberOfItemsInS
- (SSCollectionViewItem *)collectionView:(SSCollectionView *)aCollectionView itemForIndexPath:(NSIndexPath *)indexPath {
static NSString *const itemIdentifier = @"itemIdentifier";

SSCollectionViewItem *item = [aCollectionView dequeueReusableItemWithIdentifier:itemIdentifier];
SCImageCollectionViewItem *item = (SCImageCollectionViewItem *)[aCollectionView dequeueReusableItemWithIdentifier:itemIdentifier];
if (item == nil) {
item = [[[SSCollectionViewItem alloc] initWithStyle:SSCollectionViewItemStyleDefault reuseIdentifier:itemIdentifier] autorelease];
item = [[[SCImageCollectionViewItem alloc] initWithStyle:SSCollectionViewItemStyleDefault reuseIdentifier:itemIdentifier] autorelease];

// Customize item for demo
item.textLabel.backgroundColor = [UIColor colorWithWhite:0.9f alpha:1.0f];
item.textLabel.frame = CGRectMake(0.0f, 0.0f, 80.0f, 80.0f);
}

item.textLabel.text = [NSString stringWithFormat:@"%i", indexPath.row];
CGFloat size = 80.0f * [[UIScreen mainScreen] scale];
NSString *urlString = [NSString stringWithFormat:@"http://www.gravatar.com/avatar/%i?s=%0.f&d=identicon", indexPath.row, size];
item.remoteImageView.imageURL = [NSURL URLWithString:urlString];

return item;
}
Expand Down
4 changes: 4 additions & 0 deletions SSCatalog/Classes/SCGradientViewDemoViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ - (void)viewDidLoad {
_gradientView = [[SSGradientView alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 280.0f, 280.0f)];
_gradientView.topInsetAlpha = 0.3f;
_gradientView.topBorderColor = [UIColor colorWithRed:0.558f green:0.599f blue:0.643f alpha:1.0f];
_gradientView.topColor = [UIColor colorWithRed:0.676f green:0.722f blue:0.765f alpha:1.0f];
_gradientView.bottomColor = [UIColor colorWithRed:0.514f green:0.568f blue:0.617f alpha:1.0f];
_gradientView.bottomBorderColor = [UIColor colorWithRed:0.428f green:0.479f blue:0.520f alpha:1.0f];
[self.view addSubview:_gradientView];

Expand All @@ -55,6 +57,8 @@ - (void)viewDidLoad {
[scaleSlider addTarget:self action:@selector(updateScale:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:scaleSlider];
[scaleSlider release];

_blue = YES;
}


Expand Down
20 changes: 20 additions & 0 deletions SSCatalog/Classes/SCImageCollectionViewItem.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// SCImageCollectionViewItem.h
// SSCatalog
//
// Created by Sam Soffes on 5/3/11.
// Copyright 2011 Sam Soffes. All rights reserved.
//

#import <SSToolkit/SSCollectionViewItem.h>

@class EGOImageView;

@interface SCImageCollectionViewItem : SSCollectionViewItem {

EGOImageView *_remoteImageView;
}

@property (nonatomic, retain, readonly) EGOImageView *remoteImageView;

@end
49 changes: 49 additions & 0 deletions SSCatalog/Classes/SCImageCollectionViewItem.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
//
// SCImageCollectionViewItem.m
// SSCatalog
//
// Created by Sam Soffes on 5/3/11.
// Copyright 2011 Sam Soffes. All rights reserved.
//

#import "SCImageCollectionViewItem.h"
#import "EGOImageView.h"
#import <SSToolkit/SSDrawingUtilities.h>

@implementation SCImageCollectionViewItem

@synthesize remoteImageView = _remoteImageView;

#pragma mark NSObject

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


#pragma mark UIView

- (void)layoutSubviews {
_remoteImageView.frame = CGRectSetZeroOrigin(self.frame);
}


#pragma mark SSCollectionViewItem

- (id)initWithStyle:(SSCollectionViewItemStyle)style reuseIdentifier:(NSString *)aReuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:aReuseIdentifier])) {
_remoteImageView = [[EGOImageView alloc] initWithFrame:CGRectZero];
[self addSubview:_remoteImageView];
}
return self;
}


- (void)prepareForReuse {
[super prepareForReuse];
[_remoteImageView cancelImageLoad];
_remoteImageView.imageURL = nil;
}

@end
94 changes: 89 additions & 5 deletions SSCatalog/SSCatalog.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@

/* Begin PBXBuildFile section */
B21B85BE1067D4F300E5C076 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B21B85BC1067D4F300E5C076 /* main.m */; };
B22042911370FD1800604D62 /* SCImageCollectionViewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B22042901370FD1800604D62 /* SCImageCollectionViewItem.m */; };
B22042A21370FD3500604D62 /* EGOCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B22042961370FD3500604D62 /* EGOCache.m */; };
B22042A31370FD3500604D62 /* EGOImageButton.m in Sources */ = {isa = PBXBuildFile; fileRef = B22042991370FD3500604D62 /* EGOImageButton.m */; };
B22042A41370FD3500604D62 /* EGOImageLoadConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = B220429C1370FD3500604D62 /* EGOImageLoadConnection.m */; };
B22042A51370FD3500604D62 /* EGOImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = B220429E1370FD3500604D62 /* EGOImageLoader.m */; };
B22042A61370FD3500604D62 /* EGOImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = B22042A11370FD3500604D62 /* EGOImageView.m */; };
B24E9EAA121DC35B0085F81E /* SCAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B24E9E99121DC35B0085F81E /* SCAppDelegate.m */; };
B24E9EAB121DC35B0085F81E /* SCGradientViewDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B24E9E9B121DC35B0085F81E /* SCGradientViewDemoViewController.m */; };
B24E9EAC121DC35B0085F81E /* SCHUDViewDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B24E9E9D121DC35B0085F81E /* SCHUDViewDemoViewController.m */; };
Expand Down Expand Up @@ -59,18 +65,30 @@
remoteGlobalIDString = D2AAC07D0554694100DB518D;
remoteInfo = SSToolkit;
};
B2AA884F138F7446005E7781 /* PBXContainerItemProxy */ = {
B28FCB0013673079003F9BB8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = B24E9EC5121DC3CF0085F81E /* SSToolkit.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = B239101D1357DC3E00ADE21B /* SSToolkitTests.app */;
remoteGlobalIDString = B239101D1357DC3E00ADE21B;
remoteInfo = SSToolkitTests;
};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
1D6058910D05DD3D006BFB54 /* SSCatalog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SSCatalog.app; sourceTree = BUILT_PRODUCTS_DIR; };
B21B85BC1067D4F300E5C076 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
B220428F1370FD1800604D62 /* SCImageCollectionViewItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCImageCollectionViewItem.h; sourceTree = "<group>"; };
B22042901370FD1800604D62 /* SCImageCollectionViewItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCImageCollectionViewItem.m; sourceTree = "<group>"; };
B22042951370FD3500604D62 /* EGOCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGOCache.h; sourceTree = "<group>"; };
B22042961370FD3500604D62 /* EGOCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGOCache.m; sourceTree = "<group>"; };
B22042981370FD3500604D62 /* EGOImageButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGOImageButton.h; sourceTree = "<group>"; };
B22042991370FD3500604D62 /* EGOImageButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGOImageButton.m; sourceTree = "<group>"; };
B220429B1370FD3500604D62 /* EGOImageLoadConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGOImageLoadConnection.h; sourceTree = "<group>"; };
B220429C1370FD3500604D62 /* EGOImageLoadConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGOImageLoadConnection.m; sourceTree = "<group>"; };
B220429D1370FD3500604D62 /* EGOImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGOImageLoader.h; sourceTree = "<group>"; };
B220429E1370FD3500604D62 /* EGOImageLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGOImageLoader.m; sourceTree = "<group>"; };
B22042A01370FD3500604D62 /* EGOImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EGOImageView.h; sourceTree = "<group>"; };
B22042A11370FD3500604D62 /* EGOImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EGOImageView.m; sourceTree = "<group>"; };
B24E9E98121DC35B0085F81E /* SCAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCAppDelegate.h; sourceTree = "<group>"; };
B24E9E99121DC35B0085F81E /* SCAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SCAppDelegate.m; sourceTree = "<group>"; };
B24E9E9A121DC35B0085F81E /* SCGradientViewDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCGradientViewDemoViewController.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -164,6 +182,7 @@
isa = PBXGroup;
children = (
080E96DDFE201D6D7F000001 /* Classes */,
B22042921370FD3500604D62 /* Vendor */,
B21B85BB1067D4F300E5C076 /* Other Sources */,
B21B85BF1067D4FD00E5C076 /* Resources */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
Expand Down Expand Up @@ -214,11 +233,68 @@
path = Resources;
sourceTree = "<group>";
};
B22042921370FD3500604D62 /* Vendor */ = {
isa = PBXGroup;
children = (
B22042931370FD3500604D62 /* EGOImageLoading */,
);
path = Vendor;
sourceTree = "<group>";
};
B22042931370FD3500604D62 /* EGOImageLoading */ = {
isa = PBXGroup;
children = (
B22042941370FD3500604D62 /* EGOCache */,
B22042971370FD3500604D62 /* EGOImageButton */,
B220429A1370FD3500604D62 /* EGOImageLoader */,
B220429F1370FD3500604D62 /* EGOImageView */,
);
path = EGOImageLoading;
sourceTree = "<group>";
};
B22042941370FD3500604D62 /* EGOCache */ = {
isa = PBXGroup;
children = (
B22042951370FD3500604D62 /* EGOCache.h */,
B22042961370FD3500604D62 /* EGOCache.m */,
);
path = EGOCache;
sourceTree = "<group>";
};
B22042971370FD3500604D62 /* EGOImageButton */ = {
isa = PBXGroup;
children = (
B22042981370FD3500604D62 /* EGOImageButton.h */,
B22042991370FD3500604D62 /* EGOImageButton.m */,
);
path = EGOImageButton;
sourceTree = "<group>";
};
B220429A1370FD3500604D62 /* EGOImageLoader */ = {
isa = PBXGroup;
children = (
B220429B1370FD3500604D62 /* EGOImageLoadConnection.h */,
B220429C1370FD3500604D62 /* EGOImageLoadConnection.m */,
B220429D1370FD3500604D62 /* EGOImageLoader.h */,
B220429E1370FD3500604D62 /* EGOImageLoader.m */,
);
path = EGOImageLoader;
sourceTree = "<group>";
};
B220429F1370FD3500604D62 /* EGOImageView */ = {
isa = PBXGroup;
children = (
B22042A01370FD3500604D62 /* EGOImageView.h */,
B22042A11370FD3500604D62 /* EGOImageView.m */,
);
path = EGOImageView;
sourceTree = "<group>";
};
B24E9EC6121DC3CF0085F81E /* Products */ = {
isa = PBXGroup;
children = (
B24E9ECA121DC3CF0085F81E /* libSSToolkit.a */,
B2AA8850138F7446005E7781 /* SSToolkitTests.app */,
B28FCB0113673079003F9BB8 /* SSToolkitTests.app */,
);
name = Products;
sourceTree = "<group>";
Expand All @@ -241,6 +317,8 @@
E7FD242612F4FFC5006A6691 /* SCBadgeTableViewCellDemoViewController.m */,
B27B1A561224228000111EA2 /* SCCollectionViewDemoViewController.h */,
B27B1A571224228000111EA2 /* SCCollectionViewDemoViewController.m */,
B220428F1370FD1800604D62 /* SCImageCollectionViewItem.h */,
B22042901370FD1800604D62 /* SCImageCollectionViewItem.m */,
B24E9E9A121DC35B0085F81E /* SCGradientViewDemoViewController.h */,
B24E9E9B121DC35B0085F81E /* SCGradientViewDemoViewController.m */,
B24E9E9C121DC35B0085F81E /* SCHUDViewDemoViewController.h */,
Expand Down Expand Up @@ -345,11 +423,11 @@
remoteRef = B24E9EC9121DC3CF0085F81E /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
B2AA8850138F7446005E7781 /* SSToolkitTests.app */ = {
B28FCB0113673079003F9BB8 /* SSToolkitTests.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = SSToolkitTests.app;
remoteRef = B2AA884F138F7446005E7781 /* PBXContainerItemProxy */;
remoteRef = B28FCB0013673079003F9BB8 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
Expand Down Expand Up @@ -399,6 +477,12 @@
B28C6D0B12FBE96600667755 /* SSRatingDemoViewController.m in Sources */,
B2E241821301CE4900F7DC3B /* SCAddressBarDemoViewController.m in Sources */,
B2ABED96130A0EC000AD7A1C /* SCSegmentedControlDemoViewController.m in Sources */,
B22042911370FD1800604D62 /* SCImageCollectionViewItem.m in Sources */,
B22042A21370FD3500604D62 /* EGOCache.m in Sources */,
B22042A31370FD3500604D62 /* EGOImageButton.m in Sources */,
B22042A41370FD3500604D62 /* EGOImageLoadConnection.m in Sources */,
B22042A51370FD3500604D62 /* EGOImageLoader.m in Sources */,
B22042A61370FD3500604D62 /* EGOImageView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
53 changes: 53 additions & 0 deletions SSCatalog/Vendor/EGOImageLoading/EGOCache/EGOCache.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
//
// EGOCache.h
// enormego
//
// Created by Shaun Harrison on 7/4/09.
// Copyright 2009 enormego. All rights reserved.
//
// This work is licensed under the Creative Commons GNU General Public License License.
// To view a copy of this license, visit http://creativecommons.org/licenses/GPL/2.0/
// or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
//

#import <Foundation/Foundation.h>


@interface EGOCache : NSObject {
@private
NSMutableDictionary* cacheDictionary;
NSOperationQueue* diskOperationQueue;
NSTimeInterval defaultTimeoutInterval;
}

+ (EGOCache*)currentCache;

- (void)clearCache;
- (void)removeCacheForKey:(NSString*)key;

- (BOOL)hasCacheForKey:(NSString*)key;

- (NSData*)dataForKey:(NSString*)key;
- (void)setData:(NSData*)data forKey:(NSString*)key; // withTimeoutInterval:defaultTimeoutInterval
- (void)setData:(NSData*)data forKey:(NSString*)key withTimeoutInterval:(NSTimeInterval)timeoutInterval;

- (NSString*)stringForKey:(NSString*)key;
- (void)setString:(NSString*)aString forKey:(NSString*)key; // withTimeoutInterval:defaultTimeoutInterval
- (void)setString:(NSString*)aString forKey:(NSString*)key withTimeoutInterval:(NSTimeInterval)timeoutInterval;

#if TARGET_OS_IPHONE
- (UIImage*)imageForKey:(NSString*)key;
- (void)setImage:(UIImage*)anImage forKey:(NSString*)key; // withTimeoutInterval:defaultTimeoutInterval
- (void)setImage:(UIImage*)anImage forKey:(NSString*)key withTimeoutInterval:(NSTimeInterval)timeoutInterval;
#else
- (NSImage*)imageForKey:(NSString*)key;
- (void)setImage:(NSImage*)anImage forKey:(NSString*)key; // withTimeoutInterval:defaultTimeoutInterval
- (void)setImage:(NSImage*)anImage forKey:(NSString*)key withTimeoutInterval:(NSTimeInterval)timeoutInterval;
#endif

- (NSData*)plistForKey:(NSString*)key;
- (void)setPlist:(id)plistObject forKey:(NSString*)key; // withTimeoutInterval:defaultTimeoutInterval
- (void)setPlist:(id)plistObject forKey:(NSString*)key withTimeoutInterval:(NSTimeInterval)timeoutInterval;

@property(nonatomic,assign) NSTimeInterval defaultTimeoutInterval; // Default is 1 day
@end
Loading

0 comments on commit afa65a1

Please sign in to comment.