Skip to content
Browse files

Initial commit.

  • Loading branch information...
0 parents commit a2cdf55fa557eaf3ca5b2a879d41c836ec549e32 @renspr renspr committed Apr 3, 2011
4 .gitignore
@@ -0,0 +1,4 @@
+.DS_Store
+*.xcodeproj
+*~.nib
+*.swp
424 MMGridView.xcodeproj/project.pbxproj
@@ -0,0 +1,424 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 7E6EF37C1340A48600DD91EC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E6EF37B1340A48600DD91EC /* Foundation.framework */; };
+ 7E6EF3A91340A53100DD91EC /* MMGridView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E6EF3A71340A53100DD91EC /* MMGridView.h */; };
+ 7E6EF3AA1340A53100DD91EC /* MMGridView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6EF3A81340A53100DD91EC /* MMGridView.m */; };
+ 7E6EF3B41340A8CC00DD91EC /* MMGridViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E6EF3B21340A8CC00DD91EC /* MMGridViewCell.h */; };
+ 7E6EF3B51340A8CC00DD91EC /* MMGridViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6EF3B31340A8CC00DD91EC /* MMGridViewCell.m */; };
+ 7E6EF3CA1340B52E00DD91EC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E6EF3861340A48600DD91EC /* UIKit.framework */; };
+ 7E6EF3CB1340B52E00DD91EC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E6EF37B1340A48600DD91EC /* Foundation.framework */; };
+ 7E6EF3CC1340B52E00DD91EC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E6EF3891340A48600DD91EC /* CoreGraphics.framework */; };
+ 7E6EF3D21340B52E00DD91EC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7E6EF3D01340B52E00DD91EC /* InfoPlist.strings */; };
+ 7E6EF3D51340B52E00DD91EC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6EF3D41340B52E00DD91EC /* main.m */; };
+ 7E6EF3D81340B52E00DD91EC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6EF3D71340B52E00DD91EC /* AppDelegate.m */; };
+ 7E6EF3DB1340B52E00DD91EC /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E6EF3D91340B52E00DD91EC /* MainWindow.xib */; };
+ 7E6EF3DE1340B52E00DD91EC /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6EF3DD1340B52E00DD91EC /* RootViewController.m */; };
+ 7E6EF3E11340B52E00DD91EC /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E6EF3DF1340B52E00DD91EC /* RootViewController.xib */; };
+ 7E6EF3EB1340BE9300DD91EC /* libMMGridView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E6EF3781340A48600DD91EC /* libMMGridView.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 7E6EF3E81340BA6100DD91EC /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 7E6EF36F1340A48600DD91EC /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 7E6EF3771340A48600DD91EC;
+ remoteInfo = MMGridView;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 7E6EF3781340A48600DD91EC /* libMMGridView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMMGridView.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7E6EF37B1340A48600DD91EC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 7E6EF37F1340A48600DD91EC /* MMGridView-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MMGridView-Prefix.pch"; sourceTree = "<group>"; };
+ 7E6EF3861340A48600DD91EC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 7E6EF3891340A48600DD91EC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 7E6EF3A71340A53100DD91EC /* MMGridView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMGridView.h; path = Classes/MMGridView.h; sourceTree = "<group>"; };
+ 7E6EF3A81340A53100DD91EC /* MMGridView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MMGridView.m; path = Classes/MMGridView.m; sourceTree = "<group>"; };
+ 7E6EF3B21340A8CC00DD91EC /* MMGridViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MMGridViewCell.h; sourceTree = "<group>"; };
+ 7E6EF3B31340A8CC00DD91EC /* MMGridViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MMGridViewCell.m; sourceTree = "<group>"; };
+ 7E6EF3C81340B52E00DD91EC /* MMGridViewDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MMGridViewDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7E6EF3CF1340B52E00DD91EC /* MMGridViewDemo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MMGridViewDemo-Info.plist"; sourceTree = "<group>"; };
+ 7E6EF3D11340B52E00DD91EC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 7E6EF3D31340B52E00DD91EC /* MMGridViewDemo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MMGridViewDemo-Prefix.pch"; sourceTree = "<group>"; };
+ 7E6EF3D41340B52E00DD91EC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 7E6EF3D61340B52E00DD91EC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+ 7E6EF3D71340B52E00DD91EC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+ 7E6EF3DA1340B52E00DD91EC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = "<group>"; };
+ 7E6EF3DC1340B52E00DD91EC /* RootViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = "<group>"; };
+ 7E6EF3DD1340B52E00DD91EC /* RootViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = "<group>"; };
+ 7E6EF3E01340B52E00DD91EC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/RootViewController.xib; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 7E6EF3751340A48600DD91EC /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E6EF37C1340A48600DD91EC /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 7E6EF3C51340B52E00DD91EC /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E6EF3CA1340B52E00DD91EC /* UIKit.framework in Frameworks */,
+ 7E6EF3CB1340B52E00DD91EC /* Foundation.framework in Frameworks */,
+ 7E6EF3CC1340B52E00DD91EC /* CoreGraphics.framework in Frameworks */,
+ 7E6EF3EB1340BE9300DD91EC /* libMMGridView.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 7E6EF36D1340A48600DD91EC = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF37D1340A48600DD91EC /* MMGridView */,
+ 7E6EF3CD1340B52E00DD91EC /* MMGridViewDemo */,
+ 7E6EF37A1340A48600DD91EC /* Frameworks */,
+ 7E6EF3791340A48600DD91EC /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 7E6EF3791340A48600DD91EC /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF3781340A48600DD91EC /* libMMGridView.a */,
+ 7E6EF3C81340B52E00DD91EC /* MMGridViewDemo.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 7E6EF37A1340A48600DD91EC /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF37B1340A48600DD91EC /* Foundation.framework */,
+ 7E6EF3861340A48600DD91EC /* UIKit.framework */,
+ 7E6EF3891340A48600DD91EC /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 7E6EF37D1340A48600DD91EC /* MMGridView */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF37E1340A48600DD91EC /* Supporting Files */,
+ 7E6EF3A71340A53100DD91EC /* MMGridView.h */,
+ 7E6EF3A81340A53100DD91EC /* MMGridView.m */,
+ 7E6EF3B21340A8CC00DD91EC /* MMGridViewCell.h */,
+ 7E6EF3B31340A8CC00DD91EC /* MMGridViewCell.m */,
+ );
+ path = MMGridView;
+ sourceTree = "<group>";
+ };
+ 7E6EF37E1340A48600DD91EC /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF37F1340A48600DD91EC /* MMGridView-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ 7E6EF3CD1340B52E00DD91EC /* MMGridViewDemo */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF3CE1340B52E00DD91EC /* Supporting Files */,
+ 7E6EF3D61340B52E00DD91EC /* AppDelegate.h */,
+ 7E6EF3D71340B52E00DD91EC /* AppDelegate.m */,
+ 7E6EF3D91340B52E00DD91EC /* MainWindow.xib */,
+ 7E6EF3DC1340B52E00DD91EC /* RootViewController.h */,
+ 7E6EF3DD1340B52E00DD91EC /* RootViewController.m */,
+ 7E6EF3DF1340B52E00DD91EC /* RootViewController.xib */,
+ );
+ path = MMGridViewDemo;
+ sourceTree = "<group>";
+ };
+ 7E6EF3CE1340B52E00DD91EC /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 7E6EF3CF1340B52E00DD91EC /* MMGridViewDemo-Info.plist */,
+ 7E6EF3D01340B52E00DD91EC /* InfoPlist.strings */,
+ 7E6EF3D31340B52E00DD91EC /* MMGridViewDemo-Prefix.pch */,
+ 7E6EF3D41340B52E00DD91EC /* main.m */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 7E6EF3761340A48600DD91EC /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E6EF3A91340A53100DD91EC /* MMGridView.h in Headers */,
+ 7E6EF3B41340A8CC00DD91EC /* MMGridViewCell.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 7E6EF3771340A48600DD91EC /* MMGridView */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 7E6EF39B1340A48600DD91EC /* Build configuration list for PBXNativeTarget "MMGridView" */;
+ buildPhases = (
+ 7E6EF3741340A48600DD91EC /* Sources */,
+ 7E6EF3751340A48600DD91EC /* Frameworks */,
+ 7E6EF3761340A48600DD91EC /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = MMGridView;
+ productName = MMGridView;
+ productReference = 7E6EF3781340A48600DD91EC /* libMMGridView.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+ 7E6EF3C71340B52E00DD91EC /* MMGridViewDemo */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 7E6EF3E21340B52E00DD91EC /* Build configuration list for PBXNativeTarget "MMGridViewDemo" */;
+ buildPhases = (
+ 7E6EF3C41340B52E00DD91EC /* Sources */,
+ 7E6EF3C51340B52E00DD91EC /* Frameworks */,
+ 7E6EF3C61340B52E00DD91EC /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 7E6EF3E91340BA6100DD91EC /* PBXTargetDependency */,
+ );
+ name = MMGridViewDemo;
+ productName = MMGridViewDemo;
+ productReference = 7E6EF3C81340B52E00DD91EC /* MMGridViewDemo.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 7E6EF36F1340A48600DD91EC /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ ORGANIZATIONNAME = metaminded;
+ };
+ buildConfigurationList = 7E6EF3721340A48600DD91EC /* Build configuration list for PBXProject "MMGridView" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 7E6EF36D1340A48600DD91EC;
+ productRefGroup = 7E6EF3791340A48600DD91EC /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 7E6EF3771340A48600DD91EC /* MMGridView */,
+ 7E6EF3C71340B52E00DD91EC /* MMGridViewDemo */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 7E6EF3C61340B52E00DD91EC /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E6EF3D21340B52E00DD91EC /* InfoPlist.strings in Resources */,
+ 7E6EF3DB1340B52E00DD91EC /* MainWindow.xib in Resources */,
+ 7E6EF3E11340B52E00DD91EC /* RootViewController.xib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 7E6EF3741340A48600DD91EC /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E6EF3AA1340A53100DD91EC /* MMGridView.m in Sources */,
+ 7E6EF3B51340A8CC00DD91EC /* MMGridViewCell.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 7E6EF3C41340B52E00DD91EC /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E6EF3D51340B52E00DD91EC /* main.m in Sources */,
+ 7E6EF3D81340B52E00DD91EC /* AppDelegate.m in Sources */,
+ 7E6EF3DE1340B52E00DD91EC /* RootViewController.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 7E6EF3E91340BA6100DD91EC /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 7E6EF3771340A48600DD91EC /* MMGridView */;
+ targetProxy = 7E6EF3E81340BA6100DD91EC /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 7E6EF3D01340B52E00DD91EC /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 7E6EF3D11340B52E00DD91EC /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ 7E6EF3D91340B52E00DD91EC /* MainWindow.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 7E6EF3DA1340B52E00DD91EC /* en */,
+ );
+ name = MainWindow.xib;
+ sourceTree = "<group>";
+ };
+ 7E6EF3DF1340B52E00DD91EC /* RootViewController.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 7E6EF3E01340B52E00DD91EC /* en */,
+ );
+ name = RootViewController.xib;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 7E6EF3991340A48600DD91EC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 7E6EF39A1340A48600DD91EC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ SDKROOT = iphoneos;
+ };
+ name = Release;
+ };
+ 7E6EF39C1340A48600DD91EC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ DSTROOT = /tmp/MMGridView.dst;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "MMGridView/MMGridView-Prefix.pch";
+ OTHER_LDFLAGS = "-ObjC";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ 7E6EF39D1340A48600DD91EC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ DSTROOT = /tmp/MMGridView.dst;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "MMGridView/MMGridView-Prefix.pch";
+ OTHER_LDFLAGS = "-ObjC";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+ 7E6EF3E31340B52E00DD91EC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "MMGridViewDemo/MMGridViewDemo-Prefix.pch";
+ INFOPLIST_FILE = "MMGridViewDemo/MMGridViewDemo-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ OTHER_LDFLAGS = "";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 7E6EF3E41340B52E00DD91EC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "MMGridViewDemo/MMGridViewDemo-Prefix.pch";
+ INFOPLIST_FILE = "MMGridViewDemo/MMGridViewDemo-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ OTHER_LDFLAGS = "";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ VALIDATE_PRODUCT = YES;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 7E6EF3721340A48600DD91EC /* Build configuration list for PBXProject "MMGridView" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 7E6EF3991340A48600DD91EC /* Debug */,
+ 7E6EF39A1340A48600DD91EC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 7E6EF39B1340A48600DD91EC /* Build configuration list for PBXNativeTarget "MMGridView" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 7E6EF39C1340A48600DD91EC /* Debug */,
+ 7E6EF39D1340A48600DD91EC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 7E6EF3E21340B52E00DD91EC /* Build configuration list for PBXNativeTarget "MMGridViewDemo" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 7E6EF3E31340B52E00DD91EC /* Debug */,
+ 7E6EF3E41340B52E00DD91EC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 7E6EF36F1340A48600DD91EC /* Project object */;
+}
60 MMGridView/Classes/MMGridView.h
@@ -0,0 +1,60 @@
+//
+// MMGridView.h
+// MMGridView
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "MMGridViewCell.h"
+
+
+@class MMGridView;
+
+// ----------------------------------------------------------------------------------
+
+#pragma - MMGridViewDataSource
+
+@protocol MMGridViewDataSource<NSObject>
+- (NSInteger)numberOfCellsInGridView:(MMGridView *)gridView;
+- (MMGridViewCell *)gridView:(MMGridView *)gridView cellAtIndex:(NSInteger)index;
+@end
+
+// ----------------------------------------------------------------------------------
+
+#pragma - MMGridViewDelegate
+
+@protocol MMGridViewDelegate<NSObject>
+- (void)gridView:(MMGridView *)gridView didSelectAtIndex:(NSInteger)index;
+@end
+
+// ----------------------------------------------------------------------------------
+
+#pragma - MMGridView
+
+@interface MMGridView : UIView
+{
+ @private
+ UIScrollView *scrollView;
+ UIPageControl *pageControl;
+ UIView *pageControlBackgroundView;
+ UIView *view;
+ id<MMGridViewDataSource> dataSource;
+ id<MMGridViewDelegate> delegate;
+ NSUInteger numberOfRows;
+ NSUInteger numberOfColumns;
+}
+
+@property (nonatomic, retain) UIScrollView *scrollView;
+@property (nonatomic, retain) UIPageControl *pageControl;
+@property (nonatomic, retain) UIView *pageControlBackgroundView;
+@property (nonatomic, assign) IBOutlet id<MMGridViewDataSource> dataSource;
+@property (nonatomic, assign) IBOutlet id<MMGridViewDelegate> delegate;
+@property (nonatomic) NSUInteger numberOfRows;
+@property (nonatomic) NSUInteger numberOfColumns;
+
+- (void)reloadData;
+//- (void)cellWasSelected:(MMGridViewCell *)cell;
+
+@end
138 MMGridView/Classes/MMGridView.m
@@ -0,0 +1,138 @@
+//
+// MMGridView.m
+// MMGridView
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import "MMGridView.h"
+
+
+@interface MMGridView(Private)
+- (void)createSubviews;
+@end
+
+
+@implementation MMGridView
+
+@synthesize scrollView;
+@synthesize pageControl;
+@synthesize pageControlBackgroundView;
+@synthesize dataSource;
+@synthesize delegate;
+@synthesize numberOfRows;
+@synthesize numberOfColumns;
+
+- (void)dealloc
+{
+ [scrollView release];
+ [pageControl release];
+ [pageControlBackgroundView release];
+ [super dealloc];
+}
+
+
+- (id)initWithFrame:(CGRect)frame
+{
+ if ((self = [super initWithFrame:frame])) {
+ [self createSubviews];
+ }
+
+ return self;
+}
+
+
+- (id)initWithCoder:(NSCoder *)aDecoder
+{
+ if ((self = [super initWithCoder:aDecoder])) {
+ [self createSubviews];
+ }
+
+ return self;
+}
+
+
+- (void)createSubviews
+{
+ self.numberOfRows = 2;
+ self.numberOfColumns = 3;
+
+ self.backgroundColor = [UIColor clearColor];
+
+ self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectNull];
+ self.scrollView.backgroundColor = [UIColor clearColor];
+ self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
+ self.scrollView.alwaysBounceHorizontal = NO;
+ self.scrollView.alwaysBounceVertical = NO;
+ self.scrollView.showsVerticalScrollIndicator = NO;
+ self.scrollView.showsHorizontalScrollIndicator = NO;
+ self.scrollView.pagingEnabled = YES;
+ [self addSubview:self.scrollView];
+
+ [self setNeedsLayout];
+ [self layoutIfNeeded];
+}
+
+
+- (void)setDataSource:(id<MMGridViewDataSource>)aDataSource
+{
+ dataSource = aDataSource;
+ [self reloadData];
+}
+
+
+- (void)setNumberOfColumns:(NSUInteger)value
+{
+ numberOfColumns = value;
+ [self reloadData];
+}
+
+
+- (void)setNumberOfRows:(NSUInteger)value
+{
+ numberOfRows = value;
+}
+
+
+- (void)layoutSubviews
+{
+ self.scrollView.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
+}
+
+
+- (void)reloadData
+{
+ for (UIView *v in self.scrollView.subviews) {
+ [v removeFromSuperview];
+ }
+
+ if (self.dataSource) {
+ NSInteger cellMargin = 5;
+ NSInteger cellsPerPage = self.numberOfColumns * self.numberOfRows;
+
+ NSInteger numberOfCells = [self.dataSource numberOfCellsInGridView:self];
+ NSInteger numberOfPages = (int)(ceil((float)numberOfCells / (float)cellsPerPage));
+
+ CGRect gridBounds = self.scrollView.bounds;
+ CGRect cellBounds = CGRectMake(0, 0, floor(gridBounds.size.width / (float)self.numberOfColumns), floor(gridBounds.size.height / (float)self.numberOfRows));
+
+ [self.scrollView setContentSize:CGSizeMake((numberOfPages * gridBounds.size.width), gridBounds.size.height)];
+
+ for (NSInteger i = 0; i < numberOfCells; i++) {
+ MMGridViewCell *cell = [self.dataSource gridView:self cellAtIndex:i];
+
+ NSInteger page = (int)floor((float)i / (float)cellsPerPage);
+ NSInteger row = (int)floor((float)i / (float)self.numberOfColumns) - (page * self.numberOfRows);
+
+ CGPoint origin = CGPointMake((page * gridBounds.size.width) + ((i % self.numberOfColumns) * cellBounds.size.width), (row * cellBounds.size.height));
+
+ CGRect f = CGRectMake(origin.x, origin.y, cellBounds.size.width, cellBounds.size.height);
+ cell.frame = CGRectInset(f, cellMargin, cellMargin);
+
+ [self.scrollView addSubview:cell];
+ }
+ }
+}
+
+@end
7 MMGridView/MMGridView-Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'MMGridView' target in the 'MMGridView' project
+//
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+#endif
22 MMGridView/MMGridViewCell.h
@@ -0,0 +1,22 @@
+//
+// GridViewCell.h
+// MyApp
+//
+// Created by René Sprotte on 27.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface MMGridViewCell : UIView
+{
+ UILabel *textLabel;
+ UIView *textLabelBackgroundView;
+ UIView *backgroundView;
+}
+
+@property (nonatomic, retain) UILabel *textLabel;
+@property (nonatomic, retain) UIView *textLabelBackgroundView;
+@property (nonatomic, retain) UIView *backgroundView;
+
+@end
80 MMGridView/MMGridViewCell.m
@@ -0,0 +1,80 @@
+//
+// GridViewCell.m
+// MyApp
+//
+// Created by René Sprotte on 27.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import "MMGridViewCell.h"
+
+
+@implementation MMGridViewCell
+
+@synthesize textLabel;
+@synthesize textLabelBackgroundView;
+@synthesize backgroundView;
+
+- (void)dealloc
+{
+ [textLabel release];
+ [textLabelBackgroundView release];
+ [backgroundView release];
+ [super dealloc];
+}
+
+
+- (id)initWithFrame:(CGRect)frame
+{
+ if ((self = [super initWithFrame:frame])) {
+ // Background view
+ self.backgroundView = [[UIView alloc] initWithFrame:CGRectNull];
+ self.backgroundView.backgroundColor = [UIColor lightGrayColor];
+ [self addSubview:self.backgroundView];
+
+ // Label
+ self.textLabelBackgroundView = [[UIView alloc] initWithFrame:CGRectNull];
+ self.textLabelBackgroundView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.7];
+
+ self.textLabel = [[UILabel alloc] initWithFrame:CGRectNull];
+ self.textLabel.textAlignment = UITextAlignmentRight;
+ self.textLabel.backgroundColor = [UIColor clearColor];
+ self.textLabel.textColor = [UIColor whiteColor];
+ self.textLabel.font = [UIFont systemFontOfSize:12];
+
+ [self.textLabelBackgroundView addSubview:self.textLabel];
+ [self addSubview:self.textLabelBackgroundView];
+ }
+
+ return self;
+}
+
+
+- (void)layoutSubviews
+{
+ [super layoutSubviews];
+
+ int labelHeight = 30;
+ int inset = 5;
+
+ // Background view
+ self.backgroundView.frame = self.bounds;
+ self.backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+
+ // Layout label
+ self.textLabelBackgroundView.frame = CGRectMake(0,
+ self.bounds.size.height - labelHeight - inset,
+ self.bounds.size.width,
+ labelHeight);
+ self.textLabelBackgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+
+ // Layout label background
+ CGRect f = CGRectMake(0,
+ 0,
+ self.textLabel.superview.bounds.size.width,
+ self.textLabel.superview.bounds.size.height);
+ self.textLabel.frame = CGRectInset(f, inset, 0);
+ self.textLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+}
+
+@end
21 MMGridViewDemo/AppDelegate.h
@@ -0,0 +1,21 @@
+//
+// MMGridViewDemoAppDelegate.h
+// MMGridViewDemo
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class RootViewController;
+
+@interface AppDelegate : NSObject <UIApplicationDelegate> {
+
+}
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+
+@property (nonatomic, retain) IBOutlet RootViewController *viewController;
+
+@end
75 MMGridViewDemo/AppDelegate.m
@@ -0,0 +1,75 @@
+//
+// MMGridViewDemoAppDelegate.m
+// MMGridViewDemo
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+#import "RootViewController.h"
+
+@implementation AppDelegate
+
+
+@synthesize window=_window;
+
+@synthesize viewController=_viewController;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ // Override point for customization after application launch.
+
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ /*
+ Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+ Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+ */
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ /*
+ Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+ If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+ */
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ /*
+ Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+ */
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ /*
+ Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+ */
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ /*
+ Called when the application is about to terminate.
+ Save data if appropriate.
+ See also applicationDidEnterBackground:.
+ */
+}
+
+- (void)dealloc
+{
+ [_window release];
+ [_viewController release];
+ [super dealloc];
+}
+
+@end
38 MMGridViewDemo/MMGridViewDemo-Info.plist
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.metaminded.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>NSMainNibFile</key>
+ <string>MainWindow</string>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
14 MMGridViewDemo/MMGridViewDemo-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'MMGridViewDemo' target in the 'MMGridViewDemo' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iPhone SDK 3.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import <UIKit/UIKit.h>
+ #import <Foundation/Foundation.h>
+#endif
17 MMGridViewDemo/RootViewController.h
@@ -0,0 +1,17 @@
+//
+// MMGridViewDemoViewController.h
+// MMGridViewDemo
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "MMGridView.h"
+
+@interface RootViewController : UIViewController<MMGridViewDataSource>
+{
+ IBOutlet MMGridView *gridView;
+}
+
+@end
52 MMGridViewDemo/RootViewController.m
@@ -0,0 +1,52 @@
+//
+// MMGridViewDemoViewController.m
+// MMGridViewDemo
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import "RootViewController.h"
+
+@implementation RootViewController
+
+- (void)dealloc
+{
+ [gridView release];
+ [super dealloc];
+}
+
+- (void)viewDidUnload {
+ [gridView release];
+ gridView = nil;
+ [super viewDidUnload];
+}
+
+- (void)loadView
+{
+ [super loadView];
+ // Create the GridView
+ gridView = [[MMGridView alloc] initWithFrame:self.view.bounds];
+ //gridView.delegate = self;
+ gridView.dataSource = self;
+ [self.view addSubview:gridView];
+}
+
+// ----------------------------------------------------------------------------------
+
+#pragma - MMGridViewDataSource
+
+- (NSInteger)numberOfCellsInGridView:(MMGridView *)gridView
+{
+ return 15;
+}
+
+
+- (MMGridViewCell *)gridView:(MMGridView *)gridView cellAtIndex:(NSInteger)index
+{
+ MMGridViewCell *cell = [[[MMGridViewCell alloc] initWithFrame:CGRectNull] autorelease];
+ cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", index];
+ return cell;
+}
+
+@end
2 MMGridViewDemo/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
243 MMGridViewDemo/en.lproj/MainWindow.xib
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10J869</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1305</string>
+ <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">300</string>
+ </object>
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBUICustomObject</string>
+ <string>IBUIWindow</string>
+ <string>IBUIViewController</string>
+ <string>IBProxyObject</string>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="427554174">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUICustomObject" id="664661524">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIViewController" id="943309135">
+ <string key="IBUINibName">RootViewController</string>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="IBUIInterfaceOrientation">1</int>
+ <int key="interfaceOrientation">1</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIHorizontal">NO</bool>
+ </object>
+ <object class="IBUIWindow" id="117978783">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrameSize">{320, 480}</string>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIResizesToFullScreen">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="664661524"/>
+ </object>
+ <int key="connectionID">4</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">viewController</string>
+ <reference key="source" ref="664661524"/>
+ <reference key="destination" ref="943309135"/>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="664661524"/>
+ <reference key="destination" ref="117978783"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">3</int>
+ <reference key="object" ref="664661524"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">App Delegate</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="427554174"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="943309135"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="117978783"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>10.CustomClassName</string>
+ <string>10.IBEditorWindowLastContentRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>12.IBEditorWindowLastContentRect</string>
+ <string>12.IBPluginDependency</string>
+ <string>3.CustomClassName</string>
+ <string>3.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UIApplication</string>
+ <string>UIResponder</string>
+ <string>RootViewController</string>
+ <string>{{234, 376}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{525, 346}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>AppDelegate</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">15</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewController</string>
+ <string>window</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>RootViewController</string>
+ <string>UIWindow</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewController</string>
+ <string>window</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">viewController</string>
+ <string key="candidateClassName">RootViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">window</string>
+ <string key="candidateClassName">UIWindow</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/AppDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">RootViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/RootViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">300</string>
+ </data>
+</archive>
205 MMGridViewDemo/en.lproj/RootViewController.xib
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10J869</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1305</string>
+ <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">300</string>
+ </object>
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBProxyObject</string>
+ <string>IBUIView</string>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="843779117">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="774585933">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrame">{{0, 20}, {320, 460}}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC43NQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="774585933"/>
+ </object>
+ <int key="connectionID">7</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="843779117"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="774585933"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>6.IBEditorWindowLastContentRect</string>
+ <string>6.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>RootViewController</string>
+ <string>UIResponder</string>
+ <string>{{239, 654}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">12</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">MMGridView</string>
+ <string key="superclassName">UIView</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>dataSource</string>
+ <string>delegate</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>dataSource</string>
+ <string>delegate</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">dataSource</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">delegate</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/MMGridView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">RootViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">gridView</string>
+ <string key="NS.object.0">MMGridView</string>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <string key="NS.key.0">gridView</string>
+ <object class="IBToOneOutletInfo" key="NS.object.0">
+ <string key="name">gridView</string>
+ <string key="candidateClassName">MMGridView</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/RootViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">300</string>
+ </data>
+</archive>
17 MMGridViewDemo/main.m
@@ -0,0 +1,17 @@
+//
+// main.m
+// MMGridViewDemo
+//
+// Created by René Sprotte on 28.03.11.
+// Copyright 2011 metaminded. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+int main(int argc, char *argv[])
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ int retVal = UIApplicationMain(argc, argv, nil, nil);
+ [pool release];
+ return retVal;
+}

0 comments on commit a2cdf55

Please sign in to comment.
Something went wrong with that request. Please try again.