Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add Projects.

  • Loading branch information...
commit ec6ab69d7c94374f2db24fd0a33f33daf85a20a8 1 parent 72e4cb8
Dave Morford authored
Showing with 3,671 additions and 0 deletions.
  1. +17 −0 Configurations/Application.xcconfig
  2. +19 −0 Configurations/Compiler.xcconfig
  3. +78 −0 Configurations/Frameworks.xcconfig
  4. +16 −0 Configurations/Libraries.xcconfig
  5. +53 −0 Configurations/Library.xcconfig
  6. +10 −0 Configurations/Platform.xcconfig
  7. +17 −0 Configurations/Project.xcconfig
  8. +14 −0 Configurations/Scripts.xcconfig
  9. +18 −0 Configurations/Settings.xcconfig
  10. +11 −0 Configurations/UnitTests.xcconfig
  11. +1 −0  Projects/.gitignore
  12. +1 −0  Projects/Applications/.gitignore
  13. +30 −0 Projects/Applications/TabBarKitCatalog/Configurations/Application.xcconfig
  14. +9 −0 Projects/Applications/TabBarKitCatalog/Configurations/Project.xcconfig
  15. +8 −0 Projects/Applications/TabBarKitCatalog/Configurations/Settings.xcconfig
  16. +30 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCApplicationDelegate.h
  17. +74 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCApplicationDelegate.m
  18. +8 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCUserDefaults.h
  19. +8 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCUserDefaults.m
  20. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-72.png
  21. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small-50.png
  22. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small.png
  23. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small@2x.png
  24. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon.png
  25. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon@2x.png
  26. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/iTunesArtwork
  27. BIN  ...cts/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/Default@2x~iphone.png
  28. BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/Default~iphone.png
  29. BIN  ...s/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/LaunchPad-Landscape.png
  30. BIN  ...ts/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/LaunchPad-Portrait.png
  31. +65 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/PropertyLists/Info.plist
  32. +10 −0 ...Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/PropertyLists/UserDefaults.plist
  33. +7 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCContentViewController.h
  34. +45 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCContentViewController.m
  35. +6 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCDetailViewController.h
  36. +80 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCDetailViewController.m
  37. +5 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCImagesViewController.h
  38. +69 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCImagesViewController.m
  39. +5 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMasterViewController.h
  40. +81 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMasterViewController.m
  41. +6 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMoviesViewController.h
  42. +82 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMoviesViewController.m
  43. +5 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCSettingsViewController.h
  44. +72 −0 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCSettingsViewController.m
  45. +5 −0 Projects/Applications/TabBarKitCatalog/Source/Project/TabBarKitCatalog.pch
  46. +17 −0 Projects/Applications/TabBarKitCatalog/Source/Project/main.m
  47. +53 −0 Projects/Applications/TabBarKitCatalog/Source/Resources/Bundles/Settings.bundle/Root.plist
  48. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Bundles/Settings.bundle/en.lproj/Root.strings
  49. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Localizations/en.lproj/InfoPlist.strings
  50. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Localizations/en.lproj/Localizable.strings
  51. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Book.png
  52. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Book@2x.png
  53. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bookmarks.png
  54. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bookmarks@2x.png
  55. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bulb.png
  56. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bulb@2x.png
  57. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Settings.png
  58. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Settings@2x.png
  59. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Super8.png
  60. BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Super8@2x.png
  61. +680 −0 Projects/Applications/TabBarKitCatalog/TabBarKitCatalog.xcodeproj/project.pbxproj
  62. +1 −0  Projects/Libraries/.gitignore
  63. +23 −0 Projects/Libraries/TabBarKit/Configurations/Library.xcconfig
  64. +7 −0 Projects/Libraries/TabBarKit/Configurations/Project.xcconfig
  65. +8 −0 Projects/Libraries/TabBarKit/Configurations/Settings.xcconfig
  66. +24 −0 Projects/Libraries/TabBarKit/Documents/License.md
  67. +48 −0 Projects/Libraries/TabBarKit/Source/Categories/NSObject+TBKAssociatedObject.h
  68. +22 −0 Projects/Libraries/TabBarKit/Source/Categories/NSObject+TBKAssociatedObject.m
  69. +29 −0 Projects/Libraries/TabBarKit/Source/Categories/UIImage+TBKMasking.h
  70. +73 −0 Projects/Libraries/TabBarKit/Source/Categories/UIImage+TBKMasking.m
  71. +1 −0  Projects/Libraries/TabBarKit/Source/Classes/.gitignore
  72. +78 −0 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBar.h
  73. +217 −0 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBar.m
  74. +79 −0 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBarController.h
  75. +487 −0 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBarController.m
  76. +45 −0 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBarItem.h
  77. +250 −0 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBarItem.m
  78. +5 −0 Projects/Libraries/TabBarKit/Source/Project/Library/TabBarKitLibrary.h
  79. +7 −0 Projects/Libraries/TabBarKit/Source/Project/Library/TabBarKitLibrary.m
  80. +10 −0 Projects/Libraries/TabBarKit/Source/Project/TabBarKit.h
  81. BIN  Projects/Libraries/TabBarKit/Source/Resources/Bundles/TabBarKit.bundle/Images/TBKTabBarMoreTemplate.png
  82. BIN  Projects/Libraries/TabBarKit/Source/Resources/Bundles/TabBarKit.bundle/Images/TBKTabBarMoreTemplate@2x.png
  83. BIN  Projects/Libraries/TabBarKit/Source/Resources/Bundles/TabBarKit.bundle/Localizations/en.lproj/Root.strings
  84. +10 −0 Projects/Libraries/TabBarKit/Source/Resources/Bundles/TabBarKit.bundle/TabBarKit.plist
  85. +433 −0 Projects/Libraries/TabBarKit/TabBarKit.xcodeproj/project.pbxproj
  86. +4 −0 Scripts/CopyManagedModel.sh
  87. +4 −0 Scripts/CopyResourceBundle.sh
  88. +26 −0 Scripts/CreateUniversalLibrary.sh
  89. +38 −0 Scripts/DeployLibrary.sh
  90. +9 −0 Scripts/DeployManagedModel.sh
  91. +14 −0 Scripts/DeployResourceBundle.sh
  92. +1 −0  Scripts/developer-local.sh
  93. +1 −0  Scripts/developer-root.sh
  94. +1 −0  Scripts/developer-tools-path.sh
  95. +1 −0  Scripts/developer-xcode4.sh
17 Configurations/Application.xcconfig
View
@@ -0,0 +1,17 @@
+
+//
+// Application.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+SYMROOT = Build
+PROJECT_TREE_SOURCE_PATH = Source
+PROJECT_TREE_CLASSES_PATH = $(PROJECT_TREE_SOURCE_PATH)/Classes
+PROJECT_TREE_PROJECT_PATH = $(PROJECT_TREE_SOURCE_PATH)/Project
+PROJECT_TREE_RESOURCES_PATH = $(PROJECT_TREE_SOURCE_PATH)/Resources
+PROJECT_TREE_UNITTESTS_PATH = $(PROJECT_TREE_SOURCE_PATH)/UnitTests
+
+APPLICATIONDELEGATE_INFOPLIST_PATH = $(PROJECT_TREE_CLASSES_PATH)/ApplicationDelegate/Resources/PropertyLists
+GCC_PRECOMPILE_PREFIX_HEADER = YES
+ALWAYS_SEARCH_USER_PATHS = NO
+PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO
19 Configurations/Compiler.xcconfig
View
@@ -0,0 +1,19 @@
+
+//
+// Compiler.xcconfig
+// (c) 2010 - 2011, Semantap
+//
+
+GCC_C_LANGUAGE_STANDARD = c99
+GCC_WARN_ABOUT_RETURN_TYPE = YES
+GCC_WARN_UNUSED_VARIABLE = YES
+GCC_ENABLE_OBJC_EXCEPTIONS = YES
+GCC_ENABLE_FIX_AND_CONTINUE = NO
+
+// 4.2, com.apple.compilers.llvmgcc42
+GCC_VERSION = com.apple.compilers.llvm.clang.1_0
+
+// Warning:
+// - Fails in latest Xcode 4 DP when using Clang 2.0
+// - Currently works in with iOS 4.3 Beta 1 with Clang 1.7
+OTHER_CFLAGS = -Xclang -fobjc-nonfragile-abi2
78 Configurations/Frameworks.xcconfig
View
@@ -0,0 +1,78 @@
+
+//
+// Frameworks.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+// ObjC Library / Runtime
+
+OBJC_LIBRARY = -ObjC
+OBJC_ALLLOAD = -all_load
+OBJC_LIB = -lobjc
+
+// stdlib / libSystem
+
+STDLIB_HEADER_PATH = /usr/include
+STDLIB_LIBRARY_PATH = /usr/lib
+
+// Lib Z compression
+
+LIBZ_LIB = -lz
+
+// LibXML2
+
+LIBXML2_HEADERS = /usr/include/libxml2
+LIBXML2_LIBRARY = /usr/lib
+LIBXML2_LIB = -lxml2
+
+// LibXML2
+
+LIBSQLITE3_HEADER_PATH = /usr/include
+LIBSQLITE3_LIBRARY_PATH = /usr/lib
+LIBSQLITE3_LIBRARY_FLAG = -lsqlite3
+
+
+// Frameworks - iOS 4.2
+
+ACCELERATE_FX = -framework Accelerate
+ADDRESSBOOK_FX = -framework AddressBook
+ADDRESSBOOKUI_FX = -framework AddressBookUI
+ASSETSLIBRARY_FX = -framework AssetsLibrary
+AUDIOTOOLBOX_FX = -framework AudioToolbox
+AUDIOUNIT_FX = -framework AudioUnit
+AVFOUNDATION_FX = -framework AVFoundation
+CFNETWORK_FX = -framework CFNetwork
+COREAUDIO_FX = -framework CoreAudio
+COREDATA_FX = -framework CoreData
+COREFOUNDATION_FX = -framework CoreFoundation
+COREGRAPHICS_FX = -framework CoreGraphics
+CORELOCATION_FX = -framework CoreLocation
+COREMEDIA_FX = -framework CoreMedia
+COREMIDI_FX = -framework CoreMIDI
+COREMOTION_FX = -framework CoreMotion
+CORETELEPHONY_FX = -framework CoreTelephony
+CORETEXT_FX = -framework CoreText
+COREVIDEO_FX = -framework CoreVideo
+EVENTKIT_FX = -framework EventKit
+EVENTKITUI_FX = -framework EventKitUI
+EXTERNALACCESSORY_FX = -framework ExternalAccessory
+FOUNDATION_FX = -framework Foundation
+GAMEKIT_FX = -framework GameKit
+IAD_FX = -framework iAd
+IMAGEIO_FX = -framework ImageIO
+MAPKIT_FX = -framework MapKit
+MEDIAPLAYER_FX = -framework MediaPlayer
+MESSAGEUI_FX = -framework MessageUI
+MOBILECORESERVICES_FX = -framework MobileCoreServices
+OPENAL_FX = -framework OpenAL
+OPENGLES_FX = -framework OpenGLES
+QUARTZCORE_FX = -framework QuartzCore
+QUICKLOOK_FX = -framework QuickLook
+SECURITY_FX = -framework Security
+STOREKIT_FX = -framework StoreKit
+SYSTEMCONFIGURATION_FX = -framework SystemConfiguration
+UIKIT_FX = -framework UIKit
+
+// Frameworks - Testing
+
+SENTESTINGKIT_FX = -framework SenTestingKit
16 Configurations/Libraries.xcconfig
View
@@ -0,0 +1,16 @@
+
+//
+// Libraries.xcconfig
+// Local Libraries - Declarations by alpha. Order unimportant.
+// (c) 2008 - 2011, Semantap
+//
+
+#include "Frameworks.xcconfig"
+
+// TabBarKit
+
+TABBARKIT_HEADER_PATH = $(BUILD_PLATFORM_NAME_PATH)/TabBarKit/Headers/
+TABBARKIT_PRIVATEHEADER_PATH = $(BUILD_PLATFORM_NAME_PATH)/TabBarKit/PrivateHeaders/
+TABBARKIT_LIBRARY_PATH = $(BUILD_PLATFORM_NAME_PATH)/TabBarKit/
+TABBARKIT_LIBRARY_FLAG = -lTabBarKit
+TABBARKIT_RESOURCE_BUNDLE_NAME = TabBarKit.bundle
53 Configurations/Library.xcconfig
View
@@ -0,0 +1,53 @@
+
+//
+// Library.xcconfig
+// Static Library for Objective-C and C.
+// (c) 2008 - 2011, Semantap
+//
+
+GCC_PRECOMPILE_PREFIX_HEADER = NO
+
+// Override in Library.xcconfig in Xcode Library project.
+
+RUN_CLANG_STATIC_ANALYZER = NO
+
+// Library Project Directories
+
+SYMROOT = Build
+PROJECT_TREE_SOURCE_PATH = Source
+PROJECT_TREE_CLASSES_PATH = $(PROJECT_TREE_SOURCE_PATH)/Classes
+PROJECT_TREE_PROJECT_PATH = $(PROJECT_TREE_SOURCE_PATH)/Project
+PROJECT_TREE_RESOURCES_PATH = $(PROJECT_TREE_SOURCE_PATH)/Resources
+PROJECT_TREE_UNITTESTS_PATH = $(PROJECT_TREE_SOURCE_PATH)/UnitTests
+
+LIBRARY_RESOURCES_PATH = $(PROJECT_TREE_PROJECT_PATH)/Resources
+LIBRARY_RESOURCE_BUNDLE_PATH = $(PROJECT_TREE_RESOURCES_PATH)/Bundles
+
+// Library
+
+BUILD_LIBRARY_VERSION_NAME = A
+BUILD_LIBRARY_VERSION_PATH = Versions/$(BUILD_LIBRARY_VERSION_NAME)
+BUILD_LIBRARY_HEADERS_PATH = Headers
+BUILD_LIBRARY_PRIVATEHEADERS_PATH = PrivateHeaders
+BUILD_LIBRARY_RESOURCES_PATH = Resources
+
+PUBLIC_HEADERS_FOLDER_PATH = /$(PRODUCT_NAME)/$(BUILD_LIBRARY_HEADERS_PATH)
+PRIVATE_HEADERS_FOLDER_PATH = /$(PRODUCT_NAME)/$(BUILD_LIBRARY_PRIVATEHEADERS_PATH)
+
+// Library Deployment Paths
+// – Used by Scripts/DeployLibrary.sh $(SCRIPT_DEPLOY_LIBRARY) to deploy the library to the shared build location.
+
+DEPLOYED_BUILD_PLATFORM_PATH = $(BUILD_PLATFORM_NAME_PATH)
+DEPLOYED_BUILD_PRODUCT_NAME_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)
+DEPLOYED_BUILD_PRODUCT_NAME_HEADER_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_HEADERS_PATH)
+DEPLOYED_BUILD_PRODUCT_NAME_PRIVATEHEADER_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_PRIVATEHEADERS_PATH)
+
+DEPLOYED_BUILD_LIBRARY_VERSION_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_VERSION_PATH)
+
+DEPLOYED_BUILD_HEADER_VERSION_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_VERSION_PATH)/$(BUILD_LIBRARY_HEADERS_PATH)
+DEPLOYED_BUILD_HEADER_PRODUCT_NAME_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_VERSION_PATH)/$(BUILD_LIBRARY_HEADERS_PATH)/$(PRODUCT_NAME)
+
+DEPLOYED_BUILD_PRIVATEHEADER_VERSION_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_VERSION_PATH)/$(BUILD_LIBRARY_PRIVATEHEADERS_PATH)
+DEPLOYED_BUILD_PRIVATEHEADER_PRODUCT_NAME_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_VERSION_PATH)/$(BUILD_LIBRARY_PRIVATEHEADERS_PATH)/$(PRODUCT_NAME)
+
+DEPLOYED_BUILD_RESOURCES_PATH = $(BUILD_PLATFORM_NAME_PATH)/$(PRODUCT_NAME)/$(BUILD_LIBRARY_VERSION_PATH)/$(BUILD_LIBRARY_RESOURCES_PATH)
10 Configurations/Platform.xcconfig
View
@@ -0,0 +1,10 @@
+
+//
+// Platform.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+SDKROOT = iphoneos
+ARCHS = $(ARCHS_STANDARD_32_BIT)
+TARGETED_DEVICE_FAMILY = 1,2
+IPHONEOS_DEPLOYMENT_TARGET = 4.2
17 Configurations/Project.xcconfig
View
@@ -0,0 +1,17 @@
+
+//
+// Project.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+#include "Settings.xcconfig"
+#include "Compiler.xcconfig"
+
+SYMROOT = Build
+CODE_SIGN_IDENTITY = iPhone Developer
+
+ZERO_LINK = NO
+PREBINDING = NO
+ALWAYS_SEARCH_USER_PATHS = NO
+
+DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
14 Configurations/Scripts.xcconfig
View
@@ -0,0 +1,14 @@
+
+//
+// Scripts.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+BUILD_SCRIPTS_PATH = $(SRCROOT)/../../../Scripts
+
+SCRIPT_DEPLOY_LIBRARY = $(BUILD_SCRIPTS_PATH)/DeployLibrary.sh
+SCRIPT_DEPLOY_RESOURCE_BUNDLE = $(BUILD_SCRIPTS_PATH)/DeployResourceBundle.sh
+SCRIPT_DEPLOY_MANAGED_MODEL = $(BUILD_SCRIPTS_PATH)/DeployManagedModel.sh
+
+SCRIPT_COPY_RESOURCE_BUNDLE = $(BUILD_SCRIPTS_PATH)/CopyResourceBundle.sh
+SCRIPT_COPY_MANAGED_MODEL = $(BUILD_SCRIPTS_PATH)/CopyManagedModel.sh
18 Configurations/Settings.xcconfig
View
@@ -0,0 +1,18 @@
+
+//
+// Settings.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+#include "Scripts.xcconfig"
+
+BUILD_SHARED_ROOT_PATH = $(SRCROOT)/../../../Build
+
+BUILD_SHARED_APPS_PATH = $(BUILD_SHARED_ROOT_PATH)/Applications
+BUILD_SHARED_BUNDLES_PATH = $(BUILD_SHARED_ROOT_PATH)/Bundles
+BUILD_SHARED_DOCUMENTS_PATH = $(BUILD_SHARED_ROOT_PATH)/Documents
+BUILD_SHARED_LIBRARIES_PATH = $(BUILD_SHARED_ROOT_PATH)/Libraries
+BUILD_SHARED_TOOLS_PATH = $(BUILD_SHARED_ROOT_PATH)/Tools
+BUILD_SHARED_TESTS_PATH = $(BUILD_SHARED_ROOT_PATH)/UnitTests
+
+BUILD_PLATFORM_NAME_PATH = $(BUILD_SHARED_LIBRARIES_PATH)/$(CONFIGURATION)/$(SDK_NAME)
11 Configurations/UnitTests.xcconfig
View
@@ -0,0 +1,11 @@
+
+//
+// UnitTests.xcconfig
+// (c) 2008 - 2011, Semantap
+//
+
+#include "Settings.xcconfig"
+
+WRAPPER_EXTENSION = octest
+FRAMEWORK_SEARCH_PATHS = $(SDKROOT)$(DEVELOPER_FRAMEWORKS_DIR)
+
1  Projects/.gitignore
View
@@ -0,0 +1 @@
+# placeholder
1  Projects/Applications/.gitignore
View
@@ -0,0 +1 @@
+# placeholder
30 Projects/Applications/TabBarKitCatalog/Configurations/Application.xcconfig
View
@@ -0,0 +1,30 @@
+
+//
+// TabBarKitCatalog/Configurations/Application.xcconfig
+//
+
+#include "../../../Configurations/Application.xcconfig"
+#include "../../../Configurations/Libraries.xcconfig"
+
+// Product Name
+PRODUCT_NAME = TabBarKitCatalog
+
+// Application Info.plist
+INFOPLIST_FILE = $(APPLICATIONDELEGATE_INFOPLIST_PATH)/Info.plist
+
+// Application Version
+BUILD_APPLICATION_VERSION = 1.0
+CURRENT_PROJECT_VERSION = $(BUILD_APPLICATION_VERSION)
+
+// Precompiled Header
+GCC_PREFIX_HEADER = $(PROJECT_TREE_PROJECT_PATH)/TabBarKitCatalog.pch
+
+// Clang
+RUN_CLANG_STATIC_ANALYZER = YES
+
+// Search Paths
+HEADER_SEARCH_PATHS = $(STDLIB_HEADER_PATH) $(TABBARKIT_HEADER_PATH)
+LIBRARY_SEARCH_PATHS = $(STDLIB_LIBRARY_PATH) $(TABBARKIT_LIBRARY_PATH)
+
+// Linker Flags
+OTHER_LDFLAGS = $(OBJC_LIBRARY) $(OBJC_ALLLOAD) $(TABBARKIT_LIBRARY_FLAG)
9 Projects/Applications/TabBarKitCatalog/Configurations/Project.xcconfig
View
@@ -0,0 +1,9 @@
+
+//
+// TabBarKitCatalog/Configurations/Project.xcconfig
+//
+
+#include "../../../Configurations/Platform.xcconfig"
+#include "../../../Configurations/Project.xcconfig"
+
+CODE_SIGN_IDENTITY = iPhone Developer
8 Projects/Applications/TabBarKitCatalog/Configurations/Settings.xcconfig
View
@@ -0,0 +1,8 @@
+
+//
+// TabBarKitCatalog/Configurations/Settings.xcconfig
+//
+
+#include "../../../Configurations/Settings.xcconfig"
+
+INFOPLIST_ORGANIZATION_NAME = Your Company
30 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCApplicationDelegate.h
View
@@ -0,0 +1,30 @@
+
+/*!
+@project TabBarKitCatalog
+@header TBKCApplicationDelegate.h
+@copyright (c) 2010 - 2011, David Morford
+@created 9/24/2010
+*/
+
+#import <QuartzCore/QuartzCore.h>
+#import <UIKit/UIKit.h>
+#import <TabBarKit/TabBarKit.h>
+
+@class TBKCMasterViewController, TBKCDetailViewController;
+
+/*!
+@class TBKCApplicationDelegate
+@superclass NSObject <UIApplicationDelegate, UISplitViewControllerDelegate>
+@abstract
+@discussion
+*/
+@interface TBKCApplicationDelegate : NSObject <UIApplicationDelegate, TBKTabBarControllerDelegate>
+
+@property (nonatomic, retain) UIWindow *window;
+@property (nonatomic, retain) TBKTabBarController *tabBarController;
+
+#pragma mark -
+
++(TBKCApplicationDelegate *) sharedApplicationDelegate;
+
+@end
74 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCApplicationDelegate.m
View
@@ -0,0 +1,74 @@
+
+#import "TBKCApplicationDelegate.h"
+
+#import "TBKCMasterViewController.h"
+#import "TBKCDetailViewController.h"
+#import "TBKCImagesViewController.h"
+#import "TBKCSettingsViewController.h"
+#import "TBKCContentViewController.h"
+#import "TBKCMoviesViewController.h"
+
+#import "TBKCUserDefaults.h"
+
+@implementation TBKCApplicationDelegate
+
+@synthesize window;
+@synthesize tabBarController;
+
+#pragma mark Shared Delegate
+
++(TBKCApplicationDelegate *) sharedApplicationDelegate {
+ return (TBKCApplicationDelegate *)[UIApplication sharedApplication].delegate;
+}
+
+#pragma mark <UIApplicationDelegate>
+
+-(BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+ self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
+ self.window.userInteractionEnabled = TRUE;
+ self.window.backgroundColor = [UIColor blackColor];
+ self.window.contentMode = UIViewContentModeScaleToFill;
+ self.window.autoresizesSubviews = TRUE;
+ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+ self.tabBarController = [[TBKTabBarController alloc] initWithStyle:TBKTabBarStyleDefault];
+ self.tabBarController.delegate = self;
+ self.tabBarController.viewControllers = [NSArray arrayWithObjects:
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCMasterViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCDetailViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCImagesViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCSettingsViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCMoviesViewController alloc] init] autorelease]] autorelease],
+ nil];
+ self.window.rootViewController = self.tabBarController;
+ }
+ else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
+ self.tabBarController = [[TBKTabBarController alloc] initWithStyle:TBKTabBarStyleArrowIndicator];
+ self.tabBarController.delegate = self;
+ self.tabBarController.viewControllers = [NSArray arrayWithObjects:
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCMasterViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCDetailViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCImagesViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCSettingsViewController alloc] init] autorelease]] autorelease],
+ [[[UINavigationController alloc] initWithRootViewController:[[[TBKCMoviesViewController alloc] init] autorelease]] autorelease],
+ nil];
+ self.window.rootViewController = self.tabBarController;
+ }
+ [self.window makeKeyAndVisible];
+ return TRUE;
+}
+
+#pragma mark <TBKTabBarControllerDelegate>
+
+-(void) tabBarController:(TBKTabBarController *)tbc didSelectViewController:(UIViewController *)controller {
+
+}
+
+#pragma mark Memory
+
+-(void) dealloc {
+ self.tabBarController = nil;
+ self.window = nil;
+ [super dealloc];
+}
+
+@end
8 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCUserDefaults.h
View
@@ -0,0 +1,8 @@
+
+@class NSString;
+
+#pragma mark Application Preference Keys
+
+extern NSString * const TBKCApplicationVersionKey;
+extern NSString * const TBKCApplicationBuildNumberKey;
+extern NSString * const TBKCApplicationResetKey;
8 Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Classes/TBKCUserDefaults.m
View
@@ -0,0 +1,8 @@
+
+#import "TBKCUserDefaults.h"
+
+#pragma mark Application Preference Keys
+
+NSString * const TBKCApplicationVersionKey = @"TBKCApplicationVersionKey";
+NSString * const TBKCApplicationBuildNumberKey = @"TBKCApplicationBuildNumberKey";
+NSString * const TBKCApplicationResetKey = @"TBKCApplicationResetKey";
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-72.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small-50.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/Icon@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Icon/iTunesArtwork
View
Binary file not shown
BIN  .../Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/Default@2x~iphone.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  ...cts/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/Default~iphone.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  ...pplications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/LaunchPad-Landscape.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  ...Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/Launch/LaunchPad-Portrait.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 ...ects/Applications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/PropertyLists/Info.plist
View
@@ -0,0 +1,65 @@
+<?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>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleDisplayName</key>
+ <string>TabBarKit</string>
+ <key>CFBundleIconFiles</key>
+ <array>
+ <string>Icon.png</string>
+ <string>Icon@2x.png</string>
+ <string>Icon-72.png</string>
+ <string>Icon-Small.png</string>
+ <string>Icon-Small-50.png</string>
+ <string>Icon-Small@2x.png</string>
+ </array>
+ <key>CFBundleURLTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>com.semantap.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>tabbarkitcatalog</string>
+ </array>
+ </dict>
+ </array>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleVersion</key>
+ <string>2.0</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UIPrerenderedIcon</key>
+ <true/>
+ <key>UILaunchImageFile~ipad</key>
+ <string>LaunchPad.png</string>
+ <key>UIFileSharingEnabled</key>
+ <false/>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~iphone</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
10 ...lications/TabBarKitCatalog/Source/Classes/ApplicationDelegate/Resources/PropertyLists/UserDefaults.plist
View
@@ -0,0 +1,10 @@
+<?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>TabBarKitCatalogLastActiveInForegroundDateKey</key>
+ <date>2010-09-17T16:40:20Z</date>
+ <key>TBKCApplicationResetKey</key>
+ <false/>
+</dict>
+</plist>
7 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCContentViewController.h
View
@@ -0,0 +1,7 @@
+
+#import <UIKit/UIKit.h>
+#import <QuartzCore/QuartzCore.h>
+
+@interface TBKCContentViewController : UIViewController
+
+@end
45 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCContentViewController.m
View
@@ -0,0 +1,45 @@
+
+#import "TBKCContentViewController.h"
+#import <TabBarKit/TBKTabBarController.h>
+
+@implementation TBKCContentViewController
+
+#pragma mark UIViewController
+
+-(id) init {
+ self = [super initWithNibName:nil bundle:nil];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+
+#pragma mark UIViewController
+
+-(void) loadView {
+ [super loadView];
+ self.title = @"Content";
+ self.view.backgroundColor = [UIColor grayColor];
+}
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return YES;
+}
+
+
+#pragma mark Memory
+
+-(void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+-(void) didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
6 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCDetailViewController.h
View
@@ -0,0 +1,6 @@
+
+#import <UIKit/UIKit.h>
+
+@interface TBKCDetailViewController : UITableViewController
+
+@end
80 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCDetailViewController.m
View
@@ -0,0 +1,80 @@
+
+#import "TBKCDetailViewController.h"
+#import "TBKCContentViewController.h"
+
+@implementation TBKCDetailViewController
+
+#pragma mark Initializer
+
+-(id) init {
+ self = [super initWithStyle:UITableViewStylePlain];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+
+#pragma mark UIViewController
+
+-(void) loadView {
+ [super loadView];
+ self.title = @"Books";
+}
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return TRUE;
+}
+
+-(NSString *) tabImageName {
+ return @"Book";
+}
+
+#pragma mark <UITableViewDataSource>
+
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)tv {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)aSection {
+ return 16;
+}
+
+-(UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)anIndexPath {
+ static NSString *CellIdentifier = @"CellIdentifier";
+ UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ }
+ cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
+ cell.textLabel.text = [NSString stringWithFormat:@"Settings %d", anIndexPath.row];
+ return cell;
+}
+
+
+#pragma mark <UITableViewDelegate>
+
+-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ [aTableView deselectRowAtIndexPath:indexPath animated:YES];
+ TBKCContentViewController *contentViewController = [[TBKCContentViewController alloc] init];
+ [self.navigationController pushViewController:contentViewController animated:TRUE];
+ [contentViewController release];
+}
+
+
+#pragma mark Gozer
+
+-(void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+-(void) didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
5 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCImagesViewController.h
View
@@ -0,0 +1,5 @@
+
+#import <UIKit/UIKit.h>
+
+@interface TBKCImagesViewController : UITableViewController
+@end
69 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCImagesViewController.m
View
@@ -0,0 +1,69 @@
+
+#import "TBKCImagesViewController.h"
+
+@implementation TBKCImagesViewController
+
+#pragma mark Initializer
+
+-(id) init {
+ self = [super initWithStyle:UITableViewStylePlain];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+
+#pragma mark UIViewController
+
+-(void) loadView {
+ [super loadView];
+ self.title = @"Bookmarks";
+}
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return TRUE;
+}
+
+-(NSString *) tabImageName {
+ return @"Bookmarks";
+}
+
+
+#pragma mark <UITableViewDataSource>
+
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)tv {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)aSection {
+ return 8;
+}
+
+-(UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)anIndexPath {
+ static NSString *CellIdentifier = @"CellIdentifier";
+ UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ }
+ cell.textLabel.text = [NSString stringWithFormat:@"Settings %d", anIndexPath.row];
+ return cell;
+}
+
+
+#pragma mark Gozer
+
+-(void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+-(void) didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
5 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMasterViewController.h
View
@@ -0,0 +1,5 @@
+
+#import <UIKit/UIKit.h>
+
+@interface TBKCMasterViewController : UITableViewController
+@end
81 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMasterViewController.m
View
@@ -0,0 +1,81 @@
+
+#import "TBKCMasterViewController.h"
+#import "TBKCContentViewController.h"
+
+@implementation TBKCMasterViewController
+
+#pragma mark Initializer
+
+-(id) init {
+ self = [super initWithStyle:UITableViewStyleGrouped];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+
+#pragma mark UIViewController
+
+-(void) loadView {
+ [super loadView];
+ self.title = @"Ideas";
+}
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return TRUE;
+}
+
+-(NSString *) tabImageName {
+ return @"Bulb";
+}
+
+#pragma mark <UITableViewDataSource>
+
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)aTableView {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
+ return 5;
+}
+
+-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier = @"CellIdentifier";
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ }
+ cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
+ cell.textLabel.text = [NSString stringWithFormat:@"Item %d", indexPath.row];
+ return cell;
+}
+
+
+#pragma mark <UITableViewDelegate>
+
+-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ [aTableView deselectRowAtIndexPath:indexPath animated:YES];
+ TBKCContentViewController *contentViewController = [[TBKCContentViewController alloc] init];
+ contentViewController.hidesBottomBarWhenPushed = YES;
+ [self.navigationController pushViewController:contentViewController animated:TRUE];
+ [contentViewController release];
+}
+
+
+#pragma mark Gozer
+
+-(void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+-(void) didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
6 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMoviesViewController.h
View
@@ -0,0 +1,6 @@
+
+#import <UIKit/UIKit.h>
+
+@interface TBKCMoviesViewController : UITableViewController
+
+@end
82 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCMoviesViewController.m
View
@@ -0,0 +1,82 @@
+
+#import "TBKCMoviesViewController.h"
+#import "TBKCContentViewController.h"
+
+@implementation TBKCMoviesViewController
+
+#pragma mark Initializer
+
+-(id) init {
+ self = [super initWithStyle:UITableViewStyleGrouped];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+
+#pragma mark UIViewController
+
+-(void) loadView {
+ [super loadView];
+ self.title = @"Films";
+}
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return TRUE;
+}
+
+-(NSString *) tabImageName {
+ return @"Super8";
+}
+
+
+#pragma mark <UITableViewDataSource>
+
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)aTableView {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
+ return 5;
+}
+
+-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier = @"CellIdentifier";
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ }
+ cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
+ cell.textLabel.text = [NSString stringWithFormat:@"Item %d", indexPath.row];
+ return cell;
+}
+
+
+#pragma mark <UITableViewDelegate>
+
+-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ [aTableView deselectRowAtIndexPath:indexPath animated:YES];
+ TBKCContentViewController *contentViewController = [[TBKCContentViewController alloc] init];
+ contentViewController.hidesBottomBarWhenPushed = YES;
+ [self.navigationController pushViewController:contentViewController animated:TRUE];
+ [contentViewController release];
+}
+
+
+#pragma mark Gozer
+
+-(void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+-(void) didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
5 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCSettingsViewController.h
View
@@ -0,0 +1,5 @@
+
+#import <UIKit/UIKit.h>
+
+@interface TBKCSettingsViewController : UITableViewController
+@end
72 Projects/Applications/TabBarKitCatalog/Source/Classes/Controllers/Classes/TBKCSettingsViewController.m
View
@@ -0,0 +1,72 @@
+
+#import "TBKCSettingsViewController.h"
+
+@implementation TBKCSettingsViewController
+
+#pragma mark Initializer
+
+-(id) init {
+ self = [super initWithStyle:UITableViewStyleGrouped];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+
+#pragma mark UIViewController
+
+-(void) loadView {
+ [super loadView];
+ self.title = @"Settings";
+}
+
+-(void) viewDidLoad {
+ [super viewDidLoad];
+}
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ return TRUE;
+}
+
+-(NSString *) tabImageName {
+ return @"Settings";
+}
+
+
+#pragma mark <UITableViewDataSource>
+
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)tv {
+ return 1;
+}
+
+-(NSInteger) tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)aSection {
+ return 2;
+}
+
+-(UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)anIndexPath {
+ static NSString *CellIdentifier = @"CellIdentifier";
+ UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ }
+ cell.textLabel.text = [NSString stringWithFormat:@"Settings %d", anIndexPath.row];
+ return cell;
+}
+
+#pragma mark Gozer
+
+-(void) didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+}
+
+-(void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
5 Projects/Applications/TabBarKitCatalog/Source/Project/TabBarKitCatalog.pch
View
@@ -0,0 +1,5 @@
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+ #import <UIKit/UIKit.h>
+#endif
17 Projects/Applications/TabBarKitCatalog/Source/Project/main.m
View
@@ -0,0 +1,17 @@
+
+/*!
+@file main.m
+@project TabBarKitCatalog
+@copyright (c) 2010 - 2011, David Morford
+@created 9/24/2010
+*/
+
+#import <UIKit/UIKit.h>
+
+int
+main(int argc, char *argv[]) {
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ int retVal = UIApplicationMain(argc, argv, nil, @"TBKCApplicationDelegate");
+ [pool release];
+ return retVal;
+}
53 Projects/Applications/TabBarKitCatalog/Source/Resources/Bundles/Settings.bundle/Root.plist
View
@@ -0,0 +1,53 @@
+<?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>StringsTable</key>
+ <string>Root</string>
+ <key>PreferenceSpecifiers</key>
+ <array>
+ <dict>
+ <key>Type</key>
+ <string>PSGroupSpecifier</string>
+ <key>Title</key>
+ <string>About</string>
+ </dict>
+ <dict>
+ <key>Type</key>
+ <string>PSTitleValueSpecifier</string>
+ <key>Title</key>
+ <string>Version</string>
+ <key>DefaultValue</key>
+ <string>1.0</string>
+ <key>Key</key>
+ <string>TabBarKitCatalogApplicationVersionKey</string>
+ </dict>
+ <dict>
+ <key>Type</key>
+ <string>PSTitleValueSpecifier</string>
+ <key>Title</key>
+ <string>Build</string>
+ <key>DefaultValue</key>
+ <string>1A30</string>
+ <key>Key</key>
+ <string>TabBarKitCatalogApplicationBuildNumberKey</string>
+ </dict>
+ <dict>
+ <key>Type</key>
+ <string>PSGroupSpecifier</string>
+ <key>Title</key>
+ <string>Libraries</string>
+ </dict>
+ <dict>
+ <key>Type</key>
+ <string>PSTitleValueSpecifier</string>
+ <key>Title</key>
+ <string>TabBarKit Version</string>
+ <key>DefaultValue</key>
+ <string>1A30</string>
+ <key>Key</key>
+ <string>TabBarKitLibraryVersionKey</string>
+ </dict>
+ </array>
+</dict>
+</plist>
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Bundles/Settings.bundle/en.lproj/Root.strings
View
Binary file not shown
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Localizations/en.lproj/InfoPlist.strings
View
Binary file not shown
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Localizations/en.lproj/Localizable.strings
View
Binary file not shown
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Book.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Book@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bookmarks.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bookmarks@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bulb.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Bulb@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Settings.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Settings@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Super8.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  Projects/Applications/TabBarKitCatalog/Source/Resources/Media/Images/Tabs/Super8@2x.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
680 Projects/Applications/TabBarKitCatalog/TabBarKitCatalog.xcodeproj/project.pbxproj
View
@@ -0,0 +1,680 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
+ 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
+ 63124DCF12B9D12100AB8EE8 /* TBKCImagesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63124DCE12B9D12100AB8EE8 /* TBKCImagesViewController.m */; };
+ 63163C9A12CAA78500864901 /* TBKCContentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63163C9912CAA78500864901 /* TBKCContentViewController.m */; };
+ 635031D011D6F11500A2AE81 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 635031C911D6F11500A2AE81 /* Icon-72.png */; };
+ 635031D111D6F11500A2AE81 /* Icon-Small-50.png in Resources */ = {isa = PBXBuildFile; fileRef = 635031CA11D6F11500A2AE81 /* Icon-Small-50.png */; };
+ 635031D211D6F11500A2AE81 /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = 635031CB11D6F11500A2AE81 /* Icon-Small.png */; };
+ 635031D311D6F11500A2AE81 /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 635031CC11D6F11500A2AE81 /* Icon-Small@2x.png */; };
+ 635031D411D6F11500A2AE81 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 635031CD11D6F11500A2AE81 /* Icon.png */; };
+ 635031D511D6F11500A2AE81 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 635031CE11D6F11500A2AE81 /* Icon@2x.png */; };
+ 635031D611D6F11500A2AE81 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 635031CF11D6F11500A2AE81 /* iTunesArtwork */; };
+ 6384383F1040F1D700D29404 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6384383E1040F1D700D29404 /* QuartzCore.framework */; };
+ 6384395D1040F72C00D29404 /* TBKCApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6384380D1040EB5400D29404 /* TBKCApplicationDelegate.m */; };
+ 6384395E1040F72D00D29404 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 638438161040EB5400D29404 /* main.m */; };
+ 6384395F1040F75F00D29404 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6384381B1040EB5400D29404 /* Localizable.strings */; };
+ 638439601040F76100D29404 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 638438191040EB5400D29404 /* InfoPlist.strings */; };
+ 638F2F1B108AD8DF0021685E /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 638F2F1A108AD8DF0021685E /* Settings.bundle */; };
+ 63AB84021243BA6A00BD8093 /* TBKCDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63AB83FF1243BA6A00BD8093 /* TBKCDetailViewController.m */; };
+ 63AB84031243BA6A00BD8093 /* TBKCMasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63AB84011243BA6A00BD8093 /* TBKCMasterViewController.m */; };
+ 63B5AC6311D6EB34005368DA /* UserDefaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 63B5AC6211D6EB34005368DA /* UserDefaults.plist */; };
+ 63D9E60C12C707C00083EEB8 /* Book.png in Resources */ = {isa = PBXBuildFile; fileRef = 63D9E60212C707C00083EEB8 /* Book.png */; };
+ 63D9E60D12C707C00083EEB8 /* Book@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63D9E60312C707C00083EEB8 /* Book@2x.png */; };
+ 63D9E61012C707C00083EEB8 /* Bookmarks.png in Resources */ = {isa = PBXBuildFile; fileRef = 63D9E60612C707C00083EEB8 /* Bookmarks.png */; };
+ 63D9E61112C707C00083EEB8 /* Bookmarks@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63D9E60712C707C00083EEB8 /* Bookmarks@2x.png */; };
+ 63E4E5901289F964008AFD0A /* TBKCSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E4E58F1289F964008AFD0A /* TBKCSettingsViewController.m */; };
+ 63E4E5941289FA70008AFD0A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
+ 63E58AC611DED79300D122B4 /* TBKCUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E58AC511DED79300D122B4 /* TBKCUserDefaults.m */; };
+ 63F77EB512F007BD008C61E0 /* Bulb.png in Resources */ = {isa = PBXBuildFile; fileRef = 63F77EA112F007BD008C61E0 /* Bulb.png */; };
+ 63F77EB612F007BD008C61E0 /* Bulb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63F77EA212F007BD008C61E0 /* Bulb@2x.png */; };
+ 63F77EC512F007BD008C61E0 /* Settings.png in Resources */ = {isa = PBXBuildFile; fileRef = 63F77EB112F007BD008C61E0 /* Settings.png */; };
+ 63F77EC612F007BD008C61E0 /* Settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63F77EB212F007BD008C61E0 /* Settings@2x.png */; };
+ 63F77EC712F007BD008C61E0 /* Super8.png in Resources */ = {isa = PBXBuildFile; fileRef = 63F77EB312F007BD008C61E0 /* Super8.png */; };
+ 63F77EC812F007BD008C61E0 /* Super8@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63F77EB412F007BD008C61E0 /* Super8@2x.png */; };
+ 63F77ECE12F00808008C61E0 /* TBKCMoviesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63F77ECD12F00808008C61E0 /* TBKCMoviesViewController.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 639188F312B93B750094D199 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 639188EC12B93B750094D199 /* TabBarKit.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC07E0554694100DB518D;
+ remoteInfo = TabBarKit;
+ };
+ 639188FA12B93B7D0094D199 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 639188EC12B93B750094D199 /* TabBarKit.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC07D0554694100DB518D;
+ remoteInfo = TabBarKit;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 1D6058910D05DD3D006BFB54 /* TabBarKitCatalog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TabBarKitCatalog.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 63124DCD12B9D12100AB8EE8 /* TBKCImagesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TBKCImagesViewController.h; path = Source/Classes/Controllers/Classes/TBKCImagesViewController.h; sourceTree = SOURCE_ROOT; };
+ 63124DCE12B9D12100AB8EE8 /* TBKCImagesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCImagesViewController.m; sourceTree = "<group>"; };
+ 63163C9812CAA78500864901 /* TBKCContentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCContentViewController.h; sourceTree = "<group>"; };
+ 63163C9912CAA78500864901 /* TBKCContentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCContentViewController.m; sourceTree = "<group>"; };
+ 635031C911D6F11500A2AE81 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "Source/Classes/ApplicationDelegate/Resources/Icon/Icon-72.png"; sourceTree = SOURCE_ROOT; };
+ 635031CA11D6F11500A2AE81 /* Icon-Small-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small-50.png"; path = "Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small-50.png"; sourceTree = SOURCE_ROOT; };
+ 635031CB11D6F11500A2AE81 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small.png"; path = "Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small.png"; sourceTree = SOURCE_ROOT; };
+ 635031CC11D6F11500A2AE81 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small@2x.png"; path = "Source/Classes/ApplicationDelegate/Resources/Icon/Icon-Small@2x.png"; sourceTree = SOURCE_ROOT; };
+ 635031CD11D6F11500A2AE81 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = Source/Classes/ApplicationDelegate/Resources/Icon/Icon.png; sourceTree = SOURCE_ROOT; };
+ 635031CE11D6F11500A2AE81 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Source/Classes/ApplicationDelegate/Resources/Icon/Icon@2x.png"; sourceTree = SOURCE_ROOT; };
+ 635031CF11D6F11500A2AE81 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = "<group>"; };
+ 638438061040EB4100D29404 /* Application.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Application.xcconfig; path = Configurations/Application.xcconfig; sourceTree = SOURCE_ROOT; };
+ 638438071040EB4100D29404 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Project.xcconfig; path = Configurations/Project.xcconfig; sourceTree = SOURCE_ROOT; };
+ 6384380C1040EB5400D29404 /* TBKCApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCApplicationDelegate.h; sourceTree = "<group>"; };
+ 6384380D1040EB5400D29404 /* TBKCApplicationDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCApplicationDelegate.m; sourceTree = "<group>"; };
+ 638438151040EB5400D29404 /* TabBarKitCatalog.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TabBarKitCatalog.pch; path = Source/Project/TabBarKitCatalog.pch; sourceTree = SOURCE_ROOT; };
+ 638438161040EB5400D29404 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Source/Project/main.m; sourceTree = SOURCE_ROOT; };
+ 6384381A1040EB5400D29404 /* en */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 6384381C1040EB5400D29404 /* en */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
+ 6384383E1040F1D700D29404 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ 638F2F1A108AD8DF0021685E /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Settings.bundle; path = Source/Resources/Bundles/Settings.bundle; sourceTree = SOURCE_ROOT; };
+ 639188EC12B93B750094D199 /* TabBarKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = TabBarKit.xcodeproj; path = ../../Libraries/TabBarKit/TabBarKit.xcodeproj; sourceTree = SOURCE_ROOT; };
+ 63A8D84211B81D8100232AA8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 63AB83FE1243BA6A00BD8093 /* TBKCDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCDetailViewController.h; sourceTree = "<group>"; };
+ 63AB83FF1243BA6A00BD8093 /* TBKCDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCDetailViewController.m; sourceTree = "<group>"; };
+ 63AB84001243BA6A00BD8093 /* TBKCMasterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCMasterViewController.h; sourceTree = "<group>"; };
+ 63AB84011243BA6A00BD8093 /* TBKCMasterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCMasterViewController.m; sourceTree = "<group>"; };
+ 63B5AC6211D6EB34005368DA /* UserDefaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = UserDefaults.plist; path = Source/Classes/ApplicationDelegate/Resources/PropertyLists/UserDefaults.plist; sourceTree = SOURCE_ROOT; };
+ 63B6A8BB104146B10049EC9C /* Settings.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Settings.xcconfig; path = Configurations/Settings.xcconfig; sourceTree = SOURCE_ROOT; };
+ 63D9E60212C707C00083EEB8 /* Book.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Book.png; path = Source/Resources/Media/Images/Tabs/Book.png; sourceTree = SOURCE_ROOT; };
+ 63D9E60312C707C00083EEB8 /* Book@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Book@2x.png"; path = "Source/Resources/Media/Images/Tabs/Book@2x.png"; sourceTree = SOURCE_ROOT; };
+ 63D9E60612C707C00083EEB8 /* Bookmarks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Bookmarks.png; path = Source/Resources/Media/Images/Tabs/Bookmarks.png; sourceTree = SOURCE_ROOT; };
+ 63D9E60712C707C00083EEB8 /* Bookmarks@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Bookmarks@2x.png"; path = "Source/Resources/Media/Images/Tabs/Bookmarks@2x.png"; sourceTree = SOURCE_ROOT; };
+ 63E4E58E1289F964008AFD0A /* TBKCSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCSettingsViewController.h; sourceTree = "<group>"; };
+ 63E4E58F1289F964008AFD0A /* TBKCSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCSettingsViewController.m; sourceTree = "<group>"; };
+ 63E58AC411DED79300D122B4 /* TBKCUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCUserDefaults.h; sourceTree = "<group>"; };
+ 63E58AC511DED79300D122B4 /* TBKCUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCUserDefaults.m; sourceTree = "<group>"; };
+ 63E7A02E11DF7B6A0078A405 /* Default@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x~iphone.png"; path = "Source/Classes/ApplicationDelegate/Resources/Launch/Default@2x~iphone.png"; sourceTree = SOURCE_ROOT; };
+ 63E7A02F11DF7B6A0078A405 /* Default~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default~iphone.png"; path = "Source/Classes/ApplicationDelegate/Resources/Launch/Default~iphone.png"; sourceTree = SOURCE_ROOT; };
+ 63E7A03011DF7B6A0078A405 /* LaunchPad-Landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LaunchPad-Landscape.png"; sourceTree = "<group>"; };
+ 63E7A03111DF7B6A0078A405 /* LaunchPad-Portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LaunchPad-Portrait.png"; sourceTree = "<group>"; };
+ 63F77EA112F007BD008C61E0 /* Bulb.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Bulb.png; path = Source/Resources/Media/Images/Tabs/Bulb.png; sourceTree = SOURCE_ROOT; };
+ 63F77EA212F007BD008C61E0 /* Bulb@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Bulb@2x.png"; path = "Source/Resources/Media/Images/Tabs/Bulb@2x.png"; sourceTree = SOURCE_ROOT; };
+ 63F77EB112F007BD008C61E0 /* Settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Settings.png; path = Source/Resources/Media/Images/Tabs/Settings.png; sourceTree = SOURCE_ROOT; };
+ 63F77EB212F007BD008C61E0 /* Settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Settings@2x.png"; path = "Source/Resources/Media/Images/Tabs/Settings@2x.png"; sourceTree = SOURCE_ROOT; };
+ 63F77EB312F007BD008C61E0 /* Super8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Super8.png; path = Source/Resources/Media/Images/Tabs/Super8.png; sourceTree = SOURCE_ROOT; };
+ 63F77EB412F007BD008C61E0 /* Super8@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Super8@2x.png"; path = "Source/Resources/Media/Images/Tabs/Super8@2x.png"; sourceTree = SOURCE_ROOT; };
+ 63F77ECC12F00808008C61E0 /* TBKCMoviesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TBKCMoviesViewController.h; sourceTree = "<group>"; };
+ 63F77ECD12F00808008C61E0 /* TBKCMoviesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TBKCMoviesViewController.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
+ 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
+ 6384383F1040F1D700D29404 /* QuartzCore.framework in Frameworks */,
+ 63E4E5941289FA70008AFD0A /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 1D6058910D05DD3D006BFB54 /* TabBarKitCatalog.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
+ isa = PBXGroup;
+ children = (
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ 638438001040EADF00D29404 /* References */,
+ 638438041040EB4100D29404 /* Configurations */,
+ 638438171040EB5400D29404 /* Resources */,
+ 638438141040EB5400D29404 /* Project */,
+ 638438091040EB5400D29404 /* Classes */,
+ );
+ name = CustomTemplate;
+ sourceTree = "<group>";
+ };
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 288765FC0DF74451002DB57D /* CoreGraphics.framework */,
+ 1D30AB110D05D00D00671497 /* Foundation.framework */,
+ 6384383E1040F1D700D29404 /* QuartzCore.framework */,
+ 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 63124DEF12B9D65600AB8EE8 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 63AB84011243BA6A00BD8093 /* TBKCMasterViewController.m */,
+ 63AB83FF1243BA6A00BD8093 /* TBKCDetailViewController.m */,
+ 63124DCE12B9D12100AB8EE8 /* TBKCImagesViewController.m */,
+ 63E4E58F1289F964008AFD0A /* TBKCSettingsViewController.m */,
+ 63F77ECD12F00808008C61E0 /* TBKCMoviesViewController.m */,
+ 63163C9912CAA78500864901 /* TBKCContentViewController.m */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 635D437412285F01003886FB /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 63AB84001243BA6A00BD8093 /* TBKCMasterViewController.h */,
+ 63AB83FE1243BA6A00BD8093 /* TBKCDetailViewController.h */,
+ 63124DCD12B9D12100AB8EE8 /* TBKCImagesViewController.h */,
+ 63E4E58E1289F964008AFD0A /* TBKCSettingsViewController.h */,
+ 63163C9812CAA78500864901 /* TBKCContentViewController.h */,
+ 63F77ECC12F00808008C61E0 /* TBKCMoviesViewController.h */,
+ 63124DEF12B9D65600AB8EE8 /* Source */,
+ );
+ name = Classes;
+ path = Source/Classes/Controllers/Classes;
+ sourceTree = SOURCE_ROOT;
+ };
+ 638438001040EADF00D29404 /* References */ = {
+ isa = PBXGroup;
+ children = (
+ 6384390E1040F20A00D29404 /* Projects */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ );
+ name = References;
+ sourceTree = "<group>";
+ };
+ 638438041040EB4100D29404 /* Configurations */ = {
+ isa = PBXGroup;
+ children = (
+ 638438061040EB4100D29404 /* Application.xcconfig */,
+ 638438071040EB4100D29404 /* Project.xcconfig */,
+ 63B6A8BB104146B10049EC9C /* Settings.xcconfig */,
+ );
+ path = Configurations;
+ sourceTree = "<group>";
+ };
+ 638438091040EB5400D29404 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 6384380A1040EB5400D29404 /* ApplicationDelegate */,
+ 638438111040EB5400D29404 /* Controllers */,
+ );
+ name = Classes;
+ path = Source/Classes;
+ sourceTree = SOURCE_ROOT;
+ };
+ 6384380A1040EB5400D29404 /* ApplicationDelegate */ = {
+ isa = PBXGroup;
+ children = (
+ 6384380B1040EB5400D29404 /* Classes */,
+ 6384380E1040EB5400D29404 /* Resources */,
+ );
+ name = ApplicationDelegate;
+ path = Source/Classes/ApplicationDelegate;
+ sourceTree = SOURCE_ROOT;
+ };
+ 6384380B1040EB5400D29404 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 6384380C1040EB5400D29404 /* TBKCApplicationDelegate.h */,
+ 63E58AC411DED79300D122B4 /* TBKCUserDefaults.h */,
+ 63B91F8910BB9FB8009DC340 /* Source */,
+ );
+ name = Classes;
+ path = Source/Classes/ApplicationDelegate/Classes;
+ sourceTree = SOURCE_ROOT;
+ };
+ 6384380E1040EB5400D29404 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 63E58AA711DED77D00D122B4 /* Launch */,
+ 63B91F8510BB9F66009DC340 /* Icon */,
+ 6384380F1040EB5400D29404 /* PropertyLists */,
+ );
+ name = Resources;
+ path = Source/Classes/ApplicationDelegate/Resources;
+ sourceTree = SOURCE_ROOT;
+ };
+ 6384380F1040EB5400D29404 /* PropertyLists */ = {
+ isa = PBXGroup;
+ children = (
+ 63A8D84211B81D8100232AA8 /* Info.plist */,
+ 63B5AC6211D6EB34005368DA /* UserDefaults.plist */,
+ );
+ name = PropertyLists;
+ path = Source/Classes/ApplicationDelegate/Resources/PropertyLists;
+ sourceTree = SOURCE_ROOT;
+ };
+ 638438111040EB5400D29404 /* Controllers */ = {
+ isa = PBXGroup;
+ children = (
+ 635D437412285F01003886FB /* Classes */,
+ );
+ name = Controllers;
+ path = Source/Classes/Controllers;
+ sourceTree = SOURCE_ROOT;
+ };
+ 638438141040EB5400D29404 /* Project */ = {
+ isa = PBXGroup;
+ children = (
+ 638438151040EB5400D29404 /* TabBarKitCatalog.pch */,
+ 638438161040EB5400D29404 /* main.m */,
+ );
+ name = Project;
+ path = Source/Project;
+ sourceTree = SOURCE_ROOT;
+ };
+ 638438171040EB5400D29404 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 638F2F19108AD8DF0021685E /* Bundles */,
+ 638438181040EB5400D29404 /* Localizations */,
+ 63E4E5821289F8D3008AFD0A /* Media */,
+ );
+ name = Resources;
+ path = Source/Resources;
+ sourceTree = SOURCE_ROOT;
+ };
+ 638438181040EB5400D29404 /* Localizations */ = {
+ isa = PBXGroup;
+ children = (
+ 638438191040EB5400D29404 /* InfoPlist.strings */,
+ 6384381B1040EB5400D29404 /* Localizable.strings */,
+ );
+ name = Localizations;
+ path = Source/Resources/Localizations;
+ sourceTree = SOURCE_ROOT;
+ };
+ 6384390E1040F20A00D29404 /* Projects */ = {
+ isa = PBXGroup;
+ children = (
+ 639188EC12B93B750094D199 /* TabBarKit.xcodeproj */,
+ );
+ name = Projects;
+ sourceTree = "<group>";
+ };
+ 638F2F19108AD8DF0021685E /* Bundles */ = {
+ isa = PBXGroup;
+ children = (
+ 638F2F1A108AD8DF0021685E /* Settings.bundle */,
+ );
+ name = Bundles;
+ path = Source/Resources/Bundles;
+ sourceTree = SOURCE_ROOT;
+ };
+ 639188ED12B93B750094D199 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 639188F412B93B750094D199 /* libTabBarKit.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 63B91F8510BB9F66009DC340 /* Icon */ = {
+ isa = PBXGroup;
+ children = (
+ 635031C911D6F11500A2AE81 /* Icon-72.png */,
+ 635031CA11D6F11500A2AE81 /* Icon-Small-50.png */,
+ 635031CB11D6F11500A2AE81 /* Icon-Small.png */,
+ 635031CC11D6F11500A2AE81 /* Icon-Small@2x.png */,
+ 635031CD11D6F11500A2AE81 /* Icon.png */,
+ 635031CE11D6F11500A2AE81 /* Icon@2x.png */,
+ 635031CF11D6F11500A2AE81 /* iTunesArtwork */,
+ );
+ name = Icon;
+ path = Source/Classes/ApplicationDelegate/Resources/Icon;
+ sourceTree = SOURCE_ROOT;
+ };
+ 63B91F8910BB9FB8009DC340 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 6384380D1040EB5400D29404 /* TBKCApplicationDelegate.m */,
+ 63E58AC511DED79300D122B4 /* TBKCUserDefaults.m */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 63E4E5821289F8D3008AFD0A /* Media */ = {
+ isa = PBXGroup;
+ children = (
+ 63E4E5831289F8D3008AFD0A /* Images */,
+ );
+ name = Media;
+ path = Source/Resources/Media;
+ sourceTree = SOURCE_ROOT;
+ };
+ 63E4E5831289F8D3008AFD0A /* Images */ = {
+ isa = PBXGroup;
+ children = (
+ 63E4E5841289F8D3008AFD0A /* Tabs */,
+ );
+ name = Images;
+ path = Source/Resources/Media/Images;
+ sourceTree = SOURCE_ROOT;
+ };
+ 63E4E5841289F8D3008AFD0A /* Tabs */ = {
+ isa = PBXGroup;
+ children = (
+ 63D9E60212C707C00083EEB8 /* Book.png */,
+ 63D9E60312C707C00083EEB8 /* Book@2x.png */,
+ 63D9E60612C707C00083EEB8 /* Bookmarks.png */,
+ 63D9E60712C707C00083EEB8 /* Bookmarks@2x.png */,
+ 63F77EA112F007BD008C61E0 /* Bulb.png */,
+ 63F77EA212F007BD008C61E0 /* Bulb@2x.png */,
+ 63F77EB112F007BD008C61E0 /* Settings.png */,
+ 63F77EB212F007BD008C61E0 /* Settings@2x.png */,
+ 63F77EB312F007BD008C61E0 /* Super8.png */,
+ 63F77EB412F007BD008C61E0 /* Super8@2x.png */,
+ );
+ name = Tabs;
+ path = Source/Resources/Media/Images/Tabs;
+ sourceTree = SOURCE_ROOT;
+ };
+ 63E58AA711DED77D00D122B4 /* Launch */ = {
+ isa = PBXGroup;
+ children = (
+ 63E7A02E11DF7B6A0078A405 /* Default@2x~iphone.png */,
+ 63E7A02F11DF7B6A0078A405 /* Default~iphone.png */,
+ 63E7A03011DF7B6A0078A405 /* LaunchPad-Landscape.png */,
+ 63E7A03111DF7B6A0078A405 /* LaunchPad-Portrait.png */,
+ );
+ name = Launch;
+ path = Source/Classes/ApplicationDelegate/Resources/Launch;
+ sourceTree = SOURCE_ROOT;
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 1D6058900D05DD3D006BFB54 /* TabBarKitCatalog */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "TabBarKitCatalog" */;
+ buildPhases = (
+ 1D60588E0D05DD3D006BFB54 /* Sources */,
+ 1D60588D0D05DD3D006BFB54 /* Resources */,
+ 1D60588F0D05DD3D006BFB54 /* Frameworks */,
+ 638438031040EAF800D29404 /* Copy Library Support Bundles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 639188FB12B93B7D0094D199 /* PBXTargetDependency */,
+ );
+ name = TabBarKitCatalog;
+ productName = TabBarKitCatalog;
+ productReference = 1D6058910D05DD3D006BFB54 /* TabBarKitCatalog.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ ORGANIZATIONNAME = Semantap;
+ };
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TabBarKitCatalog" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ en,
+ );
+ mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 639188ED12B93B750094D199 /* Products */;
+ ProjectRef = 639188EC12B93B750094D199 /* TabBarKit.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 1D6058900D05DD3D006BFB54 /* TabBarKitCatalog */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 639188F412B93B750094D199 /* libTabBarKit.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libTabBarKit.a;
+ remoteRef = 639188F312B93B750094D199 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1D60588D0D05DD3D006BFB54 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 6384395F1040F75F00D29404 /* Localizable.strings in Resources */,
+ 638439601040F76100D29404 /* InfoPlist.strings in Resources */,
+ 638F2F1B108AD8DF0021685E /* Settings.bundle in Resources */,
+ 63B5AC6311D6EB34005368DA /* UserDefaults.plist in Resources */,
+ 635031D011D6F11500A2AE81 /* Icon-72.png in Resources */,
+ 635031D111D6F11500A2AE81 /* Icon-Small-50.png in Resources */,
+ 635031D211D6F11500A2AE81 /* Icon-Small.png in Resources */,
+ 635031D311D6F11500A2AE81 /* Icon-Small@2x.png in Resources */,
+ 635031D411D6F11500A2AE81 /* Icon.png in Resources */,
+ 635031D511D6F11500A2AE81 /* Icon@2x.png in Resources */,
+ 635031D611D6F11500A2AE81 /* iTunesArtwork in Resources */,
+ 63D9E60C12C707C00083EEB8 /* Book.png in Resources */,
+ 63D9E60D12C707C00083EEB8 /* Book@2x.png in Resources */,
+ 63D9E61012C707C00083EEB8 /* Bookmarks.png in Resources */,
+ 63D9E61112C707C00083EEB8 /* Bookmarks@2x.png in Resources */,
+ 63F77EB512F007BD008C61E0 /* Bulb.png in Resources */,
+ 63F77EB612F007BD008C61E0 /* Bulb@2x.png in Resources */,
+ 63F77EC512F007BD008C61E0 /* Settings.png in Resources */,
+ 63F77EC612F007BD008C61E0 /* Settings@2x.png in Resources */,
+ 63F77EC712F007BD008C61E0 /* Super8.png in Resources */,
+ 63F77EC812F007BD008C61E0 /* Super8@2x.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 638438031040EAF800D29404 /* Copy Library Support Bundles */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Copy Library Support Bundles";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/tcsh;
+ shellScript = "${SCRIPT_COPY_RESOURCE_BUNDLE} ${TABBARKIT_RESOURCE_BUNDLE_NAME}";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 1D60588E0D05DD3D006BFB54 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 6384395D1040F72C00D29404 /* TBKCApplicationDelegate.m in Sources */,
+ 6384395E1040F72D00D29404 /* main.m in Sources */,
+ 63E58AC611DED79300D122B4 /* TBKCUserDefaults.m in Sources */,
+ 63AB84021243BA6A00BD8093 /* TBKCDetailViewController.m in Sources */,
+ 63AB84031243BA6A00BD8093 /* TBKCMasterViewController.m in Sources */,
+ 63E4E5901289F964008AFD0A /* TBKCSettingsViewController.m in Sources */,
+ 63124DCF12B9D12100AB8EE8 /* TBKCImagesViewController.m in Sources */,
+ 63163C9A12CAA78500864901 /* TBKCContentViewController.m in Sources */,
+ 63F77ECE12F00808008C61E0 /* TBKCMoviesViewController.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 639188FB12B93B7D0094D199 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = TabBarKit;
+ targetProxy = 639188FA12B93B7D0094D199 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 638438191040EB5400D29404 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 6384381A1040EB5400D29404 /* en */,
+ );
+ name = InfoPlist.strings;
+ path = Source/Resources/Localizations;
+ sourceTree = SOURCE_ROOT;
+ };
+ 6384381B1040EB5400D29404 /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 6384381C1040EB5400D29404 /* en */,
+ );
+ name = Localizable.strings;
+ path = Source/Resources/Localizations;
+ sourceTree = SOURCE_ROOT;
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 1D6058940D05DD3E006BFB54 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438061040EB4100D29404 /* Application.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ };
+ name = Debug;
+ };
+ 1D6058950D05DD3E006BFB54 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438061040EB4100D29404 /* Application.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ };
+ name = Release;
+ };
+ 638438261040F0FF00D29404 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438071040EB4100D29404 /* Project.xcconfig */;
+ buildSettings = {
+ SDKROOT = iphoneos;
+ };
+ name = Profile;
+ };
+ 638438271040F0FF00D29404 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438061040EB4100D29404 /* Application.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ };
+ name = Profile;
+ };
+ 638438281040F10400D29404 /* Distribution */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438071040EB4100D29404 /* Project.xcconfig */;
+ buildSettings = {
+ SDKROOT = iphoneos;
+ };
+ name = Distribution;
+ };
+ 638438291040F10400D29404 /* Distribution */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438061040EB4100D29404 /* Application.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ };
+ name = Distribution;
+ };
+ 63AB85551243D8FA00BD8093 /* AdHoc */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438071040EB4100D29404 /* Project.xcconfig */;
+ buildSettings = {
+ SDKROOT = iphoneos;
+ };
+ name = AdHoc;
+ };
+ 63AB85561243D8FA00BD8093 /* AdHoc */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438061040EB4100D29404 /* Application.xcconfig */;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ };
+ name = AdHoc;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438071040EB4100D29404 /* Project.xcconfig */;
+ buildSettings = {
+ GCC_OPTIMIZATION_LEVEL = 0;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 638438071040EB4100D29404 /* Project.xcconfig */;
+ buildSettings = {
+ SDKROOT = iphoneos;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "TabBarKitCatalog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1D6058940D05DD3E006BFB54 /* Debug */,
+ 638438271040F0FF00D29404 /* Profile */,
+ 1D6058950D05DD3E006BFB54 /* Release */,
+ 63AB85561243D8FA00BD8093 /* AdHoc */,
+ 638438291040F10400D29404 /* Distribution */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TabBarKitCatalog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ 638438261040F0FF00D29404 /* Profile */,
+ C01FCF5008A954540054247B /* Release */,
+ 63AB85551243D8FA00BD8093 /* AdHoc */,
+ 638438281040F10400D29404 /* Distribution */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
1  Projects/Libraries/.gitignore
View
@@ -0,0 +1 @@
+# placeholder
23 Projects/Libraries/TabBarKit/Configurations/Library.xcconfig
View
@@ -0,0 +1,23 @@
+
+//
+// TabBarKit/Configurations/Library.xcconfig
+//
+
+#include "../../../Configurations/Library.xcconfig"
+#include "../../../Configurations/Libraries.xcconfig"
+
+// Product Name
+PRODUCT_NAME = TabBarKit
+
+// Library Version
+BUILD_LIBRARY_VERSION = A
+
+// Library Resource Bundle
+LIBRARY_RESOURCE_BUNDLE_NAME = TabBarKit.bundle
+
+// Clang
+RUN_CLANG_STATIC_ANALYZER = YES
+
+// Search Paths
+HEADER_SEARCH_PATHS = $(STDLIB_HEADER_PATH)
+LIBRARY_SEARCH_PATHS = $(STDLIB_LIBRARY_PATH)
7 Projects/Libraries/TabBarKit/Configurations/Project.xcconfig
View
@@ -0,0 +1,7 @@
+
+//
+// TabBarKit/Configurations/Project.xcconfig
+//
+
+#include "../../../Configurations/Platform.xcconfig"
+#include "../../../Configurations/Project.xcconfig"
8 Projects/Libraries/TabBarKit/Configurations/Settings.xcconfig
View
@@ -0,0 +1,8 @@
+
+//
+// TabBarKit/Configurations/Settings.xcconfig
+//
+
+#include "../../../Configurations/Settings.xcconfig"
+
+INFOPLIST_ORGANIZATION_NAME = YourCompany
24 Projects/Libraries/TabBarKit/Documents/License.md
View
@@ -0,0 +1,24 @@
+Copyright (c) 2010 - 2011 David Morford. All Right Reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48 Projects/Libraries/TabBarKit/Source/Categories/NSObject+TBKAssociatedObject.h
View
@@ -0,0 +1,48 @@
+
+/*!
+@project TabBarKit
+@header NSObject+TBKAssociatedObject.h
+@copyright (c) 2010 - 2011, David Morford
+@shoutout Andy Matuschak for the orginial idea.
+*/
+
+#import <Foundation/Foundation.h>
+#import <Foundation/NSObjCRuntime.h>
+#import <objc/runtime.h>
+
+typedef objc_AssociationPolicy TBKAssociationPolicy;
+enum {
+ TBKAssociationPolicyAssign = OBJC_ASSOCIATION_ASSIGN,
+ TBKAssociationPolicyRetainNonatomic = OBJC_ASSOCIATION_RETAIN_NONATOMIC,
+ TBKAssociationPolicyCopyNonatomic = OBJC_ASSOCIATION_COPY_NONATOMIC,
+ TBKAssociationPolicyRetain = OBJC_ASSOCIATION_RETAIN,
+ TBKAssociationPolicyCopy = OBJC_ASSOCIATION_COPY
+};
+
+/*!
+@category NSObject (TBKAssociatedObject)
+@abstract
+*/
+@interface NSObject (TBKAssociatedObject)
+
+-(id) associatedValueForKey:(void *)aKey;
+
+/*!
+@abstract Retains value
+*/
+-(void) associateValue:(id)aValue withKey:(void *)aKey;
+
+-(void) removeAssociatedValueForKey:(void *)aKey;
+
+/*!
+@method associateValue:withKey:policy:
+@abstract Associated a value and a policy with an object instance.
+@discussion Used to associate a TBKTabBarItems and TBKTabBarController instance with
+contained view controllers without requiring a silly protocol or subclass. Yum.
+@param aValue
+@param aKey
+@param aPolicy
+*/
+-(void) associateValue:(id)aValue withKey:(void *)aKey policy:(TBKAssociationPolicy)aPolicy;
+
+@end
22 Projects/Libraries/TabBarKit/Source/Categories/NSObject+TBKAssociatedObject.m
View
@@ -0,0 +1,22 @@
+
+#import <TabBarKit/NSObject+TBKAssociatedObject.h>
+
+@implementation NSObject (TBKAssociatedObject)
+
+-(void) associateValue:(id)aValue withKey:(void *)aKey {
+ objc_setAssociatedObject(self, aKey, aValue, TBKAssociationPolicyRetainNonatomic);
+}
+
+-(void) associateValue:(id)aValue withKey:(void *)aKey policy:(TBKAssociationPolicy)aPolicy {
+ objc_setAssociatedObject(self, aKey, aValue, aPolicy);
+}
+
+-(id) associatedValueForKey:(void *)aKey {
+ return objc_getAssociatedObject(self, aKey);
+}
+
+-(void) removeAssociatedValueForKey:(void *)aKey {
+ [self associateValue:nil withKey:aKey policy:TBKAssociationPolicyAssign];
+}
+
+@end
29 Projects/Libraries/TabBarKit/Source/Categories/UIImage+TBKMasking.h
View
@@ -0,0 +1,29 @@
+
+/*!
+@project TabBarKit
+@header UIImage+TBKMasking.h
+@copyright (c) 2010 - 2011, David Morford
+*/
+
+#import <UIKit/UIKit.h>
+
+@interface UIImage (TBKTabBarImage)
+
+-(UIImage *) tabBarImage;
+-(UIImage *) selectedTabBarImage;
+
+@end
+
+#pragma mark -
+
+/*!
+@class UIImage (TBKMasking)
+@abstract
+@discussion
+*/
+@interface UIImage (TBKMasking)
+
+-(UIImage *) imageMaskedWithColors:(NSArray *)aColorList opacity:(CGFloat)anOpacity;
+
+@end
+
73 Projects/Libraries/TabBarKit/Source/Categories/UIImage+TBKMasking.m
View
@@ -0,0 +1,73 @@
+
+#import <TabBarKit/UIImage+TBKMasking.h>
+
+@implementation UIImage (TBKTabBarImage)
+
+-(UIImage *) tabBarImage {
+ return ([self imageMaskedWithColors:[NSArray arrayWithObjects:[UIColor colorWithHue:(0.0/360.0) saturation:(0.0/100.0) brightness:(62.0/100.0) alpha:(1.0/1.0)], [UIColor colorWithHue:(0.0/360.0) saturation:(0.0/100.0) brightness:(27.0/100.0) alpha:(1.0/1.0)], nil]
+ opacity:0.0]);
+}
+
+-(UIImage *) selectedTabBarImage {
+ return ([self imageMaskedWithColors:[NSArray arrayWithObjects:[UIColor colorWithHue:(216.0/360.0) saturation:(19.0/100.0) brightness:(97.0/100.0) alpha:(1.0/1.0)], [UIColor colorWithHue:(206.0/360.0) saturation:(100.0/100.0) brightness:(96.0/100.0) alpha:(1.0/1.0)], nil]
+ opacity:0.0]);
+}
+
+@end
+
+#pragma mark -
+
+@implementation UIImage (TBKMasking)
+
+-(UIImage *) imageMaskedWithColors:(NSArray *)aColorList opacity:(CGFloat)anOpacity {
+ if (aColorList) {
+ UIImage *image;
+ UIGraphicsBeginImageContextWithOptions([self size], NO, 0.0);
+ {
+ CGRect rect = CGRectZero;
+ rect.size = [self size];
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ CGContextSaveGState(context);
+ {
+ CGContextTranslateCTM(context, 0, rect.size.height);
+ CGContextScaleCTM(context, 1.0, -1.0);
+
+ CGRect maskRect = CGRectMake(0, 0, self.size.width, self.size.height);
+ CGContextClipToMask(context, maskRect, self.CGImage);
+
+ CGContextSaveGState(context);
+ {
+ CGContextSaveGState(context);
+ {
+ CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
+ CGContextAddRect(context, CGRectMake(0, 0, rect.size.width, rect.size.height));
+ CGContextClosePath(context);
+ }
+ CGContextRestoreGState(context);
+
+ CGContextClip(context);
+ NSMutableArray *ar = [NSMutableArray array];
+ for (UIColor *c in aColorList) {
+ [ar addObject:(id)c.CGColor];
+ }
+ CGColorSpaceRef space = CGBitmapContextGetColorSpace(context);
+ CGGradientRef gradient = CGGradientCreateWithColors(space, (CFArrayRef)ar, NULL);
+ CGContextDrawLinearGradient(context,
+ gradient,
+ CGPointMake(rect.origin.x, rect.origin.y + rect.size.height), //BUGBUG: Flip?
+ CGPointMake(rect.origin.x, rect.origin.y),
+ kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
+ CGGradientRelease(gradient);
+ }
+ CGContextRestoreGState(context);
+ }
+ CGContextRestoreGState(context);
+ image = UIGraphicsGetImageFromCurrentImageContext();
+ }
+ UIGraphicsEndImageContext();
+ return image;
+ }
+ return self;
+}
+
+@end
1  Projects/Libraries/TabBarKit/Source/Classes/.gitignore
View
@@ -0,0 +1 @@
+# placeholder
78 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBar.h
View
@@ -0,0 +1,78 @@
+
+/*!
+@project TabBarKit
+@header TBKTabBar.h
+@copyright (c) 2010 - 2011, David Morford
+*/
+
+#import <QuartzCore/QuartzCore.h>
+#import <UIKit/UIKit.h>
+
+typedef NSUInteger TBKTabBarStyle;
+enum {
+ TBKTabBarStyleDefault = 1,
+ TBKTabBarStyleArrowIndicator = 2,
+};
+
+@class TBKTabBarItem;
+@protocol TBKTabBarDelegate;
+
+/*!
+@class TBKTabBar
+@superclass UIView
+@abstract
+@discussion
+*/
+@interface TBKTabBar : UIView
+
+@property (nonatomic, assign) id <TBKTabBarDelegate> delegate;
+@property (nonatomic, retain) NSArray *items;
+@property (nonatomic, retain) TBKTabBarItem *selectedTabBarItem;
+
+@property (nonatomic, assign) TBKTabBarStyle tabBarStyle;
+
+#pragma mark Designated Initialzer
+
+-(id) initWithFrame:(CGRect)aFrame style:(TBKTabBarStyle)aStyle;
+
+/*!
+@abstract Will fade in or out or reorder and adjust spacing.
+*/
+-(void) setItems:(NSArray *)tabItems animated:(BOOL)animated;
+
+#pragma mark Reorder
+
+/*!
+@abstract List all items that can be reordered. Always animates a sheet up.
+visible items not listed are fixed in place.
+*/
+-(void) beginCustomizingItems:(NSArray *)tabItems;
+
+/*!
+@abstract Hide customization sheet. normally you should let the user do it.
+Check list of items to see new layout. returns YES if layout changed
+*/
+-(BOOL) endCustomizingAnimated:(BOOL)animated;
+-(BOOL) isCustomizing;
+
+@end
+
+#pragma mark -
+
+/*!
+@protocol TBKTabBarDelegate <NSObject>
+@abstract
+*/
+@protocol TBKTabBarDelegate <NSObject>
+
+@optional
+-(void) tabBar:(TBKTabBar *)aTabBar didSelectTabAtIndex:(NSUInteger)anIndex;
+
+@optional
+
+-(void) tabBar:(TBKTabBar *)tabBar willBeginCustomizingItems:(NSArray *)items;
+-(void) tabBar:(TBKTabBar *)tabBar willEndCustomizingItems:(NSArray *)items changed:(BOOL)changed;
+-(void) tabBar:(TBKTabBar *)tabBar didBeginCustomizingItems:(NSArray *)items;
+-(void) tabBar:(TBKTabBar *)tabBar didEndCustomizingItems:(NSArray *)items changed:(BOOL)changed;
+
+@end
217 Projects/Libraries/TabBarKit/Source/Classes/TBKTabBar.m
View
@@ -0,0 +1,217 @@
+
+#import <TabBarKit/TBKTabBar.h>
+#import <TabBarKit/TBKTabBarItem.h>
+
+@interface TBKArrowLayer : CAShapeLayer
+@end
+
+@implementation TBKArrowLayer
+
+-(id) init {
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+
+ self.bounds = CGRectMake(0, 0, 10, 7);
+ self.position = CGPointMake(0,0);
+ self.anchorPoint = CGPointMake(0,0);
+
+ UIBezierPath *trianglePath = [UIBezierPath bezierPath];
+ [trianglePath moveToPoint:CGPointMake(CGRectGetMinX(self.frame), CGRectGetMaxY(self.frame) - 1.5)];
+ [trianglePath addLineToPoint:CGPointMake(CGRectGetMidX(self.frame) - 0.25, CGRectGetMinY(self.frame))];
+ [trianglePath addLineToPoint:CGPointMake(CGRectGetMidX(self.frame) + 0.25, CGRectGetMinY(self.frame))];
+ [trianglePath addLineToPoint:CGPointMake(CGRectGetMaxX(self.frame), CGRectGetMaxY(self.frame) - 1.5)];
+ self.path = trianglePath.CGPath;
+ self.fillColor = [UIColor colorWithWhite:(25.0/100.0) alpha:1.0].CGColor;
+
+ return self;
+}
+
+-(void) dealloc {
+ [super dealloc];
+}
+
+@end
+
+#pragma mark -
+
+@interface TBKTabBar ()
+@property (nonatomic, assign) TBKArrowLayer *arrowLayer;
+@property (nonatomic, assign) CGFloat tabMargin;
+-(void) setArrowPositionAnimated:(BOOL)animated;
+@end
+
+#pragma mark -
+
+@implementation TBKTabBar
+
+@synthesize delegate;
+@synthesize items;
+@synthesize selectedTabBarItem;
+@synthesize tabBarStyle;
+@synthesize arrowLayer;
+@synthesize tabMargin;
+
+#pragma mark CALayer
+
++(Class) layerClass {
+ return [CAGradientLayer class];
+}
+
+
+#pragma mark Initializer
+
+-(id) initWithFrame:(CGRect)aFrame style:(TBKTabBarStyle)aStyle {
+ self = [super initWithFrame:aFrame];
+ if (!self) {
+ return nil;
+ }
+ self.tabBarStyle = aStyle;
+ self.tabMargin = 2.0;
+ self.backgroundColor = [UIColor blackColor];
+ self.userInteractionEnabled = YES;
+ self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin;
+
+ if (self.tabBarStyle == TBKTabBarStyleArrowIndicator) {
+ self.arrowLayer = [[TBKArrowLayer alloc] init];
+ CGRect arrowFrame = self.arrowLayer.frame;
+ arrowFrame.origin.y = -(arrowFrame.size.height - 2.5f);
+ self.arrowLayer.frame = arrowFrame;
+ }
+
+ CAGradientLayer *backingLayer = (CAGradientLayer *)self.layer;
+ static NSMutableArray *colors = nil;
+ if (colors == nil) {
+ colors = [[NSMutableArray alloc] initWithCapacity:3];
+ UIColor *color = nil;
+ color = [UIColor colorWithWhite:(25.0/100.0) alpha:1.0];
+ [colors addObject:(id)[color CGColor]];
+ color = [UIColor colorWithWhite:(21.0/100.0) alpha:1.0];
+ [colors addObject:(id)[color CGColor]];
+ color = [UIColor colorWithWhite:(16.0/100.0) alpha:1.0];
+ [colors addObject:(id)[color CGColor]];
+ color = [UIColor colorWithWhite:(0.0/100.0) alpha:1.0];
+ [colors addObject:(id)[color CGColor]];
+ }
+ [backingLayer setColors:colors];
+ [backingLayer setLocations:[NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
+ [NSNumber numberWithFloat:0.25],
+ [NSNumber numberWithFloat:0.49],
+ [NSNumber numberWithFloat:0.5], nil]];
+
+ if (self.tabBarStyle == TBKTabBarStyleArrowIndicator) {
+ [self.layer addSublayer:self.arrowLayer];
+ }
+ return self;
+}
+
+
+#pragma mark -
+
+-(void) setItems:(NSArray *)aTabBarItemArray {
+ for (TBKTabBarItem *tabBarItem in items) {
+ [tabBarItem removeFromSuperview];
+ }
+
+ [items release];
+ items = [aTabBarItemArray retain];
+
+ if ([items count]) {
+ [(TBKTabBarItem *)[items objectAtIndex:0] setSelected:YES];
+ self.selectedTabBarItem = [items objectAtIndex:0];
+ [self.delegate tabBar:self didSelectTabAtIndex:0];
+ }
+ for (TBKTabBarItem *tabBarItem in items) {
+ tabBarItem.userInteractionEnabled = YES;
+ [tabBarItem addTarget:self
+ action:@selector(didSelectTabBarItem:)
+ forControlEvents:UIControlEventTouchDown];
+ }
+ [self setNeedsLayout];
+}
+
+-(void) didSelectTabBarItem:(TBKTabBarItem *)sender {
+ for (TBKTabBarItem *tab in items) {
+ if (tab == sender) {
+ continue;
+ }
+ tab.selected = NO;
+ }
+ sender.selected = YES;
+ self.selectedTabBarItem = sender;
+ [self.delegate tabBar:self didSelectTabAtIndex:[self.items indexOfObject:sender]];
+ if (self.tabBarStyle == TBKTabBarStyleArrowIndicator) {
+ [self setArrowPositionAnimated:YES];
+ }
+}
+
+-(void) setArrowPositionAnimated:(BOOL)animated {
+ if (animated) {
+ [UIView beginAnimations:nil context:NULL];
+ [UIView setAnimationDuration:0.2];
+ }
+ CGRect arrowLayerFrame = self.arrowLayer.frame;
+ arrowLayerFrame.origin.x = self.selectedTabBarItem.frame.origin.x + ((self.selectedTabBarItem.frame.size.width / 2) - (arrowLayerFrame.size.width / 2));
+ self.arrowLayer.frame = arrowLayerFrame;
+ if (animated) {
+ [UIView commitAnimations];
+ }
+}
+
+
+#pragma mark UIView
+
<