Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #684 from facebook/development

Three20 1.0.9
  • Loading branch information...
commit f4f9bc60bd7a56a50b9cc00797b30d0bc2703e94 2 parents 0e27b65 + ba3f8f2
@jwang jwang authored
Showing with 2,523 additions and 2,497 deletions.
  1. BIN  Icon.png
  2. +0 −30 samples/Style/TTCSSStyleSheets/TTCSSStyleSheets.xcodeproj/project.pbxproj
  3. +16 −0 samples/TTCatalog/Classes/ButtonTestController.m
  4. +1 −1  samples/TTCatalog/Classes/StyleTestController.m
  5. +2 −212 samples/TTNavigatorDemo/TTNavigatorDemo.xcodeproj/project.pbxproj
  6. BIN  src/Three20.bundle/images/photoDefault.png
  7. BIN  src/Three20.bundle/images/photoDefault@2x.png
  8. +10 −0 src/Three20Core/Headers/NSStringAdditions.h
  9. +87 −0 src/Three20Core/Headers/TTAvailability.h
  10. +1 −0  src/Three20Core/Headers/Three20Core.h
  11. +17 −1 src/Three20Core/Sources/NSStringAdditions.m
  12. +33 −0 src/Three20Core/Sources/TTAvailability.m
  13. +2 −2 src/Three20Core/Sources/Three20Version.m
  14. +8 −0 src/Three20Core/Three20Core.xcodeproj/project.pbxproj
  15. +70 −0 src/Three20Core/UnitTests/CoreAdditionTests.m
  16. +1 −1  src/Three20Network/Sources/TTURLCache.m
  17. +0 −309 src/Three20Network/Three20Network.xcodeproj/project.pbxproj
  18. +1 −1  src/Three20Style/Sources/TTBevelBorderStyle.m
  19. +1 −1  src/Three20Style/Sources/TTFlowLayout.m
  20. +1 −1  src/Three20Style/Sources/TTGlobalStyle.m
  21. +2 −2 src/Three20Style/Sources/TTGridLayout.m
  22. +1 −1  src/Three20Style/Sources/TTRectangleShape.m
  23. +1 −1  src/Three20Style/Sources/TTRoundedRectangleShape.m
  24. +2 −2 src/Three20Style/Sources/TTShapeInternal.m
  25. +7 −7 src/Three20Style/Sources/TTSpeechBubbleShape.m
  26. +1 −1  src/Three20Style/Sources/TTStyledLayout.m
  27. +1 −0  src/Three20Style/Sources/TTStyledTextParser.m
  28. +6 −6 src/Three20UI/Sources/TTActivityLabel.m
  29. +2 −2 src/Three20UI/Sources/TTButton.m
  30. +3 −3 src/Three20UI/Sources/TTButtonBar.m
  31. +8 −0 src/Three20UI/Sources/TTButtonContent.m
  32. +4 −4 src/Three20UI/Sources/TTErrorView.m
  33. +1 −1  src/Three20UI/Sources/TTLauncherHighlightView.m
  34. +7 −7 src/Three20UI/Sources/TTLauncherView.m
  35. +1 −1  src/Three20UI/Sources/TTMessageController.m
  36. +1 −1  src/Three20UI/Sources/TTPageControl.m
  37. +6 −16 src/Three20UI/Sources/TTPhotoView.m
  38. +12 −15 src/Three20UI/Sources/TTPickerTextField.m
  39. +3 −3 src/Three20UI/Sources/TTPickerViewCell.m
  40. +2 −2 src/Three20UI/Sources/TTPostController.m
  41. +6 −6 src/Three20UI/Sources/TTScrollView.m
  42. +8 −8 src/Three20UI/Sources/TTSearchBar.m
  43. +3 −3 src/Three20UI/Sources/TTSearchTextField.m
  44. +2 −2 src/Three20UI/Sources/TTSearchlightLabel.m
  45. +1 −1  src/Three20UI/Sources/TTStyledTextLabel.m
  46. +1 −1  src/Three20UI/Sources/TTStyledTextTableItemCell.m
  47. +5 −5 src/Three20UI/Sources/TTTabBarInternal.m
  48. +2 −2 src/Three20UI/Sources/TTTableCaptionItemCell.m
  49. +2 −2 src/Three20UI/Sources/TTTableControlCell.m
  50. +1 −1  src/Three20UI/Sources/TTTableFooterInfiniteScrollView.m
  51. +2 −2 src/Three20UI/Sources/TTTableImageItemCell.m
  52. +3 −3 src/Three20UI/Sources/TTTableMessageItemCell.m
  53. +1 −1  src/Three20UI/Sources/TTTableMoreButtonCell.m
  54. +6 −1 src/Three20UI/Sources/TTTableSubtitleItemCell.m
  55. +1 −1  src/Three20UI/Sources/TTTableTextItemCell.m
  56. +3 −3 src/Three20UI/Sources/TTTableView.m
  57. +5 −5 src/Three20UI/Sources/TTTableViewCell.m
  58. +2 −2 src/Three20UI/Sources/TTTableViewController.m
  59. +26 −0 src/Three20UI/Sources/TTTableViewDelegate.m
  60. +2 −2 src/Three20UI/Sources/TTTableViewGroupedVarHeightDelegate.m
  61. +1 −1  src/Three20UI/Sources/TTTableViewNetworkEnabledDelegate.m
  62. +2 −2 src/Three20UI/Sources/TTTextBarController.m
  63. +4 −4 src/Three20UI/Sources/TTTextEditor.m
  64. +2 −2 src/Three20UI/Sources/TTThumbsDataSource.m
  65. +2 −2 src/Three20UI/Sources/TTThumbsTableViewCell.m
  66. +1 −1  src/Three20UI/Sources/TTThumbsViewController.m
  67. +13 −5 src/Three20UI/Sources/TTWebController.m
  68. +2 −2 src/Three20UI/Sources/TTYouTubeView.m
  69. +8 −3 src/Three20UI/Sources/UITableViewAdditions.m
  70. +4 −4 src/Three20UI/Sources/UIViewAdditions.m
  71. +5 −0 src/Three20UICommon/Headers/TTGlobalUICommon.h
  72. +44 −13 src/Three20UICommon/Sources/TTGlobalUICommon.m
  73. +7 −5 src/extThree20CSSStyle/Sources/TTDefaultCSSStyleSheet.m
  74. +0 −30 src/extThree20CSSStyle/extThree20CSSStyle.xcodeproj/project.pbxproj
  75. +4 −4 src/extThree20JSON/Source/TTExtensionLoader.m
  76. +3 −3 src/extThree20JSON/Source/TTURLJSONResponse.m
  77. +1 −1  src/extThree20JSON/UnitTests/extJSONTests+SBJSON.m
  78. +0 −201 src/extThree20JSON/Vendors/JSON/Changes.markdown
  79. +337 −0 src/extThree20JSON/Vendors/JSON/Changes.md
  80. +0 −61 src/extThree20JSON/Vendors/JSON/Credits.markdown
  81. +40 −0 src/extThree20JSON/Vendors/JSON/Credits.md
  82. +0 −69 src/extThree20JSON/Vendors/JSON/JSON.h
  83. +24 −0 src/extThree20JSON/Vendors/JSON/LICENSE
  84. +26 −12 src/extThree20JSON/Vendors/JSON/NSObject+SBJSON.h
  85. +26 −18 src/extThree20JSON/Vendors/JSON/NSObject+SBJSON.m
  86. +6 −8 src/extThree20JSON/Vendors/JSON/NSString+SBJSON.m
  87. +0 −28 src/extThree20JSON/Vendors/JSON/Readme.markdown
  88. +85 −0 src/extThree20JSON/Vendors/JSON/Readme.md
  89. +6 −0 src/extThree20JSON/Vendors/JSON/ReleaseChecklist.md
  90. +84 −0 src/extThree20JSON/Vendors/JSON/SBJson.h
  91. +0 −86 src/extThree20JSON/Vendors/JSON/SBJsonBase.h
  92. +35 −41 src/extThree20JSON/Vendors/JSON/SBJsonParser.h
  93. +11 −27 src/extThree20JSON/Vendors/JSON/SBJsonParser.m
  94. +49 −18 src/extThree20JSON/Vendors/JSON/SBJsonStreamParser.h
  95. +101 −172 src/extThree20JSON/Vendors/JSON/SBJsonStreamParser.m
  96. +7 −28 src/extThree20JSON/Vendors/JSON/{NSObject+JSON.h → SBJsonStreamParserAccumulator.h}
  97. +15 −42 src/extThree20JSON/Vendors/JSON/{SBJsonBase.m → SBJsonStreamParserAccumulator.m}
  98. +72 −12 src/extThree20JSON/Vendors/JSON/SBJsonStreamParserAdapter.h
  99. +7 −11 src/extThree20JSON/Vendors/JSON/SBJsonStreamParserAdapter.m
  100. +1 −9 src/extThree20JSON/Vendors/JSON/SBJsonStreamParserState.h
  101. +61 −84 src/extThree20JSON/Vendors/JSON/SBJsonStreamParserState.m
  102. +64 −33 src/extThree20JSON/Vendors/JSON/SBJsonStreamWriter.h
  103. +145 −142 src/extThree20JSON/Vendors/JSON/SBJsonStreamWriter.m
  104. +39 −0 src/extThree20JSON/Vendors/JSON/SBJsonStreamWriterAccumulator.h
  105. +18 −22 src/extThree20JSON/Vendors/JSON/{NSObject+JSON.m → SBJsonStreamWriterAccumulator.m}
  106. +1 −7 src/extThree20JSON/Vendors/JSON/SBJsonStreamWriterState.h
  107. +46 −39 src/extThree20JSON/Vendors/JSON/SBJsonStreamWriterState.m
  108. +35 −35 src/extThree20JSON/Vendors/JSON/SBJsonTokeniser.h
  109. +402 −454 src/extThree20JSON/Vendors/JSON/SBJsonTokeniser.m
  110. +59 −0 src/extThree20JSON/Vendors/JSON/SBJsonUTF8Stream.h
  111. +143 −0 src/extThree20JSON/Vendors/JSON/SBJsonUTF8Stream.m
  112. +6 −23 src/extThree20JSON/Vendors/JSON/SBJsonWriter.h
  113. +16 −5 src/extThree20JSON/Vendors/JSON/SBJsonWriter.m
  114. +49 −43 src/extThree20JSON/extThree20JSON.xcodeproj/project.pbxproj
View
BIN  Icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
30 samples/Style/TTCSSStyleSheets/TTCSSStyleSheets.xcodeproj/project.pbxproj
@@ -33,20 +33,6 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 187835D313D5F7C2004600D3 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E3793D711B9B59D0011C497 /* Three20Network.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 662D81EF12630516005851C2;
- remoteInfo = "Three20Network-Xcode3.2.5";
- };
- 187835D513D5F7C2004600D3 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E3793D711B9B59D0011C497 /* Three20Network.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 662D81B2126304EB005851C2;
- remoteInfo = "Three20NetworkUnitTests-Xcode3.2.5";
- };
6E036BCC11B38E520025E8EE /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 6E036BC711B38E520025E8EE /* extThree20CSSStyle.xcodeproj */;
@@ -369,9 +355,7 @@
isa = PBXGroup;
children = (
6E3793EF11B9B59D0011C497 /* libThree20Network.a */,
- 187835D413D5F7C2004600D3 /* libThree20Network-Xcode3.2.5.a */,
6E3793F111B9B59D0011C497 /* NetworkUnitTests.octest */,
- 187835D613D5F7C2004600D3 /* NetworkUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -562,20 +546,6 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
- 187835D413D5F7C2004600D3 /* libThree20Network-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20Network-Xcode3.2.5.a";
- remoteRef = 187835D313D5F7C2004600D3 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 187835D613D5F7C2004600D3 /* NetworkUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "NetworkUnitTests-Xcode3.2.5.octest";
- remoteRef = 187835D513D5F7C2004600D3 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
6E036BCD11B38E520025E8EE /* libextThree20CSSStyle.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
View
16 samples/TTCatalog/Classes/ButtonTestController.m
@@ -78,6 +78,18 @@ - (TTStyle*)dropButton:(UIControlState)state {
}
}
+- (TTStyle*)remoteAvatarButton:(UIControlState)state {
+ if (state == UIControlStateHighlighted) {
+ return [TTSolidFillStyle styleWithColor:[UIColor whiteColor] next:nil];
+ } else {
+ return [TTImageStyle styleWithImageURL:nil
+ defaultImage:[UIImage imageNamed:@"defaultPerson.png"]
+ contentMode:UIViewContentModeCenter
+ size:CGSizeMake(50, 50)
+ next:nil];
+ }
+}
+
@end
@implementation ButtonTestController
@@ -142,6 +154,9 @@ - (void)loadView {
scrollView.delaysContentTouches = NO;
self.view = scrollView;
+ TTButton* remoteAvatarButton = [TTButton buttonWithStyle:@"remoteAvatarButton:"];
+ [remoteAvatarButton setImage:@"url" forState:UIControlStateNormal];
+
NSArray* buttons = [NSArray arrayWithObjects:
[TTButton buttonWithStyle:@"toolbarButton:" title:@"Toolbar Button"],
[TTButton buttonWithStyle:@"toolbarRoundButton:" title:@"Round Button"],
@@ -152,6 +167,7 @@ - (void)loadView {
[TTButton buttonWithStyle:@"blueToolbarButton:" title:@"Blue Button"],
[TTButton buttonWithStyle:@"embossedButton:" title:@"Embossed Button"],
[TTButton buttonWithStyle:@"dropButton:" title:@"Shadow Button"],
+ remoteAvatarButton,
nil];
for (TTButton* button in buttons) {
View
2  samples/TTCatalog/Classes/StyleTestController.m
@@ -157,7 +157,7 @@ - (void)loadView {
nil];
- CGFloat padding = 10;
+ CGFloat padding = 10.0f;
CGFloat viewWidth = scrollView.width/2 - padding*2;
CGFloat viewHeight = TT_ROW_HEIGHT;
View
214 samples/TTNavigatorDemo/TTNavigatorDemo.xcodeproj/project.pbxproj
@@ -30,104 +30,6 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 66D12A7F1274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957011B9B7560011C497 /* Three20Core.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 6650CAA21262F6E2003FF804;
- remoteInfo = "Three20Core-Xcode3.2.5";
- };
- 66D12A831274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957011B9B7560011C497 /* Three20Core.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 664961641262EE5000C2C80E;
- remoteInfo = "Three20CoreUnitTests-Xcode3.2.5";
- };
- 66D12A8C1274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957311B9B7560011C497 /* Three20Network.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 662D81EF12630516005851C2;
- remoteInfo = "Three20Network-Xcode3.2.5";
- };
- 66D12A901274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957311B9B7560011C497 /* Three20Network.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 662D81B2126304EB005851C2;
- remoteInfo = "Three20NetworkUnitTests-Xcode3.2.5";
- };
- 66D12A991274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957611B9B7560011C497 /* Three20Style.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 66C16BE912639E2700A7825A;
- remoteInfo = "Three20Style-Xcode3.2.5";
- };
- 66D12A9D1274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957611B9B7560011C497 /* Three20Style.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 66C16C0112639E4500A7825A;
- remoteInfo = "Three20StyleUnitTests-Xcode3.2.5";
- };
- 66D12AA61274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957911B9B7560011C497 /* Three20UICommon.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 665A53761264D54B0032D0BE;
- remoteInfo = "Three20UICommon-Xcode3.2.5";
- };
- 66D12AAA1274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957911B9B7560011C497 /* Three20UICommon.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 665A53891264D54B0032D0BE;
- remoteInfo = "Three20UICommonUnitTests-Xcode3.2.5";
- };
- 66D12AB31274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957C11B9B7560011C497 /* Three20UINavigator.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 665A54521264DAF70032D0BE;
- remoteInfo = "Three20UINavigator-Xcode3.2.5";
- };
- 66D12AB71274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957C11B9B7560011C497 /* Three20UINavigator.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 665A54681264DAF70032D0BE;
- remoteInfo = "Three20UINavigatorUnitTests-Xcode3.2.5";
- };
- 66D12AC01274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957F11B9B7560011C497 /* Three20UI.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 66FC2BC81264E3A400F56B19;
- remoteInfo = "Three20UI-Xcode3.2.5";
- };
- 66D12AC41274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E37957F11B9B7560011C497 /* Three20UI.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 66FC2BE61264E3A500F56B19;
- remoteInfo = "Three20UIUnitTests-Xcode3.2.5";
- };
- 66D12ACD1274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E7F9900118E396F00443B46 /* Three20.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 665A55DE126521740032D0BE;
- remoteInfo = "Three20-Xcode3.2.5";
- };
- 66D12AD11274CB1D00E567B4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6E7F9900118E396F00443B46 /* Three20.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 665A55FB126521740032D0BE;
- remoteInfo = "Three20UnitTests-Xcode3.2.5";
- };
6E37958411B9B7560011C497 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 6E37957011B9B7560011C497 /* Three20Core.xcodeproj */;
@@ -406,9 +308,7 @@
isa = PBXGroup;
children = (
6E37958511B9B7560011C497 /* libThree20Core.a */,
- 66D12A801274CB1D00E567B4 /* libThree20Core-Xcode3.2.5.a */,
6E37958711B9B7560011C497 /* CoreUnitTests.octest */,
- 66D12A841274CB1D00E567B4 /* CoreUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -417,9 +317,7 @@
isa = PBXGroup;
children = (
6E37958B11B9B7560011C497 /* libThree20Network.a */,
- 66D12A8D1274CB1D00E567B4 /* libThree20Network-Xcode3.2.5.a */,
6E37958D11B9B7560011C497 /* NetworkUnitTests.octest */,
- 66D12A911274CB1D00E567B4 /* NetworkUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -428,9 +326,7 @@
isa = PBXGroup;
children = (
6E37959111B9B7560011C497 /* libThree20Style.a */,
- 66D12A9A1274CB1D00E567B4 /* libThree20Style-Xcode3.2.5.a */,
6E37959311B9B7560011C497 /* StyleUnitTests.octest */,
- 66D12A9E1274CB1D00E567B4 /* StyleUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -439,9 +335,7 @@
isa = PBXGroup;
children = (
6E37959711B9B7560011C497 /* libThree20UICommon.a */,
- 66D12AA71274CB1D00E567B4 /* libThree20UICommon-Xcode3.2.5.a */,
6E37959911B9B7560011C497 /* UICommonUnitTests.octest */,
- 66D12AAB1274CB1D00E567B4 /* UICommonUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -450,9 +344,7 @@
isa = PBXGroup;
children = (
6E37959D11B9B7560011C497 /* libThree20UINavigator.a */,
- 66D12AB41274CB1D00E567B4 /* libThree20UINavigator-Xcode3.2.5.a */,
6E37959F11B9B7560011C497 /* UINavigatorUnitTests.octest */,
- 66D12AB81274CB1D00E567B4 /* UINavigatorUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -461,9 +353,7 @@
isa = PBXGroup;
children = (
6E3795A311B9B7560011C497 /* libThree20UI.a */,
- 66D12AC11274CB1D00E567B4 /* libThree20UI-Xcode3.2.5.a */,
6E3795A511B9B7560011C497 /* UIUnitTests.octest */,
- 66D12AC51274CB1D00E567B4 /* UIUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -497,9 +387,7 @@
isa = PBXGroup;
children = (
6E7F9906118E396F00443B46 /* libThree20.a */,
- 66D12ACE1274CB1D00E567B4 /* libThree20-Xcode3.2.5.a */,
6E7F9908118E396F00443B46 /* Three20UnitTests.octest */,
- 66D12AD21274CB1D00E567B4 /* Three20UnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -587,104 +475,6 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
- 66D12A801274CB1D00E567B4 /* libThree20Core-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20Core-Xcode3.2.5.a";
- remoteRef = 66D12A7F1274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12A841274CB1D00E567B4 /* CoreUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "CoreUnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12A831274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12A8D1274CB1D00E567B4 /* libThree20Network-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20Network-Xcode3.2.5.a";
- remoteRef = 66D12A8C1274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12A911274CB1D00E567B4 /* NetworkUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "NetworkUnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12A901274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12A9A1274CB1D00E567B4 /* libThree20Style-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20Style-Xcode3.2.5.a";
- remoteRef = 66D12A991274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12A9E1274CB1D00E567B4 /* StyleUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "StyleUnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12A9D1274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AA71274CB1D00E567B4 /* libThree20UICommon-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20UICommon-Xcode3.2.5.a";
- remoteRef = 66D12AA61274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AAB1274CB1D00E567B4 /* UICommonUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "UICommonUnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12AAA1274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AB41274CB1D00E567B4 /* libThree20UINavigator-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20UINavigator-Xcode3.2.5.a";
- remoteRef = 66D12AB31274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AB81274CB1D00E567B4 /* UINavigatorUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "UINavigatorUnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12AB71274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AC11274CB1D00E567B4 /* libThree20UI-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20UI-Xcode3.2.5.a";
- remoteRef = 66D12AC01274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AC51274CB1D00E567B4 /* UIUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "UIUnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12AC41274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12ACE1274CB1D00E567B4 /* libThree20-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20-Xcode3.2.5.a";
- remoteRef = 66D12ACD1274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 66D12AD21274CB1D00E567B4 /* Three20UnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "Three20UnitTests-Xcode3.2.5.octest";
- remoteRef = 66D12AD11274CB1D00E567B4 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
6E37958511B9B7560011C497 /* libThree20Core.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -862,7 +652,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
INFOPLIST_FILE = Info.plist;
- SDKROOT = iphoneos4.1;
+ SDKROOT = iphoneos;
};
name = Debug;
};
@@ -872,7 +662,7 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
INFOPLIST_FILE = Info.plist;
- SDKROOT = iphoneos4.1;
+ SDKROOT = iphoneos;
};
name = Release;
};
View
BIN  src/Three20.bundle/images/photoDefault.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  src/Three20.bundle/images/photoDefault@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
10 src/Three20Core/Headers/NSStringAdditions.h
@@ -69,6 +69,16 @@
- (NSString*)stringByAddingQueryDictionary:(NSDictionary*)query;
/**
+ * Parses a URL, adds urlEncoded query parameters to its query, and re-encodes it as a new URL.
+ *
+ * This method encodes keys and values of query using [NSString urlEncoded] and calls
+ * stringByAddingQueryDictionary with the resulting dictionary.
+ *
+ * @throw NSInvalidArgumentException If any value or key does not respond to urlEncoded.
+ */
+- (NSString*)stringByAddingURLEncodedQueryDictionary:(NSDictionary*)query;
+
+/**
* Returns a URL Encoded String
*/
- (NSString*)urlEncoded;
View
87 src/Three20Core/Headers/TTAvailability.h
@@ -0,0 +1,87 @@
+//
+// Copyright 2009-2011 Facebook
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+/**
+ * SDK definitions useful in availability checks for conditionally compiling code.
+ *
+ * Example:
+ *
+ * #if __IPHONE_OS_VERSION_MAX_ALLOWED >= TTIOS_3_2
+ * // This code will only compile on versions >= iOS 3.2
+ * #endif
+ *
+ * These macros are defined unconditionally and separately from the __IPHONE_* macros
+ * because there might be methods that use the #ifdef state of one of the __IPHONE_ macros
+ * to conditionally compile their code (however incorrect this may be).
+ */
+#define TTIOS_2_0 20000
+#define TTIOS_2_1 20100
+#define TTIOS_2_2 20200
+#define TTIOS_3_0 30000
+#define TTIOS_3_1 30100
+#define TTIOS_3_2 30200
+#define TTIOS_4_0 40000
+#define TTIOS_4_1 40100
+#define TTIOS_4_2 40200
+
+/**
+ * Flesh out the known SDK version numbers.
+ */
+#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_2_0
+#define kCFCoreFoundationVersionNumber_iPhoneOS_2_0 478.23
+#endif
+
+#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_2_1
+#define kCFCoreFoundationVersionNumber_iPhoneOS_2_1 478.26
+#endif
+
+#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_2_2
+#define kCFCoreFoundationVersionNumber_iPhoneOS_2_2 478.29
+#endif
+
+#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_3_0
+#define kCFCoreFoundationVersionNumber_iPhoneOS_3_0 478.47
+#endif
+
+#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_3_1
+#define kCFCoreFoundationVersionNumber_iPhoneOS_3_1 478.52
+#endif
+
+#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_3_2
+#define kCFCoreFoundationVersionNumber_iPhoneOS_3_2 478.61
+#endif
+
+#ifndef kCFCoreFoundationVersionNumber_iOS_4_0
+#define kCFCoreFoundationVersionNumber_iOS_4_0 550.32
+#endif
+
+/**
+ * Checks whether the device's OS version is at least the given version number.
+ *
+ * @param versionNumber Any value of kCFCoreFoundationVersionNumber from above.
+ */
+BOOL TTDeviceOSVersionIsAtLeast(double versionNumber);
+
+/**
+ * Use NSClassFromString to fetch the popover controller class.
+ *
+ * The class is cached to avoid repeated lookups.
+ */
+Class TTUIPopoverControllerClass();
+
View
1  src/Three20Core/Headers/Three20Core.h
@@ -25,6 +25,7 @@
#import "Three20Core/TTGlobalCoreLocale.h"
#import "Three20Core/TTGlobalCorePaths.h"
#import "Three20Core/TTGlobalCoreRects.h"
+#import "Three20Core/TTAvailability.h"
// - Debug
#import "Three20Core/TTDebug.h"
View
18 src/Three20Core/Sources/NSStringAdditions.m
@@ -142,10 +142,26 @@ - (NSString*)stringByAddingQueryDictionary:(NSDictionary*)query {
}
///////////////////////////////////////////////////////////////////////////////////////////////////
+- (NSString*)stringByAddingURLEncodedQueryDictionary:(NSDictionary*)query {
+ NSMutableDictionary* encodedQuery = [NSMutableDictionary dictionaryWithCapacity:[query count]];
+
+ for (NSString* key in [query keyEnumerator]) {
+ NSParameterAssert([key respondsToSelector:@selector(urlEncoded)]);
+ NSString* value = [query objectForKey:key];
+ NSParameterAssert([value respondsToSelector:@selector(urlEncoded)]);
+ value = [value urlEncoded];
+ key = [key urlEncoded];
+ [encodedQuery setValue:value forKey:key];
+ }
+
+ return [self stringByAddingQueryDictionary:encodedQuery];
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
- (id)urlEncoded {
CFStringRef cfUrlEncodedString = CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,NULL,
- (CFStringRef)@"!*’();:@&=$,/?%#[]",
+ (CFStringRef)@"!#$%&'()*+,/:;=?@[]",
kCFStringEncodingUTF8);
NSString *urlEncoded = [NSString stringWithString:(NSString *)cfUrlEncodedString];
View
33 src/Three20Core/Sources/TTAvailability.m
@@ -0,0 +1,33 @@
+//
+// Copyright 2009-2011 Facebook
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#import "Three20Core/TTAvailability.h"
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+BOOL TTDeviceOSVersionIsAtLeast(double versionNumber) {
+ return kCFCoreFoundationVersionNumber >= versionNumber;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+Class TTUIPopoverControllerClass() {
+ static Class sClass = nil;
+ if (nil == sClass) {
+ sClass = NSClassFromString(@"UIPopoverController");
+ }
+ return sClass;
+}
View
4 src/Three20Core/Sources/Three20Version.m
@@ -18,6 +18,6 @@
/*! \mainpage Three20 API Documentation
*
- * Generated from Three20 Release <a href="http://three20.info/roadmap/1.0.8">1.0.8</a>.
+ * Generated from Three20 Release <a href="http://three20.info/roadmap/1.0.9">1.0.9</a>.
*/
-NSString* const Three20Version = @"1.0.8";
+NSString* const Three20Version = @"1.0.9";
View
8 src/Three20Core/Three20Core.xcodeproj/project.pbxproj
@@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
+ 6656B2531354035900B34AB5 /* TTAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = 6656B2521354035900B34AB5 /* TTAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6656B2551354035F00B34AB5 /* TTAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6656B2541354035F00B34AB5 /* TTAvailability.m */; };
660E7375135A560A00531398 /* Three20Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 660E7374135A560A00531398 /* Three20Version.h */; settings = {ATTRIBUTES = (Public, ); }; };
66A0530A132EB47900132434 /* Three20.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A05309132EB47900132434 /* Three20.m */; };
66A0530C132EB47F00132434 /* Three20.h in Headers */ = {isa = PBXBuildFile; fileRef = 66A0530B132EB47F00132434 /* Three20.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -67,6 +69,8 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
+ 6656B2521354035900B34AB5 /* TTAvailability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TTAvailability.h; path = Headers/TTAvailability.h; sourceTree = "<group>"; };
+ 6656B2541354035F00B34AB5 /* TTAvailability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TTAvailability.m; path = Sources/TTAvailability.m; sourceTree = "<group>"; };
660E7374135A560A00531398 /* Three20Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Three20Version.h; path = Headers/Three20Version.h; sourceTree = "<group>"; };
66A05309132EB47900132434 /* Three20.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Three20.m; path = Sources/Three20.m; sourceTree = "<group>"; };
66A0530B132EB47F00132434 /* Three20.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Three20.h; path = Headers/Three20.h; sourceTree = "<group>"; };
@@ -245,6 +249,8 @@
6E178E7D1183C8E5003B099E /* TTGlobalCorePaths.m */,
6EDAE9C6118CA1720008133C /* TTGlobalCoreRects.h */,
6EDAE9C8118CA1790008133C /* TTGlobalCoreRects.m */,
+ 6656B2521354035900B34AB5 /* TTAvailability.h */,
+ 6656B2541354035F00B34AB5 /* TTAvailability.m */,
);
name = Global;
sourceTree = "<group>";
@@ -346,6 +352,7 @@
66ADC90F1290B24D00855386 /* TTExtensionInfo.h in Headers */,
66ADCE681291BC1E00855386 /* TTExtensionInfoPrivate.h in Headers */,
66ADCE8B1291BEBB00855386 /* TTExtensionAuthor.h in Headers */,
+ 6656B2531354035900B34AB5 /* TTAvailability.h in Headers */,
66A0530C132EB47F00132434 /* Three20.h in Headers */,
660E7375135A560A00531398 /* Three20Version.h in Headers */,
);
@@ -497,6 +504,7 @@
66ECA257128DFE28006C78C2 /* TTExtensionLoader.m in Sources */,
66ADC9091290B23A00855386 /* TTExtensionInfo.m in Sources */,
66ADCE871291BEAE00855386 /* TTExtensionAuthor.m in Sources */,
+ 6656B2551354035F00B34AB5 /* TTAvailability.m in Sources */,
66A0530A132EB47900132434 /* Three20.m in Sources */,
66CE68FB135B320F00E127E2 /* Three20Version.m in Sources */,
);
View
70 src/Three20Core/UnitTests/CoreAdditionTests.m
@@ -308,6 +308,76 @@ - (void)testNSString_stringByAddingQueryDictionary {
@"Additional query parameters not correct. %@", [baseUrl stringByAddingQueryDictionary:query]);
}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)testNSString_stringByAddingURLEncodedQueryDictionary {
+ NSString* baseUrl = @"http://google.com/search";
+ STAssertEqualObjects([baseUrl stringByAddingURLEncodedQueryDictionary:nil],
+ [baseUrl stringByAppendingString:@"?"],
+ @"Empty dictionary fail.");
+
+ STAssertEqualObjects([baseUrl stringByAddingURLEncodedQueryDictionary:[NSDictionary dictionary]],
+ [baseUrl stringByAppendingString:@"?"],
+ @"Empty dictionary fail.");
+
+ baseUrl = @"http://google.com/search?hl=foo";
+ STAssertEqualObjects([baseUrl stringByAddingURLEncodedQueryDictionary:[NSDictionary
+ dictionaryWithObject:@"Ö " forKey:@"Ü"]],
+ [baseUrl stringByAppendingString:@"&%C3%9C=%C3%96%20"],
+ @"Single parameter fail.");
+
+
+ NSDictionary* query = [NSDictionary
+ dictionaryWithObjectsAndKeys:
+ @"%(", @"\u1234",
+ @"§/", @"hl",
+ nil];
+ NSString* baseUrlWithQuery = [baseUrl stringByAddingURLEncodedQueryDictionary:query];
+ STAssertTrue([baseUrlWithQuery isEqualToString:[baseUrl
+ stringByAppendingString:@"&%E1%88%B4=%25%28&hl=%C2%A7%2F"]]
+ || [baseUrlWithQuery isEqualToString:[baseUrl
+ stringByAppendingString:@"&hl=%C2%A7%2F&%E1%88%B4=%25%28"]],
+ @"Additional query parameters not correct. %@",
+ [baseUrl stringByAddingQueryDictionary:query]);
+
+ NSDictionary* malformedQueryDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:1]
+ forKey:@""];
+ STAssertNoThrowSpecificNamed([@"" stringByAddingURLEncodedQueryDictionary:malformedQueryDict],
+ NSException, NSInvalidArgumentException,
+ @"Doesn't thow expected exception");
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)testNSString_urlEncoded {
+ NSString* reservedCharacters = @"!#$%&'()*+,/:;=?@[] ";
+
+ STAssertEqualObjects([reservedCharacters
+ urlEncoded],
+ @"%21%23%24%25%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D%20",
+ @"incorrect url encoding");
+
+ NSString* aLittleBitOfWhiteSpace = @"\r\n\t";
+
+ STAssertEqualObjects([aLittleBitOfWhiteSpace
+ urlEncoded],
+ @"%0D%0A%09",
+ @"incorrect url encoding");
+
+ NSString* someHighCodeCharacters = @"äÄöÖüÜñàÀáÀîÎ";
+
+ STAssertEqualObjects([someHighCodeCharacters
+ urlEncoded],
+ @"%C3%A4%C3%84%C3%B6%C3%96%C3%BC%C3%9C%C3%B1%"
+ @"C3%A0%C3%80%C3%A1%C3%80%C3%AE%C3%8E",
+ @"incorrect url encoding");
+
+ NSString* someUnusualCharacters = @"Ƕဿᴞ🆒";
+
+ STAssertEqualObjects([someUnusualCharacters
+ urlEncoded],
+ @"%C7%B6%E1%80%BF%E1%B4%9E%F0%9F%86%92",
+ @"incorrect url encoding");
+}
///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)testNSString_versionStringCompare {
View
2  src/Three20Network/Sources/TTURLCache.m
@@ -26,7 +26,7 @@
#import "Three20Core/TTDebugFlags.h"
#import "Three20Core/NSStringAdditions.h"
-static const CGFloat kLargeImageSize = 600 * 400;
+static const CGFloat kLargeImageSize = 600.0f * 400.0f;
static NSString* kDefaultCacheName = @"Three20";
static NSString* kEtagCacheDirectoryName = @"etag";
View
309 src/Three20Network/Three20Network.xcodeproj/project.pbxproj
@@ -8,48 +8,12 @@
/* Begin PBXBuildFile section */
662D819D126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m in Sources */ = {isa = PBXBuildFile; fileRef = 662D819C126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m */; };
- 662D81A7126304EB005851C2 /* MockModelDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7363911849A9800A35176 /* MockModelDelegate.m */; };
- 662D81A8126304EB005851C2 /* NetworkModelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7363B11849AA100A35176 /* NetworkModelTests.m */; };
- 662D81CD12630516005851C2 /* Three20Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE735F7118499D300A35176 /* Three20Network.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81CE12630516005851C2 /* TTGlobalNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE735F9118499FB00A35176 /* TTGlobalNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81CF12630516005851C2 /* TTUserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360111849A1F00A35176 /* TTUserInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D012630516005851C2 /* TTModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360811849A3500A35176 /* TTModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D112630516005851C2 /* TTModelDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360911849A3500A35176 /* TTModelDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D212630516005851C2 /* TTRequestLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360A11849A3500A35176 /* TTRequestLoader.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 662D81D312630516005851C2 /* TTURLCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360B11849A3500A35176 /* TTURLCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D412630516005851C2 /* TTURLDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360C11849A3500A35176 /* TTURLDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D512630516005851C2 /* TTURLImageResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360D11849A3500A35176 /* TTURLImageResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D612630516005851C2 /* TTURLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360E11849A3500A35176 /* TTURLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D712630516005851C2 /* TTURLRequestCachePolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7360F11849A3500A35176 /* TTURLRequestCachePolicy.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D812630516005851C2 /* TTURLRequestDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7361011849A3500A35176 /* TTURLRequestDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81D912630516005851C2 /* TTURLRequestModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7361111849A3500A35176 /* TTURLRequestModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81DA12630516005851C2 /* TTURLRequestQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7361211849A3500A35176 /* TTURLRequestQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81DB12630516005851C2 /* TTURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7361311849A3500A35176 /* TTURLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 662D81DC12630516005851C2 /* Three20Network_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 6EE7364811849B1D00A35176 /* Three20Network_Prefix.pch */; };
- 662D81DD12630516005851C2 /* TTURLRequestQueueInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EF96404118EFCF0003902E7 /* TTURLRequestQueueInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 662D81E012630516005851C2 /* TTGlobalNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE735FB11849A0C00A35176 /* TTGlobalNetwork.m */; };
- 662D81E112630516005851C2 /* TTUserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE735FE11849A1600A35176 /* TTUserInfo.m */; };
- 662D81E212630516005851C2 /* TTModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362011849A4000A35176 /* TTModel.m */; };
- 662D81E312630516005851C2 /* TTRequestLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362111849A4000A35176 /* TTRequestLoader.m */; };
- 662D81E412630516005851C2 /* TTURLCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362211849A4000A35176 /* TTURLCache.m */; };
- 662D81E512630516005851C2 /* TTURLDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362311849A4000A35176 /* TTURLDataResponse.m */; };
- 662D81E612630516005851C2 /* TTURLImageResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362411849A4000A35176 /* TTURLImageResponse.m */; };
- 662D81E712630516005851C2 /* TTURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362511849A4000A35176 /* TTURLRequest.m */; };
- 662D81E812630516005851C2 /* TTURLRequestModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362611849A4000A35176 /* TTURLRequestModel.m */; };
- 662D81E912630516005851C2 /* TTURLRequestQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE7362711849A4000A35176 /* TTURLRequestQueue.m */; };
- 664B29BE12848AA50008D569 /* TTErrorCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 664B29BC12848AA50008D569 /* TTErrorCodes.h */; settings = {ATTRIBUTES = (Public, ); }; };
664B29BF12848AA50008D569 /* TTErrorCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 664B29BC12848AA50008D569 /* TTErrorCodes.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 664B29C212848AAD0008D569 /* TTErrorCodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 664B29C012848AAD0008D569 /* TTErrorCodes.m */; };
664B29C312848AAD0008D569 /* TTErrorCodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 664B29C012848AAD0008D569 /* TTErrorCodes.m */; };
- 66C16B1C1263059A00A7825A /* libThree20Network-Xcode3.2.5.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 662D81EF12630516005851C2 /* libThree20Network-Xcode3.2.5.a */; };
66F955B0126662E300BEF6F0 /* NetworkURLCacheTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F955AF126662E300BEF6F0 /* NetworkURLCacheTests.m */; };
- 66F955B1126662E300BEF6F0 /* NetworkURLCacheTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F955AF126662E300BEF6F0 /* NetworkURLCacheTests.m */; };
66F955BA1266647A00BEF6F0 /* both.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B71266647A00BEF6F0 /* both.png */; };
66F955BB1266647A00BEF6F0 /* both@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B81266647A00BEF6F0 /* both@2x.png */; };
66F955BC1266647A00BEF6F0 /* only@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B91266647A00BEF6F0 /* only@2x.png */; };
- 66F955BD1266647A00BEF6F0 /* both.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B71266647A00BEF6F0 /* both.png */; };
- 66F955BE1266647A00BEF6F0 /* both@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B81266647A00BEF6F0 /* both@2x.png */; };
- 66F955BF1266647A00BEF6F0 /* only@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B91266647A00BEF6F0 /* only@2x.png */; };
6EE735F8118499D300A35176 /* Three20Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE735F7118499D300A35176 /* Three20Network.h */; settings = {ATTRIBUTES = (Public, ); }; };
6EE735FA118499FB00A35176 /* TTGlobalNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE735F9118499FB00A35176 /* TTGlobalNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; };
6EE735FC11849A0C00A35176 /* TTGlobalNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE735FB11849A0C00A35176 /* TTGlobalNetwork.m */; };
@@ -82,17 +46,9 @@
6EE739CD1184BAF600A35176 /* libThree20Network.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BEF31F3A0F352DF5000DE5D2 /* libThree20Network.a */; };
6EF96405118EFCF0003902E7 /* TTURLRequestQueueInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EF96404118EFCF0003902E7 /* TTURLRequestQueueInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
E1F076A1130521F7007CA6F1 /* NetworkRequestTimeoutTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F076A0130521F7007CA6F1 /* NetworkRequestTimeoutTests.m */; };
- E1F076A2130521F7007CA6F1 /* NetworkRequestTimeoutTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F076A0130521F7007CA6F1 /* NetworkRequestTimeoutTests.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 66C16B26126305F500A7825A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 662D81C912630516005851C2;
- remoteInfo = "Three20Network-Xcode3.2.5";
- };
6EE7366B11849C5800A35176 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 6EE7366611849C5800A35176 /* Three20Core.xcodeproj */;
@@ -132,8 +88,6 @@
/* Begin PBXFileReference section */
662D819C126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Xcode324iOS41TestSuiteWorkaround.m; path = ../UnitTests/Xcode324iOS41TestSuiteWorkaround.m; sourceTree = SOURCE_ROOT; };
- 662D81B2126304EB005851C2 /* NetworkUnitTests-Xcode3.2.5.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "NetworkUnitTests-Xcode3.2.5.octest"; sourceTree = BUILT_PRODUCTS_DIR; };
- 662D81EF12630516005851C2 /* libThree20Network-Xcode3.2.5.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libThree20Network-Xcode3.2.5.a"; sourceTree = BUILT_PRODUCTS_DIR; };
664B29BC12848AA50008D569 /* TTErrorCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TTErrorCodes.h; path = Headers/TTErrorCodes.h; sourceTree = "<group>"; };
664B29C012848AAD0008D569 /* TTErrorCodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TTErrorCodes.m; path = Sources/TTErrorCodes.m; sourceTree = "<group>"; };
66F955AF126662E300BEF6F0 /* NetworkURLCacheTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NetworkURLCacheTests.m; path = UnitTests/NetworkURLCacheTests.m; sourceTree = "<group>"; };
@@ -181,21 +135,6 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 662D81AA126304EB005851C2 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 66C16B1C1263059A00A7825A /* libThree20Network-Xcode3.2.5.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 662D81EA12630516005851C2 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
BEF31F380F352DF5000DE5D2 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -219,9 +158,7 @@
isa = PBXGroup;
children = (
BEF31F3A0F352DF5000DE5D2 /* libThree20Network.a */,
- 662D81EF12630516005851C2 /* libThree20Network-Xcode3.2.5.a */,
EB9E6C6210B6A8F800DE563C /* NetworkUnitTests.octest */,
- 662D81B2126304EB005851C2 /* NetworkUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -425,31 +362,6 @@
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
- 662D81CC12630516005851C2 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 662D81CD12630516005851C2 /* Three20Network.h in Headers */,
- 662D81CE12630516005851C2 /* TTGlobalNetwork.h in Headers */,
- 662D81CF12630516005851C2 /* TTUserInfo.h in Headers */,
- 662D81D012630516005851C2 /* TTModel.h in Headers */,
- 662D81D112630516005851C2 /* TTModelDelegate.h in Headers */,
- 662D81D212630516005851C2 /* TTRequestLoader.h in Headers */,
- 662D81D312630516005851C2 /* TTURLCache.h in Headers */,
- 662D81D412630516005851C2 /* TTURLDataResponse.h in Headers */,
- 662D81D512630516005851C2 /* TTURLImageResponse.h in Headers */,
- 662D81D612630516005851C2 /* TTURLRequest.h in Headers */,
- 662D81D712630516005851C2 /* TTURLRequestCachePolicy.h in Headers */,
- 662D81D812630516005851C2 /* TTURLRequestDelegate.h in Headers */,
- 662D81D912630516005851C2 /* TTURLRequestModel.h in Headers */,
- 662D81DA12630516005851C2 /* TTURLRequestQueue.h in Headers */,
- 662D81DB12630516005851C2 /* TTURLResponse.h in Headers */,
- 662D81DC12630516005851C2 /* Three20Network_Prefix.pch in Headers */,
- 662D81DD12630516005851C2 /* TTURLRequestQueueInternal.h in Headers */,
- 664B29BE12848AA50008D569 /* TTErrorCodes.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
BEF31F360F352DF5000DE5D2 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -478,43 +390,6 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 662D81A0126304EB005851C2 /* Three20NetworkUnitTests-Xcode3.2.5 */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 662D81AE126304EB005851C2 /* Build configuration list for PBXNativeTarget "Three20NetworkUnitTests-Xcode3.2.5" */;
- buildPhases = (
- 662D81A5126304EB005851C2 /* Resources */,
- 662D81A6126304EB005851C2 /* Sources */,
- 662D81AA126304EB005851C2 /* Frameworks */,
- 662D81AD126304EB005851C2 /* ShellScript */,
- );
- buildRules = (
- );
- dependencies = (
- 66C16B27126305F500A7825A /* PBXTargetDependency */,
- );
- name = "Three20NetworkUnitTests-Xcode3.2.5";
- productName = CoreUnitTests;
- productReference = 662D81B2126304EB005851C2 /* NetworkUnitTests-Xcode3.2.5.octest */;
- productType = "com.apple.product-type.bundle";
- };
- 662D81C912630516005851C2 /* Three20Network-Xcode3.2.5 */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 662D81EB12630516005851C2 /* Build configuration list for PBXNativeTarget "Three20Network-Xcode3.2.5" */;
- buildPhases = (
- 662D81CC12630516005851C2 /* Headers */,
- 662D81DE12630516005851C2 /* Protect Copied Headers */,
- 662D81DF12630516005851C2 /* Sources */,
- 662D81EA12630516005851C2 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "Three20Network-Xcode3.2.5";
- productName = Three20;
- productReference = 662D81EF12630516005851C2 /* libThree20Network-Xcode3.2.5.a */;
- productType = "com.apple.product-type.library.static";
- };
BEF31F390F352DF5000DE5D2 /* Three20Network */ = {
isa = PBXNativeTarget;
buildConfigurationList = BEF31F410F352E14000DE5D2 /* Build configuration list for PBXNativeTarget "Three20Network" */;
@@ -583,9 +458,7 @@
projectRoot = "";
targets = (
BEF31F390F352DF5000DE5D2 /* Three20Network */,
- 662D81C912630516005851C2 /* Three20Network-Xcode3.2.5 */,
EB9E6C6110B6A8F800DE563C /* Three20NetworkUnitTests */,
- 662D81A0126304EB005851C2 /* Three20NetworkUnitTests-Xcode3.2.5 */,
);
};
/* End PBXProject section */
@@ -608,16 +481,6 @@
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
- 662D81A5126304EB005851C2 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 66F955BD1266647A00BEF6F0 /* both.png in Resources */,
- 66F955BE1266647A00BEF6F0 /* both@2x.png in Resources */,
- 66F955BF1266647A00BEF6F0 /* only@2x.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
EB9E6C5D10B6A8F800DE563C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -631,33 +494,6 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 662D81AD126304EB005851C2 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
- };
- 662D81DE12630516005851C2 /* Protect Copied Headers */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Protect Copied Headers";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = "/bin/sh ../scripts/Protect.command";
- shellScript = "";
- };
6E645F091187AD0E00F08CB1 /* Protect Copied Headers */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -688,35 +524,6 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
- 662D81A6126304EB005851C2 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 662D81A7126304EB005851C2 /* MockModelDelegate.m in Sources */,
- 662D81A8126304EB005851C2 /* NetworkModelTests.m in Sources */,
- 66F955B1126662E300BEF6F0 /* NetworkURLCacheTests.m in Sources */,
- E1F076A2130521F7007CA6F1 /* NetworkRequestTimeoutTests.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 662D81DF12630516005851C2 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 662D81E012630516005851C2 /* TTGlobalNetwork.m in Sources */,
- 662D81E112630516005851C2 /* TTUserInfo.m in Sources */,
- 662D81E212630516005851C2 /* TTModel.m in Sources */,
- 662D81E312630516005851C2 /* TTRequestLoader.m in Sources */,
- 662D81E412630516005851C2 /* TTURLCache.m in Sources */,
- 662D81E512630516005851C2 /* TTURLDataResponse.m in Sources */,
- 662D81E612630516005851C2 /* TTURLImageResponse.m in Sources */,
- 662D81E712630516005851C2 /* TTURLRequest.m in Sources */,
- 662D81E812630516005851C2 /* TTURLRequestModel.m in Sources */,
- 662D81E912630516005851C2 /* TTURLRequestQueue.m in Sources */,
- 664B29C212848AAD0008D569 /* TTErrorCodes.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
BEF31F370F352DF5000DE5D2 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -750,11 +557,6 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
- 66C16B27126305F500A7825A /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 662D81C912630516005851C2 /* Three20Network-Xcode3.2.5 */;
- targetProxy = 66C16B26126305F500A7825A /* PBXContainerItemProxy */;
- };
6EE7367111849C6300A35176 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Three20Core;
@@ -773,97 +575,6 @@
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
- 662D81AF126304EB005851C2 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6EE7364C11849B3D00A35176 /* UnitTests.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
- PRODUCT_NAME = "$(BASE_PRODUCT_NAME)-Xcode3.2.5";
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- 662D81B0126304EB005851C2 /* Internal */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6EE7364C11849B3D00A35176 /* UnitTests.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
- PRODUCT_NAME = "$(BASE_PRODUCT_NAME)-Xcode3.2.5";
- SDKROOT = iphoneos;
- };
- name = Internal;
- };
- 662D81B1126304EB005851C2 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6EE7364C11849B3D00A35176 /* UnitTests.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- PREBINDING = NO;
- PRODUCT_NAME = "$(BASE_PRODUCT_NAME)-Xcode3.2.5";
- SDKROOT = iphoneos;
- ZERO_LINK = NO;
- };
- name = Release;
- };
- 662D81EC12630516005851C2 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6EE7364B11849B3D00A35176 /* Library.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
- PRODUCT_NAME = "$(BASE_PRODUCT_NAME)-Xcode3.2.5";
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- 662D81ED12630516005851C2 /* Internal */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6EE7364B11849B3D00A35176 /* Library.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = NO;
- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
- PRODUCT_NAME = "$(BASE_PRODUCT_NAME)-Xcode3.2.5";
- RUN_CLANG_STATIC_ANALYZER = YES;
- SDKROOT = iphoneos;
- };
- name = Internal;
- };
- 662D81EE12630516005851C2 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 6EE7364B11849B3D00A35176 /* Library.xcconfig */;
- buildSettings = {
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- PREBINDING = NO;
- PRODUCT_NAME = "$(BASE_PRODUCT_NAME)-Xcode3.2.5";
- SDKROOT = iphoneos;
- ZERO_LINK = NO;
- };
- name = Release;
- };
6E92493F112C6F4000531F03 /* Internal */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6E64541F1184BDF900F08CB1 /* Project.xcconfig */;
@@ -993,26 +704,6 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 662D81AE126304EB005851C2 /* Build configuration list for PBXNativeTarget "Three20NetworkUnitTests-Xcode3.2.5" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 662D81AF126304EB005851C2 /* Debug */,
- 662D81B0126304EB005851C2 /* Internal */,
- 662D81B1126304EB005851C2 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 662D81EB12630516005851C2 /* Build configuration list for PBXNativeTarget "Three20Network-Xcode3.2.5" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 662D81EC12630516005851C2 /* Debug */,
- 662D81ED12630516005851C2 /* Internal */,
- 662D81EE12630516005851C2 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
BEF31F410F352E14000DE5D2 /* Build configuration list for PBXNativeTarget "Three20Network" */ = {
isa = XCConfigurationList;
buildConfigurations = (
View
2  src/Three20Style/Sources/TTBevelBorderStyle.m
@@ -105,7 +105,7 @@ - (void)draw:(TTStyleContext*)context {
UIColor* topColor = _lightSource >= 0 && _lightSource <= 180 ? _highlight : _shadow;
UIColor* leftColor = _lightSource >= 90 && _lightSource <= 270
? _highlight : _shadow;
- UIColor* bottomColor = _lightSource >= 180 && _lightSource <= 360 || _lightSource == 0
+ UIColor* bottomColor = (_lightSource >= 180 && _lightSource <= 360) || _lightSource == 0
? _highlight : _shadow;
UIColor* rightColor = (_lightSource >= 270 && _lightSource <= 360)
|| (_lightSource >= 0 && _lightSource <= 90)
View
2  src/Three20Style/Sources/TTFlowLayout.m
@@ -35,7 +35,7 @@ @implementation TTFlowLayout
///////////////////////////////////////////////////////////////////////////////////////////////////
- (CGSize)layoutSubviews:(NSArray*)subviews forView:(UIView*)view {
CGFloat x = _padding, y = _padding;
- CGFloat maxX = 0, rowHeight = 0;
+ CGFloat maxX = 0.0f, rowHeight = 0.0f;
CGFloat maxWidth = view.frame.size.width - _padding*2;
for (UIView* subview in subviews) {
if (x > _padding && x + subview.frame.size.width > maxWidth) {
View
2  src/Three20Style/Sources/TTGlobalStyle.m
@@ -16,4 +16,4 @@
#import "Three20Style/TTGlobalStyle.h"
-const CGFloat ttkRounded = -1;
+const CGFloat ttkRounded = -1.0f;
View
4 src/Three20Style/Sources/TTGridLayout.m
@@ -48,10 +48,10 @@ - (id)init {
- (CGSize)layoutSubviews:(NSArray*)subviews forView:(UIView*)view {
CGFloat innerWidth = (view.frame.size.width - _padding*2);
CGFloat width = ceil(innerWidth / _columnCount);
- CGFloat rowHeight = 0;
+ CGFloat rowHeight = 0.0f;
CGFloat x = _padding, y = _padding;
- CGFloat maxX = 0, lastHeight = 0;
+ CGFloat maxX = 0.0f, lastHeight = 0.0f;
NSInteger column = 0;
for (UIView* subview in subviews) {
if (column % _columnCount == 0) {
View
2  src/Three20Style/Sources/TTRectangleShape.m
@@ -64,7 +64,7 @@ - (void)addInverseToPath:(CGRect)rect {
CGFloat fw = rect.size.width;
CGFloat fh = rect.size.height;
- CGFloat width = 5;
+ CGFloat width = 5.0f;
CGRect shadowRect = CGRectMake(-width, -width, fw+width*2, fh+width*2);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, nil, shadowRect);
View
2  src/Three20Style/Sources/TTRoundedRectangleShape.m
@@ -89,7 +89,7 @@ - (void)addInverseToPath:(CGRect)rect {
CGFloat fw = rect.size.width;
CGFloat fh = rect.size.height;
- CGFloat width = 5;
+ CGFloat width = 5.0f;
CGRect shadowRect = CGRectMake(-width, -width, fw+width*2, fh+width*2);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, nil, shadowRect);
View
4 src/Three20Style/Sources/TTShapeInternal.m
@@ -16,6 +16,6 @@
#import "Three20Style/private/TTShapeInternal.h"
-const CGFloat kArrowPointWidth = 2.8;
-const CGFloat kArrowRadius = 2;
+const CGFloat kArrowPointWidth = 2.8f;
+const CGFloat kArrowRadius = 2.0f;
View
14 src/Three20Style/Sources/TTSpeechBubbleShape.m
@@ -19,7 +19,7 @@
// Style (private)
#import "Three20Style/private/TTShapeInternal.h"
-static const CGFloat kInsetWidth = 5;
+static const CGFloat kInsetWidth = 5.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -59,8 +59,8 @@ + (TTSpeechBubbleShape*)shapeWithRadius:(CGFloat)radius pointLocation:(CGFloat)p
///////////////////////////////////////////////////////////////////////////////////////////////////
- (CGRect)subtractPointFromRect:(CGRect)rect {
- CGFloat x = 0;
- CGFloat y = 0;
+ CGFloat x = 0.0f;
+ CGFloat y = 0.0f;
CGFloat w = rect.size.width;
CGFloat h = rect.size.height;
@@ -97,7 +97,7 @@ - (void)addTopEdge:(CGSize)size lightSource:(NSInteger)lightSource toPath:(CGMut
reset:(BOOL)reset {
CGFloat fw = size.width;
CGFloat fh = size.height;
- CGFloat pointX = 0;
+ CGFloat pointX = 0.0f;
CGFloat radius = RD(_radius);
if (lightSource >= 0 && lightSource <= 90) {
@@ -131,7 +131,7 @@ - (void)addRightEdge:(CGSize)size lightSource:(NSInteger)lightSource toPath:(CGM
reset:(BOOL)reset {
CGFloat fw = size.width;
CGFloat fh = size.height;
- CGFloat pointY = 0;
+ CGFloat pointY = 0.0f;
CGFloat radius = RD(_radius);
if (reset) {
@@ -157,7 +157,7 @@ - (void)addBottomEdge:(CGSize)size lightSource:(NSInteger)lightSource toPath:(CG
reset:(BOOL)reset {
CGFloat fw = size.width;
CGFloat fh = size.height;
- CGFloat pointX = 0;
+ CGFloat pointX = 0.0f;
CGFloat radius = RD(_radius);
if (reset) {
@@ -190,7 +190,7 @@ - (void)addBottomEdge:(CGSize)size lightSource:(NSInteger)lightSource toPath:(CG
- (void)addLeftEdge:(CGSize)size lightSource:(NSInteger)lightSource toPath:(CGMutablePathRef)path
reset:(BOOL)reset {
CGFloat fh = size.height;
- CGFloat pointY = 0;
+ CGFloat pointY = 0.0f;
CGFloat radius = RD(_radius);
if (reset) {
View
2  src/Three20Style/Sources/TTStyledLayout.m
@@ -709,7 +709,7 @@ - (void)layoutText:(TTStyledTextNode*)textNode container:(TTStyledElement*)eleme
NSInteger stringIndex = 0;
NSInteger lineStartIndex = 0;
- CGFloat frameWidth = 0;
+ CGFloat frameWidth = 0.0f;
NSInteger frameStart = 0;
while (stringIndex < length) {
View
1  src/Three20Style/Sources/TTStyledTextParser.m
@@ -211,6 +211,7 @@ - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
node.URL = [attributeDict objectForKey:@"href"];
node.className = [attributeDict objectForKey:@"class"];
[self pushNode:node];
+
} else if ([tag isEqualToString:@"button"]) {
TTStyledButtonNode* node = [[[TTStyledButtonNode alloc] init] autorelease];
node.URL = [attributeDict objectForKey:@"href"];
View
12 src/Three20UI/Sources/TTActivityLabel.m
@@ -32,11 +32,11 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static CGFloat kMargin = 10;
-static CGFloat kPadding = 15;
-static CGFloat kBannerPadding = 8;
-static CGFloat kSpacing = 6;
-static CGFloat kProgressMargin = 6;
+static CGFloat kMargin = 10.0f;
+static CGFloat kPadding = 15.0f;
+static CGFloat kBannerPadding = 8.0f;
+static CGFloat kSpacing = 6.0f;
+static CGFloat kProgressMargin = 6.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -191,7 +191,7 @@ - (void)layoutSubviews {
CGSize textSize = [_label.text sizeWithFont:_label.font];
- CGFloat indicatorSize = 0;
+ CGFloat indicatorSize = 0.0f;
[_activityIndicator sizeToFit];
if (_activityIndicator.isAnimating) {
if (_activityIndicator.height > textSize.height) {
View
4 src/Three20UI/Sources/TTButton.m
@@ -35,8 +35,8 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kHPadding = 8;
-static const CGFloat kVPadding = 7;
+static const CGFloat kHPadding = 8.0f;
+static const CGFloat kVPadding = 7.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
6 src/Three20UI/Sources/TTButtonBar.m
@@ -23,9 +23,9 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static CGFloat kPadding = 10;
-static CGFloat kButtonHeight = 30;
-static CGFloat kButtonMaxWidth = 120;
+static CGFloat kPadding = 10.0f;
+static CGFloat kButtonHeight = 30.0f;
+static CGFloat kButtonMaxWidth = 120.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
8 src/Three20UI/Sources/TTButtonContent.m
@@ -16,6 +16,9 @@
#import "Three20UI/private/TTButtonContent.h"
+// Style
+#import "Three20Style/TTImageStyle.h"
+
// UI
#import "Three20UI/TTImageViewDelegate.h"
@@ -149,6 +152,11 @@ - (void)reload {
}
} else {
+ TTImageStyle* imageStyle = [_style firstStyleOfClass:[TTImageStyle class]];
+ if (imageStyle && imageStyle.defaultImage) {
+ self.image = imageStyle.defaultImage;
+ }
+
TTURLRequest* request = [TTURLRequest requestWithURL:_imageURL delegate:self];
request.response = [[[TTURLImageResponse alloc] init] autorelease];
[request send];
View
8 src/Three20UI/Sources/TTErrorView.m
@@ -26,9 +26,9 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kVPadding1 = 30;
-static const CGFloat kVPadding2 = 20;
-static const CGFloat kHPadding = 10;
+static const CGFloat kVPadding1 = 30.0f;
+static const CGFloat kVPadding2 = 20.0f;
+static const CGFloat kHPadding = 10.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -104,7 +104,7 @@ - (void)layoutSubviews {
+ kVPadding1 + kVPadding2;
BOOL canShowImage = _imageView.image && self.height > maxHeight;
- CGFloat totalHeight = 0;
+ CGFloat totalHeight = 0.0f;
if (canShowImage) {
totalHeight += _imageView.height;
View
2  src/Three20UI/Sources/TTLauncherHighlightView.m
@@ -107,7 +107,7 @@ - (void)layoutLabel {
constrainedToSize:CGSizeMake(width, superviewSize.height)].height;
// If the highlighted rect is above center, put the text below it; otherwise, above it.
- CGFloat y = 0.0;
+ CGFloat y = 0.0f;
if (_highlightRect.origin.y + (_highlightRect.size.height / 2) < superviewSize.height / 2) {
y = _highlightRect.origin.y + _highlightRect.size.height + kHighlightTextPadding;
View
14 src/Three20UI/Sources/TTLauncherView.m
@@ -43,12 +43,12 @@
#import "Three20Core/TTDebugFlags.h"
#import "Three20Core/TTGlobalCoreRects.h"
-static const CGFloat kMargin = 0;
-static const CGFloat kPadding = 0;
-static const CGFloat kPromptMargin = 40;
-static const CGFloat kPagerHeight = 20;
-static const CGFloat kWobbleRadians = 1.5;
-static const CGFloat kSpringLoadFraction = 0.18;
+static const CGFloat kMargin = 0.0f;
+static const CGFloat kPadding = 0.0f;
+static const CGFloat kPromptMargin = 40.0f;
+static const CGFloat kPagerHeight = 20.0f;
+static const CGFloat kWobbleRadians = 1.5f;
+static const CGFloat kSpringLoadFraction = 0.18f;
static const NSTimeInterval kEditHoldTimeInterval = 1;
static const NSTimeInterval kSpringLoadTimeInterval = 0.5;
@@ -266,7 +266,7 @@ - (void)layoutButtons {
CGFloat buttonHeight = [self rowHeight];
CGFloat pageWidth = _scrollView.width;
- CGFloat x = kMargin, minX = 0;
+ CGFloat x = kMargin, minX = 0.0f;
for (NSMutableArray* buttonPage in _buttons) {
CGFloat y = kMargin;
for (TTLauncherButton* button in buttonPage) {
View
2  src/Three20UI/Sources/TTMessageController.m
@@ -168,7 +168,7 @@ - (void)createFieldViews {
///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)layoutViews {
- CGFloat y = 0;
+ CGFloat y = 0.0f;
for (UIView* view in _scrollView.subviews) {
view.frame = CGRectMake(0, y, self.view.width, view.height);
View
2  src/Three20UI/Sources/TTPageControl.m
@@ -135,7 +135,7 @@ - (CGSize)sizeThatFits:(CGSize)size {
TTStyleContext* context = [[[TTStyleContext alloc] init] autorelease];
CGSize dotSize = [self.normalDotStyle addToSize:CGSizeZero context:context];
- CGFloat margin = 0;
+ CGFloat margin = 0.0f;
TTBoxStyle* boxStyle = [self.normalDotStyle firstStyleOfClass:[TTBoxStyle class]];
if (boxStyle) {
margin = boxStyle.margin.right + boxStyle.margin.left;
View
22 src/Three20UI/Sources/TTPhotoView.m
@@ -185,7 +185,7 @@ - (void)layoutSubviews {
CGFloat height = self.height;
CGFloat cx = self.bounds.origin.x + width/2;
CGFloat cy = self.bounds.origin.y + height/2;
- CGFloat marginRight = 0, marginLeft = 0, marginBottom = TTToolbarHeight();
+ CGFloat marginRight = 0.0f, marginLeft = 0.0f, marginBottom = TTToolbarHeight();
// Since the photo view is constrained to the size of the image, but we want to position
// the status views relative to the screen, offset by the difference
@@ -280,23 +280,13 @@ - (void)setHidesCaption:(BOOL)hidesCaption {
///////////////////////////////////////////////////////////////////////////////////////////////////
- (BOOL)loadPreview:(BOOL)fromNetwork {
- BOOL keepTrying = YES;
- // Trying to load the large image first causes scrolling to stall something
- // fierce when using local images on older iPhones since the large image
- // *always* starts to load in time for this first call to succeed. So we
- // skip straight to attempting to load the small version unless we're loading
- // off the network.
- if (fromNetwork) {
- keepTrying = [self loadVersion:TTPhotoVersionLarge fromNetwork:NO];
- }
- if (keepTrying) {
- if (![self loadVersion:TTPhotoVersionSmall fromNetwork:NO]) {
- if (![self loadVersion:TTPhotoVersionThumbnail fromNetwork:fromNetwork]) {
- return NO;
+ if (![self loadVersion:TTPhotoVersionLarge fromNetwork:NO]) {
+ if (![self loadVersion:TTPhotoVersionSmall fromNetwork:NO]) {
+ if (![self loadVersion:TTPhotoVersionThumbnail fromNetwork:fromNetwork]) {
+ return NO;
+ }
}
}
- }
-
return YES;
}
View
27 src/Three20UI/Sources/TTPickerTextField.m
@@ -32,12 +32,12 @@
static NSString* kEmpty = @" ";
static NSString* kSelected = @"`";
-static const CGFloat kCellPaddingY = 3;
-static const CGFloat kPaddingX = 8;
-static const CGFloat kSpacingY = 6;
-static const CGFloat kPaddingRatio = 1.75;
-static const CGFloat kClearButtonSize = 38;
-static const CGFloat kMinCursorWidth = 50;
+static const CGFloat kCellPaddingY = 3.0f;
+static const CGFloat kPaddingX = 8.0f;
+static const CGFloat kSpacingY = 6.0f;
+static const CGFloat kPaddingRatio = 1.75f;
+static const CGFloat kClearButtonSize = 38.0f;
+static const CGFloat kMinCursorWidth = 50.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -130,9 +130,8 @@ - (void)updateHeight {
self.height = newHeight;
[self setNeedsDisplay];
- SEL sel = @selector(textFieldDidResize:);
- if ([self.delegate respondsToSelector:sel]) {
- [self.delegate performSelector:sel withObject:self];
+ if ([self.delegate respondsToSelector:@selector(textFieldDidResize:)]) {
+ [(id)self.delegate textFieldDidResize:self];
}
[self scrollToVisibleLine:YES];
@@ -424,9 +423,8 @@ - (void)addCellWithObject:(id)object {
// Reset text so the cursor moves to be at the end of the cellViews
self.text = kEmpty;
- SEL sel = @selector(textField:didAddCellAtIndex:);
- if ([self.delegate respondsToSelector:sel]) {
- [self.delegate performSelector:sel withObject:self withObject:(id)(_cellViews.count-1)];
+ if ([self.delegate respondsToSelector:@selector(textField:didAddCellAtIndex:)]) {
+ [(id)self.delegate textField:self didAddCellAtIndex:_cellViews.count-1];
}
}
@@ -439,9 +437,8 @@ - (void)removeCellWithObject:(id)object {
[_cellViews removeObjectAtIndex:i];
[cell removeFromSuperview];
- SEL sel = @selector(textField:didRemoveCellAtIndex:);
- if ([self.delegate respondsToSelector:sel]) {
- [self.delegate performSelector:sel withObject:self withObject:(id)i];
+ if ([self.delegate respondsToSelector:@selector(textField:didRemoveCellAtIndex:)]) {
+ [(id)self.delegate textField:self didRemoveCellAtIndex:i];
}
break;
}
View
6 src/Three20UI/Sources/TTPickerViewCell.m
@@ -23,9 +23,9 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kPaddingX = 8;
-static const CGFloat kPaddingY = 3;
-static const CGFloat kMaxWidth = 250;
+static const CGFloat kPaddingX = 8.0f;
+static const CGFloat kPaddingY = 3.0f;
+static const CGFloat kMaxWidth = 250.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
4 src/Three20UI/Sources/TTPostController.m
@@ -40,8 +40,8 @@
#import "Three20Core/NSStringAdditions.h"
#import "Three20Core/TTGlobalCore.h"
-static const CGFloat kMarginX = 5;
-static const CGFloat kMarginY = 6;
+static const CGFloat kMarginX = 5.0f;
+static const CGFloat kMarginY = 6.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
12 src/Three20UI/Sources/TTScrollView.m
@@ -28,17 +28,17 @@
#import "Three20Core/TTCorePreprocessorMacros.h"
static const NSInteger kOffscreenPages = 1;
-static const CGFloat kDefaultPageSpacing = 40.0;
-static const CGFloat kFlickThreshold = 60.0;
-static const CGFloat kTapZoom = 0.75;
-static const CGFloat kResistance = 0.15;
+static const CGFloat kDefaultPageSpacing = 40.0f;
+static const CGFloat kFlickThreshold = 60.0f;
+static const CGFloat kTapZoom = 0.75f;
+static const CGFloat kResistance = 0.15f;
static const NSInteger kInvalidIndex = -1;
static const NSTimeInterval kFlickDuration = 0.4;
static const NSTimeInterval kBounceDuration = 0.3;
static const NSTimeInterval kOvershoot = 2;
-static const CGFloat kIncreaseSpeed = 1.5; // How much increase after release touch.
+static const CGFloat kIncreaseSpeed = 1.5f; // How much increase after release touch.
// (Residual movement).
-static const CGFloat kFrameDuration = 1.0/40.0;
+static const CGFloat kFrameDuration = 1.0/40.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
View
16 src/Three20UI/Sources/TTSearchBar.m
@@ -34,16 +34,16 @@
#import "Three20Core/TTCorePreprocessorMacros.h"
#import "Three20Core/TTGlobalCoreLocale.h"
-static const CGFloat kMarginX = 5;
-static const CGFloat kMarginY = 7;
-static const CGFloat kPaddingX = 10;
-static const CGFloat kPaddingY = 10;
-static const CGFloat kSpacingX = 4;
+static const CGFloat kMarginX = 5.0f;
+static const CGFloat kMarginY = 7.0f;
+static const CGFloat kPaddingX = 10.0f;
+static const CGFloat kPaddingY = 10.0f;
+static const CGFloat kSpacingX = 4.0f;
-static const CGFloat kButtonSpacing = 12;
-static const CGFloat kButtonHeight = 30;
+static const CGFloat kButtonSpacing = 12.0f;
+static const CGFloat kButtonHeight = 30.0f;
-static const CGFloat kIndexViewMargin = 4;
+static const CGFloat kIndexViewMargin = 4.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
View
6 src/Three20UI/Sources/TTSearchTextField.m
@@ -41,8 +41,8 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kShadowHeight = 24;
-static const CGFloat kDesiredTableHeight = 150;
+static const CGFloat kShadowHeight = 24.0f;
+static const CGFloat kDesiredTableHeight = 150.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -472,7 +472,7 @@ - (UIView*)superviewForSearchResults {
- (CGRect)rectForSearchResults:(BOOL)withKeyboard {
UIView* superview = self.superviewForSearchResults;
- CGFloat y = 0;
+ CGFloat y = 0.0f;
UIView* view = self;
while (view != superview) {
y += view.top;
View
4 src/Three20UI/Sources/TTSearchlightLabel.m
@@ -133,7 +133,7 @@ - (void)drawRect:(CGRect)rect {
CGSize textSize = [self sizeThatFits:CGSizeZero];
- CGFloat x = 0;
+ CGFloat x = 0.0f;
if (_textAlignment == UITextAlignmentRight) {
x = self.frame.size.width - textSize.width;
@@ -141,7 +141,7 @@ - (void)drawRect:(CGRect)rect {
x = ceil(self.frame.size.width/2 - textSize.width/2);
}
- CGFloat y = 0;
+ CGFloat y = 0.0f;
if (self.contentMode == UIViewContentModeCenter) {
y = ceil(rect.size.height/2 + _font.capHeight/2);
View
2  src/Three20UI/Sources/TTStyledTextLabel.m
@@ -39,7 +39,7 @@
#import "Three20Core/TTCorePreprocessorMacros.h"
#import "Three20Core/TTDebug.h"
-static const CGFloat kCancelHighlightThreshold = 4;
+static const CGFloat kCancelHighlightThreshold = 4.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
2  src/Three20UI/Sources/TTStyledTextTableItemCell.m
@@ -30,7 +30,7 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kDisclosureIndicatorWidth = 23;
+static const CGFloat kDisclosureIndicatorWidth = 23.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
10 src/Three20UI/Sources/TTTabBarInternal.m
@@ -23,9 +23,9 @@
#import "Three20UI/TTTab.h"
#import "Three20UI/UIViewAdditions.h"
- CGFloat kTabMargin = 10;
-const NSInteger kMaxBadgeNumber = 99;
-static CGFloat kPadding = 10;
+ CGFloat kTabMargin = 10.0f;
+const NSInteger kMaxBadgeNumber = 99.0f;
+static CGFloat kPadding = 10.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -42,9 +42,9 @@ - (CGSize)layoutTabs {
if (self.contentMode == UIViewContentModeScaleToFill) {
CGFloat maxTextWidth = self.width - (kTabMargin*2 + kPadding*2*_tabViews.count);
- CGFloat totalTextWidth = 0;
+ CGFloat totalTextWidth = 0.0f;
CGFloat totalTabWidth = kTabMargin*2;
- CGFloat maxTabWidth = 0;
+ CGFloat maxTabWidth = 0.0f;
for (int i = 0; i < _tabViews.count; ++i) {
TTTab* tab = [_tabViews objectAtIndex:i];
[tab sizeToFit];
View
4 src/Three20UI/Sources/TTTableCaptionItemCell.m
@@ -26,8 +26,8 @@
#import "Three20Style/TTGlobalStyle.h"
#import "Three20Style/TTDefaultStyleSheet.h"
-static const CGFloat kKeySpacing = 12;
-static const CGFloat kKeyWidth = 75;
+static const CGFloat kKeySpacing = 12.0f;
+static const CGFloat kKeyWidth = 75.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
4 src/Three20UI/Sources/TTTableControlCell.m
@@ -28,8 +28,8 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kDefaultTextViewLines = 5;
-static const CGFloat kControlPadding = 8;
+static const CGFloat kDefaultTextViewLines = 5.0f;
+static const CGFloat kControlPadding = 8.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
2  src/Three20UI/Sources/TTTableFooterInfiniteScrollView.m
@@ -60,7 +60,7 @@ - (void)drawRect:(CGRect)rect{
CGContextSetRGBFillColor(contextRef, 1, 1, 1, 1);
CGContextFillRect(contextRef, rect);
if (!_loading) {
- CGFloat dotSize = 5;
+ CGFloat dotSize = 5.0f;
CGFloat x = roundf((self.width / 2) - (dotSize / 2));
CGFloat y = roundf((self.height / 2) - (dotSize / 2));
CGContextSetRGBFillColor(contextRef, 0.75, 0.75, 0.75, 1.0);
View
4 src/Three20UI/Sources/TTTableImageItemCell.m
@@ -33,8 +33,8 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kKeySpacing = 12;
-static const CGFloat kDefaultImageSize = 50;
+static const CGFloat kKeySpacing = 12.0f;
+static const CGFloat kDefaultImageSize = 50.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
6 src/Three20UI/Sources/TTTableMessageItemCell.m
@@ -31,8 +31,8 @@
#import "Three20Core/NSDateAdditions.h"
static const NSInteger kMessageTextLineCount = 2;
-static const CGFloat kDefaultMessageImageWidth = 34;
-static const CGFloat kDefaultMessageImageHeight = 34;
+static const CGFloat kDefaultMessageImageWidth = 34.0f;
+static const CGFloat kDefaultMessageImageHeight = 34.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -112,7 +112,7 @@ - (void)prepareForReuse {
- (void)layoutSubviews {
[super layoutSubviews];
- CGFloat left = 0;
+ CGFloat left = 0.0f;
if (_imageView2) {
_imageView2.frame = CGRectMake(kTableCellSmallMargin, kTableCellSmallMargin,
kDefaultMessageImageWidth, kDefaultMessageImageHeight);
View
2  src/Three20UI/Sources/TTTableMoreButtonCell.m
@@ -30,7 +30,7 @@
// Core
#import "Three20Core/TTCorePreprocessorMacros.h"
-static const CGFloat kMoreButtonMargin = 40;
+static const CGFloat kMoreButtonMargin = 40.0f;
///////////////////////////////////////////////////////////////////////////////////////////////////
View
7 src/Three20UI/Sources/TTTableSubtitleItemCell.m
@@ -94,6 +94,11 @@ + (CGFloat)tableView:(UITableView*)tableView rowHeightForObject:(id)object {
#pragma mark -
#pragma mark UIView
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)prepareForReuse {
+ [super prepareForReuse];
+ [_imageView2 unsetImage];
+}
///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)layoutSubviews {
@@ -101,7 +106,7 @@ - (void)layoutSubviews {
CGFloat height = self.contentView.height;
CGFloat width = self.contentView.width - (height + kTableCellSmallMargin);
- CGFloat left = 0;
+ CGFloat left = 0.0f;
if (_imageView2) {
_imageView2.frame = CGRectMake(0, 0, height, height);
View
2  src/Three20UI/Sources/TTTableTextItemCell.m
@@ -32,7 +32,7 @@
#import "Three20Style/TTDefaultStyleSheet.h"