From 657f91247b74265bf173569bd2647a41b2326051 Mon Sep 17 00:00:00 2001 From: AliSoftware Date: Thu, 2 Sep 2010 21:50:35 +0200 Subject: [PATCH] GridView added --- GridView.h | 68 +++ GridView.m | 225 +++++++++ .../Classes/GridViewExampleAppDelegate.h | 22 + .../Classes/GridViewExampleAppDelegate.m | 40 ++ .../Classes/GridViewExampleViewController.h | 16 + .../Classes/GridViewExampleViewController.m | 61 +++ GridViewExample/GridViewExample-Info.plist | 30 ++ .../GridViewExample.xcodeproj/project.pbxproj | 317 +++++++++++++ .../GridViewExampleViewController.xib | 391 +++++++++++++++ GridViewExample/GridViewExample_Prefix.pch | 8 + GridViewExample/MainWindow.xib | 444 ++++++++++++++++++ GridViewExample/icons/browser-64x64.png | Bin 0 -> 12293 bytes GridViewExample/icons/calc-64x64.png | Bin 0 -> 11811 bytes GridViewExample/icons/chat-blank-64x64.png | Bin 0 -> 7747 bytes GridViewExample/icons/clock-64x64.png | Bin 0 -> 10186 bytes GridViewExample/icons/graph-64x64.png | Bin 0 -> 10228 bytes GridViewExample/icons/ipod-64x64.png | Bin 0 -> 8681 bytes GridViewExample/icons/mail-64x64.png | Bin 0 -> 10269 bytes GridViewExample/icons/map-64x64.png | Bin 0 -> 12155 bytes GridViewExample/icons/notes-64x64.png | Bin 0 -> 9290 bytes GridViewExample/icons/photo-64x64.png | Bin 0 -> 10887 bytes GridViewExample/icons/tools-64x64.png | Bin 0 -> 13552 bytes GridViewExample/icons/wallpaper-64x64.png | Bin 0 -> 12819 bytes GridViewExample/icons/weather-64x64.png | Bin 0 -> 11061 bytes GridViewExample/main.m | 17 + README | 14 + 26 files changed, 1653 insertions(+) create mode 100644 GridView.h create mode 100644 GridView.m create mode 100644 GridViewExample/Classes/GridViewExampleAppDelegate.h create mode 100644 GridViewExample/Classes/GridViewExampleAppDelegate.m create mode 100644 GridViewExample/Classes/GridViewExampleViewController.h create mode 100644 GridViewExample/Classes/GridViewExampleViewController.m create mode 100644 GridViewExample/GridViewExample-Info.plist create mode 100755 GridViewExample/GridViewExample.xcodeproj/project.pbxproj create mode 100644 GridViewExample/GridViewExampleViewController.xib create mode 100644 GridViewExample/GridViewExample_Prefix.pch create mode 100644 GridViewExample/MainWindow.xib create mode 100644 GridViewExample/icons/browser-64x64.png create mode 100644 GridViewExample/icons/calc-64x64.png create mode 100644 GridViewExample/icons/chat-blank-64x64.png create mode 100644 GridViewExample/icons/clock-64x64.png create mode 100644 GridViewExample/icons/graph-64x64.png create mode 100644 GridViewExample/icons/ipod-64x64.png create mode 100644 GridViewExample/icons/mail-64x64.png create mode 100644 GridViewExample/icons/map-64x64.png create mode 100644 GridViewExample/icons/notes-64x64.png create mode 100644 GridViewExample/icons/photo-64x64.png create mode 100644 GridViewExample/icons/tools-64x64.png create mode 100644 GridViewExample/icons/wallpaper-64x64.png create mode 100644 GridViewExample/icons/weather-64x64.png create mode 100644 GridViewExample/main.m create mode 100644 README diff --git a/GridView.h b/GridView.h new file mode 100644 index 0000000..decff1b --- /dev/null +++ b/GridView.h @@ -0,0 +1,68 @@ +// +// GridView.h +// Clementine +// +// Created by Olivier on 02/09/10. +// Copyright 2010 AliSoftware. All rights reserved. +// + +#import + + +///////////////////////////////////////////////////////////////////////////// +// MARK: - +// MARK: GridViewCell +///////////////////////////////////////////////////////////////////////////// + +@interface GridViewCell : UIView { + NSIndexPath* indexPath; + UIImageView* imageView; + UILabel* textLabel; +} +@property(nonatomic,retain) UIImageView* imageView; +@property(nonatomic,retain) UILabel* textLabel; +@end + + + + +///////////////////////////////////////////////////////////////////////////// +// MARK: - +// MARK: GridView +///////////////////////////////////////////////////////////////////////////// + + +@class GridView; +@protocol GridViewDataSource +-(NSUInteger)numberOfItemsInGridView:(GridView*)aGridView; +-(GridViewCell*)gridView:(GridView*)aGridView cellAtIndexPath:(NSIndexPath*)indexPath; +@end + +@protocol GridViewDelegate +@optional +-(void)gridView:(GridView*)aGridView willDisplayCell:(GridViewCell*)aCell forIndexPath:(NSIndexPath*)indexPath; +-(void)gridView:(GridView*)aGridView didSelectCellAtIndexPath:(NSIndexPath*)indexPath; +@end + +///////////////////////////////////////////////////////////////////////////// + +@interface GridView : UIScrollView { + id delegate; + id dataSource; + + NSUInteger columnsCount; + CGFloat rowHeight; + CGFloat marginWidth; + NSUInteger itemsCount; + + NSMutableSet* visibleCells; + NSMutableSet* recyclePool; +} +-(GridViewCell*)dequeueReusableCell; +-(void)reloadData; +@property(nonatomic,assign) id delegate; +@property(nonatomic,assign) id dataSource; +@property(nonatomic,assign) NSUInteger columnsCount; +@property(nonatomic,assign) CGFloat rowHeight; +@property(nonatomic,assign) CGFloat marginWidth; +@end diff --git a/GridView.m b/GridView.m new file mode 100644 index 0000000..91b5535 --- /dev/null +++ b/GridView.m @@ -0,0 +1,225 @@ +// +// GridView.m +// Clementine +// +// Created by Olivier on 02/09/10. +// Copyright 2010 AliSoftware. All rights reserved. +// + +#import "GridView.h" + +///////////////////////////////////////////////////////////////////////////// +// MARK: - +// MARK: GridViewCell +///////////////////////////////////////////////////////////////////////////// + +@interface GridViewCell() +@property(nonatomic,retain) NSIndexPath* indexPath; +@end + +@implementation GridViewCell +@synthesize indexPath; +@synthesize imageView, textLabel; + +///////////////////////////////////////////////////////////////////////////// +// MARK: Init/Dealloc + +-(void)configure +{ + imageView = [[UIImageView alloc] initWithFrame:CGRectZero]; + imageView.contentMode = UIViewContentModeScaleAspectFit; + [self addSubview:imageView]; + + textLabel = [[UILabel alloc] initWithFrame:CGRectZero]; + textLabel.textAlignment = UITextAlignmentCenter; + textLabel.backgroundColor = [UIColor clearColor]; + [self addSubview:textLabel]; +} + +-(id)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame]) != nil) { + [self configure]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)decoder { + if ((self = [super initWithCoder:decoder]) != nil) { + [self configure]; + } + return self; +} + +-(void)dealloc { + [indexPath release]; + [imageView release]; + [textLabel release]; + [super dealloc]; +} + +///////////////////////////////////////////////////////////////////////////// +// MARK: Tiling & Touch Mgmt + +-(void)layoutSubviews { + const CGFloat kLabelHeight = 21; + CGRect r = CGRectInset(self.bounds,5,5); + r.size.height -= kLabelHeight; + imageView.frame = r; + + r = CGRectInset(self.bounds,5,5); + r.size.height = kLabelHeight; + r.origin.y = CGRectGetMaxY(imageView.frame); + textLabel.frame = r; +} + +-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + GridView* gridView = (GridView*)self.superview; + if ([gridView.delegate respondsToSelector:@selector(gridView:didSelectCellAtIndexPath:)]) + [gridView.delegate gridView:gridView didSelectCellAtIndexPath:self.indexPath]; +} + +@end + + + + + +///////////////////////////////////////////////////////////////////////////// +// MARK: - +// MARK: GridView +///////////////////////////////////////////////////////////////////////////// + +@implementation GridView +@synthesize delegate, dataSource; +@synthesize columnsCount, rowHeight, marginWidth; + +///////////////////////////////////////////////////////////////////////////// +// MARK: Init/Dealloc + +-(void)configure { + visibleCells = [[NSMutableSet alloc] init]; + recyclePool = [[NSMutableSet alloc] init]; + columnsCount = 3; + rowHeight = 200.f; + marginWidth = 0.5f; + self.clipsToBounds = YES; +} +- (id) initWithCoder:(NSCoder*)aDecoder +{ + self = [super initWithCoder:aDecoder]; + if (self != nil) { + [self configure]; + } + return self; +} + +- (id) initWithFrame:(CGRect)aFrame +{ + self = [super initWithFrame:aFrame]; + if (self != nil) { + [self configure]; + } + return self; +} + +-(void)dealloc { + [visibleCells release]; + [recyclePool release]; + [super dealloc]; +} + +-(void)willMoveToWindow:(UIWindow *)newWindow { + if (newWindow) [self reloadData]; +} + +///////////////////////////////////////////////////////////////////////////// +// MARK: Loading & Tiling cells + +-(void)reloadData { + itemsCount = [self.dataSource numberOfItemsInGridView:self]; + NSUInteger nbRows = (itemsCount>0) ? ((itemsCount-1) / columnsCount)+1 : 0; + self.contentSize = CGSizeMake(self.bounds.size.width, self.rowHeight*nbRows); + // remove all cells + for(UIView* v in visibleCells) { + [recyclePool addObject:v]; + [v removeFromSuperview]; + } + [visibleCells removeAllObjects]; + // relayout and reload cells + [self setNeedsLayout]; +} + +-(void)setColumnsCount:(NSUInteger)val { + [self willChangeValueForKey:@"columnsCount"]; + columnsCount = val; + [self didChangeValueForKey:@"columnsCount"]; + // as previous index paths for some columns may not be accessible anymore, we need to recreate it all + [self reloadData]; // this will relayout and recompute the contentSize too +} + +-(void)setRowHeight:(CGFloat)val { + [self willChangeValueForKey:@"rowHeight"]; + rowHeight = val; + [self setNeedsLayout]; // no need to reload all data, only relayout. + [self didChangeValueForKey:@"rowHeight"]; +} + +///////////////////////////////////////////////////////////////////////////// + +-(GridViewCell*)dequeueReusableCell { + id obj = [recyclePool anyObject]; + if (obj) { + [[obj retain] autorelease]; + [recyclePool removeObject:obj]; + } + return obj; +} + +-(GridViewCell*)visibleCellForIndexPath:(NSIndexPath*)indexPath { + for(GridViewCell* cell in visibleCells) { + if (cell.indexPath == indexPath) { + return cell; + } + } + return nil; +} + +-(void)layoutSubviews +{ + // remove cells that are no longer visible + for(UIView* v in visibleCells) { + if (!CGRectIntersectsRect(v.frame, self.bounds)) { + [recyclePool addObject:v]; + [v removeFromSuperview]; + } + } + [visibleCells minusSet:recyclePool]; + + if (itemsCount==0) return; + + // tile missing cells + NSUInteger firstRow = floorf( CGRectGetMinY(self.bounds) / rowHeight ); + firstRow = MAX(firstRow,0); + NSUInteger lastRow = floorf( (CGRectGetMaxY(self.bounds)-1) / rowHeight ) + 1; + NSUInteger totalNumRows = (itemsCount>0) ? ((itemsCount-1) / columnsCount)+1 : 0; + lastRow = MIN(lastRow, totalNumRows); + CGFloat w = self.bounds.size.width / columnsCount; + for(int row = firstRow; row=itemsCount) return; + NSIndexPath* path = [NSIndexPath indexPathForRow:row inSection:col]; + GridViewCell* cell = [self visibleCellForIndexPath:path]; + if (!cell) { + cell = [self.dataSource gridView:self cellAtIndexPath:path]; + cell.indexPath = path; + [visibleCells addObject:cell]; + [self addSubview:cell]; + } + cell.frame = CGRectInset( CGRectMake(col*w,row*rowHeight,w,rowHeight) , marginWidth,marginWidth); + if ([self.delegate respondsToSelector:@selector(gridView:willDisplayCell:forIndexPath:)]) + [self.delegate gridView:self willDisplayCell:cell forIndexPath:path]; + } + } +} + +@end diff --git a/GridViewExample/Classes/GridViewExampleAppDelegate.h b/GridViewExample/Classes/GridViewExampleAppDelegate.h new file mode 100644 index 0000000..b5d61b3 --- /dev/null +++ b/GridViewExample/Classes/GridViewExampleAppDelegate.h @@ -0,0 +1,22 @@ +// +// GridViewExampleAppDelegate.h +// GridViewExample +// +// Created by Olivier on 02/09/10. +// Copyright AliSoftware 2010. All rights reserved. +// + +#import + +@class GridViewExampleViewController; + +@interface GridViewExampleAppDelegate : NSObject { + UIWindow *window; + GridViewExampleViewController *viewController; +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; +@property (nonatomic, retain) IBOutlet GridViewExampleViewController *viewController; + +@end + diff --git a/GridViewExample/Classes/GridViewExampleAppDelegate.m b/GridViewExample/Classes/GridViewExampleAppDelegate.m new file mode 100644 index 0000000..b96b042 --- /dev/null +++ b/GridViewExample/Classes/GridViewExampleAppDelegate.m @@ -0,0 +1,40 @@ +// +// GridViewExampleAppDelegate.m +// GridViewExample +// +// Created by Olivier on 02/09/10. +// Copyright AliSoftware 2010. All rights reserved. +// + +#import "GridViewExampleAppDelegate.h" +#import "GridViewExampleViewController.h" + +@implementation GridViewExampleAppDelegate + +@synthesize window; +@synthesize viewController; + + +#pragma mark - +#pragma mark Application lifecycle + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + // Override point for customization after application launch. + + // Add the view controller's view to the window and display. + [window addSubview:viewController.view]; + [window makeKeyAndVisible]; + + return YES; +} + + +- (void)dealloc { + [viewController release]; + [window release]; + [super dealloc]; +} + + +@end diff --git a/GridViewExample/Classes/GridViewExampleViewController.h b/GridViewExample/Classes/GridViewExampleViewController.h new file mode 100644 index 0000000..ee3383d --- /dev/null +++ b/GridViewExample/Classes/GridViewExampleViewController.h @@ -0,0 +1,16 @@ +// +// GridViewExampleViewController.h +// GridViewExample +// +// Created by Olivier on 02/09/10. +// Copyright AliSoftware 2010. All rights reserved. +// + +#import +#import "GridView.h" + +@interface GridViewExampleViewController : UIViewController { + NSArray* items; +} +@end + diff --git a/GridViewExample/Classes/GridViewExampleViewController.m b/GridViewExample/Classes/GridViewExampleViewController.m new file mode 100644 index 0000000..f09902a --- /dev/null +++ b/GridViewExample/Classes/GridViewExampleViewController.m @@ -0,0 +1,61 @@ +// +// GridViewExampleViewController.m +// GridViewExample +// +// Created by Olivier on 02/09/10. +// Copyright AliSoftware 2010. All rights reserved. +// + +#import "GridViewExampleViewController.h" + +@implementation GridViewExampleViewController + +-(void)viewDidLoad { + // Images are courtesy of http://www.iconspedia.com/pack/iphone/ + items = [[NSArray alloc] initWithObjects: + @"browser",@"calc",@"chat-blank",@"clock",@"graph",@"ipod", + @"mail",@"map",@"notes",@"photo",@"tools",@"wallpaper",@"weather", + nil]; + + ((GridView*)self.view).rowHeight = 100; + ((GridView*)self.view).columnsCount = 2; +} + +-(NSUInteger)numberOfItemsInGridView:(GridView *)aGridView { + return [items count]; +} +-(GridViewCell*)gridView:(GridView *)aGridView cellAtIndexPath:(NSIndexPath *)indexPath { + GridViewCell* cell = [aGridView dequeueReusableCell]; + if (!cell) { + cell = [[[GridViewCell alloc] initWithFrame:CGRectZero] autorelease]; + cell.backgroundColor = [UIColor grayColor]; + } + + NSUInteger i = indexPath.section + aGridView.columnsCount*indexPath.row; + NSString* itemName = [items objectAtIndex:i]; + cell.textLabel.text = itemName; + cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-64x64.png",itemName]]; + + return cell; +} +-(void)gridView:(GridView *)aGridView didSelectCellAtIndexPath:(NSIndexPath *)indexPath { + NSUInteger idx = indexPath.section + aGridView.columnsCount*indexPath.row; + NSString* msg = [items objectAtIndex:idx]; + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Tap" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; + [alert show]; + [alert release]; +} + +-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { + return YES; +} +- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { + ((GridView*)self.view).columnsCount = UIInterfaceOrientationIsPortrait(interfaceOrientation) ? 2 : 4; +} + +-(void)viewDidUnload { + [items release]; + items = nil; +} + +@end diff --git a/GridViewExample/GridViewExample-Info.plist b/GridViewExample/GridViewExample-Info.plist new file mode 100644 index 0000000..3289444 --- /dev/null +++ b/GridViewExample/GridViewExample-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSMainNibFile + MainWindow + + diff --git a/GridViewExample/GridViewExample.xcodeproj/project.pbxproj b/GridViewExample/GridViewExample.xcodeproj/project.pbxproj new file mode 100755 index 0000000..0daf465 --- /dev/null +++ b/GridViewExample/GridViewExample.xcodeproj/project.pbxproj @@ -0,0 +1,317 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 098D565B12301E6D0055E596 /* GridView.m in Sources */ = {isa = PBXBuildFile; fileRef = 098D565A12301E6D0055E596 /* GridView.m */; }; + 098D566A123022DA0055E596 /* browser-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D565D123022DA0055E596 /* browser-64x64.png */; }; + 098D566B123022DA0055E596 /* calc-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D565E123022DA0055E596 /* calc-64x64.png */; }; + 098D566C123022DA0055E596 /* chat-blank-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D565F123022DA0055E596 /* chat-blank-64x64.png */; }; + 098D566D123022DA0055E596 /* clock-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5660123022DA0055E596 /* clock-64x64.png */; }; + 098D566E123022DA0055E596 /* graph-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5661123022DA0055E596 /* graph-64x64.png */; }; + 098D566F123022DA0055E596 /* ipod-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5662123022DA0055E596 /* ipod-64x64.png */; }; + 098D5670123022DA0055E596 /* mail-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5663123022DA0055E596 /* mail-64x64.png */; }; + 098D5671123022DA0055E596 /* map-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5664123022DA0055E596 /* map-64x64.png */; }; + 098D5672123022DA0055E596 /* notes-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5665123022DA0055E596 /* notes-64x64.png */; }; + 098D5673123022DA0055E596 /* photo-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5666123022DA0055E596 /* photo-64x64.png */; }; + 098D5674123022DA0055E596 /* tools-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5667123022DA0055E596 /* tools-64x64.png */; }; + 098D5675123022DA0055E596 /* wallpaper-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5668123022DA0055E596 /* wallpaper-64x64.png */; }; + 098D5676123022DA0055E596 /* weather-64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = 098D5669123022DA0055E596 /* weather-64x64.png */; }; + 1D3623260D0F684500981E51 /* GridViewExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* GridViewExampleAppDelegate.m */; }; + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; + 2899E5220DE3E06400AC0155 /* GridViewExampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* GridViewExampleViewController.xib */; }; + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; + 28D7ACF80DDB3853001CB0EB /* GridViewExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* GridViewExampleViewController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 098D565912301E6D0055E596 /* GridView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GridView.h; path = ../GridView.h; sourceTree = SOURCE_ROOT; }; + 098D565A12301E6D0055E596 /* GridView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GridView.m; path = ../GridView.m; sourceTree = SOURCE_ROOT; }; + 098D565D123022DA0055E596 /* browser-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "browser-64x64.png"; sourceTree = ""; }; + 098D565E123022DA0055E596 /* calc-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "calc-64x64.png"; sourceTree = ""; }; + 098D565F123022DA0055E596 /* chat-blank-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "chat-blank-64x64.png"; sourceTree = ""; }; + 098D5660123022DA0055E596 /* clock-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "clock-64x64.png"; sourceTree = ""; }; + 098D5661123022DA0055E596 /* graph-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "graph-64x64.png"; sourceTree = ""; }; + 098D5662123022DA0055E596 /* ipod-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ipod-64x64.png"; sourceTree = ""; }; + 098D5663123022DA0055E596 /* mail-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "mail-64x64.png"; sourceTree = ""; }; + 098D5664123022DA0055E596 /* map-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "map-64x64.png"; sourceTree = ""; }; + 098D5665123022DA0055E596 /* notes-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "notes-64x64.png"; sourceTree = ""; }; + 098D5666123022DA0055E596 /* photo-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "photo-64x64.png"; sourceTree = ""; }; + 098D5667123022DA0055E596 /* tools-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tools-64x64.png"; sourceTree = ""; }; + 098D5668123022DA0055E596 /* wallpaper-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wallpaper-64x64.png"; sourceTree = ""; }; + 098D5669123022DA0055E596 /* weather-64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "weather-64x64.png"; sourceTree = ""; }; + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 1D3623240D0F684500981E51 /* GridViewExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridViewExampleAppDelegate.h; sourceTree = ""; }; + 1D3623250D0F684500981E51 /* GridViewExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GridViewExampleAppDelegate.m; sourceTree = ""; }; + 1D6058910D05DD3D006BFB54 /* GridViewExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GridViewExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 2899E5210DE3E06400AC0155 /* GridViewExampleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GridViewExampleViewController.xib; sourceTree = ""; }; + 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; + 28D7ACF60DDB3853001CB0EB /* GridViewExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridViewExampleViewController.h; sourceTree = ""; }; + 28D7ACF70DDB3853001CB0EB /* GridViewExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GridViewExampleViewController.m; sourceTree = ""; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* GridViewExample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridViewExample_Prefix.pch; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* GridViewExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GridViewExample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 1D3623240D0F684500981E51 /* GridViewExampleAppDelegate.h */, + 1D3623250D0F684500981E51 /* GridViewExampleAppDelegate.m */, + 28D7ACF60DDB3853001CB0EB /* GridViewExampleViewController.h */, + 28D7ACF70DDB3853001CB0EB /* GridViewExampleViewController.m */, + 098D565912301E6D0055E596 /* GridView.h */, + 098D565A12301E6D0055E596 /* GridView.m */, + ); + path = Classes; + sourceTree = ""; + }; + 098D565C123022DA0055E596 /* icons */ = { + isa = PBXGroup; + children = ( + 098D565D123022DA0055E596 /* browser-64x64.png */, + 098D565E123022DA0055E596 /* calc-64x64.png */, + 098D565F123022DA0055E596 /* chat-blank-64x64.png */, + 098D5660123022DA0055E596 /* clock-64x64.png */, + 098D5661123022DA0055E596 /* graph-64x64.png */, + 098D5662123022DA0055E596 /* ipod-64x64.png */, + 098D5663123022DA0055E596 /* mail-64x64.png */, + 098D5664123022DA0055E596 /* map-64x64.png */, + 098D5665123022DA0055E596 /* notes-64x64.png */, + 098D5666123022DA0055E596 /* photo-64x64.png */, + 098D5667123022DA0055E596 /* tools-64x64.png */, + 098D5668123022DA0055E596 /* wallpaper-64x64.png */, + 098D5669123022DA0055E596 /* weather-64x64.png */, + ); + path = icons; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* GridViewExample.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32CA4F630368D1EE00C91783 /* GridViewExample_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 2899E5210DE3E06400AC0155 /* GridViewExampleViewController.xib */, + 28AD733E0D9D9553002E5188 /* MainWindow.xib */, + 098D565C123022DA0055E596 /* icons */, + 8D1107310486CEB800E47090 /* GridViewExample-Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + 1D30AB110D05D00D00671497 /* Foundation.framework */, + 288765A40DF7441C002DB57D /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* GridViewExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "GridViewExample" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GridViewExample; + productName = GridViewExample; + productReference = 1D6058910D05DD3D006BFB54 /* GridViewExample.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GridViewExample" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* GridViewExample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, + 2899E5220DE3E06400AC0155 /* GridViewExampleViewController.xib in Resources */, + 098D566A123022DA0055E596 /* browser-64x64.png in Resources */, + 098D566B123022DA0055E596 /* calc-64x64.png in Resources */, + 098D566C123022DA0055E596 /* chat-blank-64x64.png in Resources */, + 098D566D123022DA0055E596 /* clock-64x64.png in Resources */, + 098D566E123022DA0055E596 /* graph-64x64.png in Resources */, + 098D566F123022DA0055E596 /* ipod-64x64.png in Resources */, + 098D5670123022DA0055E596 /* mail-64x64.png in Resources */, + 098D5671123022DA0055E596 /* map-64x64.png in Resources */, + 098D5672123022DA0055E596 /* notes-64x64.png in Resources */, + 098D5673123022DA0055E596 /* photo-64x64.png in Resources */, + 098D5674123022DA0055E596 /* tools-64x64.png in Resources */, + 098D5675123022DA0055E596 /* wallpaper-64x64.png in Resources */, + 098D5676123022DA0055E596 /* weather-64x64.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, + 1D3623260D0F684500981E51 /* GridViewExampleAppDelegate.m in Sources */, + 28D7ACF80DDB3853001CB0EB /* GridViewExampleViewController.m in Sources */, + 098D565B12301E6D0055E596 /* GridView.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = GridViewExample_Prefix.pch; + INFOPLIST_FILE = "GridViewExample-Info.plist"; + PRODUCT_NAME = GridViewExample; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = GridViewExample_Prefix.pch; + INFOPLIST_FILE = "GridViewExample-Info.plist"; + PRODUCT_NAME = GridViewExample; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = iphoneos4.0; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + PREBINDING = NO; + SDKROOT = iphoneos4.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "GridViewExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1D6058950D05DD3E006BFB54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GridViewExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/GridViewExample/GridViewExampleViewController.xib b/GridViewExample/GridViewExampleViewController.xib new file mode 100644 index 0000000..5c1ac5e --- /dev/null +++ b/GridViewExample/GridViewExampleViewController.xib @@ -0,0 +1,391 @@ + + + + 1024 + 10F569 + 788 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 117 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + {320, 460} + + + 3 + MC43NQA + + 2 + + + NO + + IBCocoaTouchFramework + + + + + YES + + + view + + + + 7 + + + + dataSource + + + + 8 + + + + delegate + + + + 9 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 6 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 6.CustomClassName + 6.IBEditorWindowLastContentRect + 6.IBPluginDependency + + + YES + GridViewExampleViewController + UIResponder + GridView + {{239, 376}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 9 + + + + YES + + GridView + UIScrollView + + YES + + YES + dataSource + delegate + + + YES + id + id + + + + YES + + YES + dataSource + delegate + + + YES + + dataSource + id + + + delegate + id + + + + + IBProjectSource + ../GridView.h + + + + GridViewExampleViewController + UIViewController + + IBProjectSource + Classes/GridViewExampleViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UIScrollView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIScrollView.h + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + GridViewExample.xcodeproj + 3 + 117 + + diff --git a/GridViewExample/GridViewExample_Prefix.pch b/GridViewExample/GridViewExample_Prefix.pch new file mode 100644 index 0000000..ca17733 --- /dev/null +++ b/GridViewExample/GridViewExample_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'GridViewExample' target in the 'GridViewExample' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/GridViewExample/MainWindow.xib b/GridViewExample/MainWindow.xib new file mode 100644 index 0000000..1f28539 --- /dev/null +++ b/GridViewExample/MainWindow.xib @@ -0,0 +1,444 @@ + + + + 1024 + 10D571 + 786 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 112 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework + + + GridViewExampleViewController + + + 1 + + IBCocoaTouchFramework + NO + + + + 292 + {320, 480} + + 1 + MSAxIDEAA + + NO + NO + + IBCocoaTouchFramework + YES + + + + + YES + + + delegate + + + + 4 + + + + viewController + + + + 11 + + + + window + + + + 14 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + 3 + + + GridViewExample App Delegate + + + -2 + + + + + 10 + + + + + 12 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 10.CustomClassName + 10.IBEditorWindowLastContentRect + 10.IBPluginDependency + 12.IBEditorWindowLastContentRect + 12.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + + + YES + UIApplication + UIResponder + GridViewExampleViewController + {{234, 376}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + {{525, 346}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + GridViewExampleAppDelegate + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 15 + + + + YES + + UIWindow + UIView + + IBUserSource + + + + + GridViewExampleAppDelegate + NSObject + + YES + + YES + viewController + window + + + YES + GridViewExampleViewController + UIWindow + + + + YES + + YES + viewController + window + + + YES + + viewController + GridViewExampleViewController + + + window + UIWindow + + + + + IBProjectSource + Classes/GridViewExampleAppDelegate.h + + + + GridViewExampleAppDelegate + NSObject + + IBUserSource + + + + + GridViewExampleViewController + UIViewController + + IBProjectSource + Classes/GridViewExampleViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIApplication + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIApplication.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWindow + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWindow.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + GridViewExample.xcodeproj + 3 + 112 + + diff --git a/GridViewExample/icons/browser-64x64.png b/GridViewExample/icons/browser-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..a7fd8dae6471b072385112a7d4ae20a1d44ea732 GIT binary patch literal 12293 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

8) z&Gh^%wZ>D5(VAwU9Fub;$`~vJMr$kym2!lTg1Ido8C%u?kZH`127HIe%HT=G!B75( zH-^h>JMKb+(S%V%*0JzxNh}1BaFGyx@|cQc6;*03wCf2FtUFt2IolaSIvHNy1S=PNzuIIP&zoEQ~=4DAhE>6E!A+ zh-3F^X6IOq&4X21GZvkB2Va2JW*W9Mf?u7qIay{@`}w!WFJjXhLp<@JUy#k_iQ^hs z*T$AmQySZ{h4bXP{>1Ut4{ETm3RH>8^sR!st z5tl=pypOO2CXLDI9Bk@GYK@k18nqTvIG7M9DbU(5UXA(K{>{8GR^yp%6SQV*WULb2 z-@xh;JWpw_0VO1nlVh*Je{$@T7qfZW0C)fUtz_mbqS>k;r9dDEl_rV}nXE(X+V!hs zvRR({<##W5)b)cDv8!KC7DUA5P~lp)WXh@kOyBJ#>diZz4vo$ zJ>qQU_%RvBs)w!+iMNKaBGOwo;<>~miF$0NUYeSfIY0AE@Bv9Eut zQYmAMK{yt=7Ng1`R>4m#XwteoL4Wg>*r(3n1qKl*jFgC2VWdFB3T%t2hUK%fd~}~Y zL8STFKl&K0#yCe$&YN_pg|8>q+7Jcwb-wG-fs$qo8 zxY*5pDk8kK5~N<6PsQvcP*3vl$x_*>)-av}Dk+mINItwM&%5Vl0J!y^1H8JYLdKS< z_#u+?D;<>dc-OAgyzk{7BPRwKsaQO#=5W`$ucE1IE*%+@aFNvQr||?pyADA$L^?Kh zQx?zndHuFazw_8{ZoJXU<`WF4RZDH}J?)&8Js(){%^>vvBL%{9P`=lY-t=3v2s14d zrU25Uq6mVz2OuO0gVJ!$fi3LSlGNr8uOH)qmxsxDb}FnuX!-a$Q;TCp z1Ba~>lA90t9?`agY4>nYWE_lRC%@&JvchC#(g0otIALCv!K&u*Jpo{FEy1BPJ^rQ3V^-d#9K;kW zF;YUSZ(~Wp>%%o3*&fre;ZaUqcNI;=t&~NMp{h+-E^}Yoas2i0^XbkD@~)h+_+%zZ zf74K;#mW%XVx(td&1fc*^Uda~zqI0|zdUrWlgTCqh=NMnu^<2PH}miQ^vbYWN-L@< z*A`lX??HQ^E-Z=$d2G7f4Usm?%G#X2yqUFwHU7Rk;N%54+B1^J`$Jyn4;bDxMlFaC zBB|@!TMN8rQJzCyxdnCqk8xC$Dn5gOg{lTTZ7pKe5tq^4-cGAGJp)Y=#Hn>@#HCb8 z6reI5etQeUzrE~&f86=2U%7s6SS;-Ab!wGT>(QsJ_-5v)&wjO1n!t4=jq;~RkzIGS zU@R*!h!9N5WkycL{$w3djx|Tm%5c_xc>o^W9dg%}3S%{cs})xNXqvVJWtpKp9O2`e zuHlefe;~F!LL3IGk~masi!xlh{Br1C!YnVwvJy3^kt$Dub%Hx76gOB%D^0DYXliMu z{I?sv|JOUNzuNWlBVxh49$V-q+K^cn6X_}I zi?^^;gn>XCI(>_)4r}4}I|A-}t&CR&Lj3d>a;;a0n?N)`nOm->@x-)c_9$$m9!*KKzU8p1tR% zmpFcYOw8}@wwiLe?t{vkoj|lM*-9hGHoo2;-zI)dsgMPobxSrmR;_cT-tl zdj76y_|~!}N|EO3H6vug5XQ?%Y)VPo)`}@doVe#fPT6z~R&|`f%A&MjFc4HDffbgx zd(J7`zt0y~kO$vQxX9!SiS$57L98^za!93GL!}0=Y)L-jlFzwGM$nod5RClo)>VB^ z+`Lk{*>N$yd!E&l&(2-?pI6+oq1<$EQ=5;Kb*Y4kT9gPMQYNJ&fNm?0>uP0YM?RJ4 zOo|CpydY3;NW065eRF(u^$v#mCvYv9D8$B4l^NOzICI+#9JS*fs!9@DF0m2}1(K=~ zm`aIPXB>9{#+>+f4N@a(O153rl^**Qy3`QBaY#|wwLu1J(!$HsPTS_?jNx?5Pj zpp|A9*6p0&&oA~7C{5dvc}UM8KtL{oEg)|Tda{!9m*ly6U5Tfk-GOH`0;mX!eHV3d zseXi^=N{qZ_JbJMxr5o8|H9&Egb8h9X+?iUbJe1+vvuwfT>kHKS<;c=sz-M)UX3Y5 zNrS}_2G6mmRclnn$}~0kSVj}a3SyP8&Nu<-awWi+$yDhPZ+>9a;F{Z}JfM*C=N$H# ztM6Pt(R^4`DiMV-U2|Ia&S^_o*q)&^Yhzo2@j&z3ws9`M<7GyQ0e*WEU3+)2usy@# zS$X#D@aV}}%=RT^WjK3ng}%*wh|v&`jn$9LS- z+_TT26XO%C+d4#FvBp*ZwI4gjYW!o}5HD;VVrSn3W2KO`<_yOkJeT(@oxuS;&9r9Z zTX1=2Me(_{Wooe|-Ze~&;G!ejIljkd-GD+53ep{Xcnk3gPFYtChyGBFSY%6l_+CF+_75L9XXAx_S)(}@~IJV@e*T(qW zlW%b3{$0%LERbt$vtA;X2SsajLqDcd3t6yvG1Hbdv)cR*O8^!O~9u=(0uUmF-k&E z3KXC3cDZmLn@~&k^!M}R6Hl=0z-4rHcCl^8E(Wjv8XI35;l?EwVU{e$>1m^cX;BQZCW&PG+3T=5D6_a%> znwzt<&YH>Q)izjsrQ(A;ywKDdWoe4qYui^E&e!Hot}A5A5Wu+t=~xjxi2h+`)Ap znujYiTG*&K;-!~fVr*=Tj;`70J)7C|vn%*%$61UYcog1V9oYE{#hT(XJwBi5@wjtm z$SWnqwvu8`Xb6->S(5C)7_xti&mA=vAtis?Rb|FRk)e?)Gn+Fk?rvt)>J1pB(HJZ{ zi}l(AtM)wg>xL|l^SYLPTPsxkC6PCZ{0N3 za;&8ygd;J&hlzEa>Q2hwLJEXqrz_v6229lhN@*O|;npu4!2Bkt#)6<)WzCv3j0}(9 z*n(1Vj7K(Wo*U}I^|KTXoJZ?{^N}j4L`%x>-Mu^{@ZXzj_!iTep3}rADJYFsDGn7; zHHEjmA5jhxu8?Yhlmm=5IE7~9>kqEl_Lm!1T9Y17@ZFh9KY8WNn|1ebwu}=+Chf!; ztr0ry0VKC2Cej^Rknu7MHm+vu}1oJqdL z$Mzk(o*B$qIu~PLA~t-e)8@moTrOB&Ww2)OtT&fi(^U{5(;i_MGy42C%uq2|D664t zRtCq-B455|)z&}Xu+s9f<6^!PiZ#>tb)(%gL{yc!bxNc->8$;xB9nVW(2V=+g~aCvZd zz}>q;vQ}f=D;gsYNNR#W!Pa&CRQtygoSIx6DUv47XbE@b4D6ThzU}n~um7r*Nez(o ztQq^9apes=TlPQERy9l|z?5r{*JV0sB7>?(pogjfJSD{iv6nu>5;Q4vnXMS_rh6k?w zs_o~K5b$l$zW9tQe$h8$`G1H#{Rx-OW}qoMt^50S6IqiUP^`q9bU-_ozIQeg#WHJO zc!BEp5F2+F`Q18?0n(GfjgGBF%oCIj;ZUTx6}v3opLJ z$iQx%+EQWl>rF)Y4w}01h@3|?PP#(3owhgowkKmMx4$yV#edvJn{Oxi+89)vDA3BX zIB4li=C`{ZU)zVN#Rwtm^GuT=U}A;P8mFlh_letXf9<}XoNHwo z4A67t_pTr6efP;S4zLHtF_u8JHzlc0n|kh*>B!3D($|!x;9A^xVmCd0%-R=TVCT*q zJoIYB)BWvaX10>)Yy#h@%QBT%bIE(>@u5YDTz28#`niAI5INUMLQG5nZX9do%xUJ` ziwi`tnbwk;EU_J1uw^9TnU@E#WkX+4N`z9_eWR$Hhi=K^Wpd;n|Mf4|-*e5ktxRrA zEa>TRTphP|opI?;OZ&d>R2f#ViWPL$LpxS-oXeoCr0*uuoxRQbLVpv^D`hAY zJWg2JhJ$8W<9N~oEWx9jOYH0`B_1RMq8cJ&g=)$nOI3t1#Cadz&(Zq#n|}V{o!4As z`?)c(U|z2yRoJ@k85jPbfB7k&Qb9Q>B}-N8fia9NiMra*wp~|SC!b*=RD5w+8|Uut z@!Ye|u==?-xPPNhF*}38yjEx_BzYLq&`l9kYl`KwvfO(7Y_?7)KK{@Sf>>cmSx;&8 zRI3ffwm4~N3p1T$EU(eMT`3p};el7iQE{Ad6@e^;xc#Hx+C-hLDAxw1$>a*O{^f=n zU%ulf7ubG&Of2l_b>eEN<&aN&^`gFG&stF}Pap(1L*p3RB5ErnAz&I^4<>4wW9H`h z$zd6uf95Gx{bLu8?P|lC*@4^BhAj9ATh!CrWeA9rp~$Z1U7&rE#|$Z%wL zmVcRPQ&ZI2=)Q!ZSaAEg60uH(vL~lj>~est#YC<7dT+xZ$mH^L{pq@Ep1=Jk->Vxy zRZFc0e)4M^jX10K1O*ID_dke;(r9>)?TdEL_RatT5Y&Hy3cywD4t0hOA^AZnh7{3ufpfr0o zJDl3(LnCRz_X^BWg!Kk+N)1m$AV-kzkrQsR~avIC=3nsQXyTlvP!3Dj%rxaMV> zINOTX-HL9>O$|Xzn<7tFUJ9&Qj6YOFh7sdo%zm?*sDz5$BUKz5L{pYZdvmJzPK~>U z%CNk}=9F22S~|1qS@63(nx}_i@{Xu8*IfSyBGy!9wV@q5ZQe{yk%FJgG5_8lT)t-2 zb=TP01_Lbn%r`IE@*iJ4Cny!EXOc9{6b8qLe2-E~f#dWb%_DobYoH0o&0u%r(0L!7 zw#umYYo-r13S-Fijbep0Vj)@9nWH`D@Zw-Vciv{K8nJDtf@;fCZEr#-Q*Sv2+HhdO z;^SS0ni1H*YXRId029h!2|$@dc9)Xez!=81D7O}nsR1UR$j|0kboUjPJ$u`=*ESlU zWxvl|c-f9q&i!0inn0#5C`n}J1e^qg!69ad3Y)ApoG^wKACqyX##!DxJzx?n(Nf}% zmGFj&1O}FM=D7KU*0~;*2DC`{{47ID z%F%{u@Y6m?94VyHL>Z6l=mg3@*qX=E4KzI+u?O({EWN+});FKO``5SHel8i1Q00l{ z16F+Z`@2tG@#%1){8oiS2xJ^1$IDcj3s{v9Z=!RX>wF0y|V%AzA@}- zjnF_(v&$XtpUuY68lQV)H@<7JxGlq)z7nnwsFob6wSdtY2`In;{w1q8rd8tzc)TdN zzi8uC0_1pwsIwV6QdrfHs3ku&Aki?(5F?o5S+TnKv@g8A=E>D|#!tJ$)k^E~51jG| z>)dO8xT_opTbKsQnWQ8GNJ|hzhU#dUd{YK5W25z(WfAJ%Z=5Hq^cOLaLP$ZSrZ}cM z&$UN&@X!8`^PU)_mQrq`!OgjN?K!leUVOy{dR+ME42>%cJ3_%jW0FxN2qyxxGGtr* zWTkZ-e5UmUmF2K79O>Wi<&(}D?(h4j`RS1&CUN5rUj8u!Ur4tHU)%w(-nB z$jYaODeD9)G6j#BO-^cn#ED~IFHdkxt3V47sKj z+WvmmA0E5-oXdot+ky~7VqtHu1kn~2$LAdOkuyFwEqqI|v8?#hsG+C?y_p0Eldqd;mFgrO#loUDBa1J5 z{j?u!dH$KzZZ@|a7!?b9=Yuf?t>QTu*IRzlwf}Q*|GcG(Yt=Hcf%Z;K@lE-=6c8H8 z*2tm9iSSa!Cj|^Eo4inXGTB)&5=&ky8no6l*@7=F%yHkYkb)(6-z=9Kw^SIYCHsr^ zYZAC3A;d+UEJd?W1V*qhBiJu*F%e5f;+Sn!Lp8;U$qBV-qqQc{3fh~Ss%rJB$5vnQ z&0Az9`-%|k#4s^w01ucEg~7rFOAa{h=u58u_@0*8JyE5Me7jNDhC^ip5s4bx7dsRz zg@<8}a_F*RT%qd#v_7yIs2Xfxs3^m-f-OJGUC!Ys^lRno`9Fs>~ow8b1d zqCd8=1?-(s_?9GZ!RCr0G&E=h(`5?<6k6NJtahBrR(bFbITVVQ(+# z?v?^VbO#gTix(ZR{HXU`dfkVMGkbf>W)Z3ZoAK9U%ub*P==z=^gYhu53L)kPmGWNm z7A-#H$WNZNy!GEsTvGG=T)7%LM#T*PGktWO)b%xjDB&as3=>+?Y#B;QU}4BxhG8Wc zQIeB7Ty})&gI%i+ef@a&)ujh!VQQJvS5~3kEO`>L7j)R}^BELMg zXXitAy!`Obe)M7xhMOGU--t2WF^m8qfavY+PTI{)#9V|u0-CT-V zLj<0{#A)8PnA{T6P)faJ8lCA0*l2-LUev#HxbL|qcCCMG^{%b2zO=*6_}isrZw9j+ z7{(Ax5?67+lBL9P#Dawjt%DCa)cw^BzmSgSwF|)A*iN9=9$T9llq|aG#T!HlO+v_M3q`bYh4{54aY`D#-!~I zx|z%_gxG;GyMSRJNTDIQ#D-0;gMoY@&!dk#EWY*i^JK=)dIFk(cAyhMhmPY`qfH)6 z285mNV-atiSQ68xrFe(g`l&65$t-xo%wNM0(A2U|GqjmLu|9Q&7(^f}S(27LhB1Q( z`Y{Y4n7|MqP}971aCj`Kt^FML-+MP-JNGMOd|wJ79KZ+i2nrbTKn{V6!J4-E=AFjJ z-`+FcGIHOjy1vRhP;@|2~Q}@*f5d#s% zgg`A#9QvIW>HlSbX&XY)JR{%IE&Bg5fSA5>`yImKfBk>)W&=)_>eA12nke+!pEv#5 f|91fC^~Jbl2B7Ew0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z001LNNklqkR79r$4M&wQ|Sm zl`Aj|lT0R!s;KPgCH5o$*L6@;mGdr~Yz!YcVsv#?^{}qpx*Vq|YEAxt6djgMzwh=g za+28nb47yM?RU{>w|f$B=SQSOA~x*YxpT>m?c4u#*PU}-UbAWiu}Bm}RsXjDT-QTU z1a)Vg-E-=+sn2xp*7Zo=^YQ)QU&#qXVNuaZ0>QZ@NYP2axkqF{IC(1(fyQ&+kQYk$ z$K1&U6ilfgv7B8fia=3SB=GIG-#xMLsfE`*xA3X063{vcp+o?_=L^TN<;1hk?R~{n zSH4nNQFf4RIpJ3qZ=`t1BE?7nLUvNH_zx=Flj8sLv!%ap?01}DgxEw#`gqrJaxZ%aUdvrf2Yh}ZwWd10!Xf+`ebWKCk zwUVv-5?sf|b-lnkMDfPMpviN|KA^4GH5{mLo=C7scu9l2q{ril}IFt z?|W?CvX%Age`ME=9XO6dJf5IuuU_=4?MIjDYCPA&va&-cQBEQ(wtc*Wu| z-hKDIg_mA*(K#*6O}?(_GA{rrC64QG@w6G|&b<7xM=i?=Hxc@Gk?3QQC>h&g$>MkT z*Bh^~_2-SK3PcP8Aq1Z1k+p0T(`4`g2Qv2L@f>u}Z?SC$+i^M>dckiCaZO^FCaS9O z!3Q7k+Dk9+!@95VU7M(Bq9`h!^s%!Ro>1uBua;3Kj^$5BAA_bUWHZ@41W$>oX!yv~ zRaag$?3EW5y%&u}3l`vcp3qIxc=YinUOVLAKMYG}(}my_20MWuktpNyFTP;joww1j zc@qchw=aEb`VucopeQN=@TJ6cTw0o&ShsE+KWyB@ABT@(>Ws@ND~prKWKa;4Mv8(( z#N%;x?rP+(bLa5Md#e~&+mC?*2a&9-K-2WRm^{~^y}h0FKdtA>uh-FM(7s%8_4N!I zFo5<{d)|FyktHM&30{Bw%||YqI`txuo}wzgsO?jOZQE+!{{06&{OBXE_T0PY0Nb$x zD-F^#3J{AYcFC<>~oVwe$Hnwwa>_-$fU zJ-F@ed+6P(Cz(tJA(T=xm6BLI#<$=9!1c3c5|K7XAAJn5L;~Bg@LV@^!9ZM!5U84p zW|%mZ&6?FK*tDa88*ZJ$ACEeUR7XdV0t4Y1hRK$#+t#0R#+jpj`FYcix?y;twx&j8 z(i#28qmLQ>;6o3*CZxpk{d`oGNXimrEMBsN+pe9(pAJ8ie*OECNoRshNgt#{;umEp z1)&IpqM++0imLF=+yBHiVk~&@QMz`iB%8GgHXtRDXpEmXZ)W=B3)rW+f`bn|49m9h z90w_Vr0<70J}jDq2>e|rXqrYO66Mp6Kjf3IzvK4$`#JQGgX!q#C`l8lqToy9}Pisf%aBhi$o?Ng(s)9Lsn)2H7*W5$fr)9Fm!bQB@b4U<1#cQxOM_p2CAG3W^%6q3Alcm1XhUZ}F$G zr*qY{*AZm1pdb?hG)?m-UpVRfHLF&>7LCPPMQxuNEuBtRTrg!y{j4izou0{L@|9U6 z8s&>GzT}!qE~IadE({pFf1nl53pEn>zH8f5blZ!5`~I5G*DOOpA`~?cf)Z>_)pRnM zG@pFsE{{G<5B3z{FgVw8af~|Bc@d8G@oHEL*mWxi`$BN3x9Gefkkg!~+-c{J`g> z%qt~dRS8*AqX?m(>N>V%@$<$FY~8twQzuX7obxZBqrE-Yi%?KiRbG72MVG#}YUN9j zXtYt(_Nmb`nN0GW3oe*H^U7Iu*>nbpL{(LM30F_QlwCi5MMa{FM0q*M%4(24QU-xi z2uO8waQLuMOq?>6zg&DitxXMRx?U)A6&2t2Y1pxytZlKQv6++3yO{GXxDbH)d+ui0 zqNnIqRYfEgqq=K16d~|^FTX}UCFKhy8K$_fC>BBBZE9#B)zLvqYb$++9LCLe&c$`? zun-HX%4wHeI(5y86)#3&(T2PL&OZPA`7^JWRhP-85fU_AXVEz?RY8b^r0 zE#mP6j%ATbr%;5TqrHt0r=GzDGiEWZZX6BUwxEZFQCWF866k1e$98Od35`un9B|Yy zuA6-euIuoZtFB<ifs}N#w->d`6dEQOwAM1L9W>1#mFggy$>0k? zM@I)nbr0@X@Bn4;1g_@>O_HK<+4O1CRxe+^sKf%!I{*Cnm(RSsE*Aq#)8wZO8~MwO zi%AHNNW=`IDEN*;pTYa{$I)Z)eILhh7`*=h^dC5gwX0Xs*wBEk>!dq6_~+A)lTEiH zg@Tme`93Wzt@J)%2shs~56f}6cE%+%Z}^V#@^Vx~34*rok?hiqlg^ohrfG$SjAEQ2 zu!hAiJj>7De}kgyL6PK3GMO~Ck>J+)2k6nQ85g`6 z+eTGY+FDzZoiRF-(7_fi{g6{UrN%MG>(zrmihP7y=xaN+d)wR0nEDm z@)@g^FMBQ$D-ysN=bSr#`eiffvKb4BkD(jv*tLth$S#*-RF~An1BNH(zrFjX!-yd3jmjLqZAO z0qOe)AxNiFj6CfO&Y3!sS!bWhj$bySXhs+Sl|b|1<~-kLXHzpH>dxiNbI!w;k_Ydt z=e;*xpi5O{aCk+ahQiJjKZ*ziAVmJ)l0vg4!#*UpMoViez4sr&H8LChr2-OeR@(_Sy5NPMcO|WixsIipJtR{NR18dG&d^R#l=X3TkKpiV_w& z2vVtbMo&DKiIXqo>hn)$>!uCpx{1tbT}ouQG23-$&e%-7{uT~8=paxOR7k{C)ud3uG`Bn85d=b6x`vc^p2x1{W=2lDfVwlzB%Mm<0TN9!xZ&DsX0BMa zYeJ$m>f?*he0FR|wv%Y?>p6k7mRv z6Id|&S{k=+L)G*m0f6uOc)m}2M>~}@gSh6V+t4)~Aq4HI6n9*A6`7sC5KkoX+E>Dw zUxc7+g$MtSqK*LmsT1$0f8qiR}^4FvhdN6Fy^qR>5tpb>sf5Yor< zd>WdXIOO<~Id{?&9NQ{Em37VF#y{UMYsJzf3-duRo6ROqn|Q|ji!Q#n&ayHg92Kl& z7&=?GZ)e_3*WtG`5HBl74J$lF3G#BT@0Pxgq9}Q|ONM6Y1Fq-M*x1PaM;^!I>6Zs( zv@e5rqo}x2Qa|T5Hhl6v)zwvjr9seD=4*feL&^cFGDMGZ=I=|N*49?yJ^FCPUv8$d zGKu53C22#~b#9(L`^x1@-+3xpYyqd8K5_o!i>B0NEem{!6a@@07K`)A#~<_9U++M7 zvcwXJf`2N-h)~1S3$m|Ai7hZ84`wspU>2#)~iWDLUg16p$(^bpfdFROz z0i0TQ`uq#0OsUIevq9}09w@9fiAJM*_Q}UQ_xF2AHEyS(yaH9z0^ck;yT~ETeqfTe zWzpK+&VYjsW#WYwQ(avZHYZ{?Y}kxM*tTsO3m;s-&+9&;qO2UlFiTuP$iSj<67Z$O zbzNFpTdCN)4-+R(W$?cHlF4TBpiZuT5CSyA;Er2wy=K`viyw~`yTJGfb@R`kG`Y^Q zvL#535CUHY$XzrVW$U)Bys_wMzWsPD!f`Mo5j0)PGcPg(R2BvNr3>6dCeC9 z%K+>!3^gK`$3^PJSm#*~v)&2}Q^a%Ra z4#4+Z9NP)W6$!FP0HHDs-C*vWcU-q@={t`^qtPZ&+owjiEGs$gvIisYq6ltgJ-WbsXCY0#TmL$ptY%=ix!nj(?}1iE2x z&)hjTEL-x<-va^cQ={9Cojhg2>Gc!OJY#}wTX`C)u;1M`>xV75rfQfGGY@(s z*tUi1=UV1G--VQv5F7P)>b^v z#WW*SR#sA(Orj|YS#PLQ8WqmSv&q zIu#WaR900HF$^5r!ggKugqO(DZDSfH^Y6LmFDsTTelSw(0w;_+dHz{vpIc{H+5Crc z7FEp41yq>Mh7B8d|J~KB|Nc9&sWy}%qC*OWit4T$aNrOQIrK0pE0bh1nSwU_&;vw~ z6%_4W5rRlG%C3f8y#L;Nto!^k+L{{zHX+=ICm~i|!GK@w$KgjDNw40$u`CPUb4xhP z9RHf*Vok$fLH+#ME0!*~KN5}PEWk>hF!tp66VE)W&I-%M-ATtF6}Gmuv*@{J_~z4p zQ`2iN1`QlQ*DhT#BT*C~aDA6_M~W?5HuKfGZ)vw&hK)IiV}>4w=Quc?L$0hT?ePOk zFmwZi;O&3D#frsm(X~9z;6Ve~Yp=bC$KxoPhVS`gGHG`0+{riJe#g(-b~5DfKQi{@ z@kApgff7ZjH%Y=ez~H_G^*60p`p$iM3ve7edEzOj)}MCTgb9{y(K!W3AZkX~uxTTI zzjr=WrphtL98I#i3$EkfI1c!J-d$8xMb`rsXZ;U9uz1N*Y7hK9=bU#ThOXhb?jETB zAj72686JM%J{mUt!0=;-(tDpic)pM8I{2QS&zb?}prL6RJGO6Q@#1%IBV|mUdKo?U z>P{w`El{zdkOphH0WGf+hcYo1dFfTz1WM^yuCl zD{B?mRv`#JbpQP~uUNX|-bf@;5WtwRC)b}c{?rM!?d0GFB%o;;>2#L4x7|qJ>T(V_ z{0OXU8qW(!5ig*?bInOE*eR--hphF8Nj8<{#g|@U|09p%%(KoVn@N@AXWcOQ`vdpV zuznq5PB;UuOy!S}opOVbUL zhabHEmX*tv{w;_B`_$-;YbVEyJEeZyxbYKg%L-v{n&9QPjGA}PeK}o!RD=7d0_6%4BERZ1NZxNenY|L zf&xU-jWGR6gd*@lLc@qe^Jc0UI+;|O58q!ywAVl`nl=;P_Ynjj#^3I~1Fd~0zdPgz zRH202L%=}gtN=x&`#$|>*zz;3l||9ikcU(eYCyD!O!M=jKhsq7f8D#mZ(-%qa1)a#Af#K~z^1R86O&y`5h+tY>RmhBGg{f_{Db zB81@UufAf@!wcwHRZdOq03wk9Pb9?m1QOe}=+?70SKm3GNB?>kpTEDFXe^O0oD@|- zQ8hf*W8?ZC`FY1qjy$oBV~;(KOga@*nL=O~22VWt$nC3FES+zfxisk5$q}PYm_P31 z@pZOs;Un{O)5G`9$Jw!wvP6RFu3afBufX?QvgtH^f3+VoZn}e4{_!Ml{^N0C@d%#K zn118!R907W`^-xMG)E1PpN1VfNToX1(bUY4;bR#wViW+cyts&O-d#+$sw9cBa;m#_ zE5Qr$J%X;&yQUx8w`?YpYDcJQp-2&dE3`H@(cIKbTU#6DefQ;@3opiX?R;5m7zR&1 z{>YuHmoK{~9|UdNP7WJ2X8yQwr_@`X{s-_x{aij=xeVPfkW!Lr?;su0ZcQyMbQyRc6VJT> z&+~cmp?gVf{+^1ma)c1X;&I~f1XB8BQXTnu04XJol|?s9gc9@(Qc9w+1gfr)O{ZyZ zZ^M_6&ZNoc<(xn53ZfAM-wTAP8zu{%e5_Oej^iXpj5(ox%;*y**sg>0CAy)rW$QMc zedw=rjp{)=Dgp>hH*`!Rf|Ne4=W*txmvhvJQ8YF-QkF>Y)PlQNz4$HSi85Tz#kMRQ z*8?P;gtoRejPCnz_T*`}uFGTh-GkD$lXxtSrUu}bq6lJ%G6w(d5L8t|3Yl;0!eTO? z=YRP8W11Uw2FQ?n2YxeB#bEE0)bOBa!AH2)b@^ z*zsfPM~yjQg6lX)A9O?Km(81b@sR~|i5VEW9srejv{s<18tINUlHGeU_lai%(B#AS zxp~^8faX$EJl75IddMTg?d|QTU3+u(uhe6VaWk$61M4OrPM%?{K}osbip?9=({IpV zUU=#;o_io5BnSZ&&kwcZ`LwmS6YJfd3Fl10bse65_$wj z*pZ{_hmRaR!FB9lI6_geY@25vz853gLNpo+SQ{na0;KPesH$fA>^Te^Jea@Fy_MB( zzsZzq{=#8Hhx6)lPxI2l_XR93IcQws`5sNJt@J+dFh-qt3cmDs_4%jS_3dXQE6Pz- zrG$KO9VZWs2QeXq8Hu9l8eZtvYFKs$43xz8d^*x8NOot!c~ek@k|#zC(_qoFPv8CS zs^xP`v&aI5jyS%4*oaXR+*}$&U>GK^zW6jv-+vxpfJ%WHb1aMfe}4#5Z@8Hk9(#y) zUVc8n?-Z3O*WO64n!emLZ4#MO8kA5oIntt~jl;%F;5P>z1VZq^`|t9};+N@~EJstd z0`E}75BQ!(yduevKMiBuM{C)&`Dav3%cIX;sQJJJe41KX>2=_tj2JTx+scO7G6;e% zKKIPs@2y-hCm#b`*GnEVY-Ig$BSubeZ71jfe2Eb;`RdCrdH1zv=vomEHy82(AyS*H zs;0SN7n-J`C@Qw&V45a|Y0}ox8c<^dTJfaB&SvRQql`OyQs5#88k?GV?WqSTS3C^U z3 zF!j8E;ZXvVS3*FJ_+BuuED2*kFl^n>(#n8ChjQefhUU>>O*dG&_)Ru{`Yu(;3RG3i z2U-!j0tAR|k6!!GxMMr%j`m>v+=O_J77K%Hv}Y}2PCWw=#-7}afvy|8`r`BR)~;D~ zr)ipn7;x0kVfDuiKR)ONbBIbfTleEnKeFz{-Fo53N8E!E9isfo@q8`F-i* z`I1yeJF>hxVFq` zva+-~aP0WA>D99rPB<5k17mc<;PsbYxM%H}m3IU&pr%H*EjxMmACI0ra?}YIIj&Ra zgTvZhGfX~wZ#C=IET*a~hNkPNVZ%dM8%_)lmj~T^phx{SW3FZM;0h*@s z=BqEwUAt!0U3m+zY^(B+!;hRgV$=!O=g0<8GV>mkng3q9n(yCVL0Lo#5uhL-7UPk* zU;L25_I!_y_740=Ifslmk-mLvv2CkUZVx`AnOFs|c&LC?A@Q={qZ=u zR(B03F;O)2Fa08L5DYWIwryMaXvJbWwr?V0Xy}HCrmA^pJIGQp9M7@IWNnOOH-2-} zvGl7QfE)HRqSH8yrfPJgI#SO*`PigwTemFJG_6t8_Nmc)=~wHTzTddIGw!eLKX9Py zSVj0f#k3@b8KteGogcscoGm}BBh%W5@VpWL(MO;f5z4#mP2YWgLrwpIsEUFUey<=1 zUZVKshZK3i=tcy`b=dIzH*Eao3)&mDBW#99JE(}`AgrT2jS=s)-XV)0nW2Fp_F zO$0$*(@nlz_tj@FKmW{hDdl%Uh(=M{r$zy)Y{%~Pn}dc-89Dl-$*Q8@`7(&UMORp4 zxKTw_&~yXGwrOc>pt)%$*;ESOb5V7JM0t|RF5M|hR-lUD;GGm*A~2B$NR@ErIH2Bj z-N2KQww7j^cI_bD){5u4!F`298I{%DsHm#O(Dh&xF61F3#aDHL-K&ZSGTIBz-}B8^ zUp{G?<}VW2oVzel=KFq6P1g<@dBV6q@Bi!H403Fnl3OXF=;oFmED}tBYN(nTc5C5) zweR7&PJsLUuZvEdV6NiFgYlPOuu0Vdh%NtsFL6CL7^o~JK_MLARKl^^K(K~s@af0@ z{`~D%U%m|?z7UGo0$N88Iitk9Xo6nTZ2rpd;QKW%tr(Q}V> zw6(2KHT6fN*oDB#S%3nRA?WSc&VZ^eU51VvbJD3beQUcqu9F{y>wL#87xjw=m5NPJ z6yGWnqJ#x3;nKsD3!-?$poE;w`8A@L@GX3A$$i4`J5)8W(4RN1-}L&+FTT*y+_cs( z%V@QZJanLrg%)VQwQKT%dbG8k)6z*+-QC=+ABLv#uoX7%-@>Z{laDrI8j2NG@VLiKl|jP?>=1n?y_`8$7i~( ze~(}jh$fI$aAl^ZCbw+`h#=`Agy`eCZa*pgzI*lTwQv7HgZJI1Pfd@CWM$Me%~+1p z%dsso9AQ_AExU*aMo@I{l1p!)Hbubfmi#T3fP$e2cAt^n?aH0+d)T&}ZfR~#{k&KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000weNkl`}l8f+Ao?;|qN zFWWe_ttiHr%_KTHVjLq)8x3M8L8Bu=T%wFIxQwVVpwcX1Z3J41rWd;Qx7_)oUcI{S z)vLytEcX3A=0txj##{6z_1pAp#Y?ARFKefDM2Z z{w}=(0Jt-00te?DilXo@U;NLUI7_U4bk+Oylj?KHWD0kG|4vwz1;!YN2;v|=0Qr0# z*>nb%UwswMnmud6_(@|IjGi$165F;K!AR935fFJLAyIy3l%y?9(mTk#24&xgcW~j! zxWyR>Du4`aL&Okj&slZ0=_u! zysOVRx9JC#ZB8`urn^$)5vA}qI0tu@uCzLSNc=FB1A2w;3s<`uV z0Wd8SBS($I!kZShocWJu+@DTnz3W24Y<%kgpOTYj8p0+?S||Hk>h8yFaffpZsi@2f?% zh7pg00@QW5{cYF?i?5~=(?U*e#eUQUii&# zJ5)_80brUYhS$_cH$Sjw<;YV;U1?fP*qWp1S=_Uzk8qa zSg(w}B@j#`fJ)rwI(I0#g3kB%Km4BX;|6^4j)(6_;)NbVg$>_BDW3VP=wP0{C2WuL+b667QIee36E|9Q)fJz+Im03e-A zfN)%wY6!1IBBZV@JsTe5~xkI>#+rmTyZK9$_qC)6E zgdlgMSLt}EZT;7t`sHs{YEd23P*+bz#-Pg=U;c}8ENpXQ4N|np-zHLRSSN&U|GYt^;hJxhU@!X)hB>BIWObzXul(f_apKU zWKmEXHY{#~yZ=P_35*H>3%`N22 z9CTKN#^I-7>WD^+9X19e5&n`fkV;}_?@qkmy%~qH2Ou#*n1vk~g;<1pd0KRf#d#`G z6&oMl82`gV8(Nj90|2w7*jI1AWa-FrYUf#5TTp2+T;&2Ym;14tm4}QlX4Ia6vq#TD zZB-0^?O_@gIuadty=wy!`NL2p6)a$L!krzXhc6uMP@)RnjlUaz{oyxC8X!TAU3~l8 zw%BK?n?(S`0M)w#hv$m4nZX!!94@TC7$==jhrjhmW>Q$cZ#~{U`Zg3f>V;9`^m8HYas-9;%02DVmd`Tc95 z%UWU1q7&n#(2;WvB^pM@lUw7PAKly<)UB!k>lcC){}E6J|t)5@vW)f#;h@CVW^B+lNMN4*NGVqUgd!pA{LRkz zw#T-%$}Rvr9Q*7obK0bt)NJR(1Q&T(pE$B+4pXWdaod@+@XVxwASw1sEd&9!D27WY~acWuo?RIb93 zbM8T{UOVIf=*{-w=8cQdm+OVZWLI`_cz_Y1M=`Pc>3wnYi9@ZVNd*9OQeyh`)7$nn zrkd+48KWc_DoNnrumvi~SQ$*OnT9)O{WKsN90G#_-+lXg_^|f_D3a<5P5?68LYHac zfWi@8mxwD*9%|*f06^9CGur;#m}+Ku4i$tLBh)a42xD;arx-AkxM=)ExMAAAVW^J# z-+urv9(*1e(_sKeaT`6hjUJmL#{nrKL0fk?EYGNWx*W3pM!7nt7y zAb~?ALIgmR5iB!>s~f(C?=&tPvH&dIx*QMfjDyQMQXI%}4x1BL(Ie;*LPY>H2LO#L zv6_|{ZMz)+;MviaI3R7LaOR7 z#99g@C<4HJuB6{c5p^(Il{ShvV>TKyAy6 zw!Nn%o8?@ER1koqnZcacG(0_L35eK`17KUvHeB-N%}B$B3|3JCq;-em{E4nsXiNlP zdRymdsb)DxWwp6tIGndlj0#2Z;^*5?tDQLH0J!JFWw>|OlNc6?R<2J(B+%N!aqc&P z5jV_eJJ6VHW_e$ghLeyTuwmGFtUT){m^1pEAtiiQstXryxDMTB3SlM(B<-C|u`YqH zJsh_L6OeVL){bs%YTrAhe{PWjc!ly#(oEy)br;}{nKut90B--&J$SV91q=&CJ^A6X zT(Qo8wTZYPn1HM^wRX&nP3?Op`vHI_rOZJvxrvypW6hjjU`%xEkP!a)&X>`$`5s6t zT*wjnE68FJS7+es5^-a7S1a@)0HoHAyQ!(Yb8_EYDNnuYa~TX!LDpLx@# zF8r3G9r%}x-$TEZfx<%Y)z?eq^5T9j!eFgU#Ivh~y?{n)Y}}1AmmQqae~FZ*Qa6X^ zPJlbe+O`eOO)NX}hnO>F_NONN_TC-1?wudvqii>HS%nR;(;%?83DOyiwTXB}1VDuv z8`nCm?c>H&vy>Ov-{0m`@((#XkCEZwcxcvLIC=P_zq|179{v*+Z@LQy^F4? z+m7#v-T#IAx355wXP`5+VqZc~t(0^L*|mvyYE@S&6*)j7wRYm7ruMEWy>nTP1(vZJY{q3^Dd;0gHZToV(^zrKmOA10v1}|$D5xP!%1tZP@ z7Lky7HW43Kb*Pn`I6&4&t!-G;)ZR6@cdnFY-tsf|Rc8GJ3n0%;WX&|@Pq-Mj&1i+p z{<>M>u4EUU>3j}r_P>Zkz8AVI^!rt6#t;=im^0}T(rXj(W2*!cP?=gg>86?Oi79<^ zSw1*~EU$@ja9&E6XYD*n(KUjzE=F$Rr7? zTHbCVHcC<1*BnfjkXoCF_pkcc3&6<&05oV?ock&+QB4cNeu?%qHkV!^}WVbJX``X@0#_k1$ z0x7X%15B52?Ab)Tca;x-DT|ugyHD+PO`zEI;pvMLS~I!Z3PZ@)X-uv<70YHXDO6{Q zNyJOn@FAx_;siMtvhW<5) zc+aY?R;CL8oVsXc`_WVT=CZs)vTJkKk1suX2+b-~x(#3B;Y}Fh zqo?-HE$#+`%42}P0fxi2Ij(KE24|0&iTAoU;q4>uqN8s+`iwp(l7bKm{hvDKD!ps4 z&by#%DqSz>5_+Fa#Jg90+{!f8PZP)2$*QEDaQZE0ws)V>{nd(IAP4}?p-Bo(R7T)X zwhIGB5(Gk63KyE31`)E-Bq;zS0LLNbLE|P5C{jd1@0vvXh@b(XFjs0Ow=}k8n=()3mpJ)|N6P}al#36`U**%-c_JKvItQB64! z4@QXP&o6LII2uCk`P8Z%%XhX&y3|h%b@j5DF^5mP^z_B-^3bAu$`BX0f)17@5YQ@# zN)3xan<@n4ZYt?H1q5Xn#QFK>!U3pS7{>D4celLM@rbNC09b}KJT|6g&M7~e^7sIf z8rf7)Zhu#%>teXqirt;07_y4r3mv7E`#TB#6DXDJ|9Ia6fGu-GGm)d)ZtGZ(>`nfW zg;*~&)YUTpHFlPdpV=~PiS)V9dHDgeWSn9^EvS|2C2iO5l<~tSqCE~TZ&VadaLwdb zgP@ZVe&XQ>MMJRHTkAG0+w^^=v4bG=77k1hRhe01)QNQ`e(97So%|n}a8@USgxKF% zQSQ$%l;iGi`u0!-FE{fbdA$wPaHIZ8p{_Wc68^pihd3h1$gwTo@3^7oNY9&6Sn2{W zK$GfE0_R)-VT6%1>L>rx)CKj|jr&G_svl%A=SZ8sUBdfANLWnJD2PDen<6_3m?0K+)9$B`kOa`siT z7HV^~3o~|#c&-#nmqN{8gZreuxw5A7@;?9LIR0RkDBZ&}f}E3$!z;R1?^wU>8K|_I z2nUGMF%WF=*qj1T%(kpL%BuSGmY&bMx6ll0M61j)YliE!~m!OP5|c< zjI>ohd_;BQxbw%&9{ah`r|}rC4r^g%!t~C9;GE*{Geh|iv9iz0{CSX{_wP$YHT3EL z5rf1TjErF;ft~{!x;i>v+5cv$Ke+Vq zk7Pbh_9s7*!crFtv4a2(0yqkeEDG%p2m+u00-yk>2B8)lBW;`4a*GeQ3{xktFaX)p zepyMSEA4*%KY{$9Y6u@C{bORUwAq!p-z7haMa|nT;0f+*q z0!I`;1V9)B$#aeZgX~`TAoCBhchB>v+{ahu2kr=$2ap1g1aQpxJp;ffs{JPcpacX# z1`q~^QlJ*dL5&xK3gM62#RP}H1ntQU_zx@|2hf6mCI|+A960hIn9j~UIMzH40Di3? zkWcvI-ABHynKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0012DNkl?-}Nis-}kq+C@m@`HALd41jliRMWa-X7(p-?RC99k2A7lui#KiB)Kf@&2;qK^ z*eXA&O}fRrFa`?pg=CN3%5A2RV#Awg!|+p!&MSb14(Bof`-EO&b^sY>P7m>KONL(lRoGgV6G}bpf z_s_Tfd8qctQ9NGHcLN|DiKb}`8$P_Etg_;%+Pd1RSS*fo91v;COb1_x^qF?BEJ5d6 ze4_W-epGaP{j}GU|4T>W@p$N3Shy!AH+TBGZ@;~G`?l@qn$|f0Qc4`@F!IbZFX}g7 zz{1AH#sVoNLJ>#=B6;)V4oVP--AL_tJ9Cz;%S`>}WbSe5dNLE1#KJNl5^XM>bPp-p zc!WeITsc3#3tbDl-nrnp=V!IFw4mu)#{k&2!_XfNtvX}au(unVnz~4L*=dt_P(EZT~QQNO~W)z8X6j?J$jVJ#zx}tII61Q_xtd9y=b}zfyAl%@0l$x3v4jnp#rmFPq z+m}HD2hp!zDLs4jB0oQ$fZvbD=Lc26ibjdXVjMqyoTEpNvS-g8cJACsb#*o2NSN+j zyHVP&A6@dgxIox;+9sq;Qg#wo6M#9kLzgaHj;;B0)rh^-HPxD~y8u|0C5nQ%^!9)MC>Z6Zd@_4<7(xPHv7^ZsW=(DaWDlU346biMH6x#coY(r|2 z=6>klLAGz-PVZj5`Pt7dV(hrFoO}lL~&JB#Wbz|{NTO! zZm=vfE=r4vRl_iHMxJ@*9YrO<8KH0p+9W^7%*7IkuIa>$80*%qqkFgR+A7; z)!4R!luinCuh++$Z@kW@t5@^LBafu)Q3%PA!$)|2{(P1%U&ip^WpwM_Jz;62XtK;m zi4q|}QB@+5*z!+5{^%ylG@D!iOe4RdYQ*g&r6qTzQef+)Qu#D#(uQHMdiAG_88epO z-f=sp_U?m3;y4n&&&T}v3m7nwrMqr(xPJBG|hsFs;b`x+W^p-0bBnTLa=)E zYAVXhxp(?>diLyv#HE}7Sph%u=g+5KzkZAyIg&sA@sCWMIu&0afV7>Ig_?l##TSID ztBH>rM~>e|PEKB;=4cJDk#Lx2pPk3eH{X&1AW5%!VBn|4i&ZfMAd0^v_Qbm3kzPLU;lnoR#q}=)-0w>nSwtMz_Fdy>=E!|tXYFRa)iLo ze~ulC;W(L(KhNaJlQRHF=6^*IG&MFd>xn0Lf8|O>jT)7zYmyAIbvdpD zhr`hoYd-m;6#&C93o1rb-5x9n-r3d#k||MBRSq9M%%MYv_|u>M#PH!|D2gCOniAhp zgrK>(8C}=$`F%7tHjWe~@scG}f3PO{$_23WZm!U6p15hG`U3RE@a3xFmRI zI2>}PAw&klvmKkYYu7Su>Qt`0`f7Y$FQ#Ro2!W>S7>1E3Vn9`uR7}t`4a>6H5^C^z ziGTbt)`9&5uDKRs@s5j0K-V-Z(@GUVNenbyLlFw5X(6S<+O=!B^Nu?haN0of^Sihl zp-tKBT0nTk+D}$Zw(Jf7h=fA!EYfDI>pEZV_>!KzdNOO)EV|_9Cw4X$+p^iSXAc7h z4#Y{Co$OTaXq}7KOZ=k`G4~%J`&Yk0#^R*Y5BVKxi6R91_U*^EP5KWw4a>4H4TC@b z<x)u?;?aqH@B!xj zePmCVh&0Sr^G+0Yf{tn%m(0YXQQms%pX}JNjkC@g&3WgYM?7w@ckdo1Po7L+VOP5M z=;m5MYZ^mURYKv&igg(-kca`r!D2TCD6If!n#RtrcM>cP^2E$1$jZ(_Q4|&}T7;@; zv@|y}apFWCee_Z8z4u#w_>haP%}yY9Xl zpVy0R+t|_pM`bv+~y@L{~S5^L{10yj;9aJZFvx2XpdArOfoN(g}z0$o)( zbm$OEmMr1A>#id&FAv*saBQ31yLT~V$`tw*6_JyjLwa?qs4C&41+=<=QBYo4b$d~; z_|9-RoCtz0TE~tZBNmG?@0ocNcI}F$>nK9-(n~MVw{KszZry@yJ9O>Zl`F2ef@n0F zP;+FWMDIXUK_IdM#NT@#d+%QSH{FN`g<54b*+wQy2EGI+x~>xrhq?2vyBIuhAmcB( zh|^9x4GGwmg<%*>pFW+PJ9pB*e}7ENOu3|@C`2OB6>C5Jbh2fdsTfdLR#kOVNlEa* z=H?a@#ihKOuCep0uQ=qhN38L{_UWMrmbof z2w=SXKGwcg06H#W+rOqHD$1HYd$25vZr!?3)VFWSN&uEETgp>^dx{^PaR#>Sq?oMk z(P?UIdUgGpwYNC7?J_~jG7EzvG?sGFy$shODIE}bz?=x zIw(jKq2Td)T{+LRuq-!*2t`5HG^%T=nL2eU#l=B99#1NpnWo9nqeqv1wQc*&mYtx& zj^pI_Eh@V2n>{sCPe1*1N=r)dcs+zdA!=%>dFrXzl$Msd#fE6VCrMM+RF#ItMwTvJ zN>Nb}!^?)#^OT5nRyEV-x&0G+V z8%&-&87U>bd-cY$Ee;<(%=-1~>E6Bjaw8g>5{*V&7jUG^4+euX)~s85Yb+k8XU|g@ zJot37bFxttm1mxLhO9sqwrxSe2W{JS6`Tw)Rv-|(_wGCV>B%Rlsjgwr;6aQWIg;UJ zWegrPh(5i0la-x~B?Jc-FTvWgk6!oQg>D$cVlmpOQK<+nQ~W+d3{9j(RnuH+OUURR zkB9s3yN^wqH{o;z=H4+Y|?(Ok- zm^g7FPd@o)9O)n(*N67h?4h8rfV|v14AW?xbYikufh-yt8d$L4d1lUhg8KS;bX})= z_wJOGlrW;Iin>q;v1Tnj4U5l*4C1d3KTK)={zRj(jE;{$v~Mn@$zQ6f(0u$j-+p_H zU`a6oB_VzJdFJW4OrJi3mX?+bOv}qFmPcD!rbMIBRtqQ&wg*5_6z;j_9v*z~L1J+O zzt6`zZ~u!gzuJlISWK8Ok=)!|EX&SF*RE#Zs=r_D+{vGxe3HeB7ZZ!cQq=g;tFLBy zzkXzYdyK#Nylh^-p5@Dy;r9oyY?IcOOWNYoeowxxdpvx;aRY1CtikX1bJMRU6N^R3 z3ItfPWHC41coU&E0X79dECqm*UmPr%@!7@=w}#UI&~=>$9(;g%?!Jd;EQZhP<#)e( zfNQV4hJU{G7H13_#<+23yE0Zs4Iu%3pC1IQeE)rB&z{Za8$YKh%;EQsKFWYI&fvuf6Ucw{Rghqh9m6eKws3Y;6*o+pL`zGkP1VBA2{Wc#*lOr3fwQabqke%^fZO(sm3Kx1QL8w)639u0-3#9Cv3lOHT8nX$f& z1*n?J@9w*w8TZ{!G#W)!-TM6X*Iy@Y#F;o@Vp`{>eWOCvbo_oFJ9g~gvBw@`<;sKOy@DaZJ>Pzmp z;|`FLKp?=fWy`q!h8sA3{CIm82!+zJKoWq@H{2Qyg)`9o&2Mhw@yDMaZp2YlmAcwm z_V3@%@ZrM|ih^U??fV5nkQE3Ji$z(ua3OQ&KFzUX#|Q)hn5IcA7NuMF9*p|YkMMZC zY+ApbYp%MI8zcs(9A zeene|pLl}Rt5@UEbtJAH*MGnOE;#>uP9Hjity{Jd3WXUrZY)(*Rm9`*);?g`f@PXE zEi&j(Yqrufm3Z91wrvEEm6gTJ$7eGAzUi$kwZy0>uUHXj2~E!60UgBvfV0m&o5hP4 zlb7cT3^G|JCpE`}xeK8X2>5AkZsEm+FR}zHcI{eb&6>rA4I3yZC}8N&p`7#Ma~L~jEJa1dE<-a+mr$Mb(U6W` zOP2VGqPkjRS_42;HA0~luDbF{-hKDolK{YR5=3ZYI{@CV*^h=J(s0Rmr+<)$dAuChaa7D4nu|xB|9q%+jcNaBSSpRsF2#8Df+IF06^C@ zY|FxtnbM!%?_=xME&TGb%h3%{8R7GLMiWO|x zvW4oJ8hkz<Vwh%zE+$$V$ST@JpB9L6Y%>J zE(!s^p9KpRFm2kjb|k13fR-uING1=s@3V~?r?w4(0F_mhy!y(k^y$-wcs!1-Y1B6~ z@|)YHVL3Jx<>lOQ$DIfvux%UDG&@d>-{(Bg35KF5*tX4!FTTjWy?eR)p1aA;&cU)Q zR8_@sB$FoHz@oqZy~8s_73Jm2BQ2qJOt4b`a&vQ;J!cNrUUN-?52%DfA^!HaztPgt z!syYXx%lFXThmQvhnYGBpnbUO=-g0p`2Bufdg(=~YxdCCP|vm3{))1)GUD+#e!riM z8#Zvol~+<-UELvo?Oh-d1V3xT1JcLE7hlZ6g$v2b&PG)fwr<;HJ2i!Z*I#fum7 z&_fSlJ5K8ny7U88vQ44Tsa!()lDI7{LZT=t`}XaluC9*1FIvQ}Cr{?|Aw#fC6HV8- zZ^jH}&Yam^7H{hUZK-hES|ELN?b?kwbLQ~NUtX4o1@Qj+?{WC>VaAOcM@dNurfIbg zW|B@*TW5CA+8mK-jn2#<;PrYCLQqp(L(g74QB(!5$IF(@o4NX$YuK@4N2e}SURLf} zK*|LiC%?F)8GFWboUb$up$~tCqgF)fY0Y+ z#*7)vm@xy(vapkVy0l%^HH|}u53^;{W)wwX=nsa{t9S2&WF_2mE!r}?HrA2IG>W27 zQ&U4@V*{t1Hi+!(ENsV4J2smHM8WIzux!~7Dpy2WS|+!T0p9@t zKv7W z*L98^JI3tUvl%g>ipr`Hbm`Is+p^QX<3i~3dinCpFS-8u>shyM-FIe@%F3!0;pXOc z08IaEthXIQW!-7^Apb#?sx?~AzkmZ>1!J|Su6_GE&? zyX??NNa?M^qw5?vaDaL9=22N$$xqHdKczaS#{!?vOKoi}w@tf^C9f>$B>i?`0U0h( zT5|7a8#df_G5`QvaQ+4S<*$EXz<>e7O*5lD@aj6xJo5~L2M=bhQ!Wls)`UWbLLEj3>m`s@#Bdbt^_9~cs)8zO-)RnF@puq z&nIrgPipSvWfd!;;n3t*G}0hSi;Hz>JNZQ=CHH)`al>y;762gx7hX7?Km6e_h71{k zY1v4}LDf_m8yZ=%WHFO&yfHD^%w1Ddl}I?mV~;(?kRe04^wLZ4c)d8bldAJHP2bnYt(&P$0H9v!t?W=Cl-yJG?6MRD_o=S{07($WjT_5D4?e``F=KF~#Ih_b%SKfcR8@74zO~^rUXRY2HEUS5Y#9|5l^j3b z$fQX(V%bj0vlStTMWgK6y^B7*`_Q9D58{S_s;X$J%I@8}c=+K*c=gp+iO1vLi%AYU zW7u*dmLZEf1;NsOx2;>h?w&{_^1Z3)puvOr&26`F#T8eOlaqsOJJ`}eI!;EHINiU$ z_~HvzuU^fC7hcH1g$sG$fd^XK>uCV%nug;z*pB0#6R<4aedir!J~4|=KKb~he7-G> zuB@zl^>}^5E%A6f)fg!_wW#Qt&0Dw3YHn`+xA=LNE_qyX$)((M)!oJ`$Y=#^Y5xX zdh{JtRcnD3_kjt47fE-=v4h=voO0ojy4q>`_wV=e|IsKdDYc6G7X9a*>TjMyQT7TU zz6BXiJ~5&Ixk&m*LH}O8dR?;b;K9od9XjYs9ZdWmJc^5hPQQ}iYkO*H7D-3$5{fv4 zq#1BpADR+)fdVOI5mNN;*1hX!DU_e?{QB$O&CSREM=o5`GdCe?03<>1B19fgh?G5~l!ZVSAfPCUS5Z|hb%-zH;iXO=)aXF>N*6ra z_7>B>*TH-3uO|@#={S~c+i@Ta92Y_y1L_jH-U7rx*sX^SItGBmQBfT!{XjNC*$%i z&VUgeJ#TxWg`eo*>C^?BL?6}Za6WDB`+o)i5wJ2Mmtm>C00000NkvXXu0mjfF)%SW EF*A&iiU0rr literal 0 HcmV?d00001 diff --git a/GridViewExample/icons/graph-64x64.png b/GridViewExample/icons/graph-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..99ccea2c178ff4f0b3659f47c1be678dae26bcf4 GIT binary patch literal 10228 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 u;r=(8lv`zm5jXr0Eg)R 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 literal 0 HcmV?d00001 diff --git a/GridViewExample/icons/mail-64x64.png b/GridViewExample/icons/mail-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..97ea6cded9600f2b760f75dc71b1f3390c578d49 GIT binary patch literal 10269 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 literal 0 HcmV?d00001 diff --git a/GridViewExample/icons/tools-64x64.png b/GridViewExample/icons/tools-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3201f829b65eee6e3c7abe40b6d640a4015699 GIT binary patch literal 13552 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 IK>^|a0A~=9TmS$7 literal 0 HcmV?d00001 diff --git a/GridViewExample/icons/wallpaper-64x64.png b/GridViewExample/icons/wallpaper-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..cba2c848cee00788551594fea4a951a0d2c7bceb GIT binary patch literal 12819 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%0A3nVFhHDCy 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 v>s`nAy841$Di7}T + +int main(int argc, char *argv[]) { + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int retVal = UIApplicationMain(argc, argv, nil, nil); + [pool release]; + return retVal; +} diff --git a/README b/README new file mode 100644 index 0000000..fdb8702 --- /dev/null +++ b/README @@ -0,0 +1,14 @@ +This class allows you to display a grid of views. +Its API is very similar to the API of UITableView : it can reuses/recycle cells to avoid too much allocations and it uses tiling to avoid having a too big memory footprint. + +You can configure its properties like rowHeight, columnCount, É + +Then, to use it, you simply have to implement the methods of the GridViewDataSource protocol, like you would do for a UITableView: +-(NSUInteger)numberOfItemsInGridView:(GridView *)aGridView; +-(GridViewCell*)gridView:(GridView *)aGridView cellAtIndexPath:(NSIndexPath *)indexPath; + +You can also implement the GridViewDelegate protocol especially to handle when a cell is tapped: +-(void)gridView:(GridView *)aGridView didSelectCellAtIndexPath:(NSIndexPath *)indexPath; + + +See the "GridViewExample" project for a basic usage example (including changing the number of columns used when the iPhone orientation changes)