Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Pixate button

  • Loading branch information...
commit 9a99c666ecfe9708ca3ba7283f4ce69b74ca79df 1 parent c5c875c
@kaishin authored
Showing with 3,981 additions and 23 deletions.
  1. +43 −0 Custom UIButtons.xcodeproj/project.pbxproj
  2. +5 −0 Custom UIButtons/CBAppDelegate.m
  3. +4 −0 Custom UIButtons/LicenseInfo.h
  4. +22 −0 Custom UIButtons/default.scss
  5. +40 −23 Custom UIButtons/en.lproj/MainStoryboard.storyboard
  6. +1 −0  PXEngine.framework/Headers
  7. +1 −0  PXEngine.framework/PXEngine
  8. +1 −0  PXEngine.framework/PrivateHeaders
  9. +1 −0  PXEngine.framework/Resources
  10. +16 −0 PXEngine.framework/Versions/0.1/Headers/NSDictionary+PXCSSEncoding.h
  11. +38 −0 PXEngine.framework/Versions/0.1/Headers/PXArc.h
  12. +21 −0 PXEngine.framework/Versions/0.1/Headers/PXBoundable.h
  13. +45 −0 PXEngine.framework/Versions/0.1/Headers/PXCircle.h
  14. +28 −0 PXEngine.framework/Versions/0.1/Headers/PXCornerRadius.h
  15. +117 −0 PXEngine.framework/Versions/0.1/Headers/PXDimension.h
  16. +54 −0 PXEngine.framework/Versions/0.1/Headers/PXEllipse.h
  17. +60 −0 PXEngine.framework/Versions/0.1/Headers/PXEngine.h
  18. +54 −0 PXEngine.framework/Versions/0.1/Headers/PXGradient.h
  19. +67 −0 PXEngine.framework/Versions/0.1/Headers/PXGraphics.h
  20. +36 −0 PXEngine.framework/Versions/0.1/Headers/PXLine.h
  21. +48 −0 PXEngine.framework/Versions/0.1/Headers/PXLinearGradient.h
  22. +15 −0 PXEngine.framework/Versions/0.1/Headers/PXMath.h
  23. +17 −0 PXEngine.framework/Versions/0.1/Headers/PXNonScalingStroke.h
  24. +29 −0 PXEngine.framework/Versions/0.1/Headers/PXPaint.h
  25. +26 −0 PXEngine.framework/Versions/0.1/Headers/PXPaintGroup.h
  26. +58 −0 PXEngine.framework/Versions/0.1/Headers/PXPaintable.h
  27. +71 −0 PXEngine.framework/Versions/0.1/Headers/PXPath.h
  28. +17 −0 PXEngine.framework/Versions/0.1/Headers/PXPie.h
  29. +37 −0 PXEngine.framework/Versions/0.1/Headers/PXPolygon.h
  30. +34 −0 PXEngine.framework/Versions/0.1/Headers/PXRadialGradient.h
  31. +72 −0 PXEngine.framework/Versions/0.1/Headers/PXRectangle.h
  32. +44 −0 PXEngine.framework/Versions/0.1/Headers/PXRenderable.h
  33. +81 −0 PXEngine.framework/Versions/0.1/Headers/PXSVGLoader.h
  34. +53 −0 PXEngine.framework/Versions/0.1/Headers/PXScene.h
  35. +52 −0 PXEngine.framework/Versions/0.1/Headers/PXShadow.h
  36. +29 −0 PXEngine.framework/Versions/0.1/Headers/PXShadowGroup.h
  37. +33 −0 PXEngine.framework/Versions/0.1/Headers/PXShadowPaint.h
  38. +73 −0 PXEngine.framework/Versions/0.1/Headers/PXShape.h
  39. +102 −0 PXEngine.framework/Versions/0.1/Headers/PXShapeGroup.h
  40. +56 −0 PXEngine.framework/Versions/0.1/Headers/PXShapeView.h
  41. +36 −0 PXEngine.framework/Versions/0.1/Headers/PXSolidPaint.h
  42. +84 −0 PXEngine.framework/Versions/0.1/Headers/PXStroke.h
  43. +26 −0 PXEngine.framework/Versions/0.1/Headers/PXStrokeGroup.h
  44. +26 −0 PXEngine.framework/Versions/0.1/Headers/PXStrokeRenderer.h
  45. +31 −0 PXEngine.framework/Versions/0.1/Headers/PXStrokeStroke.h
  46. +86 −0 PXEngine.framework/Versions/0.1/Headers/PXStyleable.h
  47. +147 −0 PXEngine.framework/Versions/0.1/Headers/PXStylesheet.h
  48. +138 −0 PXEngine.framework/Versions/0.1/Headers/PXVector.h
  49. +89 −0 PXEngine.framework/Versions/0.1/Headers/UIColor+PXColors.h
  50. BIN  PXEngine.framework/Versions/0.1/PXEngine
  51. +619 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/DDLog.h
  52. +19 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXCharacterMatcher.h
  53. +125 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXDeclaration.h
  54. +32 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXIdSelector.h
  55. +37 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXLexeme.h
  56. +19 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXLexemeCreator.h
  57. +24 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXLog.h
  58. +28 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXLoggingUtils.h
  59. +24 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXMargin.h
  60. +20 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXNumberMatcher.h
  61. +113 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXParserBase.h
  62. +27 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXPatternMatcher.h
  63. +90 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXRuleSet.h
  64. +33 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXSelector.h
  65. +21 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXSourceEmitter.h
  66. +25 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXSourceWriter.h
  67. +56 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXSpecificity.h
  68. +92 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXStylesheetLexer.h
  69. +51 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXStylesheetParser.h
  70. +120 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXStylesheetTokenType.h
  71. +18 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXStyling.h
  72. +83 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXTypeSelector.h
  73. +20 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/PXWordMatcher.h
  74. +20 −0 PXEngine.framework/Versions/0.1/PrivateHeaders/UIView+PXStyling.h
  75. BIN  PXEngine.framework/Versions/0.1/Resources/AppledocSettings.plist
  76. BIN  PXEngine.framework/Versions/0.1/Resources/Info.plist
  77. BIN  PXEngine.framework/Versions/0.1/Resources/en.lproj/InfoPlist.strings
  78. +1 −0  PXEngine.framework/Versions/Current
View
43 Custom UIButtons.xcodeproj/project.pbxproj
@@ -42,11 +42,27 @@
9D9738F6162834C500F1E992 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9D9738EC162834C500F1E992 /* Icon@2x.png */; };
9D9738F7162834C500F1E992 /* iTunesArtwork.png in Resources */ = {isa = PBXBuildFile; fileRef = 9D9738ED162834C500F1E992 /* iTunesArtwork.png */; };
9D9738F8162834C500F1E992 /* iTunesArtwork@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9D9738EE162834C500F1E992 /* iTunesArtwork@2x.png */; };
+ 9DA9096F16ADD4CE0029BA1B /* PXEngine.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DA9096E16ADD4CE0029BA1B /* PXEngine.framework */; };
+ 9DA9097616ADDDD30029BA1B /* default.scss in Resources */ = {isa = PBXBuildFile; fileRef = 9DA9097516ADDDD30029BA1B /* default.scss */; };
9DAEF93E1621E71B002B0242 /* CBBezier.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DAEF93D1621E71B002B0242 /* CBBezier.m */; };
9DDA94DF161F4B0F0099D9C3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DDA94DE161F4B0F0099D9C3 /* QuartzCore.framework */; };
9DDA94F5161F68C90099D9C3 /* CBLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DDA94F4161F68C90099D9C3 /* CBLayer.m */; };
/* End PBXBuildFile section */
+/* Begin PBXBuildRule section */
+ 9DA9097416ADDC3E0029BA1B /* PBXBuildRule */ = {
+ isa = PBXBuildRule;
+ compilerSpec = com.apple.compilers.proxy.script;
+ filePatterns = "*.scss";
+ fileType = pattern.proxy;
+ isEditable = 1;
+ outputFiles = (
+ "${TARGET_BUILD_DIR}/${INPUT_FILE_BASE}.css",
+ );
+ script = "source /Users/reda/.rvm/environments/default\n${GEM_HOME}/bin/sass \"${INPUT_FILE_PATH}\" ${TARGET_BUILD_DIR}/${INPUT_FILE_BASE}.css";
+ };
+/* End PBXBuildRule section */
+
/* Begin PBXContainerItemProxy section */
9D5AADB21618F5F90000EF26 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@@ -100,6 +116,9 @@
9D9738EC162834C500F1E992 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = "<group>"; };
9D9738ED162834C500F1E992 /* iTunesArtwork.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iTunesArtwork.png; sourceTree = "<group>"; };
9D9738EE162834C500F1E992 /* iTunesArtwork@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "iTunesArtwork@2x.png"; sourceTree = "<group>"; };
+ 9DA9096E16ADD4CE0029BA1B /* PXEngine.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = PXEngine.framework; sourceTree = "<group>"; };
+ 9DA9097116ADD6110029BA1B /* LicenseInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LicenseInfo.h; sourceTree = "<group>"; };
+ 9DA9097516ADDDD30029BA1B /* default.scss */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = default.scss; sourceTree = "<group>"; };
9DAEF93C1621E71B002B0242 /* CBBezier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CBBezier.h; sourceTree = "<group>"; };
9DAEF93D1621E71B002B0242 /* CBBezier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CBBezier.m; sourceTree = "<group>"; };
9DDA94DE161F4B0F0099D9C3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
@@ -116,6 +135,7 @@
9D5AAD8B1618F5F90000EF26 /* UIKit.framework in Frameworks */,
9D5AAD8D1618F5F90000EF26 /* Foundation.framework in Frameworks */,
9D5AAD8F1618F5F90000EF26 /* CoreGraphics.framework in Frameworks */,
+ 9DA9096F16ADD4CE0029BA1B /* PXEngine.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -154,6 +174,7 @@
9D5AAD891618F5F90000EF26 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 9DA9096E16ADD4CE0029BA1B /* PXEngine.framework */,
9DDA94DE161F4B0F0099D9C3 /* QuartzCore.framework */,
9D5AAD8A1618F5F90000EF26 /* UIKit.framework */,
9D5AAD8C1618F5F90000EF26 /* Foundation.framework */,
@@ -185,11 +206,13 @@
9D5AAD911618F5F90000EF26 /* Supporting Files */ = {
isa = PBXGroup;
children = (
+ 9DA9097716ADDDE00029BA1B /* Sass */,
9D9738E4162834B400F1E992 /* Images */,
9D5AAD921618F5F90000EF26 /* Custom UIButtons-Info.plist */,
9D5AAD931618F5F90000EF26 /* InfoPlist.strings */,
9D5AAD961618F5F90000EF26 /* main.m */,
9D5AAD981618F5F90000EF26 /* Custom UIButtons-Prefix.pch */,
+ 9DA9097116ADD6110029BA1B /* LicenseInfo.h */,
);
name = "Supporting Files";
sourceTree = "<group>";
@@ -241,6 +264,14 @@
name = Images;
sourceTree = "<group>";
};
+ 9DA9097716ADDDE00029BA1B /* Sass */ = {
+ isa = PBXGroup;
+ children = (
+ 9DA9097516ADDDD30029BA1B /* default.scss */,
+ );
+ name = Sass;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -253,6 +284,7 @@
9D5AAD841618F5F90000EF26 /* Resources */,
);
buildRules = (
+ 9DA9097416ADDC3E0029BA1B /* PBXBuildRule */,
);
dependencies = (
);
@@ -336,6 +368,7 @@
9D9738F6162834C500F1E992 /* Icon@2x.png in Resources */,
9D9738F7162834C500F1E992 /* iTunesArtwork.png in Resources */,
9D9738F8162834C500F1E992 /* iTunesArtwork@2x.png in Resources */,
+ 9DA9097616ADDDD30029BA1B /* default.scss in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -448,6 +481,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ OTHER_LDFLAGS = "-ObjC";
SDKROOT = iphoneos;
};
name = Debug;
@@ -469,6 +503,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ OTHER_LDFLAGS = "-ObjC";
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
@@ -477,6 +512,10 @@
9D5AADC01618F5F90000EF26 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ );
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Custom UIButtons/Custom UIButtons-Prefix.pch";
INFOPLIST_FILE = "Custom UIButtons/Custom UIButtons-Info.plist";
@@ -488,6 +527,10 @@
9D5AADC11618F5F90000EF26 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ );
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Custom UIButtons/Custom UIButtons-Prefix.pch";
INFOPLIST_FILE = "Custom UIButtons/Custom UIButtons-Info.plist";
View
5 Custom UIButtons/CBAppDelegate.m
@@ -7,12 +7,17 @@
//
#import "CBAppDelegate.h"
+#import <PXEngine/PXEngine.h>
+#import "LicenseInfo.h"
@implementation CBAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
+ [PXEngine licenseKey:@LICENSE_SERIAL forUser:@LICENSE_EMAIL];
+ [PXStylesheet currentApplicationStylesheet].monitorChanges = YES;
+ NSLog(@"%@", [PXStylesheet currentApplicationStylesheet].filePath);
return YES;
}
View
4 Custom UIButtons/LicenseInfo.h
@@ -0,0 +1,4 @@
+
+#define LICENSE_EMAIL "Pixate_Engine_RC"
+
+#define LICENSE_SERIAL "BPHH1-P6IJG-EAT0R-9IL2J-4K70S-8E5GO-JHD1V-GO6AP-6C0U0-J621U-9ATQ7-C0SP7-SE6I3-9G6F2-JQ71R-VK" // Exp 2/1/13
View
22 Custom UIButtons/default.scss
@@ -0,0 +1,22 @@
+%button-style {
+ border-color: rgba(190.00, 103.00, 0.00, 1.00);
+ border-radius: 5px;
+ border-width: 1px;
+ box-shadow: inset 0 1.5px 0 rgba(255.00, 255.00, 255.00, 0.5), inset 0 -1.5px 0 rgba(255.00, 255.00, 255.00, 0.5), inset -1.5px 0 0 rgba(255.00, 255.00, 255.00, 0.5), inset 1.5px 0 0 rgba(255.00, 255.00, 255.00, 0.5);
+ font-family: "Avenir Next Condensed";
+ color: rgba(128.00, 64.00, 0.00, 1.00);
+ font-size: 19px;
+ font-weight: bold;
+ height: 37px;
+}
+
+#pixateButton {
+ @extend %button-style;
+ background-color: linear-gradient(rgba(222.00, 141.00, 0.00, 1.00), rgba(234.00, 201.00, 71.00, 1.00));
+
+
+ &:highlighted {
+ @extend %button-style;
+ background-color: linear-gradient(rgba(234.00, 201.00, 71.00, 1.00), rgba(222.00, 141.00, 0.00, 1.00));
+ }
+}
View
63 Custom UIButtons/en.lproj/MainStoryboard.storyboard
@@ -19,24 +19,11 @@
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
- <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="wDh-la-ziX">
- <rect key="frame" x="20" y="108" width="280" height="37"/>
- <fontDescription key="fontDescription" name="AvenirNextCondensed-DemiBold" family="Avenir Next Condensed" pointSize="19"/>
- <size key="titleShadowOffset" width="0.0" height="1"/>
- <state key="normal" title="Full sized image" backgroundImage="button.png">
- <color key="titleColor" red="0.50196081400000003" green="0.25098040700000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
- <color key="titleShadowColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
- </state>
- <state key="highlighted" backgroundImage="buttonHighlighted.png">
- <color key="titleColor" red="0.50196081400000003" green="0.25098040700000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
- <color key="titleShadowColor" red="1" green="0.80000001190000003" blue="0.40000000600000002" alpha="1" colorSpace="calibratedRGB"/>
- </state>
- </button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="uIT-MX-1PF">
- <rect key="frame" x="20" y="164" width="280" height="37"/>
+ <rect key="frame" x="20" y="106" width="280" height="37"/>
<fontDescription key="fontDescription" name="AvenirNextCondensed-DemiBold" family="Avenir Next Condensed" pointSize="19"/>
<size key="titleShadowOffset" width="0.0" height="1"/>
- <state key="normal" title="Full sized image (code)">
+ <state key="normal" title="Full sized image">
<color key="titleColor" red="0.50196081400000003" green="0.25098040700000002" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</state>
@@ -46,7 +33,7 @@
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="XCA-Kj-Jbf">
- <rect key="frame" x="20" y="219" width="280" height="37"/>
+ <rect key="frame" x="20" y="161" width="280" height="37"/>
<fontDescription key="fontDescription" name="AvenirNextCondensed-DemiBold" family="Avenir Next Condensed" pointSize="19"/>
<size key="titleShadowOffset" width="0.0" height="1"/>
<state key="normal" title="Resizable Image">
@@ -59,7 +46,7 @@
</state>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="lme-0S-ubJ" customClass="CBLayer">
- <rect key="frame" x="20" y="293" width="280" height="37"/>
+ <rect key="frame" x="20" y="235" width="280" height="37"/>
<fontDescription key="fontDescription" name="AvenirNextCondensed-DemiBold" family="Avenir Next Condensed" pointSize="19"/>
<size key="titleShadowOffset" width="0.0" height="1"/>
<state key="normal" title="CALayer">
@@ -72,7 +59,7 @@
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0gz-0a-1GT" customClass="CBBezier">
- <rect key="frame" x="20" y="348" width="280" height="37"/>
+ <rect key="frame" x="20" y="290" width="280" height="37"/>
<fontDescription key="fontDescription" name="AvenirNextCondensed-DemiBold" family="Avenir Next Condensed" pointSize="19"/>
<size key="titleShadowOffset" width="0.0" height="1"/>
<state key="normal" title="drawRect &amp; CGContext">
@@ -85,7 +72,7 @@
</state>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="5Ep-or-v8B" customClass="CBHybrid">
- <rect key="frame" x="20" y="404" width="280" height="37"/>
+ <rect key="frame" x="20" y="346" width="280" height="37"/>
<fontDescription key="fontDescription" name="AvenirNextCondensed-DemiBold" family="Avenir Next Condensed" pointSize="19"/>
<size key="titleShadowOffset" width="0.0" height="1"/>
<state key="normal" title="CGContext-generated image">
@@ -97,6 +84,22 @@
<color key="titleShadowColor" red="1" green="0.80000001190000003" blue="0.40000000600000002" alpha="1" colorSpace="calibratedRGB"/>
</state>
</button>
+ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="thz-uI-CtR">
+ <rect key="frame" x="20" y="405" width="280" height="37"/>
+ <fontDescription key="fontDescription" type="boldSystem" size="button"/>
+ <size key="titleShadowOffset" width="0.0" height="1"/>
+ <state key="normal" title="Pixate">
+ <color key="titleColor" red="0.19607843137254902" green="0.30980392156862746" blue="0.52156862745098043" alpha="1" colorSpace="calibratedRGB"/>
+ <color key="titleShadowColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+ </state>
+ <state key="highlighted">
+ <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+ <color key="titleShadowColor" red="1" green="0.96563622329999999" blue="0.74741437980000003" alpha="1" colorSpace="calibratedRGB"/>
+ </state>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="string" keyPath="styleId" value="pixateButton"/>
+ </userDefinedRuntimeAttributes>
+ </button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
@@ -109,10 +112,24 @@
</objects>
</scene>
</scenes>
- <resources>
- <image name="button.png" width="280" height="36"/>
- <image name="buttonHighlighted.png" width="280" height="36"/>
- </resources>
+ <classes>
+ <class className="CBBezier" superclassName="UIButton">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CBBezier.h"/>
+ </class>
+ <class className="CBHybrid" superclassName="UIButton">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CBHybrid.h"/>
+ </class>
+ <class className="CBLayer" superclassName="UIButton">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CBLayer.h"/>
+ </class>
+ <class className="CBViewController" superclassName="UIViewController">
+ <source key="sourceIdentifier" type="project" relativePath="./Classes/CBViewController.h"/>
+ <relationships>
+ <relationship kind="outlet" name="fullSizeImage" candidateClass="UIButton"/>
+ <relationship kind="outlet" name="resizableImage" candidateClass="UIButton"/>
+ </relationships>
+ </class>
+ </classes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
View
1  PXEngine.framework/Headers
View
1  PXEngine.framework/PXEngine
View
1  PXEngine.framework/PrivateHeaders
View
1  PXEngine.framework/Resources
View
16 PXEngine.framework/Versions/0.1/Headers/NSDictionary+PXCSSEncoding.h
@@ -0,0 +1,16 @@
+//
+// NSDictionary+PXCSSEncoding.h
+// PXEngine
+//
+// !WARNING! Do not include this header file directly in your application.
+// This file is not part of the public Pixate API and will likely change.
+//
+// Created by Paul Colton on 12/18/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface NSDictionary (PXCSSEncoding)
+-(NSString *)toCSS;
+@end
View
38 PXEngine.framework/Versions/0.1/Headers/PXArc.h
@@ -0,0 +1,38 @@
+//
+// PXArc.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 9/4/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import "PXShape.h"
+
+/**
+ * A PXShape subclass used to render arcs
+ */
+@interface PXArc : PXShape
+
+/**
+ * A point indicating the location of the center of this arc.
+ */
+@property (nonatomic) CGPoint center;
+
+/**
+ * A value indicating the size of the radius of this arc.
+ *
+ * This value may be negative, but it will be normalized to a positive value.
+ */
+@property (nonatomic) CGFloat radius;
+
+/**
+ * A value indicating the starting angle for this arc
+ */
+@property (nonatomic) CGFloat startingAngle;
+
+/**
+ * A value indicating the ending angle for this arc
+ */
+@property (nonatomic) CGFloat endingAngle;
+
+@end
View
21 PXEngine.framework/Versions/0.1/Headers/PXBoundable.h
@@ -0,0 +1,21 @@
+//
+// PXBoundable.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 12/19/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ * The PXBoundable interface indicates that a class conforming to this protcol can have its bounds set and retrieved
+ */
+@protocol PXBoundable <NSObject>
+
+/**
+ * The bounds of this rectangle
+ */
+@property (nonatomic) CGRect bounds;
+
+@end
View
45 PXEngine.framework/Versions/0.1/Headers/PXCircle.h
@@ -0,0 +1,45 @@
+//
+// PXCircle.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 5/31/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXShape.h"
+
+/**
+ * A PXShape sub-class used to render circles
+ */
+@interface PXCircle : PXShape
+
+/**
+ * A point indicating the location of the center of this circle.
+ */
+@property (nonatomic) CGPoint center;
+
+/**
+ * A value indicating the size of the radius of this circle.
+ *
+ * This value may be negative, but it will be normalized to a positive value.
+ */
+@property (nonatomic) CGFloat radius;
+
+/**
+ * Allocates and initializes a new circle using the specified center location and radius
+ *
+ * @param center The center point of the circle
+ * @param radius The radius of the circle
+ */
++ (id)circleWithCenter:(CGPoint)center withRadius:(CGFloat)radius;
+
+/**
+ * Initializes a newly allocated circle using the specified center location and radius
+ *
+ * @param center The center point of the circle
+ * @param radius The radius of the circle
+ */
+- (id)initCenter:(CGPoint)center radius:(CGFloat)radius;
+
+@end
View
28 PXEngine.framework/Versions/0.1/Headers/PXCornerRadius.h
@@ -0,0 +1,28 @@
+//
+// PXCornerRadius.h
+// PXEngine
+//
+// !WARNING! Do not include this header file directly in your application.
+// This file is not part of the public Pixate API and will likely change.
+//
+// Created by Kevin Lindsey on 12/17/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface PXCornerRadius : NSObject
+
+@property (nonatomic, readonly) CGSize topLeft;
+@property (nonatomic, readonly) CGSize topRight;
+@property (nonatomic, readonly) CGSize bottomRight;
+@property (nonatomic, readonly) CGSize bottomLeft;
+@property (nonatomic, readonly) BOOL hasRadius;
+
+- (id)initWithRadius:(CGFloat)radius;
+- (id)initWithRadiusX:(CGFloat)radiusX radiusY:(CGFloat)radiusY;
+- (id)initWithRadiusSize:(CGSize)radii;
+- (id)initWithTopLeft:(CGFloat)topLeft topRight:(CGFloat)topRight bottomRight:(CGFloat)bottomRight bottomLeft:(CGFloat)bottomLeft;
+- (id)initWithTopLeftSize:(CGSize)topLeft topRight:(CGSize)topRight bottomRight:(CGSize)bottomRight bottomLeft:(CGSize)bottomLeft;
+
+@end
View
117 PXEngine.framework/Versions/0.1/Headers/PXDimension.h
@@ -0,0 +1,117 @@
+//
+// PXDimension.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/7/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ * An enumeration indicating a dimension type
+ */
+typedef enum
+{
+ kDimensionTypeEms,
+ kDimensionTypeExs,
+ kDimensionTypePixels,
+ kDimensionTypeDevicePixels,
+ kDimensionTypeCentimeters,
+ kDimensionTypeMillimeters,
+ kDimensionTypeInches,
+ kDimensionTypePoints,
+ kDimensionTypePicas,
+ kDimensionTypeDegrees,
+ kDimensionTypeRadians,
+ kDimensionTypeGradians,
+ kDimensionTypeMilliseconds,
+ kDimensionTypeSeconds,
+ kDimensionTypeHertz,
+ kDimensionTypeKilohertz,
+ kDimensionTypePercentage,
+ kDimensionTypeUserDefined,
+} PXDimensionType;
+
+/**
+ * PXDimension is used to associate a dimensions with a float. Methods are included to inquire into the general
+ * category of the dimension (length, angle, time, etc.). Some conversions between dimensions is included.
+ */
+@interface PXDimension : NSObject
+
+/**
+ * The scalar value of this dimension
+ */
+@property (readonly, nonatomic) CGFloat number;
+
+/**
+ * The string value of the dimension. This is used for user-defined types.
+ */
+@property (readonly, nonatomic, strong) NSString *dimension;
+
+/**
+ * The dimension type of this dimension as defined in the PXSSDimensionType enumeration. If this value is
+ * kDimensionTypeUserDefined, then dimension will be defined, incidating the string value used when creating this
+ * instance.
+ */
+@property (readonly, nonatomic) PXDimensionType type;
+
+/**
+ * Allocate and initialize a new PXDimension using the given number and dimension
+ *
+ * @param number The dimension's scalar value
+ * @param dimension The dimension units as a string
+ */
++ (id)dimensionWithNumber:(CGFloat)number withDimension:(NSString *)dimension;
+
+/**
+ * Initialize a new instance
+ *
+ * @param number The dimension's scalar value
+ * @param dimension The dimension units as a string
+ */
+- (id)initWithNumber:(CGFloat)number withDimension:(NSString *)dimension;
+
+/**
+ * A predicate indicating if this is a length value
+ */
+- (BOOL)isLength;
+
+/**
+ * A predicate indicating if this is a angle value
+ */
+- (BOOL)isAngle;
+
+/**
+ * A predicate indicating if this is a time value
+ */
+- (BOOL)isTime;
+
+/**
+ * A predicate indicating if this is a frequency value
+ */
+- (BOOL)isFrequency;
+
+/**
+ * A predicate indicating if this is a percentage
+ */
+- (BOOL)isPercentage;
+
+/**
+ * A predicate indicating if this is a user-defined value
+ */
+- (BOOL)isUserDefined;
+
+/**
+ * Return a new PXDimension, converting this instance's value to points. If this instance is not a length, then a zero
+ * value will be returned.
+ */
+- (PXDimension *)points;
+
+/**
+ * Return a new PXDimension, converting this instance's value to degrees. If this instance is not an angle, then a zero
+ * value will be returned.
+ */
+- (PXDimension *)degrees;
+
+@end
View
54 PXEngine.framework/Versions/0.1/Headers/PXEllipse.h
@@ -0,0 +1,54 @@
+//
+// PXEllipse.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/6/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import "PXShape.h"
+#import "PXBoundable.h"
+
+/**
+ * A PXShape sub-class used to render ellipses
+ */
+@interface PXEllipse : PXShape <PXBoundable>
+
+/**
+ * A point indicating the location of the center of this ellipse.
+ */
+@property (nonatomic) CGPoint center;
+
+/**
+ * A value indicating the size of the x-radius of this ellipse.
+ *
+ * This value may be negative, but it will be normalized to a positive value.
+ */
+@property (nonatomic) CGFloat radiusX;
+
+/**
+ * A value indicating the size of the y-radius of this ellipse.
+ *
+ * This value may be negative, but it will be normalized to a positive value.
+ */
+@property (nonatomic) CGFloat radiusY;
+
+/**
+ * Allocates and initializes a new ellipse using the specified center location and radii
+ *
+ * @param center The center point of the ellipse
+ * @param radiusX The x-radius of the ellipse
+ * @param radiusY The y-radius of the ellipse
+ */
++ (id)ellipseWithCenter:(CGPoint)center withRadiusX:(CGFloat)radiusX withRadiusY:(CGFloat)radiusY;
+
+/**
+ * Initializes a newly allocated ellipse using the specified center location and radii
+ *
+ * @param center The center point of the ellipse
+ * @param radiusX The x-radius of the ellipse
+ * @param radiusY The y-radius of the ellipse
+ */
+- (id)initCenter:(CGPoint)center radiusX:(CGFloat)radiusX radiusY:(CGFloat)radiusY;
+
+@end
View
60 PXEngine.framework/Versions/0.1/Headers/PXEngine.h
@@ -0,0 +1,60 @@
+//
+// PXEngine.h
+// PXEngine
+//
+// Created by Paul Colton on 12/11/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <PXEngine/PXStylesheet.h>
+#import <PXEngine/UIView+PXStyling.h>
+#import <PXEngine/NSDictionary+PXCSSEncoding.h>
+
+/**
+ * This is the main entry point into the Pixate Engine
+ */
+@interface PXEngine : NSObject
+
+/**
+ * The build date of this version of the Pixate Engine
+ */
+@property (nonatomic, strong, readonly) NSString *version;
+
+/**
+ * The build date of this version of the Pixate Engine
+ */
+@property (nonatomic, strong, readonly) NSDate *buildDate;
+
+/**
+ * The email address used for licensing
+ */
+@property (nonatomic, strong, readonly) NSString *licenseEmail;
+
+/**
+ * The user name used for licensing
+ */
+@property (nonatomic, strong, readonly) NSString *licenseKey;
+
+/**
+ * This property, when set to YES, automatically refreshes
+ * styling when the orientation of your device changes. This is
+ * set to NO by default.
+ */
+@property (nonatomic) BOOL refreshStylesWithOrientationChange;
+
+/**
+ * The shared instance of the PXEngine singleton.
+ */
++ (PXEngine *)sharedInstance;
+
+/**
+ * Set the license key and license serial number into the Pixate
+ * Engine. This is required before styling can occur.
+ *
+ * @param licenseKey The serial number of your license
+ * @param licenseEmail The user of the license, usually an email address
+ */
++ (void) licenseKey:(NSString *)licenseKey forUser:(NSString *)licenseEmail;
+
+@end
View
54 PXEngine.framework/Versions/0.1/Headers/PXGradient.h
@@ -0,0 +1,54 @@
+//
+// PXGradient.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/8/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXPaint.h"
+
+/**
+ * A common base class for linear- and radial-gradients.
+ */
+@interface PXGradient : NSObject <PXPaint>
+
+/**
+ * An array of offsets, from zero to one inclusive, one for each color
+ */
+@property (nonatomic) NSMutableArray *offsets;
+
+/**
+ * An array of colors, one for each color in the gradient. It is expected that each color will have a corresponding
+ * offset; however, if the two arrays differ in size, then the colors will be evenly distributed between zero and one,
+ * inclusive.
+ */
+@property (nonatomic) NSMutableArray *colors;
+
+/**
+ * The transform to apply before rendering this gradient
+ */
+@property (nonatomic) CGAffineTransform transform;
+
+/**
+ * The CGGRadient representing this gradient.
+ */
+@property (readonly) CGGradientRef gradient;
+
+/**
+ * Add a color to this gradients list of colors
+ *
+ * @param color The color to add
+ */
+- (void)addColor:(UIColor *)color;
+
+/**
+ * Add a color at the given offset
+ *
+ * @param color The color to add
+ * @param offset The offset to add
+ */
+- (void)addColor:(UIColor *)color withOffset:(CGFloat)offset;
+
+@end
View
67 PXEngine.framework/Versions/0.1/Headers/PXGraphics.h
@@ -0,0 +1,67 @@
+//
+// PXGraphics.h
+// PXEngine
+//
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+// categories
+#import <PXEngine/UIColor+PXColors.h>
+
+// math
+#import <PXEngine/PXVector.h>
+#import <PXEngine/PXMath.h>
+#import <PXEngine/PXDimension.h>
+
+// strokes
+#import <PXEngine/PXStrokeRenderer.h>
+#import <PXEngine/PXStroke.h>
+#import <PXEngine/PXNonScalingStroke.h>
+#import <PXEngine/PXStrokeGroup.h>
+#import <PXEngine/PXStrokeStroke.h>
+
+// paints
+#import <PXEngine/PXPaint.h>
+#import <PXEngine/PXGradient.h>
+#import <PXEngine/PXLinearGradient.h>
+#import <PXEngine/PXRadialGradient.h>
+#import <PXEngine/PXSolidPaint.h>
+#import <PXEngine/PXPaintGroup.h>
+
+// shadows
+//#import <PXEngine/PXShadowPaint.h>
+//#import <PXEngine/PXShadow.h>
+//#import <PXEngine/PXShadowGroup.h>
+
+// shapes
+#import <PXEngine/PXRenderable.h>
+#import <PXEngine/PXPaintable.h>
+#import <PXEngine/PXShape.h>
+#import <PXEngine/PXArc.h>
+#import <PXEngine/PXCircle.h>
+#import <PXEngine/PXEllipse.h>
+#import <PXEngine/PXLine.h>
+#import <PXEngine/PXPath.h>
+#import <PXEngine/PXPie.h>
+#import <PXEngine/PXPolygon.h>
+#import <PXEngine/PXRectangle.h>
+#import <PXEngine/PXShapeGroup.h>
+#import <PXEngine/PXScene.h>
+#ifdef PXTEXT_SUPPORT
+#import <PXEngine/PXText.h>
+#endif
+#import <PXEngine/PXShapeView.h>
+
+// parsing
+#import <PXEngine/PXSourceWriter.h>
+#import <PXEngine/PXLexeme.h>
+#import <PXEngine/PXParserBase.h>
+#import <PXEngine/PXCharacterMatcher.h>
+#import <PXEngine/PXNumberMatcher.h>
+#import <PXEngine/PXPatternMatcher.h>
+#import <PXEngine/PXWordMatcher.h>
+
+#import <PXEngine/PXStylesheetTokenType.h>
+#import <PXEngine/PXStylesheetLexer.h>
+#import <PXEngine/PXStylesheetParser.h>
+#import <PXEngine/PXSVGLoader.h>
View
36 PXEngine.framework/Versions/0.1/Headers/PXLine.h
@@ -0,0 +1,36 @@
+//
+// PXLine.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/6/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import "PXShape.h"
+
+/**
+ * A PXShape sub-class used to render lines
+ */
+@interface PXLine : PXShape
+
+/**
+ * A point indicating the location of the start of this line.
+ */
+@property (nonatomic) CGPoint p1;
+
+/**
+ * A point indicating the location of the end of this line.
+ */
+@property (nonatomic) CGPoint p2;
+
+/**
+ * Initializes a newly allocated line using the specified x and y locations
+ *
+ * @param x1 The x coordinate of the start of the line
+ * @param y1 The y coordinate of the start of the line
+ * @param x2 The x coordinate of the end of the line
+ * @param y2 The y coordinate of the end of the line
+ */
+- (id)initX1:(CGFloat)x1 y1:(CGFloat)y1 x2:(CGFloat)x2 y2:(CGFloat)y2;
+
+@end
View
48 PXEngine.framework/Versions/0.1/Headers/PXLinearGradient.h
@@ -0,0 +1,48 @@
+//
+// PXLinearGradient.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/8/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXPaint.h"
+#import "PXGradient.h"
+
+/**
+ * PXLinearGradient is an implementation of a linear gradient. Linear gradients may be specified by an angle, or by two
+ * user-defined points.
+ */
+@interface PXLinearGradient : PXGradient
+
+/**
+ * The angle to be used when calculating the rendering of this gradient
+ */
+@property (nonatomic) CGFloat angle;
+
+/**
+ * Angles in iOS and CSS differ. This is a convenience property that allows angles to follow the CSS specification's
+ * definition of an angle
+ */
+@property (nonatomic) CGFloat cssAngle;
+
+/**
+ * The first point in the gradient
+ */
+@property (nonatomic) CGPoint p1;
+
+/**
+ * The last point in the gradient
+ */
+@property (nonatomic) CGPoint p2;
+
+/**
+ * Allocate and initialize a new linear gradient using the specified starting and ending colors
+ *
+ * @param startColor The starting color of this gradient
+ * @param endColor The ending color of this gradient
+ */
++ (PXLinearGradient *)gradientFromStartColor:(UIColor *)startColor endColor:(UIColor *)endColor;
+
+@end
View
15 PXEngine.framework/Versions/0.1/Headers/PXMath.h
@@ -0,0 +1,15 @@
+//
+// PXMath.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/28/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#ifndef PXShapeKit_PXMath_h
+#define PXShapeKit_PXMath_h
+
+#define DEGREES_TO_RADIANS(angle) ( (angle) / 180.0 * M_PI)
+#define RADIANS_TO_DEGREES(radians) ((radians) * 180.0 / M_PI)
+
+#endif
View
17 PXEngine.framework/Versions/0.1/Headers/PXNonScalingStroke.h
@@ -0,0 +1,17 @@
+//
+// PXNonScalingStroke.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/26/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import "PXStroke.h"
+
+/**
+ * PXNonScalingStroke is a special stroke implementation that tries its best to preserve its stroke width, in screen
+ * coordinates, regardless of the current transform being applied to the shape using this stroke
+ */
+@interface PXNonScalingStroke : PXStroke
+
+@end
View
29 PXEngine.framework/Versions/0.1/Headers/PXPaint.h
@@ -0,0 +1,29 @@
+//
+// PXPaint.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/7/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ * The PXPaint protocol specifies the properties and methods required for a class to be used for filling of a contour
+ */
+@protocol PXPaint <NSObject>
+
+/**
+ * The blend mode to use when applying this fill
+ */
+@property (nonatomic) CGBlendMode blendMode;
+
+/**
+ * A method used to apply the implementations fill to the specified CGPath in the given CGContext
+ *
+ * @param path The path to which the fill is to be applied
+ * @param context The context within which the fill is to be rendered
+ */
+- (void)applyFillToPath:(CGPathRef)path withContext:(CGContextRef)context;
+
+@end
View
26 PXEngine.framework/Versions/0.1/Headers/PXPaintGroup.h
@@ -0,0 +1,26 @@
+//
+// PXPaintGroup.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/2/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXPaint.h"
+
+/**
+ * A PXPaintGroup allows a collection of PXPaints to be treated as a single fill. This can reduce the number of
+ * contours required when filling the same region. This class is particularly useful when overlapping fills use alpha
+ * and/or blend modes
+ */
+@interface PXPaintGroup : NSObject <PXPaint>
+
+/**
+ * Add the specified paint to this group of paints
+ *
+ * @param paint The paint to add
+ */
+- (void)addPaint:(id<PXPaint>)paint;
+
+@end
View
58 PXEngine.framework/Versions/0.1/Headers/PXPaintable.h
@@ -0,0 +1,58 @@
+//
+// PXStyleable.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/11/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXStrokeRenderer.h"
+#import "PXPaint.h"
+#import "PXShadowPaint.h"
+
+@class PXShape;
+
+/**
+ * The PXPaintable protocol declares properties needed when rendering content to a CGContext.
+ */
+@protocol PXPaintable <NSObject>
+
+/**
+ * A property returning a PXStrokeRenderer.
+ *
+ * This renderer is used to paint the outline of a contour
+ */
+@property (nonatomic, strong) id<PXStrokeRenderer> stroke;
+
+/**
+ * A property returning a PXPaint
+ *
+ * This renderer is used to paint the interior of a contour
+ */
+@property (nonatomic, strong) id<PXPaint> fill;
+
+/**
+ * A property indicating the opacity of a shape.
+ *
+ * This value is in the closed interval [0,1] where 0 is transparent and 1 is opaque.
+ */
+@property (nonatomic) CGFloat opacity;
+
+/**
+ * A property indicating if this shape is visible or not.
+ */
+@property (nonatomic) BOOL visible;
+
+// NOTE: ideally the type here should be a protocol that returns a CGPathRef
+/**
+ * A property returning a PXShape to be used as a clipping path on this shape
+ */
+@property (nonatomic, strong) PXShape *clippingPath;
+
+/**
+ * A property returning a PXShadow to be used to case inner and outer shadows
+ */
+@property (nonatomic, strong) id<PXShadowPaint> shadow;
+
+@end
View
71 PXEngine.framework/Versions/0.1/Headers/PXPath.h
@@ -0,0 +1,71 @@
+//
+// PXPath.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 5/31/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXShape.h"
+
+/**
+ * A PXShape sub-class used to render paths
+ */
+@interface PXPath : PXShape
+
+/**
+ * Generate a new PXPath instance using the specified data
+ *
+ * This method parses the specifying data, generating calls to the path building methods in this class. The data is
+ * expected to be in the form as defined by the SVG 1.1 specification for the path data's d attribute.
+ *
+ * @param data A string of path data
+ * @returns A newly allocated PXPath instance
+ */
++ (PXPath *)createPathFromPathData:(NSString *)data;
+
+/**
+ * Add a close command to the current path
+ */
+- (void)close;
+
+/**
+ * Add a lineto command to the current path
+ *
+ * @param x The x-coordinate of the line being added
+ * @param y The y-coordinate of the line being added
+ */
+- (void)lineToX:(CGFloat)x y:(CGFloat) y;
+
+/**
+ * Add a moveto command to the current path
+ *
+ * @param x The x-coordinate of the new position to move to within this path
+ * @param y The y-coordinate of the new position to move to within this path
+ */
+- (void)moveToX:(CGFloat)x y:(CGFloat) y;
+
+/**
+ * Add a curveto command to the current path
+ *
+ * @param x1 The x-coordinate of the first handle of the cubic bezier curve being added
+ * @param y1 The y-coordinate of the first handle of the cubic bezier curve being added
+ * @param x2 The x-coordinate of the second handle of the cubic bezier curve being added
+ * @param y2 The y-coordinate of the second handle of the cubic bezier curve being added
+ * @param x3 The x-coordinate of the third handle of the cubic bezier curve being added
+ * @param y3 The y-coordinate of the third handle of the cubic bezier curve being added
+ */
+- (void)cubicBezierToX1:(CGFloat)x1 y1:(CGFloat)y1 x2:(CGFloat)x2 y2:(CGFloat)y2 x3:(CGFloat)x3 y3:(CGFloat)y3;
+
+/**
+ * Add a qcurveto command to the current path
+ *
+ * @param x1 The x-coordinate of the first handle of the quadratic bezier curve being added
+ * @param y1 The y-coordinate of the first handle of the quadratic bezier curve being added
+ * @param x2 The x-coordinate of the second handle of the quadratic bezier curve being added
+ * @param y2 The y-coordinate of the second handle of the quadratic bezier curve being added
+ */
+- (void)quadraticBezierToX1:(CGFloat)x1 y1:(CGFloat)y1 x2:(CGFloat)x2 y2:(CGFloat)y2;
+
+@end
View
17 PXEngine.framework/Versions/0.1/Headers/PXPie.h
@@ -0,0 +1,17 @@
+//
+// PXPie.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 9/5/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXArc.h"
+
+/**
+ * A PXArc subclass used to render pie graphs
+ */
+@interface PXPie : PXArc
+
+@end
View
37 PXEngine.framework/Versions/0.1/Headers/PXPolygon.h
@@ -0,0 +1,37 @@
+//
+// PXPolygon.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/9/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import "PXShape.h"
+
+/**
+ * A PXShape sub-class used to render open and closed polygons
+ */
+@interface PXPolygon : PXShape
+
+/**
+ * A flag indicating whether this polygon should be closed or not
+ *
+ * When this flag is true, the final point of this polygon will automatically be joined to the first it's first point.
+ * If you do not close this polygon and instead duplicate the first point as the last, you will not get a clean
+ * connection at the start point.
+ */
+@property (nonatomic) BOOL closed;
+
+/**
+ * An array of points describing the shape of this polygon
+ */
+@property (nonatomic, strong) NSArray *points;
+
+/**
+ * Initializes a newly allocated polygon using the specified list of points
+ *
+ * @param points The list of points describing the shape of this polygon
+ */
+- (id)initWithPoints:(NSArray *)points;
+
+@end
View
34 PXEngine.framework/Versions/0.1/Headers/PXRadialGradient.h
@@ -0,0 +1,34 @@
+//
+// PXRadialGradient.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/8/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import "PXGradient.h"
+#import "PXPaint.h"
+
+/**
+ * PXRadialGradient is an implementation of a radial gradient. Radial gradients are specified by a starting and ending
+ * center point along with a radius
+ */
+@interface PXRadialGradient : PXGradient
+
+/**
+ * The center point where the first color is to be rendered
+ */
+@property (nonatomic) CGPoint startCenter;
+
+/**
+ * The center point where the last color is to be rendered
+ */
+@property (nonatomic) CGPoint endCenter;
+
+/**
+ * The radius of the final color being rendered. The starting radius is implied to be zero, or some reasonably small
+ * value
+ */
+@property (nonatomic) CGFloat radius;
+
+@end
View
72 PXEngine.framework/Versions/0.1/Headers/PXRectangle.h
@@ -0,0 +1,72 @@
+//
+// PXRectangle.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 5/30/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXShape.h"
+#import "PXBoundable.h"
+#import "PXCornerRadius.h"
+
+/**
+ * A PXShape sub-class used to render rectangles
+ */
+@interface PXRectangle : PXShape <PXBoundable>
+
+/**
+ * The size (width and height) of this rectangle
+ */
+@property (nonatomic) CGSize size;
+
+/**
+ * The x-coordinate of the top-left corner of this rectangle
+ */
+@property (nonatomic) CGFloat x;
+
+/**
+ * The y-coordinate of the top-left corner of this rectangle
+ */
+@property (nonatomic) CGFloat y;
+
+/**
+ * The width of this rectangle
+ */
+@property (nonatomic) CGFloat width;
+
+/**
+ * The height of this rectangle
+ */
+@property (nonatomic) CGFloat height;
+
+/**
+ * The x-radius of the rounded corners of this rectangle
+ */
+@property (nonatomic) PXCornerRadius *cornerRadius;
+
+/**
+ * Initializes a newly allocated rectangle using the specified bounds
+ *
+ * @param bounds The bounds point of the rectangle
+ */
+- (id)initWithRect:(CGRect)bounds;
+
+/**
+ * Initializes a newly allocated rectangle using the specified bounds and rounds the corners with the specified radius
+ *
+ * @param bounds The bounds point of the rectangle
+ * @param radius The radius of the rounded corners of the rectangle
+ *
+- (id)initWithRect:(CGRect)bounds radius:(CGFloat)radius;
+
+**
+ * Initializes a newly allocated rectangle using the specified bounds and rounds the corners with the specified radii
+ *
+ * @param bounds The bounds point of the rectangle
+ * @param radii The x- and y-radii of the rounded corners of the rectangle
+ *
+- (id)initWithRect:(CGRect)bounds radii:(CGSize)radii;
+*/
+@end
View
44 PXEngine.framework/Versions/0.1/Headers/PXRenderable.h
@@ -0,0 +1,44 @@
+//
+// PXRenderable.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 5/30/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ * The PXRenderable protocol declares properties needed when describing the structure of content rendered to a
+ * CGContext.
+ */
+@protocol PXRenderable <NSObject>
+
+/**
+ * A property indicating the PXRenderable that this shape belongs to
+ */
+@property (nonatomic, strong) id<PXRenderable> parent;
+
+/**
+ * A transform to be applied to this shape during rendering
+ */
+@property CGAffineTransform transform;
+
+/**
+ * The method responsible for painting this shape to the specified CGContext
+ *
+ * @param context the context in which to render
+ */
+- (void)render:(CGContextRef)context;
+
+
+/**
+ * Render this shape within the specified bounds and return that as a UIImage
+ *
+ *
+ * @param bounds The bounds which establishes the view bounds and the resulting image size
+ * @returns A UIImage of the rendered shape
+ */
+- (UIImage *)renderToImageWithBounds:(CGRect)bounds;
+
+@end
View
81 PXEngine.framework/Versions/0.1/Headers/PXSVGLoader.h
@@ -0,0 +1,81 @@
+//
+// PXSVGLoader.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/4/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "PXGraphics.h"
+
+@class PXScene;
+
+/**
+ * PXSVGLoader is used to load SVG files that have been exported by Adobe Illustrator. This does not support any of the
+ * SVG levels or specfications. As such, this loader is likely to fail when loading SVG files generated by hand or by
+ * other tools.
+ */
+@interface PXSVGLoader : NSObject <NSXMLParserDelegate>
+
+/**
+ * Create a PXScene by loading the SVG file specified by the given URL
+ *
+ * @param URL The URL to load
+ */
++ (PXScene *)loadFromURL:(NSURL *)URL;
+
+/**
+ * The class that will be used to load the SVG file.
+ */
++ (Class)loaderClass;
+
+/**
+ * The class to use when loading the SVG file. This allows loadFromURL to be used in this class while letting another
+ * class (likely a subclass of this one) to perform the actual processing of the SVG file. This comes into play when a
+ * developer wishes to build upon this class's implementation. A typical use case would be the introduction of a new
+ * element type.
+ *
+ * @param class The loader class
+ */
++ (void)setLoaderClass:(Class)class;
+
+/**
+ * Add a new selector to be called after the specified element has been processed
+ *
+ * @param selector The selector to call when ending processing of an elementName
+ * @param elementName The element name with which to associate the selector
+ */
+- (void)addEndSelector:(SEL)selector forElement:(NSString *)elementName;
+
+/**
+ * Add a new selector to be called when a specified element is beginning to be processed
+ *
+ * @param selector The selector to call when starting processing of an elementName
+ * @param elementName The element name with which to associate the selector
+ */
+- (void)addStartSelector:(SEL)selector forElement:(NSString *)elementName;
+
+/**
+ * A convenience method that converts a string value to a float
+ *
+ * @param attributeValue The value to process
+ */
+- (CGFloat)numberFromString:(NSString *)attributeValue;
+
+/**
+ * A convenience method that handles most of the common attributes of a shape, such as its stroke and file, for example
+ *
+ * @param attributeDict A dictionary of attribute values to process
+ * @param shape The PXShape to which to apply the attributes
+ */
+- (void)applyStyles:(NSDictionary *)attributeDict forShape:(PXShape *)shape;
+
+/**
+ * Add the specified shape to the PXScene being generated by this class
+ *
+ * @param shape A shape to add to the parse results
+ */
+- (void)addShape:(PXShape *)shape;
+
+@end
View
53 PXEngine.framework/Versions/0.1/Headers/PXScene.h
@@ -0,0 +1,53 @@
+//
+// PXScene.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/11/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXRenderable.h"
+
+@class PXShapeView;
+
+/**
+ * A top-level container for PXShapes. This is used to define the bounds of a set of PXShapes. It also is a centralized
+ * container for all shape ids allowing you to retrieve shapes in a scene by their id.
+ */
+@interface PXScene : NSObject <PXRenderable>
+
+/**
+ * The bounds of the shapes in this scene
+ */
+@property (nonatomic) CGRect bounds;
+
+/**
+ * The top-level shape rendered by this scene.
+ *
+ * If a collection of shapes are needed, then this shape will need to be a PXShapeGroup
+ */
+@property (nonatomic, strong) id<PXRenderable> shape;
+
+/**
+ * The top-level view that this scene belongs to
+ */
+@property (nonatomic, strong) PXShapeView *parentView;
+
+/**
+ * Return the shape in this scene with the specfied name.
+ *
+ * @param name The name of the shape
+ * @returns A PXRenderable or nil
+ */
+- (id<PXRenderable>)shapeForName:(NSString *)name;
+
+/**
+ * Register a shape with the specified name with this scene.
+ *
+ * @param shape The shape to register
+ * @param name The shape's name
+ */
+- (void)addShape:(id<PXRenderable>)shape forName:(NSString *)name;
+
+@end
View
52 PXEngine.framework/Versions/0.1/Headers/PXShadow.h
@@ -0,0 +1,52 @@
+//
+// PXShadow.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 8/31/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXShadowPaint.h"
+
+/**
+ * PXShadow is used to capture all settings needed to render a box shadow.
+ */
+@interface PXShadow : NSObject <PXShadowPaint>
+
+/**
+ * A flag indicating whether the shadow should be applied inside or outside of the contour being shadowed
+ */
+@property (nonatomic) BOOL inset;
+
+/**
+ * The x-displacement for the shadow
+ */
+@property (nonatomic) CGFloat horizontalOffset;
+
+/**
+ * The y-displacment for the shadow
+ */
+@property (nonatomic) CGFloat verticalOffset;
+
+/**
+ * The blur amount for the shadow
+ */
+@property (nonatomic) CGFloat blurDistance;
+
+/**
+ * The spread amount of the blur
+ */
+@property (nonatomic) CGFloat spreadDistance;
+
+/**
+ * The color of the shadow
+ */
+@property (nonatomic, strong) UIColor *color;
+
+/**
+ * The blend mode to use when applying this shadow
+ */
+@property (nonatomic) CGBlendMode blendMode;
+
+@end
View
29 PXEngine.framework/Versions/0.1/Headers/PXShadowGroup.h
@@ -0,0 +1,29 @@
+//
+// PXShadowGroup.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 12/7/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXShadowPaint.h"
+
+/**
+ * A PXShadowGroup serves as a collection of PXShadowPaints
+ */
+@interface PXShadowGroup : NSObject <PXShadowPaint>
+
+/**
+ * The list of PXShapowPaints associated with this shadow group
+ */
+@property (nonatomic, readonly) NSArray *shadows;
+
+/**
+ * Add a PXShapowPaint to this shadow group
+ *
+ * @param shadow The PXShadowPaint to add
+ */
+- (void)addShadowPaint:(id<PXShadowPaint>)shadow;
+
+@end
View
33 PXEngine.framework/Versions/0.1/Headers/PXShadowPaint.h
@@ -0,0 +1,33 @@
+//
+// PXShadowPaint.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 12/7/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ * The PXShadowPaint protocol specifies the properties and methods required for a class to be used for shadowing of a
+ * contour
+ */
+@protocol PXShadowPaint <NSObject>
+
+/**
+ * Apply an outer shadow to the specified path
+ *
+ * @param path A path used to generate a shadow
+ * @param context The context into which to render the shadow
+ */
+- (void)applyOutsetToPath:(CGPathRef)path withContext:(CGContextRef)context;
+
+/**
+ * Apply an inner shadow to the specified path
+ *
+ * @param path A path used to generate a shadow
+ * @param context The context into which to render the shadow
+ */
+- (void)applyInsetToPath:(CGPathRef)path withContext:(CGContextRef)context;
+
+@end
View
73 PXEngine.framework/Versions/0.1/Headers/PXShape.h
@@ -0,0 +1,73 @@
+//
+// PXShape.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 5/30/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXRenderable.h"
+#import "PXPaintable.h"
+#import "PXScene.h"
+
+/**
+ * A common base class for all shapes in ShapeKit.
+ *
+ * A PXShape must implement the PXRenderable protocol and the PXPaintable protocol. This class can be used to cache the
+ * geometry of the shape it describes.
+ */
+@interface PXShape : NSObject <PXRenderable,PXPaintable>
+
+/**
+ * A read-only property of the path data associated with this shape instance.
+ *
+ * Note that when this property is accessed, the buildPath method may be called to populate the path cache for the
+ * instance. This property may return nil, which indicates that the instance was unable to create a path.
+ */
+@property (readonly, nonatomic) CGPathRef path;
+
+/**
+ * A read-only property pointing to the PXScene that owns this instance.
+ *
+ * This property can be thought of as being analogous to the W3C DOM Node#getDocument method.
+ */
+@property (readonly, nonatomic) PXScene *owningScene;
+
+/**
+ * Build a CGPathRef that contains the geometry of this instance's shape.
+ *
+ * Typically, this method would not be called in isolation. It is more of a helper method for the path property.
+ */
+- (CGPathRef)newPath;
+
+/**
+ * Clear the path cache.
+ *
+ * This method is used to clear the path cache maintained by this shape. This can be useful in low memory situations,
+ * but this is more likely to be used when some attribute of the shape has changed which affects its geometry. At which
+ * point, the cache is invalidated and will be rebuilt the next time the path property is accessed.
+ */
+- (void)clearPath;
+
+/**
+ * Render any children associated with this shape.
+ *
+ * This method is used to render any child content associated with this shape. In most cases, this will only be used by
+ * container classes, such as PXShapeGroup.
+ *
+ * @param context The context into which children of this shape should be rendered.
+ */
+- (void)renderChildren:(CGContextRef)context;
+
+/**
+ * Indicate that this shape needs to be redrawn.
+ *
+ * This method is used to indicate that this shape needs to be redrawn. This will effectively call setNeedsDisplay on
+ * the view that utlimately owns this shape; however, note that shape geometry is cached. This will force the shape to
+ * be redrawn, but it will not force the shape's geometry to be recalculated. If you need to clear the cache and
+ * refresh, call clearPath.
+ */
+- (void)setNeedsDisplay;
+
+@end
View
102 PXEngine.framework/Versions/0.1/Headers/PXShapeGroup.h
@@ -0,0 +1,102 @@
+//
+// PXShapeGroup.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/1/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "PXShape.h"
+#import "PXRenderable.h"
+
+typedef enum {
+ kAlignViewPortNone,
+ kAlignViewPortXMinYMin,
+ kAlignViewPortXMinYMid,
+ kAlignViewPortXMinYMax,
+ kAlignViewPortXMidYMin,
+ kAlignViewPortXMidYMid,
+ kAlignViewPortXMidYMax,
+ kAlignViewPortXMaxYMin,
+ kAlignViewPortXMaxYMid,
+ kAlignViewPortXMaxYMax,
+} AlignViewPortType;
+
+typedef enum {
+ kCropTypeMeet,
+ kCropTypeSlice
+} CropType;
+
+/**
+ * A PXShape sub-class used to render collections of shapes
+ */
+@interface PXShapeGroup : PXShape
+
+/**
+ * The width of this shape group.
+ *
+ * This value is deprecated
+ */
+@property (nonatomic) CGFloat width;
+
+/**
+ * The height of this shape group.
+ *
+ * This value is deprecated
+ */
+@property (nonatomic) CGFloat height;
+
+/**
+ * The viewport of this shape group.
+ */
+@property (nonatomic) CGRect viewport;
+
+/**
+ * The alignment to use when mapping a shape group's viewport to the screen
+ */
+@property (nonatomic) AlignViewPortType viewportAlignment;
+
+/**
+ * The type of crop to use when applying the shape group's viewport to the screen
+ */
+@property (nonatomic) CropType viewportCrop;
+
+/**
+ * A read-only property indicating how many child shapes this group contains.
+ */
+@property (readonly, nonatomic) NSUInteger shapeCount;
+
+/**
+ * A read-only property of the transform that would need to be applied to this shape group in order for its viewport to
+ * fit within the specified shape group width and height.
+ */
+@property (readonly, nonatomic) CGAffineTransform viewPortTransform;
+
+/**
+ * Adds a shape to this shape group.
+ *
+ * Nil values are ignored
+ *
+ * @param shape The shape to add
+ */
+- (void)addShape:(id<PXRenderable>)shape;
+
+/**
+ * Removes the specified shape from the shape group
+ *
+ * @param shape The shape to remove
+ */
+- (void)removeShape:(id<PXRenderable>)shape;
+
+/**
+ * Returns the shape at the specified index.
+ *
+ * Nil is returned for index values that are out of range
+ *
+ * @param index The index of the shape to return
+ * @returns A PXRenderable to nil
+ */
+- (id<PXRenderable>)shapeAtIndex:(NSUInteger)index;
+
+@end
View
56 PXEngine.framework/Versions/0.1/Headers/PXShapeView.h
@@ -0,0 +1,56 @@
+//
+// PXShapeView.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 5/30/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "PXScene.h"
+
+/**
+ * PXShapeView serves as a convenience class for displaying vector graphics as defined by Pixate's ShapeKit.
+ */
+@interface PXShapeView : UIView
+
+/**
+ * The top-level scene being rendered into this view
+ */
+@property (nonatomic, strong) PXScene *scene;
+
+/**
+ * The string path to a vector graphics file to be rendered into this view
+ */
+@property (nonatomic, strong) NSString *resourcePath;
+
+/**
+ * Load a vector graphics file at the given URL. Note that this implementation currently supports like file resources
+ * only.
+ *
+ * @param URL The URL to load
+ */
+- (void)loadSceneFromURL:(NSURL *)URL;
+
+/**
+ * Create an image of the current display
+ */
+- (UIImage *)renderToImage;
+
+/**
+ * Apply this views bounds to the content it contains. This may result in the content being scaled and/or shifted
+ * based on the scene's viewport settings
+ */
+- (void)applyBoundsToScene;
+
+/**
+ * Note that the following properties and method are experimental and will most likely be deleted in a future release.
+ */
+@property (nonatomic) CGPoint shapeCenter;
+@property (nonatomic) CGPoint shapeTranslation;
+@property (nonatomic) CGPoint shapeScale;
+@property (nonatomic) CGFloat shapeRotation;
+@property (readonly) CGAffineTransform shapeTransform;
+- (void)resetTransforms;
+
+@end
View
36 PXEngine.framework/Versions/0.1/Headers/PXSolidPaint.h
@@ -0,0 +1,36 @@
+//
+// PXSolidPaint.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 6/7/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXPaint.h"
+
+/**
+ * PXSolidPaint is used to fill a contour with a solid color
+ */
+@interface PXSolidPaint : NSObject <PXPaint>
+
+/**
+ * The color used when filling a specified contour
+ */
+@property (nonatomic, strong) UIColor *color;
+
+/**
+ * Allocate and initialize a new solid paint with the specified color
+ *
+ * @param color The color of this paint
+ */
++ (id)paintWithColor:(UIColor *)color;
+
+/**
+ * Initialize a new solid paint with the specified color
+ *
+ * @param color The color of this paint
+ */
+- (id)initWithColor:(UIColor *)color;
+
+@end
View
84 PXEngine.framework/Versions/0.1/Headers/PXStroke.h
@@ -0,0 +1,84 @@
+//
+// PXStroke.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/2/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXPaint.h"
+#import "PXStrokeRenderer.h"
+
+/**
+ * PXStrokeType is an enumeration indicating the placement of the stroke in relation to the contour it is being applied
+ * to.
+ */
+typedef enum
+{
+ kStrokeTypeCenter,
+ kStrokeTypeInner,
+ kStrokeTypeOuter
+} PXStrokeType;
+
+/**
+ * PXStroke is a general-purpose stroke allowing for the specification of standard stroke properties such as width,
+ * color, joins, and caps.
+ */
+@interface PXStroke : NSObject <PXStrokeRenderer>
+
+/**
+ * An indication of how this stroke should be applied to its associated contour.
+ */
+@property (nonatomic) PXStrokeType type;
+
+/**
+ * The width of this stroke
+ */
+@property (nonatomic) CGFloat width;
+
+/**
+ * The paint to apply when rendering this stroke
+ */
+@property (nonatomic, strong) id<PXPaint> color;
+
+/**
+ * An array indicating a pattern of dashes to be applied during rendering of this stroke
+ */
+@property (nonatomic, strong) NSArray* dashArray;
+
+/**
+ * An offset to be applied before applying the values of the dashArayy
+ */
+@property (nonatomic) CGFloat dashOffset;
+
+/**
+ * A value indicating how end-points of a stroke should be closed
+ */
+@property (nonatomic) CGLineCap lineCap;
+
+/**
+ * A value indicating how joined line segments should be joined
+ */
+@property (nonatomic) CGLineJoin lineJoin;
+
+/**
+ * A value indicating at which point an acute line join should be mitered
+ */
+@property (nonatomic) CGFloat miterLimit;
+
+/**
+ * Initialize a new allocated stroke with the specified stroke width
+ *
+ * @param width The stroke width
+ */
+- (id)initWithStrokeWidth:(CGFloat)width;
+
+/**
+ * Return ths CGPath representation of the stroke as it will be rendered in the CGContext
+ *
+ * @param path The path to stroke
+ */
+- (CGPathRef)newStrokedPath:(CGPathRef)path;
+
+@end
View
26 PXEngine.framework/Versions/0.1/Headers/PXStrokeGroup.h
@@ -0,0 +1,26 @@
+//
+// PXStrokeGroup.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/2/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXStroke.h"
+
+/**
+ * PXStrokeGroup allows a collection of PXStrokeRenderers to be treated as a single stroke. This is particularly useful
+ * when more than one stroke needs to be drawn for a given contour. Without this class, clones of the contour would
+ * have to be generated, one for each stroke to apply
+ */
+@interface PXStrokeGroup : NSObject <PXStrokeRenderer>
+
+/**
+ * Add the specified stroke to this instance's list of strokes
+ *
+ * @param stroke The stroke to add to this group
+ */
+- (void)addStroke:(id<PXStrokeRenderer>)stroke;
+
+@end
View
26 PXEngine.framework/Versions/0.1/Headers/PXStrokeRenderer.h
@@ -0,0 +1,26 @@
+//
+// PXStrokeRenderer.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/2/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ * The PXStrokeRenderer protocol specifies a method that a class must implement if it is to be used to render a stroke
+ * on a contour.
+ */
+@protocol PXStrokeRenderer <NSObject>
+
+/**
+ * This method takes in a contour defined by a CGPath and applies whatever stroke effect it implements within the
+ * specified context
+ *
+ * @param path The path contour onto which the stroke is to be applied
+ * @param context The context into which this stroke is to be rendered
+ */
+- (void)applyStrokeToPath:(CGPathRef)path withContext:(CGContextRef)context;
+
+@end
View
31 PXEngine.framework/Versions/0.1/Headers/PXStrokeStroke.h
@@ -0,0 +1,31 @@
+//
+// PXStrokeStroke.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 9/4/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PXStrokeRenderer.h"
+
+@class PXStroke;
+
+/**
+ * PXStrokeStroke is an experimental class used to stroke the path of a path generated by another PXStrokeRenderer.
+ */
+@interface PXStrokeStroke : NSObject <PXStrokeRenderer>
+
+/**
+ * The base stroke to apply to the contour. A new CGPath will be generated by applying this stroke to the contour;
+ * however, before the stroke is rendered, the strokeToApply will be applied to the generated CGPath, thus creating a
+ * stroke of a stroke
+ */
+@property (nonatomic, strong) PXStroke *strokeEffect;
+
+/**
+ * The stroke to apply once the stroke effect CGPath has been generated.
+ */
+@property (nonatomic, strong) id<PXStrokeRenderer> strokeToApply;
+
+@end
View
86 PXEngine.framework/Versions/0.1/Headers/PXStyleable.h
@@ -0,0 +1,86 @@
+//
+// PXStyleable.h
+// PXEngine
+//
+// Created by Kevin Lindsey on 7/11/12.
+// Copyright (c) 2012 Pixate, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class PXRuleSet;
+
+/**
+ * The PXStyleable protocol defines a set of properties and methods needed in order to style a given object.
+ */
+@protocol PXStyleable <NSObject>
+
+@required
+
+/**
+ * The ID for this styleable object. Ideally, this value should be unique within the context being styled.
+ */
+@property (nonatomic, copy) NSString *styleId;
+
+/**
+ * The CSS classes associated with this styleable object. One or more classes may be specified by delimiting each with
+ * whitespace
+ */
+@property (nonatomic, copy) NSString *styleClass;
+
+/**
+ * The element name to use when matching this styleable object against a selector
+ */
+@property (readonly, nonatomic, copy) NSString *pxStyleElementName;
+
+/**
+ * The style parent that contains this object
+ */
+@property (readonly, nonatomic, copy) id pxStyleParent;
+
+/**
+ * The style children owned by this object
+ */
+@property (readonly, nonatomic, copy) NSArray *pxStyleChildren;
+
+/**
+ * The bounds of the item being styled
+ */
+@property (nonatomic) CGRect bounds;
+
+/**
+ * The frame of the item being styled
+ */
+@property (nonatomic) CGRect frame;
+
+@optional
+
+/**
+ * Return the namespace URI associated with this object
+ */
+@property (readonly, nonatomic, copy) NSString *pxStyleNamespace;
+
+/**
+ * Inline styles to apply to this object
+ */
+@property (nonatomic, copy) NSString *styleCSS;
+
+/**
+ * Return a list of psueudo-classes that are recognized by this object
+ */
+@property (readonly, nonatomic, copy) NSArray *supportedPseudoClasses;
+
+/**
+ * Return the default pseudo-class associated with this object when none is specified in a selector
+ */
+@property (readonly, nonatomic, copy) NSString *defaultPseudoClass;
+
+/**
+ * Return a string value for the specified attribute name. If the name does not exist, a nil value should be returned
+ *
+ * @param name The name of the attribute